-<!DOCTYPE html><html lang="en"><head><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"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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 sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><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="#constants">Constants</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><h1>List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.BlockId.html">BlockId</a></li><li><a href="struct.ConfirmationHeightAnchor.html">ConfirmationHeightAnchor</a></li><li><a href="struct.ConfirmationTimeHeightAnchor.html">ConfirmationTimeHeightAnchor</a></li><li><a href="struct.DescriptorId.html">DescriptorId</a></li><li><a href="struct.FullTxOut.html">FullTxOut</a></li><li><a href="struct.SpkIterator.html">SpkIterator</a></li><li><a href="struct.SpkTxOutIndex.html">SpkTxOutIndex</a></li><li><a href="indexed_tx_graph/struct.ChangeSet.html">indexed_tx_graph::ChangeSet</a></li><li><a href="indexed_tx_graph/struct.IndexedTxGraph.html">indexed_tx_graph::IndexedTxGraph</a></li><li><a href="keychain/struct.Balance.html">keychain::Balance</a></li><li><a href="keychain/struct.ChangeSet.html">keychain::ChangeSet</a></li><li><a href="keychain/struct.KeychainTxOutIndex.html">keychain::KeychainTxOutIndex</a></li><li><a href="local_chain/struct.AlterCheckPointError.html">local_chain::AlterCheckPointError</a></li><li><a href="local_chain/struct.CannotConnectError.html">local_chain::CannotConnectError</a></li><li><a href="local_chain/struct.CheckPoint.html">local_chain::CheckPoint</a></li><li><a href="local_chain/struct.CheckPointIter.html">local_chain::CheckPointIter</a></li><li><a href="local_chain/struct.LocalChain.html">local_chain::LocalChain</a></li><li><a href="local_chain/struct.MissingGenesisError.html">local_chain::MissingGenesisError</a></li><li><a href="spk_client/struct.FullScanRequest.html">spk_client::FullScanRequest</a></li><li><a href="spk_client/struct.FullScanResult.html">spk_client::FullScanResult</a></li><li><a href="spk_client/struct.SyncRequest.html">spk_client::SyncRequest</a></li><li><a href="spk_client/struct.SyncResult.html">spk_client::SyncResult</a></li><li><a href="tx_graph/struct.CanonicalTx.html">tx_graph::CanonicalTx</a></li><li><a href="tx_graph/struct.ChangeSet.html">tx_graph::ChangeSet</a></li><li><a href="tx_graph/struct.TxAncestors.html">tx_graph::TxAncestors</a></li><li><a href="tx_graph/struct.TxDescendants.html">tx_graph::TxDescendants</a></li><li><a href="tx_graph/struct.TxGraph.html">tx_graph::TxGraph</a></li><li><a href="tx_graph/struct.TxNode.html">tx_graph::TxNode</a></li></ul><h3 id="enums">Enums</h3><ul class="all-items"><li><a href="enum.ChainPosition.html">ChainPosition</a></li><li><a href="enum.ConfirmationTime.html">ConfirmationTime</a></li><li><a href="local_chain/enum.ApplyHeaderError.html">local_chain::ApplyHeaderError</a></li><li><a href="tx_graph/enum.CalculateFeeError.html">tx_graph::CalculateFeeError</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="trait.Anchor.html">Anchor</a></li><li><a href="trait.AnchorFromBlockPosition.html">AnchorFromBlockPosition</a></li><li><a href="trait.Append.html">Append</a></li><li><a href="trait.ChainOracle.html">ChainOracle</a></li><li><a href="trait.DescriptorExt.html">DescriptorExt</a></li><li><a href="indexed_tx_graph/trait.Indexer.html">indexed_tx_graph::Indexer</a></li></ul><h3 id="types">Type Aliases</h3><ul class="all-items"><li><a href="local_chain/type.ChangeSet.html">local_chain::ChangeSet</a></li><li><a href="spk_client/type.TxCache.html">spk_client::TxCache</a></li></ul><h3 id="constants">Constants</h3><ul class="all-items"><li><a href="constant.BIP32_MAX_INDEX.html">BIP32_MAX_INDEX</a></li><li><a href="constant.COINBASE_MATURITY.html">COINBASE_MATURITY</a></li></ul></section></div></main></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="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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 sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><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="#constants">Constants</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><h1>List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.BlockId.html">BlockId</a></li><li><a href="struct.ConfirmationHeightAnchor.html">ConfirmationHeightAnchor</a></li><li><a href="struct.ConfirmationTimeHeightAnchor.html">ConfirmationTimeHeightAnchor</a></li><li><a href="struct.DescriptorId.html">DescriptorId</a></li><li><a href="struct.FullTxOut.html">FullTxOut</a></li><li><a href="struct.SpkIterator.html">SpkIterator</a></li><li><a href="struct.SpkTxOutIndex.html">SpkTxOutIndex</a></li><li><a href="indexed_tx_graph/struct.ChangeSet.html">indexed_tx_graph::ChangeSet</a></li><li><a href="indexed_tx_graph/struct.IndexedTxGraph.html">indexed_tx_graph::IndexedTxGraph</a></li><li><a href="keychain/struct.Balance.html">keychain::Balance</a></li><li><a href="keychain/struct.ChangeSet.html">keychain::ChangeSet</a></li><li><a href="keychain/struct.KeychainTxOutIndex.html">keychain::KeychainTxOutIndex</a></li><li><a href="local_chain/struct.AlterCheckPointError.html">local_chain::AlterCheckPointError</a></li><li><a href="local_chain/struct.CannotConnectError.html">local_chain::CannotConnectError</a></li><li><a href="local_chain/struct.CheckPoint.html">local_chain::CheckPoint</a></li><li><a href="local_chain/struct.CheckPointIter.html">local_chain::CheckPointIter</a></li><li><a href="local_chain/struct.LocalChain.html">local_chain::LocalChain</a></li><li><a href="local_chain/struct.MissingGenesisError.html">local_chain::MissingGenesisError</a></li><li><a href="spk_client/struct.FullScanRequest.html">spk_client::FullScanRequest</a></li><li><a href="spk_client/struct.FullScanResult.html">spk_client::FullScanResult</a></li><li><a href="spk_client/struct.SyncRequest.html">spk_client::SyncRequest</a></li><li><a href="spk_client/struct.SyncResult.html">spk_client::SyncResult</a></li><li><a href="tx_graph/struct.CanonicalTx.html">tx_graph::CanonicalTx</a></li><li><a href="tx_graph/struct.ChangeSet.html">tx_graph::ChangeSet</a></li><li><a href="tx_graph/struct.TxAncestors.html">tx_graph::TxAncestors</a></li><li><a href="tx_graph/struct.TxDescendants.html">tx_graph::TxDescendants</a></li><li><a href="tx_graph/struct.TxGraph.html">tx_graph::TxGraph</a></li><li><a href="tx_graph/struct.TxNode.html">tx_graph::TxNode</a></li></ul><h3 id="enums">Enums</h3><ul class="all-items"><li><a href="enum.ChainPosition.html">ChainPosition</a></li><li><a href="enum.ConfirmationTime.html">ConfirmationTime</a></li><li><a href="local_chain/enum.ApplyHeaderError.html">local_chain::ApplyHeaderError</a></li><li><a href="tx_graph/enum.CalculateFeeError.html">tx_graph::CalculateFeeError</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="trait.Anchor.html">Anchor</a></li><li><a href="trait.AnchorFromBlockPosition.html">AnchorFromBlockPosition</a></li><li><a href="trait.Append.html">Append</a></li><li><a href="trait.ChainOracle.html">ChainOracle</a></li><li><a href="trait.DescriptorExt.html">DescriptorExt</a></li><li><a href="indexed_tx_graph/trait.Indexer.html">indexed_tx_graph::Indexer</a></li></ul><h3 id="types">Type Aliases</h3><ul class="all-items"><li><a href="local_chain/type.ChangeSet.html">local_chain::ChangeSet</a></li></ul><h3 id="constants">Constants</h3><ul class="all-items"><li><a href="constant.BIP32_MAX_INDEX.html">BIP32_MAX_INDEX</a></li><li><a href="constant.COINBASE_MATURITY.html">COINBASE_MATURITY</a></li></ul></section></div></main></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="Contains the `IndexedTxGraph` and associated types. Refer to the `IndexedTxGraph` documentation for more."><title>bdk_chain::indexed_tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">Module indexed_tx_graph</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section><h2><a href="../index.html">In crate bdk_chain</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_chain</a>::<wbr><a class="mod" href="#">indexed_tx_graph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/indexed_tx_graph.rs.html#1-354">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Contains the <a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a> and associated types. Refer to 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="Contains the `IndexedTxGraph` and associated types. Refer to the `IndexedTxGraph` documentation for more."><title>bdk_chain::indexed_tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">Module indexed_tx_graph</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section><h2><a href="../index.html">In crate bdk_chain</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_chain</a>::<wbr><a class="mod" href="#">indexed_tx_graph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/indexed_tx_graph.rs.html#1-360">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Contains the <a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a> and associated types. Refer to the
<a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a> documentation for more.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a></div><div class="desc docblock-short">Represents changes to an <a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a></div><div class="desc docblock-short">The <a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a> combines a <a href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> and an <a href="trait.Indexer.html" title="trait bdk_chain::indexed_tx_graph::Indexer"><code>Indexer</code></a> implementation.</div></li></ul><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.Indexer.html" title="trait bdk_chain::indexed_tx_graph::Indexer">Indexer</a></div><div class="desc docblock-short">Utilities for indexing transaction data.</div></li></ul></section></div></main></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 `IndexedTxGraph` combines a `TxGraph` and an `Indexer` implementation."><title>IndexedTxGraph in bdk_chain::indexed_tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">IndexedTxGraph</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.index">index</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.apply_block">apply_block</a></li><li><a href="#method.apply_block_relevant">apply_block_relevant</a></li><li><a href="#method.apply_changeset">apply_changeset</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.batch_insert_relevant">batch_insert_relevant</a></li><li><a href="#method.batch_insert_relevant_unconfirmed">batch_insert_relevant_unconfirmed</a></li><li><a href="#method.batch_insert_unconfirmed">batch_insert_unconfirmed</a></li><li><a href="#method.graph">graph</a></li><li><a href="#method.initial_changeset">initial_changeset</a></li><li><a href="#method.insert_anchor">insert_anchor</a></li><li><a href="#method.insert_seen_at">insert_seen_at</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.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-IndexedTxGraph%3CA,+I%3E">Debug</a></li><li><a href="#impl-Default-for-IndexedTxGraph%3CA,+I%3E">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-IndexedTxGraph%3CA,+I%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-IndexedTxGraph%3CA,+I%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-IndexedTxGraph%3CA,+I%3E">Send</a></li><li><a href="#impl-Sync-for-IndexedTxGraph%3CA,+I%3E">Sync</a></li><li><a href="#impl-Unpin-for-IndexedTxGraph%3CA,+I%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-IndexedTxGraph%3CA,+I%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::indexed_tx_graph</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">indexed_tx_graph</a>::<wbr><a class="struct" href="#">IndexedTxGraph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/indexed_tx_graph.rs.html#15-19">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct IndexedTxGraph<A, I> {
+<!DOCTYPE html><html lang="en"><head><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 `IndexedTxGraph` combines a `TxGraph` and an `Indexer` implementation."><title>IndexedTxGraph in bdk_chain::indexed_tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">IndexedTxGraph</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.index">index</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.apply_block">apply_block</a></li><li><a href="#method.apply_block_relevant">apply_block_relevant</a></li><li><a href="#method.apply_changeset">apply_changeset</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.batch_insert_relevant">batch_insert_relevant</a></li><li><a href="#method.batch_insert_relevant_unconfirmed">batch_insert_relevant_unconfirmed</a></li><li><a href="#method.batch_insert_unconfirmed">batch_insert_unconfirmed</a></li><li><a href="#method.graph">graph</a></li><li><a href="#method.initial_changeset">initial_changeset</a></li><li><a href="#method.insert_anchor">insert_anchor</a></li><li><a href="#method.insert_seen_at">insert_seen_at</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.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E">AsRef<TxGraph<A>></a></li><li><a href="#impl-Debug-for-IndexedTxGraph%3CA,+I%3E">Debug</a></li><li><a href="#impl-Default-for-IndexedTxGraph%3CA,+I%3E">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-IndexedTxGraph%3CA,+I%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-IndexedTxGraph%3CA,+I%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-IndexedTxGraph%3CA,+I%3E">Send</a></li><li><a href="#impl-Sync-for-IndexedTxGraph%3CA,+I%3E">Sync</a></li><li><a href="#impl-Unpin-for-IndexedTxGraph%3CA,+I%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-IndexedTxGraph%3CA,+I%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::indexed_tx_graph</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">indexed_tx_graph</a>::<wbr><a class="struct" href="#">IndexedTxGraph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/indexed_tx_graph.rs.html#15-19">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct IndexedTxGraph<A, I> {
pub index: I,
<span class="comment">/* private fields */</span>
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <a href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a> combines a <a href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> and an <a href="trait.Indexer.html" title="trait bdk_chain::indexed_tx_graph::Indexer"><code>Indexer</code></a> implementation.</p>
<p>Each inserted transaction’s anchor will be constructed from
<a href="../trait.AnchorFromBlockPosition.html#tymethod.from_block_position" title="associated function bdk_chain::AnchorFromBlockPosition::from_block_position"><code>AnchorFromBlockPosition::from_block_position</code></a>.</p>
<p>To only insert relevant transactions, use <a href="struct.IndexedTxGraph.html#method.apply_block_relevant" title="method bdk_chain::indexed_tx_graph::IndexedTxGraph::apply_block_relevant"><code>apply_block_relevant</code></a> instead.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#14">source</a><a href="#impl-Debug-for-IndexedTxGraph%3CA,+I%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>, 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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#14">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="toggle implementors-toggle" open><summary><section id="impl-Default-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#21-28">source</a><a href="#impl-Default-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#22-27">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="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a href="#impl-Freeze-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I><div class="where">where
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#356-360">source</a><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <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="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>> for <a class="struct" href="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#357-359">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="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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="toggle implementors-toggle" open><summary><section id="impl-Debug-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#14">source</a><a href="#impl-Debug-for-IndexedTxGraph%3CA,+I%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>, 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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#14">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="toggle implementors-toggle" open><summary><section id="impl-Default-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#21-28">source</a><a href="#impl-Default-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#22-27">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="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a href="#impl-Freeze-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I><div class="where">where
I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a href="#impl-RefUnwindSafe-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I><div class="where">where
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>,
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>,</div></h3></section><section id="impl-Send-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a href="#impl-Send-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">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="struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I><div class="where">where
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Helper types for spk-based blockchain clients."><title>bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">Module spk_client</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#types">Type Aliases</a></li></ul></section><h2><a href="../index.html">In crate bdk_chain</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_chain</a>::<wbr><a class="mod" href="#">spk_client</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#1-446">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Helper types for spk-based blockchain clients.</p>
-</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a></div><div class="desc docblock-short">Data required to perform a spk-based blockchain client full scan.</div></li><li><div class="item-name"><a class="struct" href="struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a></div><div class="desc docblock-short">Data returned from a spk-based blockchain client full scan.</div></li><li><div class="item-name"><a class="struct" href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a></div><div class="desc docblock-short">Data required to perform a spk-based blockchain client sync.</div></li><li><div class="item-name"><a class="struct" href="struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a></div><div class="desc docblock-short">Data returned from a spk-based blockchain client sync.</div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache">TxCache</a></div><div class="desc docblock-short">A cache of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc"><code>Arc</code></a>-wrapped full transactions, identified by their [<code>Txid</code>]s.</div></li></ul></section></div></main></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="Helper types for spk-based blockchain clients."><title>bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">Module spk_client</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li></ul></section><h2><a href="../index.html">In crate bdk_chain</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_chain</a>::<wbr><a class="mod" href="#">spk_client</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#1-387">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Helper types for spk-based blockchain clients.</p>
+</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a></div><div class="desc docblock-short">Data required to perform a spk-based blockchain client full scan.</div></li><li><div class="item-name"><a class="struct" href="struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a></div><div class="desc docblock-short">Data returned from a spk-based blockchain client full scan.</div></li><li><div class="item-name"><a class="struct" href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a></div><div class="desc docblock-short">Data required to perform a spk-based blockchain client sync.</div></li><li><div class="item-name"><a class="struct" href="struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a></div><div class="desc docblock-short">Data returned from a spk-based blockchain client sync.</div></li></ul></section></div></main></body></html>
\ No newline at end of file
-window.SIDEBAR_ITEMS = {"struct":["FullScanRequest","FullScanResult","SyncRequest","SyncResult"],"type":["TxCache"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"struct":["FullScanRequest","FullScanResult","SyncRequest","SyncResult"]};
\ 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="Data required to perform a spk-based blockchain client full scan."><title>FullScanRequest in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">FullScanRequest</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_tip">chain_tip</a></li><li><a href="#structfield.spks_by_keychain">spks_by_keychain</a></li><li><a href="#structfield.tx_cache">tx_cache</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.cache_graph_txs">cache_graph_txs</a></li><li><a href="#method.cache_txs">cache_txs</a></li><li><a href="#method.chain_spks_for_keychain">chain_spks_for_keychain</a></li><li><a href="#method.from_chain_tip">from_chain_tip</a></li><li><a href="#method.from_keychain_txout_index">from_keychain_txout_index</a></li><li><a href="#method.inspect_spks_for_all_keychains">inspect_spks_for_all_keychains</a></li><li><a href="#method.inspect_spks_for_keychain">inspect_spks_for_keychain</a></li><li><a href="#method.set_spks_for_keychain">set_spks_for_keychain</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-FullScanRequest%3CK%3E">!RefUnwindSafe</a></li><li><a href="#impl-Sync-for-FullScanRequest%3CK%3E">!Sync</a></li><li><a href="#impl-UnwindSafe-for-FullScanRequest%3CK%3E">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-FullScanRequest%3CK%3E">Freeze</a></li><li><a href="#impl-Send-for-FullScanRequest%3CK%3E">Send</a></li><li><a href="#impl-Unpin-for-FullScanRequest%3CK%3E">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">FullScanRequest</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#224-234">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct FullScanRequest<K> {
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data required to perform a spk-based blockchain client full scan."><title>FullScanRequest in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">FullScanRequest</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_tip">chain_tip</a></li><li><a href="#structfield.spks_by_keychain">spks_by_keychain</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.chain_spks_for_keychain">chain_spks_for_keychain</a></li><li><a href="#method.from_chain_tip">from_chain_tip</a></li><li><a href="#method.from_keychain_txout_index">from_keychain_txout_index</a></li><li><a href="#method.inspect_spks_for_all_keychains">inspect_spks_for_all_keychains</a></li><li><a href="#method.inspect_spks_for_keychain">inspect_spks_for_keychain</a></li><li><a href="#method.set_spks_for_keychain">set_spks_for_keychain</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-FullScanRequest%3CK%3E">!RefUnwindSafe</a></li><li><a href="#impl-Sync-for-FullScanRequest%3CK%3E">!Sync</a></li><li><a href="#impl-UnwindSafe-for-FullScanRequest%3CK%3E">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-FullScanRequest%3CK%3E">Freeze</a></li><li><a href="#impl-Send-for-FullScanRequest%3CK%3E">Send</a></li><li><a href="#impl-Unpin-for-FullScanRequest%3CK%3E">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">FullScanRequest</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#191-199">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct FullScanRequest<K> {
pub chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
- pub tx_cache: <a class="type" href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache">TxCache</a>,
pub spks_by_keychain: <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><K, <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/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/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>>,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Data required to perform a spk-based blockchain client full scan.</p>
<p>A client full scan iterates through all the scripts for the given keychains, fetching relevant
used scripts is not known. The full scan process also updates the chain from the given <a href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint"><code>CheckPoint</code></a>.</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.chain_tip" class="structfield section-header"><a href="#structfield.chain_tip" class="anchor field">§</a><code>chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a></code></span><div class="docblock"><p>A checkpoint for the current <a href="../local_chain/struct.LocalChain.html#method.tip" title="method bdk_chain::local_chain::LocalChain::tip"><code>LocalChain::tip</code></a>.
The full scan process will return a new chain update that extends this tip.</p>
-</div><span id="structfield.tx_cache" class="structfield section-header"><a href="#structfield.tx_cache" class="anchor field">§</a><code>tx_cache: <a class="type" href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache">TxCache</a></code></span><div class="docblock"><p>Cache of full transactions, so the chain-source can avoid re-fetching.</p>
</div><span id="structfield.spks_by_keychain" class="structfield section-header"><a href="#structfield.spks_by_keychain" class="anchor field">§</a><code>spks_by_keychain: <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><K, <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/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/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>></code></span><div class="docblock"><p>Iterators of script pubkeys indexed by the keychain index.</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FullScanRequest%3CK%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#236-373">source</a><a href="#impl-FullScanRequest%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<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>> <a class="struct" href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_chain_tip" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#239-245">source</a><h4 class="code-header">pub fn <a href="#method.from_chain_tip" class="fn">from_chain_tip</a>(chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a> from a given <code>chain_tip</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_txs" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#251-260">source</a><h4 class="code-header">pub fn <a href="#method.cache_txs" class="fn">cache_txs</a><T>(self, full_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 = (Txid, T)>) -> Self<div class="where">where
- T: <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="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>>,</div></h4></section></summary><div class="docblock"><p>Add to the <a href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache"><code>TxCache</code></a> held by the request.</p>
-<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_graph_txs" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#266-268">source</a><h4 class="code-header">pub fn <a href="#method.cache_graph_txs" class="fn">cache_graph_txs</a><A>(self, graph: &<a class="struct" href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>) -> Self</h4></section></summary><div class="docblock"><p>Add all transactions from <a href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> into the <a href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache"><code>TxCache</code></a>.</p>
-<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_keychain_txout_index" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#279-291">source</a><h4 class="code-header">pub fn <a href="#method.from_keychain_txout_index" class="fn">from_keychain_txout_index</a>(
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FullScanRequest%3CK%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#201-314">source</a><a href="#impl-FullScanRequest%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<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>> <a class="struct" href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_chain_tip" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#204-209">source</a><h4 class="code-header">pub fn <a href="#method.from_chain_tip" class="fn">from_chain_tip</a>(chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a> from a given <code>chain_tip</code>.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_keychain_txout_index" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#220-232">source</a><h4 class="code-header">pub fn <a href="#method.from_keychain_txout_index" class="fn">from_keychain_txout_index</a>(
chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
index: &<a class="struct" href="../keychain/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::KeychainTxOutIndex">KeychainTxOutIndex</a><K>
) -> Self<div class="where">where
<p>Unbounded script pubkey iterators for each keychain (<code>K</code>) are extracted using
<a href="../keychain/struct.KeychainTxOutIndex.html#method.all_unbounded_spk_iters" title="method bdk_chain::keychain::KeychainTxOutIndex::all_unbounded_spk_iters"><code>KeychainTxOutIndex::all_unbounded_spk_iters</code></a> and is used to populate the
<a href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#297-305">source</a><h4 class="code-header">pub fn <a href="#method.set_spks_for_keychain" class="fn">set_spks_for_keychain</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#238-246">source</a><h4 class="code-header">pub fn <a href="#method.set_spks_for_keychain" class="fn">set_spks_for_keychain</a>(
self,
keychain: K,
spks: 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><IntoIter = 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/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static>
) -> Self</h4></section></summary><div class="docblock"><p>Set the [<code>Script</code>]s for a given <code>keychain</code>.</p>
<p>This consumes the <a href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#311-328">source</a><h4 class="code-header">pub fn <a href="#method.chain_spks_for_keychain" class="fn">chain_spks_for_keychain</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#252-269">source</a><h4 class="code-header">pub fn <a href="#method.chain_spks_for_keychain" class="fn">chain_spks_for_keychain</a>(
self,
keychain: K,
spks: 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><IntoIter = 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/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static>
) -> Self</h4></section></summary><div class="docblock"><p>Chain on additional [<code>Script</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks_for_all_keychains" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#335-350">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks_for_all_keychains" class="fn">inspect_spks_for_all_keychains</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks_for_all_keychains" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#276-291">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks_for_all_keychains" class="fn">inspect_spks_for_all_keychains</a>(
self,
inspect: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(K, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, &Script) + <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> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + 'static
) -> Self<div class="where">where
K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,</div></h4></section></summary><div class="docblock"><p>Add a closure that will be called for every [<code>Script</code>] previously added to any keychain in
this request.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#357-372">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks_for_keychain" class="fn">inspect_spks_for_keychain</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks_for_keychain" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#298-313">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks_for_keychain" class="fn">inspect_spks_for_keychain</a>(
self,
keychain: K,
inspect: impl <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.u32.html">u32</a>, &Script) + <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
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data returned from a spk-based blockchain client full scan."><title>FullScanResult in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">FullScanResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_update">chain_update</a></li><li><a href="#structfield.graph_update">graph_update</a></li><li><a href="#structfield.last_active_indices">last_active_indices</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-FullScanResult%3CK,+A%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-FullScanResult%3CK,+A%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-FullScanResult%3CK,+A%3E">Send</a></li><li><a href="#impl-Sync-for-FullScanResult%3CK,+A%3E">Sync</a></li><li><a href="#impl-Unpin-for-FullScanResult%3CK,+A%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-FullScanResult%3CK,+A%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">FullScanResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#378-385">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct FullScanResult<K, A = <a class="struct" href="../struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>> {
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data returned from a spk-based blockchain client full scan."><title>FullScanResult in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">FullScanResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_update">chain_update</a></li><li><a href="#structfield.graph_update">graph_update</a></li><li><a href="#structfield.last_active_indices">last_active_indices</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-FullScanResult%3CK,+A%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-FullScanResult%3CK,+A%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-FullScanResult%3CK,+A%3E">Send</a></li><li><a href="#impl-Sync-for-FullScanResult%3CK,+A%3E">Sync</a></li><li><a href="#impl-Unpin-for-FullScanResult%3CK,+A%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-FullScanResult%3CK,+A%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">FullScanResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#319-326">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct FullScanResult<K, A = <a class="struct" href="../struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>> {
pub graph_update: <a class="struct" href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>,
pub chain_update: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
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><K, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>>,
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data required to perform a spk-based blockchain client sync."><title>SyncRequest in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">SyncRequest</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_tip">chain_tip</a></li><li><a href="#structfield.outpoints">outpoints</a></li><li><a href="#structfield.spks">spks</a></li><li><a href="#structfield.tx_cache">tx_cache</a></li><li><a href="#structfield.txids">txids</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.cache_graph_txs">cache_graph_txs</a></li><li><a href="#method.cache_txs">cache_txs</a></li><li><a href="#method.chain_outpoints">chain_outpoints</a></li><li><a href="#method.chain_spks">chain_spks</a></li><li><a href="#method.chain_txids">chain_txids</a></li><li><a href="#method.from_chain_tip">from_chain_tip</a></li><li><a href="#method.inspect_outpoints">inspect_outpoints</a></li><li><a href="#method.inspect_spks">inspect_spks</a></li><li><a href="#method.inspect_txids">inspect_txids</a></li><li><a href="#method.populate_with_revealed_spks">populate_with_revealed_spks</a></li><li><a href="#method.set_outpoints">set_outpoints</a></li><li><a href="#method.set_spks">set_spks</a></li><li><a href="#method.set_txids">set_txids</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-SyncRequest">!RefUnwindSafe</a></li><li><a href="#impl-Sync-for-SyncRequest">!Sync</a></li><li><a href="#impl-UnwindSafe-for-SyncRequest">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-SyncRequest">Freeze</a></li><li><a href="#impl-Send-for-SyncRequest">Send</a></li><li><a href="#impl-Unpin-for-SyncRequest">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">SyncRequest</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#21-35">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct SyncRequest {
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data required to perform a spk-based blockchain client sync."><title>SyncRequest in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">SyncRequest</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_tip">chain_tip</a></li><li><a href="#structfield.outpoints">outpoints</a></li><li><a href="#structfield.spks">spks</a></li><li><a href="#structfield.txids">txids</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.chain_outpoints">chain_outpoints</a></li><li><a href="#method.chain_spks">chain_spks</a></li><li><a href="#method.chain_txids">chain_txids</a></li><li><a href="#method.from_chain_tip">from_chain_tip</a></li><li><a href="#method.inspect_outpoints">inspect_outpoints</a></li><li><a href="#method.inspect_spks">inspect_spks</a></li><li><a href="#method.inspect_txids">inspect_txids</a></li><li><a href="#method.populate_with_revealed_spks">populate_with_revealed_spks</a></li><li><a href="#method.set_outpoints">set_outpoints</a></li><li><a href="#method.set_spks">set_spks</a></li><li><a href="#method.set_txids">set_txids</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-SyncRequest">!RefUnwindSafe</a></li><li><a href="#impl-Sync-for-SyncRequest">!Sync</a></li><li><a href="#impl-UnwindSafe-for-SyncRequest">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-SyncRequest">Freeze</a></li><li><a href="#impl-Send-for-SyncRequest">Send</a></li><li><a href="#impl-Unpin-for-SyncRequest">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">SyncRequest</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#14-26">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct SyncRequest {
pub chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
- pub tx_cache: <a class="type" href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache">TxCache</a>,
pub spks: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = ScriptBuf> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,
pub txids: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = Txid> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,
pub outpoints: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = OutPoint> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,
outpoints. The sync process also updates the chain from the given <a href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint"><code>CheckPoint</code></a>.</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.chain_tip" class="structfield section-header"><a href="#structfield.chain_tip" class="anchor field">§</a><code>chain_tip: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a></code></span><div class="docblock"><p>A checkpoint for the current chain <a href="../local_chain/struct.LocalChain.html#method.tip" title="method bdk_chain::local_chain::LocalChain::tip"><code>LocalChain::tip</code></a>.
The sync process will return a new chain update that extends this tip.</p>
-</div><span id="structfield.tx_cache" class="structfield section-header"><a href="#structfield.tx_cache" class="anchor field">§</a><code>tx_cache: <a class="type" href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache">TxCache</a></code></span><div class="docblock"><p>Cache of full transactions, so the chain-source can avoid re-fetching.</p>
</div><span id="structfield.spks" class="structfield section-header"><a href="#structfield.spks" class="anchor field">§</a><code>spks: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = ScriptBuf> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>></code></span><div class="docblock"><p>Transactions that spend from or to these indexed script pubkeys.</p>
</div><span id="structfield.txids" class="structfield section-header"><a href="#structfield.txids" class="anchor field">§</a><code>txids: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = Txid> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>></code></span><div class="docblock"><p>Transactions with these txids.</p>
</div><span id="structfield.outpoints" class="structfield section-header"><a href="#structfield.outpoints" class="anchor field">§</a><code>outpoints: <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/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = OutPoint> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>></code></span><div class="docblock"><p>Transactions with these outpoints or spent from these outpoints.</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SyncRequest" class="impl"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#37-206">source</a><a href="#impl-SyncRequest" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_chain_tip" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#39-47">source</a><h4 class="code-header">pub fn <a href="#method.from_chain_tip" class="fn">from_chain_tip</a>(cp: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> from a given <code>cp</code> tip.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_txs" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#53-62">source</a><h4 class="code-header">pub fn <a href="#method.cache_txs" class="fn">cache_txs</a><T>(self, full_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 = (Txid, T)>) -> Self<div class="where">where
- T: <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="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>>,</div></h4></section></summary><div class="docblock"><p>Add to the <a href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache"><code>TxCache</code></a> held by the request.</p>
-<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_graph_txs" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#68-70">source</a><h4 class="code-header">pub fn <a href="#method.cache_graph_txs" class="fn">cache_graph_txs</a><A>(self, graph: &<a class="struct" href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>) -> Self</h4></section></summary><div class="docblock"><p>Add all transactions from <a href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> into the <a href="type.TxCache.html" title="type bdk_chain::spk_client::TxCache"><code>TxCache</code></a>.</p>
-<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#76-82">source</a><h4 class="code-header">pub fn <a href="#method.set_spks" class="fn">set_spks</a>(
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SyncRequest" class="impl"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#28-173">source</a><a href="#impl-SyncRequest" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_chain_tip" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#30-37">source</a><h4 class="code-header">pub fn <a href="#method.from_chain_tip" class="fn">from_chain_tip</a>(cp: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> from a given <code>cp</code> tip.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#43-49">source</a><h4 class="code-header">pub fn <a href="#method.set_spks" class="fn">set_spks</a>(
self,
spks: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = ScriptBuf> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static>
) -> Self</h4></section></summary><div class="docblock"><p>Set the [<code>Script</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#88-94">source</a><h4 class="code-header">pub fn <a href="#method.set_txids" class="fn">set_txids</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#55-61">source</a><h4 class="code-header">pub fn <a href="#method.set_txids" class="fn">set_txids</a>(
self,
txids: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = Txid> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static>
) -> Self</h4></section></summary><div class="docblock"><p>Set the [<code>Txid</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#100-108">source</a><h4 class="code-header">pub fn <a href="#method.set_outpoints" class="fn">set_outpoints</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#67-75">source</a><h4 class="code-header">pub fn <a href="#method.set_outpoints" class="fn">set_outpoints</a>(
self,
outpoints: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = OutPoint> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static>
) -> Self</h4></section></summary><div class="docblock"><p>Set the [<code>OutPoint</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#114-123">source</a><h4 class="code-header">pub fn <a href="#method.chain_spks" class="fn">chain_spks</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#81-90">source</a><h4 class="code-header">pub fn <a href="#method.chain_spks" class="fn">chain_spks</a>(
self,
spks: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = ScriptBuf> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static, Item = ScriptBuf>
) -> Self</h4></section></summary><div class="docblock"><p>Chain on additional [<code>Script</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#129-138">source</a><h4 class="code-header">pub fn <a href="#method.chain_txids" class="fn">chain_txids</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#96-105">source</a><h4 class="code-header">pub fn <a href="#method.chain_txids" class="fn">chain_txids</a>(
self,
txids: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = Txid> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static, Item = Txid>
) -> Self</h4></section></summary><div class="docblock"><p>Chain on additional [<code>Txid</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#144-153">source</a><h4 class="code-header">pub fn <a href="#method.chain_outpoints" class="fn">chain_outpoints</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.chain_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#111-120">source</a><h4 class="code-header">pub fn <a href="#method.chain_outpoints" class="fn">chain_outpoints</a>(
self,
outpoints: 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><IntoIter = impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a><Item = OutPoint> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static, Item = OutPoint>
) -> Self</h4></section></summary><div class="docblock"><p>Chain on additional [<code>OutPoint</code>]s that will be synced against.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#159-165">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks" class="fn">inspect_spks</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#126-132">source</a><h4 class="code-header">pub fn <a href="#method.inspect_spks" class="fn">inspect_spks</a>(
self,
inspect: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&Script) + <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>Add a closure that will be called for [<code>Script</code>]s previously added to this request.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#171-174">source</a><h4 class="code-header">pub fn <a href="#method.inspect_txids" class="fn">inspect_txids</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_txids" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#138-141">source</a><h4 class="code-header">pub fn <a href="#method.inspect_txids" class="fn">inspect_txids</a>(
self,
inspect: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&Txid) + <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>Add a closure that will be called for [<code>Txid</code>]s previously added to this request.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#180-186">source</a><h4 class="code-header">pub fn <a href="#method.inspect_outpoints" class="fn">inspect_outpoints</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.inspect_outpoints" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#147-153">source</a><h4 class="code-header">pub fn <a href="#method.inspect_outpoints" class="fn">inspect_outpoints</a>(
self,
inspect: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&OutPoint) + <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>Add a closure that will be called for [<code>OutPoint</code>]s previously added to this request.</p>
<p>This consumes the <a href="struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> and returns the updated one.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.populate_with_revealed_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#193-205">source</a><h4 class="code-header">pub fn <a href="#method.populate_with_revealed_spks" class="fn">populate_with_revealed_spks</a><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/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</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/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>>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.populate_with_revealed_spks" class="method"><a class="src rightside" href="../../src/bdk_chain/spk_client.rs.html#160-172">source</a><h4 class="code-header">pub fn <a href="#method.populate_with_revealed_spks" class="fn">populate_with_revealed_spks</a><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/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</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/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>>(
self,
index: &<a class="struct" href="../keychain/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::KeychainTxOutIndex">KeychainTxOutIndex</a><K>,
spk_range: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/range/trait.RangeBounds.html" title="trait core::ops::range::RangeBounds">RangeBounds</a><K>
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data returned from a spk-based blockchain client sync."><title>SyncResult in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">SyncResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_update">chain_update</a></li><li><a href="#structfield.graph_update">graph_update</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-SyncResult%3CA%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-SyncResult%3CA%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SyncResult%3CA%3E">Send</a></li><li><a href="#impl-Sync-for-SyncResult%3CA%3E">Sync</a></li><li><a href="#impl-Unpin-for-SyncResult%3CA%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SyncResult%3CA%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">SyncResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#211-216">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct SyncResult<A = <a class="struct" href="../struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>> {
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Data returned from a spk-based blockchain client sync."><title>SyncResult in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">SyncResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.chain_update">chain_update</a></li><li><a href="#structfield.graph_update">graph_update</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-SyncResult%3CA%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-SyncResult%3CA%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SyncResult%3CA%3E">Send</a></li><li><a href="#impl-Sync-for-SyncResult%3CA%3E">Sync</a></li><li><a href="#impl-Unpin-for-SyncResult%3CA%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SyncResult%3CA%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="struct" href="#">SyncResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#178-183">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct SyncResult<A = <a class="struct" href="../struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>> {
pub graph_update: <a class="struct" href="../tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>,
pub chain_update: <a class="struct" href="../local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Data returned from a spk-based blockchain client sync.</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="A cache of `Arc`-wrapped full transactions, identified by their `Txid`s."><title>TxCache in bdk_chain::spk_client - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">TxCache</a></h2><div class="sidebar-elems"><section><h3><a href="#aliased-type">Aliased type</a></h3></section><h2><a href="index.html">In bdk_chain::spk_client</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Type Alias <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">spk_client</a>::<wbr><a class="type" href="#">TxCache</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/spk_client.rs.html#15">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub type TxCache = <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a><Txid, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A cache of <a href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc"><code>Arc</code></a>-wrapped full transactions, identified by their [<code>Txid</code>]s.</p>
-<p>This is used by the chain-source to avoid re-fetching full transactions.</p>
-</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct TxCache { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/std/collections/hash/map/struct.HashMap.js" data-self-path="bdk_chain::spk_client::TxCache" async></script></section></div></main></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 graph of transactions and spends."><title>TxGraph in bdk_chain::tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">TxGraph</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.all_anchors">all_anchors</a></li><li><a href="#method.all_txouts">all_txouts</a></li><li><a href="#method.apply_changeset">apply_changeset</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.balance">balance</a></li><li><a href="#method.batch_insert_unconfirmed">batch_insert_unconfirmed</a></li><li><a href="#method.calculate_fee">calculate_fee</a></li><li><a href="#method.direct_conflicts">direct_conflicts</a></li><li><a href="#method.filter_chain_txouts">filter_chain_txouts</a></li><li><a href="#method.filter_chain_unspents">filter_chain_unspents</a></li><li><a href="#method.floating_txouts">floating_txouts</a></li><li><a href="#method.full_txs">full_txs</a></li><li><a href="#method.get_chain_position">get_chain_position</a></li><li><a href="#method.get_chain_spend">get_chain_spend</a></li><li><a href="#method.get_tx">get_tx</a></li><li><a href="#method.get_tx_node">get_tx_node</a></li><li><a href="#method.get_txout">get_txout</a></li><li><a href="#method.initial_changeset">initial_changeset</a></li><li><a href="#method.insert_anchor">insert_anchor</a></li><li><a href="#method.insert_seen_at">insert_seen_at</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_empty">is_empty</a></li><li><a href="#method.list_chain_txs">list_chain_txs</a></li><li><a href="#method.map_anchors">map_anchors</a></li><li><a href="#method.new">new</a></li><li><a href="#method.outspends">outspends</a></li><li><a href="#method.try_balance">try_balance</a></li><li><a href="#method.try_filter_chain_txouts">try_filter_chain_txouts</a></li><li><a href="#method.try_filter_chain_unspents">try_filter_chain_unspents</a></li><li><a href="#method.try_get_chain_position">try_get_chain_position</a></li><li><a href="#method.try_get_chain_spend">try_get_chain_spend</a></li><li><a href="#method.try_list_chain_txs">try_list_chain_txs</a></li><li><a href="#method.tx_outputs">tx_outputs</a></li><li><a href="#method.tx_spends">tx_spends</a></li><li><a href="#method.update_last_seen_unconfirmed">update_last_seen_unconfirmed</a></li><li><a href="#method.walk_ancestors">walk_ancestors</a></li><li><a href="#method.walk_conflicts">walk_conflicts</a></li><li><a href="#method.walk_descendants">walk_descendants</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E">AsRef<TxGraph<A>></a></li><li><a href="#impl-Clone-for-TxGraph%3CA%3E">Clone</a></li><li><a href="#impl-Debug-for-TxGraph%3CA%3E">Debug</a></li><li><a href="#impl-Default-for-TxGraph%3CA%3E">Default</a></li><li><a href="#impl-PartialEq-for-TxGraph%3CA%3E">PartialEq</a></li><li><a href="#impl-StructuralPartialEq-for-TxGraph%3CA%3E">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-TxGraph%3CA%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-TxGraph%3CA%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxGraph%3CA%3E">Send</a></li><li><a href="#impl-Sync-for-TxGraph%3CA%3E">Sync</a></li><li><a href="#impl-Unpin-for-TxGraph%3CA%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxGraph%3CA%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-ToOwned-for-T">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::tx_graph</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">tx_graph</a>::<wbr><a class="struct" href="#">TxGraph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/tx_graph.rs.html#111-120">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct TxGraph<A = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>> { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A graph of transactions and spends.</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="A graph of transactions and spends."><title>TxGraph in bdk_chain::tx_graph - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bdk_chain/index.html">bdk_chain</a><span class="version">0.15.0</span></h2></div><h2 class="location"><a href="#">TxGraph</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.all_anchors">all_anchors</a></li><li><a href="#method.all_txouts">all_txouts</a></li><li><a href="#method.apply_changeset">apply_changeset</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.balance">balance</a></li><li><a href="#method.batch_insert_unconfirmed">batch_insert_unconfirmed</a></li><li><a href="#method.calculate_fee">calculate_fee</a></li><li><a href="#method.direct_conflicts">direct_conflicts</a></li><li><a href="#method.filter_chain_txouts">filter_chain_txouts</a></li><li><a href="#method.filter_chain_unspents">filter_chain_unspents</a></li><li><a href="#method.floating_txouts">floating_txouts</a></li><li><a href="#method.full_txs">full_txs</a></li><li><a href="#method.get_chain_position">get_chain_position</a></li><li><a href="#method.get_chain_spend">get_chain_spend</a></li><li><a href="#method.get_tx">get_tx</a></li><li><a href="#method.get_tx_node">get_tx_node</a></li><li><a href="#method.get_txout">get_txout</a></li><li><a href="#method.initial_changeset">initial_changeset</a></li><li><a href="#method.insert_anchor">insert_anchor</a></li><li><a href="#method.insert_seen_at">insert_seen_at</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_empty">is_empty</a></li><li><a href="#method.list_chain_txs">list_chain_txs</a></li><li><a href="#method.map_anchors">map_anchors</a></li><li><a href="#method.new">new</a></li><li><a href="#method.outspends">outspends</a></li><li><a href="#method.try_balance">try_balance</a></li><li><a href="#method.try_filter_chain_txouts">try_filter_chain_txouts</a></li><li><a href="#method.try_filter_chain_unspents">try_filter_chain_unspents</a></li><li><a href="#method.try_get_chain_position">try_get_chain_position</a></li><li><a href="#method.try_get_chain_spend">try_get_chain_spend</a></li><li><a href="#method.try_list_chain_txs">try_list_chain_txs</a></li><li><a href="#method.tx_outputs">tx_outputs</a></li><li><a href="#method.tx_spends">tx_spends</a></li><li><a href="#method.update_last_seen_unconfirmed">update_last_seen_unconfirmed</a></li><li><a href="#method.walk_ancestors">walk_ancestors</a></li><li><a href="#method.walk_conflicts">walk_conflicts</a></li><li><a href="#method.walk_descendants">walk_descendants</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E">AsRef<TxGraph<A>></a></li><li><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E">AsRef<TxGraph<A>></a></li><li><a href="#impl-Clone-for-TxGraph%3CA%3E">Clone</a></li><li><a href="#impl-Debug-for-TxGraph%3CA%3E">Debug</a></li><li><a href="#impl-Default-for-TxGraph%3CA%3E">Default</a></li><li><a href="#impl-PartialEq-for-TxGraph%3CA%3E">PartialEq</a></li><li><a href="#impl-StructuralPartialEq-for-TxGraph%3CA%3E">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-TxGraph%3CA%3E">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-TxGraph%3CA%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxGraph%3CA%3E">Send</a></li><li><a href="#impl-Sync-for-TxGraph%3CA%3E">Sync</a></li><li><a href="#impl-Unpin-for-TxGraph%3CA%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxGraph%3CA%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-ToOwned-for-T">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_chain::tx_graph</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">bdk_chain</a>::<wbr><a href="index.html">tx_graph</a>::<wbr><a class="struct" href="#">TxGraph</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_chain/tx_graph.rs.html#111-120">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct TxGraph<A = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>> { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A graph of transactions and spends.</p>
<p>See the <a href="index.html" title="mod bdk_chain::tx_graph">module-level documentation</a> for more.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#208-378">source</a><a href="#impl-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">impl<A> <a class="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.all_txouts" class="method"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#212-226">source</a><h4 class="code-header">pub fn <a href="#method.all_txouts" class="fn">all_txouts</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 = (OutPoint, &TxOut)></h4></section></summary><div class="docblock"><p>Iterate over all tx outputs known by <a href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a>.</p>
<p>This includes txouts of both full transactions as well as floating transactions.</p>
trust_predicate: impl <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">&OI</a>, &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
) -> <a class="struct" href="../keychain/struct.Balance.html" title="struct bdk_chain::keychain::Balance">Balance</a></h4></section></summary><div class="docblock"><p>Get the total balance of <code>outpoints</code> that are in <code>chain</code> of <code>chain_tip</code>.</p>
<p>This is the infallible version of <a href="struct.TxGraph.html#method.try_balance" title="method bdk_chain::tx_graph::TxGraph::try_balance"><code>try_balance</code></a>.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#1329-1333">source</a><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>> for <a class="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#1330-1332">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-Clone-for-TxGraph%3CA%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>> <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.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</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="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#169">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">&Self</a>)</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="toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-Debug-for-TxGraph%3CA%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>> <a 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.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="toggle implementors-toggle" open><summary><section id="impl-Default-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#122-131">source</a><a href="#impl-Default-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#123-130">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="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-PartialEq-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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> for <a class="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#356-360">source</a><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E" class="anchor">§</a><h3 class="code-header">impl<A, I> <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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>> for <a class="struct" href="../indexed_tx_graph/struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, I></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref-1" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/indexed_tx_graph.rs.html#357-359">source</a><a href="#method.as_ref-1" 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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#1329-1333">source</a><a href="#impl-AsRef%3CTxGraph%3CA%3E%3E-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A>> for <a class="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#1330-1332">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-Clone-for-TxGraph%3CA%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>> <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.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</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="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#169">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">&Self</a>)</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="toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-Debug-for-TxGraph%3CA%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>> <a 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.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="toggle implementors-toggle" open><summary><section id="impl-Default-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#122-131">source</a><a href="#impl-Default-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#123-130">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="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-PartialEq-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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> for <a class="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><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>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">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">&Rhs</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>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-StructuralPartialEq-for-TxGraph%3CA%3E" class="impl"><a class="src rightside" href="../../src/bdk_chain/tx_graph.rs.html#110">source</a><a href="#impl-StructuralPartialEq-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-TxGraph%3CA%3E" class="impl"><a href="#impl-Freeze-for-TxGraph%3CA%3E" class="anchor">§</a><h3 class="code-header">impl<A> <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="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A></h3></section><section id="impl-RefUnwindSafe-for-TxGraph%3CA%3E" class="impl"><a href="#impl-RefUnwindSafe-for-TxGraph%3CA%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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A><div class="where">where
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>,</div></h3></section><section id="impl-Send-for-TxGraph%3CA%3E" class="impl"><a href="#impl-Send-for-TxGraph%3CA%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="struct" href="struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><A><div class="where">where
-<!DOCTYPE html><html lang="en"><head><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"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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 sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><h1>List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.ElectrumFullScanResult.html">ElectrumFullScanResult</a></li><li><a href="struct.ElectrumSyncResult.html">ElectrumSyncResult</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="trait.ElectrumExt.html">ElectrumExt</a></li></ul></section></div></main></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="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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 sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><h1>List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.BdkElectrumClient.html">BdkElectrumClient</a></li><li><a href="struct.ElectrumFullScanResult.html">ElectrumFullScanResult</a></li><li><a href="struct.ElectrumSyncResult.html">ElectrumSyncResult</a></li></ul></section></div></main></body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../bdk_electrum/struct.BdkElectrumClient.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_electrum/struct.BdkElectrumClient.html">../../bdk_electrum/struct.BdkElectrumClient.html</a>...</p>
+ <script>location.replace("../../bdk_electrum/struct.BdkElectrumClient.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_electrum/struct.ElectrumFullScanResult.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_electrum/struct.ElectrumFullScanResult.html">../../bdk_electrum/struct.ElectrumFullScanResult.html</a>...</p>
+ <script>location.replace("../../bdk_electrum/struct.ElectrumFullScanResult.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_electrum/struct.ElectrumSyncResult.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_electrum/struct.ElectrumSyncResult.html">../../bdk_electrum/struct.ElectrumSyncResult.html</a>...</p>
+ <script>location.replace("../../bdk_electrum/struct.ElectrumSyncResult.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_electrum/struct.ElectrumFullScanResult.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk_electrum/struct.ElectrumFullScanResult.html">../../bdk_electrum/struct.ElectrumFullScanResult.html</a>...</p>
- <script>location.replace("../../bdk_electrum/struct.ElectrumFullScanResult.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_electrum/struct.ElectrumSyncResult.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk_electrum/struct.ElectrumSyncResult.html">../../bdk_electrum/struct.ElectrumSyncResult.html</a>...</p>
- <script>location.replace("../../bdk_electrum/struct.ElectrumSyncResult.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_electrum/trait.ElectrumExt.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk_electrum/trait.ElectrumExt.html">../../bdk_electrum/trait.ElectrumExt.html</a>...</p>
- <script>location.replace("../../bdk_electrum/trait.ElectrumExt.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="This crate is used for updating structures of `bdk_chain` with data from an Electrum server."><title>bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">bdk_electrum</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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="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="mod bdk_chain"><code>bdk_chain</code></a> with data from an Electrum server.</p>
-<p>The two primary methods are <a href="trait.ElectrumExt.html#tymethod.sync" title="method bdk_electrum::ElectrumExt::sync"><code>ElectrumExt::sync</code></a> and <a href="trait.ElectrumExt.html#tymethod.full_scan" title="method bdk_electrum::ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>. In most cases
-<a href="trait.ElectrumExt.html#tymethod.sync" title="method bdk_electrum::ElectrumExt::sync"><code>ElectrumExt::sync</code></a> is used to sync the transaction histories of scripts that the application
+<!DOCTYPE html><html lang="en"><head><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."><title>bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">bdk_electrum</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/bdk_electrum/lib.rs.html#1-22">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="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="mod bdk_chain"><code>bdk_chain</code></a> with data from an Electrum server.</p>
+<p>The two primary methods are <a href="struct.BdkElectrumClient.html#method.sync" title="method bdk_electrum::BdkElectrumClient::sync"><code>BdkElectrumClient::sync</code></a> and <a href="struct.BdkElectrumClient.html#method.full_scan" title="method bdk_electrum::BdkElectrumClient::full_scan"><code>BdkElectrumClient::full_scan</code></a>. In most cases
+<a href="struct.BdkElectrumClient.html#method.sync" title="method bdk_electrum::BdkElectrumClient::sync"><code>BdkElectrumClient::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
-has shown a user. <a href="trait.ElectrumExt.html#tymethod.full_scan" title="method bdk_electrum::ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a> is meant to be used when importing or restoring a
+has shown a user. <a href="struct.BdkElectrumClient.html#method.full_scan" title="method bdk_electrum::BdkElectrumClient::full_scan"><code>BdkElectrumClient::full_scan</code></a> is meant to be used when importing or restoring a
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="mod bdk_chain"><code>bdk_chain</code></a>.</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="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.bdk_chain"><code>pub use <a class="mod" href="../bdk_chain/index.html" title="mod bdk_chain">bdk_chain</a>;</code></div></li><li><div class="item-name" id="reexport.electrum_client"><code>pub use electrum_client;</code></div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a></div><div class="desc docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.full_scan" title="method bdk_electrum::ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></div><div class="desc docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.sync" title="method bdk_electrum::ElectrumExt::sync"><code>ElectrumExt::sync</code></a>.</div></li></ul><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.ElectrumExt.html" title="trait bdk_electrum::ElectrumExt">ElectrumExt</a></div><div class="desc docblock-short">Trait to extend [<code>electrum_client::Client</code>] functionality.</div></li></ul></section></div></main></body></html>
\ No newline at end of file
+</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.bdk_chain"><code>pub use <a class="mod" href="../bdk_chain/index.html" title="mod bdk_chain">bdk_chain</a>;</code></div></li><li><div class="item-name" id="reexport.electrum_client"><code>pub use electrum_client;</code></div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a></div><div class="desc docblock-short">Wrapper around an [<code>electrum_client::ElectrumApi</code>] which includes an internal in-memory
+transaction cache to avoid re-fetching already downloaded transactions.</div></li><li><div class="item-name"><a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a></div><div class="desc docblock-short">The result of <a href="struct.BdkElectrumClient.html#method.full_scan" title="method bdk_electrum::BdkElectrumClient::full_scan"><code>BdkElectrumClient::full_scan</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></div><div class="desc docblock-short">The result of <a href="struct.BdkElectrumClient.html#method.sync" title="method bdk_electrum::BdkElectrumClient::sync"><code>BdkElectrumClient::sync</code></a>.</div></li></ul></section></div></main></body></html>
\ No newline at end of file
-window.SIDEBAR_ITEMS = {"struct":["ElectrumFullScanResult","ElectrumSyncResult"],"trait":["ElectrumExt"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"struct":["BdkElectrumClient","ElectrumFullScanResult","ElectrumSyncResult"]};
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html><html lang="en"><head><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 around an `electrum_client::ElectrumApi` which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions."><title>BdkElectrumClient in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><h2 class="location"><a href="#">BdkElectrumClient</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.inner">inner</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.fetch_tx">fetch_tx</a></li><li><a href="#method.full_scan">full_scan</a></li><li><a href="#method.new">new</a></li><li><a href="#method.populate_tx_cache">populate_tx_cache</a></li><li><a href="#method.sync">sync</a></li><li><a href="#method.transaction_broadcast">transaction_broadcast</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-BdkElectrumClient%3CE%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-BdkElectrumClient%3CE%3E">!Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-BdkElectrumClient%3CE%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BdkElectrumClient%3CE%3E">Send</a></li><li><a href="#impl-Sync-for-BdkElectrumClient%3CE%3E">Sync</a></li><li><a href="#impl-Unpin-for-BdkElectrumClient%3CE%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BdkElectrumClient%3CE%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">BdkElectrumClient</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/bdk_electrum/bdk_electrum_client.rs.html#19-24">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct BdkElectrumClient<E> {
+ pub inner: E,
+ <span class="comment">/* private fields */</span>
+}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wrapper around an [<code>electrum_client::ElectrumApi</code>] which includes an internal in-memory
+transaction cache to avoid re-fetching already downloaded transactions.</p>
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.inner" class="structfield section-header"><a href="#structfield.inner" class="anchor field">§</a><code>inner: E</code></span><div class="docblock"><p>The internal [<code>electrum_client::ElectrumApi</code>]</p>
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BdkElectrumClient%3CE%3E" class="impl"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#26-391">source</a><a href="#impl-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E: ElectrumApi> <a class="struct" href="struct.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#28-33">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(client: E) -> Self</h4></section></summary><div class="docblock"><p>Creates a new bdk client from a [<code>electrum_client::ElectrumApi</code>]</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.populate_tx_cache" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#37-47">source</a><h4 class="code-header">pub fn <a href="#method.populate_tx_cache" class="fn">populate_tx_cache</a><A>(&self, tx_graph: 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>>)</h4></section></summary><div class="docblock"><p>Inserts transactions into the transaction cache so that the client will not fetch these
+transactions.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.fetch_tx" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#52-66">source</a><h4 class="code-header">pub fn <a href="#method.fetch_tx" class="fn">fetch_tx</a>(&self, txid: Txid) -> <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/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>, Error></h4></section></summary><div class="docblock"><p>Fetch transaction of given <code>txid</code>.</p>
+<p>If it hits the cache it will return the cached version and avoid making the request.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.transaction_broadcast" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#71-73">source</a><h4 class="code-header">pub fn <a href="#method.transaction_broadcast" class="fn">transaction_broadcast</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><Txid, Error></h4></section></summary><div class="docblock"><p>Broadcasts a transaction to the network.</p>
+<p>This is a re-export of [<code>ElectrumApi::transaction_broadcast</code>].</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.full_scan" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#85-172">source</a><h4 class="code-header">pub fn <a href="#method.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>>(
+ &self,
+ request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,
+ stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.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="mod bdk_chain"><code>bdk_chain</code></a> 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="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a></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
+request</li>
+<li><code>fetch_prev_txouts</code>: specifies whether or not we want previous <code>TxOut</code>s for fee</li>
+</ul>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.sync" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#188-219">source</a><h4 class="code-header">pub fn <a href="#method.sync" class="fn">sync</a>(
+ &self,
+ request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,
+ batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.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="mod bdk_chain"><code>bdk_chain</code></a> 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="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a></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
+calculation</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="struct.BdkElectrumClient.html#method.full_scan" title="method bdk_electrum::BdkElectrumClient::full_scan"><code>full_scan</code></a> with the keychain.</p>
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-BdkElectrumClient%3CE%3E" class="impl"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#18">source</a><a href="#impl-Debug-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E: <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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#18">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="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-Freeze-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> !<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="struct.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E></h3></section><section id="impl-RefUnwindSafe-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-RefUnwindSafe-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E><div class="where">where
+ E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-Send-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> <a 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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E><div class="where">where
+ E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-Sync-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> <a 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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E><div class="where">where
+ E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Unpin-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-Unpin-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> <a 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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E><div class="where">where
+ E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-BdkElectrumClient%3CE%3E" class="impl"><a href="#impl-UnwindSafe-for-BdkElectrumClient%3CE%3E" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://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.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><E><div class="where">where
+ E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#140">source</a><a href="#impl-Any-for-T" 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<div class="where">where
+ T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">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="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208">source</a><a href="#impl-Borrow%3CT%3E-for-T" 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<div class="where">where
+ T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><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">&T</a></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="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" 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<div class="where">where
+ T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><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 T</a></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="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" 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="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#768">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>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750">source</a><a href="#impl-Into%3CU%3E-for-T" 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<div class="where">where
+ U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758">source</a><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="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#805-807">source</a><a href="#impl-TryFrom%3CU%3E-for-T" 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<div class="where">where
+ U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" 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="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#812">source</a><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="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#790-792">source</a><a href="#impl-TryInto%3CU%3E-for-T" 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<div class="where">where
+ U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a href="#associatedtype.Error" 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="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#797">source</a><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="toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-T" class="impl"><a href="#impl-VZip%3CV%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<div class="where">where
+ V: MultiLane<T>,</div></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl"><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></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`."><title>ElectrumFullScanResult in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><h2 class="location"><a href="#">ElectrumFullScanResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><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 synthetic-implementation"><li><a href="#impl-Freeze-for-ElectrumFullScanResult%3CK%3E">Freeze</a></li><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 blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumFullScanResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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><pre class="rust item-decl"><code>pub struct ElectrumFullScanResult<K>(<span class="comment">/* private fields */</span>);</code></pre><details class="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="method bdk_electrum::ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>.</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 `BdkElectrumClient::full_scan`."><title>ElectrumFullScanResult in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><h2 class="location"><a href="#">ElectrumFullScanResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><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 synthetic-implementation"><li><a href="#impl-Freeze-for-ElectrumFullScanResult%3CK%3E">Freeze</a></li><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 blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumFullScanResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/bdk_electrum/bdk_electrum_client.rs.html#397">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct ElectrumFullScanResult<K>(<span class="comment">/* private fields */</span>);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The result of <a href="struct.BdkElectrumClient.html#method.full_scan" title="method bdk_electrum::BdkElectrumClient::full_scan"><code>BdkElectrumClient::full_scan</code></a>.</p>
<p>This can be transformed into a <a href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult"><code>FullScanResult</code></a> with either <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a> or
<a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a> anchor types.</p>
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ElectrumFullScanResult%3CK%3E" class="impl"><a class="src 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="toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method"><a class="src 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>(
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ElectrumFullScanResult%3CK%3E" class="impl"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#399-419">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="toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#401-403">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(
self
) -> <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="struct bdk_chain::spk_client::FullScanResult"><code>FullScanResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method"><a class="src 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>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#408-418">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(
self,
- client: &impl ElectrumApi
+ client: &<a class="struct" href="struct.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><impl ElectrumApi>
) -> <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="struct bdk_chain::spk_client::FullScanResult"><code>FullScanResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a>.</p>
<p>This requires additional calls to the Electrum server.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ElectrumFullScanResult%3CK%3E" class="impl"><a href="#impl-Freeze-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.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K></h3></section><section id="impl-RefUnwindSafe-for-ElectrumFullScanResult%3CK%3E" class="impl"><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><div class="where">where
-<!DOCTYPE html><html lang="en"><head><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`."><title>ElectrumSyncResult in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><h2 class="location"><a href="#">ElectrumSyncResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><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 synthetic-implementation"><li><a href="#impl-Freeze-for-ElectrumSyncResult">Freeze</a></li><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 blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumSyncResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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><pre class="rust item-decl"><code>pub struct ElectrumSyncResult(<span class="comment">/* private fields */</span>);</code></pre><details class="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="method bdk_electrum::ElectrumExt::sync"><code>ElectrumExt::sync</code></a>.</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 `BdkElectrumClient::sync`."><title>ElectrumSyncResult in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><h2 class="location"><a href="#">ElectrumSyncResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><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 synthetic-implementation"><li><a href="#impl-Freeze-for-ElectrumSyncResult">Freeze</a></li><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 blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T">VZip<V></a></li></ul></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumSyncResult</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/bdk_electrum/bdk_electrum_client.rs.html#425">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub struct ElectrumSyncResult(<span class="comment">/* private fields */</span>);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The result of <a href="struct.BdkElectrumClient.html#method.sync" title="method bdk_electrum::BdkElectrumClient::sync"><code>BdkElectrumClient::sync</code></a>.</p>
<p>This can be transformed into a <a href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult"><code>SyncResult</code></a> with either <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a> or
<a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a> anchor types.</p>
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ElectrumSyncResult" class="impl"><a class="src 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="toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method"><a class="src 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>(
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ElectrumSyncResult" class="impl"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#427-446">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="toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#429-431">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(
self
) -> <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="struct bdk_chain::spk_client::SyncResult"><code>SyncResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method"><a class="src 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>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method"><a class="src rightside" href="../src/bdk_electrum/bdk_electrum_client.rs.html#436-445">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(
self,
- client: &impl ElectrumApi
+ client: &<a class="struct" href="struct.BdkElectrumClient.html" title="struct bdk_electrum::BdkElectrumClient">BdkElectrumClient</a><impl ElectrumApi>
) -> <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="struct bdk_chain::spk_client::SyncResult"><code>SyncResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a>.</p>
<p>This requires additional calls to the Electrum server.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ElectrumSyncResult" class="impl"><a href="#impl-Freeze-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">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="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section><section id="impl-RefUnwindSafe-for-ElectrumSyncResult" class="impl"><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"><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"><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"><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"><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="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#140">source</a><a href="#impl-Any-for-T" 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<div class="where">where
+++ /dev/null
-<!DOCTYPE html><html lang="en"><head><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."><title>ElectrumExt in bdk_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bdk_electrum/index.html">bdk_electrum</a><span class="version">0.14.0</span></h2></div><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="#object-safety">Object Safety</a></h3><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In crate bdk_electrum</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="index.html">bdk_electrum</a>::<wbr><a class="trait" href="#">ElectrumExt</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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><pre class="rust item-decl"><code>pub trait ElectrumExt {
- // Required methods
- 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>>(
- &self,
- request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,
- stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.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>(
- &self,
- request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,
- batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a>, Error>;
-}</code></pre><details class="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="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.full_scan" class="method"><a class="src 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>>(
- &self,
- request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,
- stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.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="mod bdk_chain"><code>bdk_chain</code></a> 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="struct bdk_chain::spk_client::FullScanRequest"><code>FullScanRequest</code></a></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
-request</li>
-<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="toggle method-toggle" open><summary><section id="tymethod.sync" class="method"><a class="src 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>(
- &self,
- request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,
- batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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.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="mod bdk_chain"><code>bdk_chain</code></a> 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="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a></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
-calculation</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.ElectrumExt.html#tymethod.full_scan" title="method bdk_electrum::ElectrumExt::full_scan"><code>full_scan</code></a> with the keychain.</p>
-</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ElectrumExt-for-E" class="impl"><a class="src rightside" href="../src/bdk_electrum/electrum_ext.rs.html#59-198">source</a><a href="#impl-ElectrumExt-for-E" class="anchor">§</a><h3 class="code-header">impl<E: ElectrumApi> <a class="trait" href="trait.ElectrumExt.html" title="trait bdk_electrum::ElectrumExt">ElectrumExt</a> for E</h3></section></div><script src="../trait.impl/bdk_electrum/electrum_ext/trait.ElectrumExt.js" async></script></section></div></main></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="Deterministically generate a unique name given the descriptors defining the wallet"><title>wallet_name_from_descriptor in bdk_wallet::wallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><h2><a href="../../bdk_wallet/index.html">bdk_wallet</a><span class="version">1.0.0-alpha.12</span></h2></div><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>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" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_wallet/wallet/mod.rs.html#2527-2553">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn wallet_name_from_descriptor<T>(
+<!DOCTYPE html><html lang="en"><head><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"><title>wallet_name_from_descriptor in bdk_wallet::wallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><h2><a href="../../bdk_wallet/index.html">bdk_wallet</a><span class="version">1.0.0-alpha.12</span></h2></div><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>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" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_wallet/wallet/mod.rs.html#2525-2551">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn wallet_name_from_descriptor<T>(
descriptor: T,
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>,
network: Network,
-<!DOCTYPE html><html lang="en"><head><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"><title>bdk_wallet::wallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><h2><a href="../../bdk_wallet/index.html">bdk_wallet</a><span class="version">1.0.0-alpha.12</span></h2></div><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><li><a href="#types">Type Aliases</a></li></ul></section><h2><a href="../index.html">In crate bdk_wallet</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">wallet</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_wallet/wallet/mod.rs.html#12-2640">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wallet</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="Wallet"><title>bdk_wallet::wallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../bdk_wallet/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><h2><a href="../../bdk_wallet/index.html">bdk_wallet</a><span class="version">1.0.0-alpha.12</span></h2></div><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><li><a href="#types">Type Aliases</a></li></ul></section><h2><a href="../index.html">In crate bdk_wallet</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">wallet</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../../src/bdk_wallet/wallet/mod.rs.html#12-2638">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="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="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a>.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="coin_selection/index.html" title="mod bdk_wallet::wallet::coin_selection">coin_selection</a></div><div class="desc docblock-short">Coin selection</div></li><li><div class="item-name"><a class="mod" href="error/index.html" title="mod bdk_wallet::wallet::error">error</a></div><div class="desc docblock-short">Errors that can be thrown by the <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a></div></li><li><div class="item-name"><a class="mod" href="export/index.html" title="mod bdk_wallet::wallet::export">export</a></div><div class="desc docblock-short">Wallet export</div></li><li><div class="item-name"><a class="mod" href="signer/index.html" title="mod bdk_wallet::wallet::signer">signer</a></div><div class="desc docblock-short">Generalized signers</div></li><li><div class="item-name"><a class="mod" href="tx_builder/index.html" title="mod bdk_wallet::wallet::tx_builder">tx_builder</a></div><div class="desc docblock-short">Transaction builder</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></div><div class="desc docblock-short">A derived address and the index it was found at.
For convenience this automatically derefs to <code>Address</code></div></li><li><div class="item-name"><a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></div><div class="desc docblock-short">Balance, differentiated into various categories.</div></li><li><div class="item-name"><a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></div><div class="desc docblock-short">An update to <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></div><div class="desc docblock-short">A Bitcoin wallet</div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></div><div class="desc docblock-short">An error that may occur when applying a block to <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a>.</div></li><li><div class="item-name"><a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></div><div class="desc docblock-short">An error that may occur when inserting a transaction into <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a>.</div></li><li><div class="item-name"><a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></div><div class="desc docblock-short">The error type when loading a <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a> from persistence.</div></li><li><div class="item-name"><a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></div><div class="desc docblock-short">The error type when constructing a fresh <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a>.</div></li><li><div class="item-name"><a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></div><div class="desc docblock-short">Error type for when we try load a <a href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet"><code>Wallet</code></a> from persistence and creating it if non-existent.</div></li></ul><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.IsDust.html" title="trait bdk_wallet::wallet::IsDust">IsDust</a></div><div class="desc docblock-short">Trait to check if a value is below the dust limit.
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="toggle implementors-toggle" open><summary><section id="impl-Wallet-2" class="impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2492-2516">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="toggle method-toggle" open><summary><section id="method.start_sync_with_revealed_spks" class="method"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2498-2502">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="struct bdk_chain::spk_client::SyncRequest"><code>SyncRequest</code></a> for this wallet for all revealed spks.</p>
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Wallet-2" class="impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2492-2514">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="toggle method-toggle" open><summary><section id="method.start_sync_with_revealed_spks" class="method"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2498-2501">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="struct bdk_chain::spk_client::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="struct bdk_chain::spk_client::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="toggle method-toggle" open><summary><section id="method.start_full_scan" class="method"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2512-2515">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_wallet::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Create a <a href="../../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">`FullScanRequest</a> for this wallet.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.start_full_scan" class="method"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2511-2513">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_wallet::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Create a <a href="../../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::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="struct bdk_chain::spk_client::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="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2518-2522">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">Wallet</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2519-2521">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="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Wallet" class="impl"><a class="src 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="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src 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="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Wallet" class="impl"><a href="#impl-Freeze-for-Wallet" class="anchor">§</a><h3 class="code-header">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="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-RefUnwindSafe-for-Wallet" class="impl"><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"><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"><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"><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"><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="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#140">source</a><a href="#impl-Any-for-T" 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<div class="where">where
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2516-2520">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">Wallet</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2517-2519">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="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Wallet" class="impl"><a class="src 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="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src 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="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Wallet" class="impl"><a href="#impl-Freeze-for-Wallet" class="anchor">§</a><h3 class="code-header">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="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-RefUnwindSafe-for-Wallet" class="impl"><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"><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"><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"><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"><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="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#140">source</a><a href="#impl-Any-for-T" 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<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">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="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208">source</a><a href="#impl-Borrow%3CT%3E-for-T" 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<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><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">&T</a></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="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" 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<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><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 T</a></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="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" 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="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#768">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>(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 `example_cli` crate."><title>example_cli - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_cli/index.html">example_cli</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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="#enums">Enums</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">example_cli</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_cli/lib.rs.html#1-739">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.anyhow"><code>pub use <a class="mod" href="https://docs.rs/anyhow/1.0.85/anyhow/index.html" title="mod anyhow">anyhow</a>;</code></div></li><li><div class="item-name" id="reexport.bdk_file_store"><code>pub use bdk_file_store;</code></div></li><li><div class="item-name" id="reexport.clap"><code>pub use clap;</code></div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Args.html" title="struct example_cli::Args">Args</a></div></li><li><div class="item-name"><a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></div></li><li><div class="item-name"><a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a></div><div class="desc docblock-short">The initial state returned by <a href="fn.init.html" title="fn example_cli::init"><code>init</code></a>.</div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.AddressCmd.html" title="enum example_cli::AddressCmd">AddressCmd</a></div></li><li><div class="item-name"><a class="enum" href="enum.CoinSelectionAlgo.html" title="enum example_cli::CoinSelectionAlgo">CoinSelectionAlgo</a></div></li><li><div class="item-name"><a class="enum" href="enum.Commands.html" title="enum example_cli::Commands">Commands</a></div></li><li><div class="item-name"><a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a></div></li><li><div class="item-name"><a class="enum" href="enum.TxOutCmd.html" title="enum example_cli::TxOutCmd">TxOutCmd</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.create_tx.html" title="fn example_cli::create_tx">create_tx</a></div></li><li><div class="item-name"><a class="fn" href="fn.handle_commands.html" title="fn example_cli::handle_commands">handle_commands</a></div></li><li><div class="item-name"><a class="fn" href="fn.init.html" title="fn example_cli::init">init</a></div><div class="desc docblock-short">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="API documentation for the Rust `example_cli` crate."><title>example_cli - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_cli/index.html">example_cli</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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="#enums">Enums</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">example_cli</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_cli/lib.rs.html#1-739">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.anyhow"><code>pub use <a class="mod" href="https://docs.rs/anyhow/1.0.85/anyhow/index.html" title="mod anyhow">anyhow</a>;</code></div></li><li><div class="item-name" id="reexport.bdk_file_store"><code>pub use <a class="mod" href="../bdk_file_store/index.html" title="mod bdk_file_store">bdk_file_store</a>;</code></div></li><li><div class="item-name" id="reexport.clap"><code>pub use clap;</code></div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Args.html" title="struct example_cli::Args">Args</a></div></li><li><div class="item-name"><a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></div></li><li><div class="item-name"><a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a></div><div class="desc docblock-short">The initial state returned by <a href="fn.init.html" title="fn example_cli::init"><code>init</code></a>.</div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.AddressCmd.html" title="enum example_cli::AddressCmd">AddressCmd</a></div></li><li><div class="item-name"><a class="enum" href="enum.CoinSelectionAlgo.html" title="enum example_cli::CoinSelectionAlgo">CoinSelectionAlgo</a></div></li><li><div class="item-name"><a class="enum" href="enum.Commands.html" title="enum example_cli::Commands">Commands</a></div></li><li><div class="item-name"><a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a></div></li><li><div class="item-name"><a class="enum" href="enum.TxOutCmd.html" title="enum example_cli::TxOutCmd">TxOutCmd</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.create_tx.html" title="fn example_cli::create_tx">create_tx</a></div></li><li><div class="item-name"><a class="fn" href="fn.handle_commands.html" title="fn example_cli::handle_commands">handle_commands</a></div></li><li><div class="item-name"><a class="fn" href="fn.init.html" title="fn example_cli::init">init</a></div><div class="desc docblock-short">Parses command line arguments and initializes all components, creating
a file store with the given parameters, or loading one if it exists.</div></li><li><div class="item-name"><a class="fn" href="fn.planned_utxos.html" title="fn example_cli::planned_utxos">planned_utxos</a></div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.KeychainChangeSet.html" title="type example_cli::KeychainChangeSet">KeychainChangeSet</a></div></li><li><div class="item-name"><a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a></div></li><li><div class="item-name"><a class="type" href="type.PlannedUtxo.html" title="type example_cli::PlannedUtxo">PlannedUtxo</a></div></li></ul></section></div></main></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 `example_electrum`."><title>main in example_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_electrum/index.html">example_electrum</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">example_electrum</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_electrum/main.rs.html#106-352">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub(crate) fn main() -> <a class="type" href="https://docs.rs/anyhow/1.0.85/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></section></div></main></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 `example_electrum`."><title>main in example_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_electrum/index.html">example_electrum</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">example_electrum</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_electrum/main.rs.html#106-353">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub(crate) fn main() -> <a class="type" href="https://docs.rs/anyhow/1.0.85/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></section></div></main></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 `example_electrum` crate."><title>example_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_electrum/index.html">example_electrum</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">example_electrum</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_electrum/main.rs.html#1-352">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ElectrumArgs.html" title="struct example_electrum::ElectrumArgs">ElectrumArgs</a></div></li><li><div class="item-name"><a class="struct" href="struct.ScanOptions.html" title="struct example_electrum::ScanOptions">ScanOptions</a></div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.ElectrumCommands.html" title="enum example_electrum::ElectrumCommands">ElectrumCommands</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.DB_MAGIC.html" title="constant example_electrum::DB_MAGIC">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.DB_PATH.html" title="constant example_electrum::DB_PATH">DB_PATH</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn example_electrum::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.ChangeSet.html" title="type example_electrum::ChangeSet">ChangeSet</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></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 `example_electrum` crate."><title>example_electrum - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../example_electrum/index.html">example_electrum</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">example_electrum</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/example_electrum/main.rs.html#1-353">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ElectrumArgs.html" title="struct example_electrum::ElectrumArgs">ElectrumArgs</a></div></li><li><div class="item-name"><a class="struct" href="struct.ScanOptions.html" title="struct example_electrum::ScanOptions">ScanOptions</a></div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.ElectrumCommands.html" title="enum example_electrum::ElectrumCommands">ElectrumCommands</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.DB_MAGIC.html" title="constant example_electrum::DB_MAGIC">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.DB_PATH.html" title="constant example_electrum::DB_PATH">DB_PATH</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn example_electrum::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.ChangeSet.html" title="type example_electrum::ChangeSet">ChangeSet</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></body></html>
\ No newline at end of file
var searchIndex = new Map(JSON.parse('[\
["bdk_bitcoind_rpc",{"t":"KFFEONNNNNNONNNNNNMNNNNNNNNNNNN","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":[[0,"bdk_bitcoind_rpc"],[31,"bitcoin::hash_types::newtypes"],[32,"bdk_chain::chain_data"],[33,"core::fmt"],[34,"bitcoin::blockdata::transaction"],[35,"alloc::vec"],[36,"bitcoincore_rpc::error"],[37,"core::result"],[38,"bitcoincore_rpc::client"],[39,"bdk_chain::local_chain"],[40,"bitcoin::blockdata::block"],[41,"core::option"],[42,"core::any"]],"i":[0,0,0,0,1,1,1,12,1,12,1,1,1,1,12,1,12,1,10,12,12,12,12,12,1,12,1,12,1,12,1],"f":"`````{{{d{{b{c}}}}}f{}}{{{d{{b{c}}}}}h{}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{jc}}}{{d{je}}}{}{}}0`{{{d{{b{c}}}}}l{}}{{{d{{b{c}}}}{d{jn}}}A`Ab}{cc{}}0{ce{}{}}0{{{d{Ad}}}Af}{{{d{j{Ah{c}}}}}{{Bd{{B`{{An{AjAl}}}}Bb}}}Bf}{{{d{c}}Bhh}{{Ah{c}}}Bf}{{{d{j{Ah{c}}}}}{{Bd{{Bl{{b{Bj}}}}Bb}}}Bf}{{{d{j{Ah{c}}}}}{{Bd{{Bl{{b{Bn}}}}Bb}}}Bf}{c{{Bd{e}}}{}{}}000{{{d{c}}}C`{}}077","D":"Bd","p":[[5,"BlockEvent",0],[1,"reference"],[5,"BlockHash",31],[1,"u32"],[0,"mut"],[5,"BlockId",32],[5,"Formatter",33],[8,"Result",33],[10,"Debug",33],[10,"BitcoindRpcErrorExt",0],[1,"bool"],[5,"Emitter",0],[5,"Transaction",34],[1,"u64"],[1,"tuple"],[5,"Vec",35],[6,"Error",36],[6,"Result",37],[10,"RpcApi",38],[5,"CheckPoint",39],[5,"Block",40],[6,"Option",41],[5,"Header",40],[5,"TypeId",42]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA0ABAAEAAAACAADAA4AAAAYAAcA"}],\
-["bdk_chain",{"t":"KKKSFSKGFGFPPKFRFEFFEPPNNMNNNOOMNNNNNENNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNOONNNNCNNNNNNNNNNNNMNNNMNONNNCCNENNNNNONNNNNNNNNNNNDNNNNNONCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNOOOFRFKNNNMNNNNNNNNNNNNNNNNNNNNNNOOMMOMNNNNNNNNMNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNNNNFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFFFFINNNNNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNOOONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNN","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","serde","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","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","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":[[0,"bdk_chain"],[269,"bdk_chain::ConfirmationTime"],[272,"bdk_chain::indexed_tx_graph"],[328,"bdk_chain::keychain"],[430,"bdk_chain::local_chain"],[572,"bdk_chain::spk_client"],[643,"bdk_chain::tx_graph"],[804,"bdk_chain::spk_txout_index"],[805,"bitcoin::blockdata::script::owned"],[806,"alloc::collections::btree::map"],[807,"core::clone"],[808,"core::cmp"],[809,"bdk_chain::descriptor_ext"],[810,"bdk_chain::tx_data_traits"],[811,"bdk_chain::chain_data"],[812,"bitcoin_hashes::sha256"],[813,"bdk_chain::spk_iter"],[814,"core::option"],[815,"miniscript::descriptor::key"],[816,"miniscript::descriptor"],[817,"core::borrow"],[818,"core::result"],[819,"serde::de"],[820,"core::fmt"],[821,"bitcoin::hash_types::newtypes"],[822,"bitcoin::blockdata::block"],[823,"bitcoin_hashes"],[824,"bdk_chain::chain_oracle"],[825,"core::hash"],[826,"core::slice::index"],[827,"bitcoin::blockdata::script::borrowed"],[828,"bitcoin::blockdata::transaction"],[829,"bitcoin::amount"],[830,"core::ops::range"],[831,"alloc::collections::btree::set"],[832,"core::iter::traits::double_ended"],[833,"serde::ser"],[834,"alloc::string"],[835,"core::iter::traits::exact_size"],[836,"core::any"],[837,"core::iter::traits::collect"],[838,"core::default"],[839,"bdk_chain::keychain::txout_index"],[840,"core::iter::traits::iterator"],[841,"alloc::sync"],[842,"core::convert"],[843,"core::marker"],[844,"core::ops::function"],[845,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,19,20,0,0,46,0,0,0,0,0,19,20,1,7,8,9,10,11,10,11,13,1,7,7,7,7,0,1,19,20,9,10,11,21,7,7,22,1,19,20,9,10,11,21,7,22,21,1,19,20,9,10,11,21,7,22,1,19,20,9,10,11,21,7,22,19,19,20,9,10,11,21,7,10,11,8,8,19,10,11,11,1,9,10,11,22,29,20,9,10,11,7,29,7,19,20,9,10,11,21,7,1,19,20,9,10,11,21,7,7,7,7,1,19,20,20,9,9,9,10,11,21,7,7,22,42,9,10,11,7,7,7,7,7,7,46,19,20,9,10,11,7,9,9,7,1,1,1,0,1,1,1,19,20,9,10,11,21,7,22,22,46,19,20,21,13,21,21,1,1,1,0,0,1,0,1,22,22,22,22,21,1,1,19,20,9,10,11,21,7,1,1,1,0,20,9,10,11,7,21,1,0,7,1,19,20,9,10,11,21,7,22,7,7,1,19,20,9,10,11,21,7,22,1,19,20,9,10,11,21,7,22,0,1,21,1,1,1,19,20,9,10,11,21,7,22,20,1,1,1,19,20,9,10,11,21,7,22,105,106,105,0,68,0,0,66,67,67,68,67,67,67,67,67,67,66,67,66,66,66,67,66,66,66,67,66,67,66,66,66,67,66,67,68,68,66,68,67,67,67,67,67,67,66,66,68,67,66,66,67,66,67,66,67,66,67,66,0,0,0,77,78,75,78,78,75,78,77,75,78,77,75,78,77,75,78,77,77,75,78,77,75,77,75,77,75,78,77,77,75,78,77,78,77,78,78,78,78,78,78,75,78,77,75,78,78,78,78,78,75,75,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,75,77,78,75,78,77,77,77,77,77,75,78,77,75,78,77,78,78,78,75,78,77,78,78,77,78,78,75,78,77,0,0,84,0,0,0,0,84,0,0,79,79,79,79,85,87,85,79,81,86,83,84,87,85,79,81,86,83,84,85,79,81,86,83,84,85,79,81,86,83,84,79,85,79,81,86,83,84,85,85,79,81,81,86,86,83,83,84,84,87,85,79,81,86,83,84,85,79,79,79,85,79,79,85,79,79,85,85,86,79,85,79,87,85,79,81,86,83,84,87,85,79,85,79,85,87,86,85,85,85,79,79,85,79,81,86,83,84,81,86,83,84,87,85,79,81,86,83,84,83,87,85,79,81,86,83,84,87,85,79,81,86,83,84,86,87,85,79,81,86,83,84,0,0,0,0,0,89,107,90,108,89,107,90,108,89,90,89,90,89,89,90,89,90,89,107,108,89,107,90,108,89,90,90,107,108,89,89,90,90,89,89,107,90,108,108,89,89,89,89,90,89,89,90,89,107,90,108,89,107,90,108,89,90,89,89,107,90,108,89,107,90,108,0,0,0,99,99,0,0,0,0,70,70,74,100,74,74,70,70,70,70,70,102,103,70,100,101,99,74,102,103,70,100,101,99,74,70,101,102,102,103,103,70,100,101,74,70,100,101,74,100,101,70,74,100,74,70,70,100,101,99,74,70,70,70,70,100,101,99,99,74,102,103,70,100,101,99,74,70,70,70,70,70,70,70,70,70,70,70,102,103,70,100,101,99,74,102,103,70,74,74,100,70,70,74,70,102,103,70,100,101,74,70,100,101,74,99,70,70,70,102,103,70,100,101,99,74,70,70,102,103,70,100,101,99,74,70,100,101,70,70,100,74,74,74,102,103,70,100,101,99,74,70,102,103,70,100,101,99,74,70,70,70],"f":"```````````````````````{{{d{{b{c}}}}}{{d{{h{cf}}}}}{jl}}{{}n}{{{d{A`}}}Ab}{{{d{Ab}}}Ab}{{{d{Ad}}}Ab}{{{d{Af}}}Ab}``{{{d{AhAj}}Aj}Al}{{{d{Ah{b{c}}}}e}Al{jl}{}}{{{d{n}}}{{d{c}}}{}}{{{d{n}}}{{d{An}}}}{{{d{n}}}{{d{{Bb{B`}}}}}}{{{d{n}}}{{d{{Bd{B`}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000000020{{{d{Ahc}}}{{d{Ahe}}}{}{}}00000000`{{{d{{b{c}}}}}{{b{c}}}j}{{{d{{Bf{c}}}}}{{Bf{c}}}j}{{{d{Bh}}}Bh}={{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{{Bj{c}}}}}{{Bj{c}}}j}{{{d{n}}}n}{{{d{{Bl{c}}}}}{{Bl{c}}}j}{{{d{c}}{d{Ahe}}}Al{}{}}00000000{{{Bf{{d{c}}}}}{{Bf{c}}}j}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}Bnl}{{{d{Bh}}{d{Bh}}}Bn}{{{d{Ab}}{d{Ab}}}Bn}{{{d{Ad}}{d{Ad}}}Bn}{{{d{Af}}{d{Af}}}Bn}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}Bnl}{{{d{n}}{d{n}}}Bn}``{{{d{A`}}}C`}0{{{d{{Bf{c}}}}}{{Cb{C`}}}A`}{{{d{Ad}}}C`}{{{d{Af}}}C`}`{{}{{b{c}}}{}}{{}Ab}{{}Ad}{{}Af}{{{d{{Bl{c}}}}}{{d{c}}}{{Ch{{Cf{Cd}}}}}}{{{d{Cj}}}n}{c{{Cl{Bh}}}Cn}{c{{Cl{Ab}}}Cn}{c{{Cl{Ad}}}Cn}{c{{Cl{Af}}}Cn}{c{{Cl{n}}}Cn}{{{d{Cj}}}D`}{{}c{}}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}DbDd}{{{d{Bh}}{d{Bh}}}Db}{{{d{Ab}}{d{Ab}}}Db}{{{d{Ad}}{d{Ad}}}Db}{{{d{Af}}{d{Af}}}Db}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}DbDd}{{{d{n}}{d{n}}}Db}{{{d{{b{c}}}}{d{AhDf}}}DhDj}{{{d{{Bf{c}}}}{d{AhDf}}}DhDj}{{{d{Bh}}{d{AhDf}}}Dh}{{{d{Ab}}{d{AhDf}}}Dh}{{{d{Ad}}{d{AhDf}}}Dh}{{{d{Af}}{d{AhDf}}}Dh}{{{d{{Bj{c}}}}{d{AhDf}}}DhDj}{{{d{n}}{d{AhDf}}}Dh}000{cc{}}00{{{Bf{Af}}}Bh}{{{Dn{C`Dl}}}Ab}{{{Dn{{d{C`}}{d{Dl}}}}}Ab}33333{Ann}4{{{d{E`}}AbEb}Ed}{{{d{E`}}AbEb}Ab}{{{d{E`}}AbEb}Ad}{{{d{E`}}AbEb}Af}{cn{}}05{{{d{{Bb{B`}}}}}{{Cl{nEf}}}}0{{{d{Eh}}}{{Cl{nc}}}{}}{{{d{{El{}{{Ej{c}}}}}}}{{Cl{Abc}}}Dj}{{{d{{Bf{c}}}}{d{Ahe}}}AlEnF`}{{{d{Bh}}{d{Ahc}}}AlF`}{{{d{Ab}}{d{Ahc}}}AlF`}{{{d{Ad}}{d{Ahc}}}AlF`}{{{d{Af}}{d{Ahc}}}AlF`}{{{d{n}}{d{Ahc}}}AlF`}``{{{d{n}}c}{{d{e}}}{{Fb{{Bb{B`}}}}}{}}{{{d{{b{c}}}}{d{Fd}}}{{Cb{{d{c}}}}}{jl}}{{{d{Ah{b{c}}}}{d{Ff}}}e{jl}{}}{{{d{Ah{b{c}}}}Fh{d{Fj}}}e{jl}{}}`{{{d{{b{c}}}}}e{jl}{}}{{{d{Ah{b{c}}}}cf}Db{jl}}{ce{}{}}000000000{{{d{{El{}{{Ej{c}}}}}}AbAb}{{Cl{{Cb{Db}}c}}}Dj}{{{d{{Bf{c}}}}}Db{}}{{{d{Bh}}}Db}{{{d{{Bj{c}}}}C`}DbA`}{{{d{Aj}}}Db}1`{{{d{{b{c}}}}{d{Ff}}}Db{jl}}0{{{d{{b{c}}}}{d{c}}}Db{jl}}``{{{d{Ah{b{c}}}}{d{c}}}Db{jl}}`{{{d{{b{c}}}}{d{Ff}}e}Fl{jl}{{Fn{c}}}}{c{{Bl{c}}}{{Ch{{Cf{Cd}}}}}}{{ce}{{Bl{c}}}{{Ch{{Cf{Cd}}}}}{{Fn{C`}}}}{{{d{Ah{Bl{c}}}}}{{Cb{e}}}{{Ch{{Cf{Cd}}}}}{}}{{{d{Ah{Bl{c}}}}Eb}{{Cb{e}}}{{Ch{{Cf{Cd}}}}}{}}`{{{d{{b{c}}}}}{{d{{G`{{Dn{cFh}}}}}}}{jl}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh}}}}}}}}}{jl}{{Fn{c}}}}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}{{Cb{Bn}}}Gf}{{{d{Bh}}{d{Bh}}}{{Cb{Bn}}}}{{{d{Ab}}{d{Ab}}}{{Cb{Bn}}}}{{{d{Ad}}{d{Ad}}}{{Cb{Bn}}}}{{{d{Af}}{d{Af}}}{{Cb{Bn}}}}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}{{Cb{Bn}}}Gf}{{{d{n}}{d{n}}}{{Cb{Bn}}}}{{{d{Ah{b{c}}}}{d{Ff}}}{{G`{c}}}{jl}}{{{d{Ah{b{c}}}}Fh{d{Fj}}}{{Cb{{d{c}}}}}{jl}}{{{d{{b{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jl}{{Fn{c}}}}`{{{d{Bh}}c}ClGj}{{{d{Ab}}c}ClGj}{{{d{Ad}}c}ClGj}{{{d{Af}}c}ClGj}{{{d{n}}c}ClGj}`{{{d{{b{c}}}}{d{c}}}{{Cb{{d{Fd}}}}}{jl}}`{nc{}}{{{d{c}}}e{}{}}00000000{nAn}{{{d{c}}}Gl{}}{c{{Cl{e}}}{}{}}00000000000000000`{{{d{{b{c}}}}Fh}{{Cb{{Dn{{d{c}}{d{Fj}}}}}}}{jl}}`{{{d{{b{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}Gn}}}{jl}}{{{d{{b{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}}}}{jl}}{{{d{c}}}Hb{}}00000000{D`Bh}{{{d{Ah{b{c}}}}{d{c}}}Db{jl}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{Fd}}}}}}}}j}}}{jl}{{Fn{c}}}}{ce{}{}}00000000```````{{{d{Ah{Hd{ce}}}}{Hd{ce}}}AlA`Aj}{{{d{Ah{Hf{ce}}}}E`C`}{{Hd{c}}}{EdA`}Hh}{{{d{Ah{Hf{ce}}}}{d{E`}}C`}{{Hd{c}}}{EdA`}Hh}{{{d{Ah{Hh{}{{Hj{c}}}}}}c}Al{}}{{{d{Ah{Hf{ce}}}}{Hd{c}}}AlA`Hh}{{{d{Ah{Hf{ce}}}}{Hl{c}}}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}i}{{Hd{c}}}A`Hh{{Hn{}{{Gb{c}}}}}{{Hn{}{{Gb{{Dn{{d{Ff}}g}}}}}}}}{{{d{Ah{Hf{ce}}}}g}{{Hd{c}}}A`Hh{{Hn{}{{Gb{{Dn{{d{Ff}}D`}}}}}}}}{{{d{Ah{Hf{ce}}}}g}{{Hd{c}}}A`Hh{{Hn{}{{Gb{{Dn{FfD`}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Ahc}}}{{d{Ahe}}}{}{}}0{{{d{{Hd{ce}}}}}{{Hd{ce}}}jj}{{{d{c}}{d{Ahe}}}Al{}{}}{{}{{Hf{ce}}}{}I`}{{}{{Hd{ce}}}{}I`}{c{{Cl{{Hd{eg}}}}}Cn{lIb}Ib}{{{d{{Hd{ce}}}}{d{{Hd{ce}}}}}DbDdDd}{{{d{{Hf{ce}}}}{d{AhDf}}}DhDjDj}{{{d{{Hd{ce}}}}{d{AhDf}}}DhDjDj}{cc{}}{{{Id{c}}}{{Hd{ce}}}{}I`}1{{{If{c}}}{{Hd{e{If{c}}}}}{}{}}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}``{{{d{Ah{Hh{}{{Hj{c}}}}}}{d{Ff}}}c{}}{{{d{Ah{Hh{}{{Hj{c}}}}}}Fh{d{Fj}}}c{}}`{{{d{{Hh{}{{Hj{c}}}}}}}c{}}{{{d{{Hf{ce}}}}}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}H`c}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}H`D`}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}Ff}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}FhFj}{{Hd{c}}}A`Hh}{ce{}{}}0{{{d{{Hd{ce}}}}}DbA`Aj}{{{d{{Hh{}{{Hj{c}}}}}}{d{Ff}}}Db{}}{c{{Hf{ec}}}{}{}}{{{d{{Hd{ce}}}}g}Cl{lIh}IhGj}{{{d{c}}}e{}{}}{c{{Cl{e}}}{}{}}000{{{d{c}}}Hb{}}077```{{IjIj}Ij}{{{d{{Il{c}}}}}{{h{c{Bl{{Cf{Cd}}}}}}}{jlDj}}{{{d{Ah{If{c}}}}{If{c}}}All}{{{d{Ah{Il{c}}}}{If{c}}}Al{jlDj}}{{{d{Ah{Il{c}}}}e}Al{jlDj}{}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{Ahc}}}{{d{Ahe}}}{}{}}00{{{d{{If{c}}}}}{{If{c}}}j}{{{d{{Il{c}}}}}{{Il{c}}}j}{{{d{Ij}}}Ij}{{{d{c}}{d{Ahe}}}Al{}{}}00`{{}{{If{c}}}{}}{{}{{Il{c}}}{}}{{}Ij}{c{{Cl{{If{e}}}}}Cn{lIb}}{c{{Cl{Ij}}}Cn}{{{d{{If{c}}}}{d{{If{c}}}}}DbDd}{{{d{Ij}}{d{Ij}}}Db}{{{d{{If{c}}}}{d{AhDf}}}DhDj}{{{d{{Il{c}}}}{d{AhDf}}}DhDj}{{{d{Ij}}{d{AhDf}}}Dh}0{cc{}}00{{{d{{Il{c}}}}{d{c}}}{{Cb{{d{{Cf{Cd}}}}}}}{jlDj}}`{{{d{{Il{c}}}}{d{Fd}}}{{Cb{{Dn{cC`}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{Ff}}}e{jlDj}{}}{{{d{Ah{Il{c}}}}Fh{d{Fj}}}e{jlDj}{}}{{{d{{Il{c}}}}}e{jlDj}{}}{{{d{{Il{c}}}}}{{d{{b{{Dn{nC`}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}c{Cf{Cd}}}{{If{c}}}{jlDj}}{ce{}{}}00{{{d{{If{c}}}}}Dbl}{{{d{{Il{c}}}}{d{Ff}}}Db{jlDj}}{{{d{{Il{c}}}}cC`}Db{jlDj}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`Fh}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}C`Fh}}}}}}}}}{jlDj}{{Fn{c}}}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{{Cf{Cd}}}}}}}}}}Gn}}}{jlDj}}``{{{d{{Il{c}}}}{d{c}}}{{Cb{C`}}}{jlDj}}{{{d{{Il{c}}}}}{{h{cC`}}}{jlDj}}10{{{d{{Il{c}}}}}C`{jlDj}}{{{d{Ah{Il{c}}}}{d{c}}C`}Al{jlDj}}{{{d{Ah{Il{c}}}}cC`}Db{jlDj}}{{{d{{Il{c}}}}{d{Ff}}e}Fl{jlDj}{{Fn{c}}}}{C`{{Il{c}}}{}}{{{d{{Il{c}}}}{d{c}}}{{Cb{{Dn{C`Db}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{c}}}{{Cb{{Dn{{Dn{C`{d{Fd}}}}{If{c}}}}}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{Dn{cC`}}Fh}}}}}}}}}{jlDj}}1{{{d{Ah{Il{c}}}}{d{c}}C`}{{Cb{{Dn{{Bl{{Cf{Cd}}}}{If{c}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{{h{cC`}}}}}{{Dn{{h{c{Bl{{Cf{Cd}}}}}}{If{c}}}}}{jlDj}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`{d{Fd}}}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}C`{d{Fd}}}}}}}}j}}}{jlDj}{{Fn{c}}}}{{{d{{Il{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jlDj}{{Fn{c}}}}{{{d{{If{c}}}}e}Cl{lIh}Gj}{{{d{Ij}}c}ClGj}{{{d{{Il{c}}}}cC`}{{Cb{{d{Fd}}}}}{jlDj}}{{{d{c}}}e{}{}}00{{{d{c}}}Gl{}}{{{d{Ij}}}Gh}`0{c{{Cl{e}}}{}{}}00000{{{d{{Il{c}}}}Fh}{{Cb{{Dn{cC`{d{Fj}}}}}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{cC`Fh{d{Fj}}}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{cC`Fh{d{Fj}}}}}}}}}}}{jlDj}}{{{d{c}}}Hb{}}00{{{d{{Il{c}}}}{d{c}}}{{Cb{{Bl{{Cf{Cd}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}cC`}Db{jlDj}}`{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`{d{Fd}}}}}}}}j}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{cC`{d{Fd}}}}}}}}j}}}{jlDj}}{ce{}{}}00``````````{{{d{AhIn}}{d{J`}}}{{Cl{AlJb}}}}{{{d{AhIn}}{d{Jd}}C`}{{Cl{J`Jf}}}}{{{d{AhIn}}{d{Jd}}C`Ab}{{Cl{J`Jh}}}}{{{d{AhIn}}Jj}{{Cl{J`Jf}}}}{{{d{Jj}}}Ab}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000000{{{d{Jj}}}Jj}{{{d{In}}}In}{{{d{Jb}}}Jb}{{{d{Jl}}}Jl}{{{d{Jf}}}Jf}{{{d{Jh}}}Jh}{{{d{c}}{d{Ahe}}}Al{}{}}00000{{{d{AhIn}}Ab}{{Cl{J`Jb}}}}{{{d{Jj}}{d{Jj}}}Db}{{{d{In}}{d{In}}}Db}{{{d{Jb}}{d{Jb}}}Db}{{{d{Jl}}{d{Jl}}}Db}{{{d{Jf}}{d{Jf}}}Db}{{{d{Jh}}{d{Jh}}}Db}{{Jjc}{{Cl{JjJj}}}{{Hn{}{{Gb{Ab}}}}}}{{{d{Jj}}{d{AhDf}}}Dh}{{{d{In}}{d{AhDf}}}Dh}{{{d{Jb}}{d{AhDf}}}Dh}0{{{d{Jl}}{d{AhDf}}}Dh}0{{{d{Jf}}{d{AhDf}}}Dh}0{{{d{Jh}}{d{AhDf}}}Dh}0{cc{}}000000{c{{Cl{Jj{Cb{Jj}}}}}{{Hn{}{{Gb{Ab}}}}}}{{{h{C`Dl}}}{{Cl{InJb}}}}{J`{{Cl{InJb}}}}{Dl{{Dn{InJ`}}}}{{{d{Jd}}C`}Jj}{Jj{{Cl{InJb}}}}{{{d{In}}}Dl}{{{d{Jj}}C`}{{Cb{Jj}}}}{{{d{In}}C`}{{Cb{Jj}}}}{{{d{In}}}{{Cl{Abc}}}{}}{{{d{Jj}}}Dl}{{{d{Jj}}}C`}`{{{d{In}}}J`}{{JjAb}Jj}{{{d{AhIn}}Ab}{{Cl{J`Jl}}}}{ce{}{}}0000000{Jjc{}}{{{d{In}}AbAb}{{Cl{{Cb{Db}}c}}}{}}{{{d{Jj}}}Jn}{{{d{In}}}Jn}{AbJj}{{{d{AhJn}}}{{Cb{c}}}{}}`{{{d{Jj}}}{{Cb{Jj}}}}{{JjAb}{{Cl{JjJj}}}}{{{d{Jj}}c}{{`{{K`{}{{Gb{Jj}}}}}}}{{Fn{C`}}}}{{{d{In}}c}{{`{{K`{}{{Gb{Jj}}}}}}}{{Fn{C`}}}}{{{d{In}}}Jj}{{{d{c}}}e{}{}}00000{{{d{c}}}Gl{}}000{c{{Cl{e}}}{}{}}000000`0000000{{{d{c}}}Hb{}}000000`???????`````{{{d{c}}}{{d{e}}}{}{}}000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000{{Kb{d{{Hl{c}}}}}Kb{}}{{{Kd{c}}{d{{Hl{e}}}}}{{Kd{c}}}{lj}{}}{{Kbe}Kb{{Kh{{Kf{Ff}}}}}{{Hn{}{{Gb{{Dn{H`c}}}}}}}}{{{Kd{c}}g}{{Kd{c}}}{lj}{{Kh{{Kf{Ff}}}}}{{Hn{}{{Gb{{Dn{H`e}}}}}}}}{{Kbe}Kb{{Gn{}{{Gb{Fh}}}}Kj}{{Hn{}{{Kl{c}}{Gb{Fh}}}}}}{{Kbe}Kb{{Gn{}{{Gb{f}}}}Kj}{{Hn{}{{Kl{c}}{Gb{f}}}}}}{{{Kd{c}}cg}{{Kd{c}}}{lj}{{K`{}{{Gb{{Dn{C`f}}}}}}Kj}{{Hn{}{{Kl{e}}}}}}``{{Kbe}Kb{{Gn{}{{Gb{H`}}}}Kj}{{Hn{}{{Kl{c}}{Gb{H`}}}}}}``{cc{}}000{JjKb}{Jj{{Kd{c}}}{lj}}{{Jj{d{{Il{c}}}}}{{Kd{c}}}{Djlj}}``{{Kbc}Kb{{Kn{{d{Fh}}}}KjL`}}{{Kbc}Kb{{Kn{{d{Fd}}}}KjL`}}{{{Kd{c}}e}{{Kd{c}}}{Kjlj}{{Kn{cC`{d{Fd}}}}KjL`j}}{{{Kd{c}}ce}{{Kd{c}}}{Kjlj}{{Kn{C`{d{Fd}}}}KjL`}}{{Kbc}Kb{{Kn{{d{H`}}}}KjL`}}{ce{}{}}000``{{Kb{d{{Il{c}}}}e}Kb{jlDjKjL`}{{Fn{c}}}}{{Kbe}Kb{{Gn{}{{Gb{Fh}}}}Kj}{{Hn{}{{Kl{c}}}}}}{{Kbe}Kb{{Gn{}{{Gb{f}}}}Kj}{{Hn{}{{Kl{c}}}}}}>{{Kbe}Kb{{Gn{}{{Gb{H`}}}}Kj}{{Hn{}{{Kl{c}}}}}}``{c{{Cl{e}}}{}{}}0000000```{{{d{c}}}Hb{}}0006666`````````{{{d{{Hl{c}}}}}{{d{{G`{{Dn{cH`}}}}}}}{}}{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Id{c}}}}}{{`{{K`{}{{Gb{C`}}}}}}}A`}``{{{d{Ah{Id{c}}}}{Id{c}}}All}{{{d{Ah{Hl{c}}}}{Id{c}}}Al{jl}}{{{d{Ah{Hl{c}}}}{Hl{c}}}{{Id{c}}}{jl}}{{{d{{Hl{c}}}}}{{d{{Hl{c}}}}}{}}{{{d{{Hl{c}}}}{d{e}}Abik}IjA`{{El{}{{Ej{Lb}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Kn{{d{g}}{d{Fd}}}{{Ld{Db}}}}}}{{{d{Ah{Hl{c}}}}e}{{Id{c}}}{jl}{{Hn{}{{Gb{{Dn{FfD`}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000000{{{d{{Hl{c}}}}{d{Ff}}}{{Cl{GhLf}}}{}}`{c{{Cb{Fl}}}{}}{c{{Cb{Gh}}}{}}01{{{d{{Hl{c}}}}}{{Hl{c}}}j}{{{d{{Lh{ce}}}}}{{Lh{ce}}}jj}{{{d{{Lj{ce}}}}}{{Lj{ce}}}jj}{{{d{{Id{c}}}}}{{Id{c}}}j}{{{d{c}}{d{Ahe}}}Al{}{}}000{{{d{{Lh{ce}}}}{d{{Lh{ce}}}}}Bnll}{{{d{{Lj{ce}}}}{d{{Lj{ce}}}}}Bnll}{{}{{Hl{c}}}{}}{{}{{Id{c}}}{}}{{{d{{Lh{ce}}}}}{{d{g}}}{}{}{}}{c{{Cl{{Id{e}}}}}Cn{lIb}}{{{d{{Hl{c}}}}{d{Ff}}}{{`{{K`{}{{Gb{{Dn{EbH`}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{{Hl{c}}}}}DbDd}{{{d{{Lh{ce}}}}{d{{Lh{ce}}}}}DbDdDd}{{{d{{Lj{ce}}}}{d{{Lj{ce}}}}}DbDdDd}{{{d{Lf}}{d{Lf}}}Db}{{{d{{Id{c}}}}{d{{Id{c}}}}}DbDd}{{{d{{Hl{c}}}}{d{e}}Abi}{{`{{K`{}{{Gb{{Dn{g{Bj{c}}}}}}}}}}}A`{{El{}{{Ej{Lb}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{AhDf}}}DhDj}{{{d{{Lh{ce}}}}{d{AhDf}}}DhDjDj}{{{d{{Lj{ce}}}}{d{AhDf}}}DhDjDj}{{{d{Lf}}{d{AhDf}}}Dh}0{{{d{{Id{c}}}}{d{AhDf}}}DhDj}{cc{}}000000{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Lh{{Kf{Ff}}c}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{e}}AbH`}{{Cb{{Bf{{d{c}}}}}}}A`{{El{}{{Ej{Lb}}}}}}{{{d{{Hl{c}}}}{d{e}}AbFh}{{Cb{{Dn{{Bf{{d{c}}}}H`}}}}}A`{{El{}{{Ej{Lb}}}}}}{{{d{{Hl{c}}}}H`}{{Cb{{Kf{Ff}}}}}{}}{{{d{{Hl{c}}}}H`}{{Cb{{Lh{{Kf{Ff}}c}}}}}{}}{{{d{{Hl{c}}}}Fh}{{Cb{{d{Fj}}}}}{}}{{{d{{Hl{c}}}}}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}H`c}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}H`D`}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}e}{{Id{c}}}{jl}{{Kh{{Kf{Ff}}}}}}{{{d{Ah{Hl{c}}}}FhFj}{{Id{c}}}{jl}}{ce{}{}}00000000{{{d{{Hl{c}}}}}Db{}}{{{d{{Id{c}}}}}Dbl}``{{{d{{Hl{c}}}}{d{e}}Ab}{{`{{K`{}{{Gb{{Lj{{Kf{Ff}}c}}}}}}}}}A`El}{{{Hl{c}}g}{{Hl{e}}}{jl}{jl}{{Kn{c}{{Ld{e}}}}}}{{{Id{c}}g}{{Id{e}}}ll{{Kn{c}{{Ld{e}}}}}}{c{{Hl{e}}}{{Hn{}{{Gb{Ff}}}}}{jl}}{{{d{Ah{Ll{cg}}}}}{{Cb{i}}}{}{}{{Kn{Eb{Kf{Ff}}}{{Ld{{Cb{e}}}}}}}{}}{{{d{Ah{Ln{cg}}}}}{{Cb{i}}}{}{}{{Kn{EbH`}{{Ld{{Cb{e}}}}}}}{}}{{{d{{Hl{c}}}}Fh}{{d{{M`{H`}}}}}{}}{{{d{{Lh{ce}}}}{d{{Lh{ce}}}}}{{Cb{Bn}}}GfGf}{{{d{{Lj{ce}}}}{d{{Lj{ce}}}}}{{Cb{Bn}}}GfGf}{{{d{{Id{c}}}}e}Cl{lIh}Gj}{{{d{c}}}e{}{}}000{{{d{c}}}Gl{}}{{{d{{Hl{c}}}}{d{e}}Abik}{{Cl{Ij}}}A`Elj{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Kn{{d{g}}{d{Fd}}}{{Ld{Db}}}}}}{{{d{{Hl{c}}}}{d{e}}Abi}{{`{{K`{}{{Gb{{Cl{{Dn{g{Bj{c}}}}}}}}}}}}}A`Elj{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{c{{Cl{e}}}{}{}}000000{{{d{{Hl{c}}}}{d{e}}AbH`}{{Cl{{Cb{{Bf{{d{c}}}}}}}}}A`El}{{{d{{Hl{c}}}}{d{e}}AbFh}{{Cl{{Cb{{Dn{{Bf{{d{c}}}}H`}}}}}}}A`El}2222222{{{d{{Hl{c}}}}{d{e}}Ab}{{`{{K`{}{{Gb{{Cl{{Lj{{Kf{Ff}}c}}}}}}}}}}}A`El}``{{{d{{Hl{c}}}}H`}{{Cb{{h{C`{d{Fj}}}}}}}{}}{{{d{{Hl{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{C`{d{{M`{H`}}}}}}}}}}}}}{}}`{{{d{{Id{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}``{{{d{c}}}Hb{}}000000{{{d{Ah{Hl{c}}}}D`}{{Id{c}}}{jl}}{ce{}{}}000000{{{d{{Hl{c}}}}ei}{{Ll{ci}}}{jl}{{Kh{{Kf{Ff}}}}}{}{{Kn{Eb{Kf{Ff}}}{{Ld{{Cb{g}}}}}}}}{{{d{{Hl{c}}}}{d{Ff}}g}{{Ln{cg}}}{}{}{{Kn{EbH`}{{Ld{{Cb{e}}}}}}}}{{{d{{Hl{c}}}}H`g}{{Ln{cg}}}{jl}{}{{Kn{EbH`}{{Ld{{Cb{e}}}}}}}}","D":"BMj","p":[[5,"SpkTxOutIndex",0,804],[1,"reference"],[5,"ScriptBuf",805],[5,"BTreeMap",806],[10,"Clone",807],[10,"Ord",808],[5,"DescriptorId",0,809],[10,"Anchor",0,810],[5,"BlockId",0,811],[5,"ConfirmationHeightAnchor",0,811],[5,"ConfirmationTimeHeightAnchor",0,811],[0,"mut"],[10,"Append",0,810],[1,"unit"],[5,"Hash",812],[1,"u8"],[1,"slice"],[1,"array"],[6,"ChainPosition",0,811],[6,"ConfirmationTime",0,811],[5,"FullTxOut",0,811],[5,"SpkIterator",0,813],[6,"Ordering",808],[1,"u32"],[6,"Option",814],[6,"DescriptorPublicKey",815],[6,"Descriptor",816],[10,"Borrow",817],[10,"DescriptorExt",0,809],[6,"Result",818],[10,"Deserializer",819],[1,"u64"],[1,"bool"],[10,"PartialEq",808],[5,"Formatter",820],[8,"Result",820],[10,"Debug",820],[5,"BlockHash",821],[1,"tuple"],[5,"Block",822],[1,"usize"],[10,"AnchorFromBlockPosition",0,810],[5,"FromSliceError",823],[1,"str"],[17,"Error"],[10,"ChainOracle",0,824],[10,"Hash",825],[10,"Hasher",825],[10,"SliceIndex",826],[5,"Script",827],[5,"Transaction",828],[5,"OutPoint",828],[5,"TxOut",828],[5,"SignedAmount",829],[10,"RangeBounds",830],[5,"BTreeSet",831],[17,"Item"],[10,"DoubleEndedIterator",832],[10,"PartialOrd",808],[5,"Amount",829],[10,"Serializer",833],[5,"String",834],[10,"ExactSizeIterator",835],[5,"Txid",821],[5,"TypeId",836],[5,"ChangeSet",272],[5,"IndexedTxGraph",272],[10,"Indexer",272],[17,"ChangeSet"],[5,"TxGraph",643],[10,"IntoIterator",837],[10,"Default",838],[10,"Deserialize",819],[5,"ChangeSet",643],[5,"ChangeSet",328,839],[10,"Serialize",833],[5,"Balance",328],[5,"KeychainTxOutIndex",328,839],[5,"LocalChain",430],[8,"ChangeSet",430],[5,"MissingGenesisError",430],[5,"Header",822],[5,"CannotConnectError",430],[6,"ApplyHeaderError",430],[5,"CheckPoint",430],[5,"AlterCheckPointError",430],[5,"CheckPointIter",430],[10,"Iterator",840],[5,"SyncRequest",572],[5,"FullScanRequest",572],[5,"Arc",841],[10,"Into",842],[10,"Send",843],[17,"IntoIter"],[10,"FnMut",844],[10,"Sync",843],[6,"Infallible",842],[17,"Output"],[6,"CalculateFeeError",643],[5,"TxNode",643],[5,"CanonicalTx",643],[5,"TxAncestors",643],[5,"TxDescendants",643],[5,"HashSet",845],[15,"Confirmed",269],[15,"Unconfirmed",269],[5,"SyncResult",572],[5,"FullScanResult",572]],"r":[[0,810],[1,810],[2,810],[3,813],[4,811],[6,824],[7,811],[8,811],[9,811],[10,811],[13,809],[14,809],[16,811],[17,272],[18,813],[19,804],[20,643],[329,839],[330,839]],"b":[[35,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[36,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[119,"impl-Debug-for-DescriptorId"],[120,"impl-UpperHex-for-DescriptorId"],[121,"impl-LowerHex-for-DescriptorId"],[122,"impl-Display-for-DescriptorId"],[127,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[128,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[298,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[300,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[334,"impl-KeychainTxOutIndex%3CK%3E"],[335,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[358,"impl-Display-for-Balance"],[359,"impl-Debug-for-Balance"],[481,"impl-Display-for-MissingGenesisError"],[482,"impl-Debug-for-MissingGenesisError"],[483,"impl-Display-for-AlterCheckPointError"],[484,"impl-Debug-for-AlterCheckPointError"],[485,"impl-Debug-for-CannotConnectError"],[486,"impl-Display-for-CannotConnectError"],[487,"impl-Debug-for-ApplyHeaderError"],[488,"impl-Display-for-ApplyHeaderError"],[709,"impl-Display-for-CalculateFeeError"],[710,"impl-Debug-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALcBSAASAAAAFQAAABkAAAAbAAIAIQABACQAFQA7ABEATgAGAFoAAQBdAAMAYwAEAGkAEgB/AAIAhwAAAIoABACQAAIAlAAFAJwAAACeAAEAoQAAAKwAAAC1AAAAugAAAL4AAQDDAAYAzQAFANYACQDhABIA+QAIAAUBCAAVAQAAHgELACsBAAAtAQAAPAEAAD8BCQBMAQAAUAEMAF4BCgBvAQIAeAEAAJEBAQCUAQMAmwEFAKQBAgCsAQIAvgEZANkBBQDgAQkA+gEAAAgCAgAOAgAAFQIQACcCDQA2AgYAQgIHAHECBwB8AgcAkgIAAJUCAACYAg0AqAIRALsCBADDAgUA4gIBAOUCAADsAgEA7wIHAPoCBgADAwYAEwMGABsDBgA="}],\
+["bdk_chain",{"t":"KKKSFSKGFGFPPKFRFEFFEPPNNMNNNOOMNNNNNENNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNOONNNNCNNNNNNNNNNNNMNNNMNONNNCCNENNNNNONNNNNNNNNNNNDNNNNNONCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNOOOFRFKNNNMNNNNNNNNNNNNNNNNNNNNNNNOOMMOMNNNNNNNNMNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNNNNFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFFFFNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNN","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","serde","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","as_ref","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","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","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","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","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","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":[[0,"bdk_chain"],[269,"bdk_chain::ConfirmationTime"],[272,"bdk_chain::indexed_tx_graph"],[329,"bdk_chain::keychain"],[431,"bdk_chain::local_chain"],[573,"bdk_chain::spk_client"],[637,"bdk_chain::tx_graph"],[798,"bdk_chain::spk_txout_index"],[799,"bitcoin::blockdata::script::owned"],[800,"alloc::collections::btree::map"],[801,"core::clone"],[802,"core::cmp"],[803,"bdk_chain::descriptor_ext"],[804,"bdk_chain::tx_data_traits"],[805,"bdk_chain::chain_data"],[806,"bitcoin_hashes::sha256"],[807,"bdk_chain::spk_iter"],[808,"core::option"],[809,"miniscript::descriptor::key"],[810,"miniscript::descriptor"],[811,"core::borrow"],[812,"core::result"],[813,"serde::de"],[814,"core::fmt"],[815,"bitcoin::hash_types::newtypes"],[816,"bitcoin::blockdata::block"],[817,"bitcoin_hashes"],[818,"bdk_chain::chain_oracle"],[819,"core::hash"],[820,"core::slice::index"],[821,"bitcoin::blockdata::script::borrowed"],[822,"bitcoin::blockdata::transaction"],[823,"bitcoin::amount"],[824,"core::ops::range"],[825,"alloc::collections::btree::set"],[826,"core::iter::traits::double_ended"],[827,"serde::ser"],[828,"alloc::string"],[829,"core::iter::traits::exact_size"],[830,"core::any"],[831,"core::iter::traits::collect"],[832,"core::default"],[833,"bdk_chain::keychain::txout_index"],[834,"core::iter::traits::iterator"],[835,"core::marker"],[836,"core::ops::function"],[837,"core::convert"],[838,"alloc::sync"],[839,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,19,20,0,0,46,0,0,0,0,0,19,20,1,7,8,9,10,11,10,11,13,1,7,7,7,7,0,1,19,20,9,10,11,21,7,7,22,1,19,20,9,10,11,21,7,22,21,1,19,20,9,10,11,21,7,22,1,19,20,9,10,11,21,7,22,19,19,20,9,10,11,21,7,10,11,8,8,19,10,11,11,1,9,10,11,22,29,20,9,10,11,7,29,7,19,20,9,10,11,21,7,1,19,20,9,10,11,21,7,7,7,7,1,19,20,20,9,9,9,10,11,21,7,7,22,42,9,10,11,7,7,7,7,7,7,46,19,20,9,10,11,7,9,9,7,1,1,1,0,1,1,1,19,20,9,10,11,21,7,22,22,46,19,20,21,13,21,21,1,1,1,0,0,1,0,1,22,22,22,22,21,1,1,19,20,9,10,11,21,7,1,1,1,0,20,9,10,11,7,21,1,0,7,1,19,20,9,10,11,21,7,22,7,7,1,19,20,9,10,11,21,7,22,1,19,20,9,10,11,21,7,22,0,1,21,1,1,1,19,20,9,10,11,21,7,22,20,1,1,1,19,20,9,10,11,21,7,22,105,106,105,0,68,0,0,66,67,67,68,67,67,67,67,67,67,67,66,67,66,66,66,67,66,66,66,67,66,67,66,66,66,67,66,67,68,68,66,68,67,67,67,67,67,67,66,66,68,67,66,66,67,66,67,66,67,66,67,66,0,0,0,77,78,75,78,78,75,78,77,75,78,77,75,78,77,75,78,77,77,75,78,77,75,77,75,77,75,78,77,77,75,78,77,78,77,78,78,78,78,78,78,75,78,77,75,78,78,78,78,78,75,75,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,75,77,78,75,78,77,77,77,77,77,75,78,77,75,78,77,78,78,78,75,78,77,78,78,77,78,78,75,78,77,0,0,84,0,0,0,0,84,0,0,79,79,79,79,85,87,85,79,81,86,83,84,87,85,79,81,86,83,84,85,79,81,86,83,84,85,79,81,86,83,84,79,85,79,81,86,83,84,85,85,79,81,81,86,86,83,83,84,84,87,85,79,81,86,83,84,85,79,79,79,85,79,79,85,79,79,85,85,86,79,85,79,87,85,79,81,86,83,84,87,85,79,85,79,85,87,86,85,85,85,79,79,85,79,81,86,83,84,81,86,83,84,87,85,79,81,86,83,84,83,87,85,79,81,86,83,84,87,85,79,81,86,83,84,86,87,85,79,81,86,83,84,0,0,0,0,89,107,92,108,89,107,92,108,89,89,92,89,92,89,107,108,89,107,92,108,89,92,92,107,108,89,89,92,92,89,89,107,92,108,108,89,89,89,89,92,89,89,92,89,107,92,108,89,107,92,108,89,89,107,92,108,89,107,92,108,0,0,0,97,97,0,0,0,0,70,70,74,98,74,74,70,70,70,70,70,102,103,70,98,99,97,74,102,103,70,98,99,97,74,70,99,102,102,103,103,70,98,99,74,70,98,99,74,98,99,70,74,98,74,70,70,98,99,97,74,70,70,70,70,98,99,97,97,74,102,103,70,98,99,97,74,70,70,70,70,70,70,70,70,70,70,70,102,103,70,98,99,97,74,102,103,70,74,74,98,70,70,74,70,102,103,70,98,99,74,70,98,99,74,97,70,70,70,102,103,70,98,99,97,74,70,70,102,103,70,98,99,97,74,70,98,99,70,70,98,74,74,74,102,103,70,98,99,97,74,70,102,103,70,98,99,97,74,70,70,70],"f":"```````````````````````{{{d{{b{c}}}}}{{d{{h{cf}}}}}{jl}}{{}n}{{{d{A`}}}Ab}{{{d{Ab}}}Ab}{{{d{Ad}}}Ab}{{{d{Af}}}Ab}``{{{d{AhAj}}Aj}Al}{{{d{Ah{b{c}}}}e}Al{jl}{}}{{{d{n}}}{{d{c}}}{}}{{{d{n}}}{{d{An}}}}{{{d{n}}}{{d{{Bb{B`}}}}}}{{{d{n}}}{{d{{Bd{B`}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000000020{{{d{Ahc}}}{{d{Ahe}}}{}{}}00000000`{{{d{{b{c}}}}}{{b{c}}}j}{{{d{{Bf{c}}}}}{{Bf{c}}}j}{{{d{Bh}}}Bh}={{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{{Bj{c}}}}}{{Bj{c}}}j}{{{d{n}}}n}{{{d{{Bl{c}}}}}{{Bl{c}}}j}{{{d{c}}{d{Ahe}}}Al{}{}}00000000{{{Bf{{d{c}}}}}{{Bf{c}}}j}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}Bnl}{{{d{Bh}}{d{Bh}}}Bn}{{{d{Ab}}{d{Ab}}}Bn}{{{d{Ad}}{d{Ad}}}Bn}{{{d{Af}}{d{Af}}}Bn}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}Bnl}{{{d{n}}{d{n}}}Bn}``{{{d{A`}}}C`}0{{{d{{Bf{c}}}}}{{Cb{C`}}}A`}{{{d{Ad}}}C`}{{{d{Af}}}C`}`{{}{{b{c}}}{}}{{}Ab}{{}Ad}{{}Af}{{{d{{Bl{c}}}}}{{d{c}}}{{Ch{{Cf{Cd}}}}}}{{{d{Cj}}}n}{c{{Cl{Bh}}}Cn}{c{{Cl{Ab}}}Cn}{c{{Cl{Ad}}}Cn}{c{{Cl{Af}}}Cn}{c{{Cl{n}}}Cn}{{{d{Cj}}}D`}{{}c{}}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}DbDd}{{{d{Bh}}{d{Bh}}}Db}{{{d{Ab}}{d{Ab}}}Db}{{{d{Ad}}{d{Ad}}}Db}{{{d{Af}}{d{Af}}}Db}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}DbDd}{{{d{n}}{d{n}}}Db}{{{d{{b{c}}}}{d{AhDf}}}DhDj}{{{d{{Bf{c}}}}{d{AhDf}}}DhDj}{{{d{Bh}}{d{AhDf}}}Dh}{{{d{Ab}}{d{AhDf}}}Dh}{{{d{Ad}}{d{AhDf}}}Dh}{{{d{Af}}{d{AhDf}}}Dh}{{{d{{Bj{c}}}}{d{AhDf}}}DhDj}{{{d{n}}{d{AhDf}}}Dh}000{cc{}}0{{{Bf{Af}}}Bh}1{{{Dn{{d{C`}}{d{Dl}}}}}Ab}{{{Dn{C`Dl}}}Ab}33333{Ann}4{{{d{E`}}AbEb}Ed}{{{d{E`}}AbEb}Ab}{{{d{E`}}AbEb}Ad}{{{d{E`}}AbEb}Af}{cn{}}05{{{d{{Bb{B`}}}}}{{Cl{nEf}}}}0{{{d{Eh}}}{{Cl{nc}}}{}}{{{d{{El{}{{Ej{c}}}}}}}{{Cl{Abc}}}Dj}{{{d{{Bf{c}}}}{d{Ahe}}}AlEnF`}{{{d{Bh}}{d{Ahc}}}AlF`}{{{d{Ab}}{d{Ahc}}}AlF`}{{{d{Ad}}{d{Ahc}}}AlF`}{{{d{Af}}{d{Ahc}}}AlF`}{{{d{n}}{d{Ahc}}}AlF`}``{{{d{n}}c}{{d{e}}}{{Fb{{Bb{B`}}}}}{}}{{{d{{b{c}}}}{d{Fd}}}{{Cb{{d{c}}}}}{jl}}{{{d{Ah{b{c}}}}{d{Ff}}}e{jl}{}}{{{d{Ah{b{c}}}}Fh{d{Fj}}}e{jl}{}}`{{{d{{b{c}}}}}e{jl}{}}{{{d{Ah{b{c}}}}cf}Db{jl}}{ce{}{}}000000000{{{d{{El{}{{Ej{c}}}}}}AbAb}{{Cl{{Cb{Db}}c}}}Dj}{{{d{{Bf{c}}}}}Db{}}{{{d{Bh}}}Db}{{{d{{Bj{c}}}}C`}DbA`}{{{d{Aj}}}Db}1`{{{d{{b{c}}}}{d{Ff}}}Db{jl}}0{{{d{{b{c}}}}{d{c}}}Db{jl}}``{{{d{Ah{b{c}}}}{d{c}}}Db{jl}}`{{{d{{b{c}}}}{d{Ff}}e}Fl{jl}{{Fn{c}}}}{c{{Bl{c}}}{{Ch{{Cf{Cd}}}}}}{{ce}{{Bl{c}}}{{Ch{{Cf{Cd}}}}}{{Fn{C`}}}}{{{d{Ah{Bl{c}}}}}{{Cb{e}}}{{Ch{{Cf{Cd}}}}}{}}{{{d{Ah{Bl{c}}}}Eb}{{Cb{e}}}{{Ch{{Cf{Cd}}}}}{}}`{{{d{{b{c}}}}}{{d{{G`{{Dn{cFh}}}}}}}{jl}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh}}}}}}}}}{jl}{{Fn{c}}}}{{{d{{Bf{c}}}}{d{{Bf{c}}}}}{{Cb{Bn}}}Gf}{{{d{Bh}}{d{Bh}}}{{Cb{Bn}}}}{{{d{Ab}}{d{Ab}}}{{Cb{Bn}}}}{{{d{Ad}}{d{Ad}}}{{Cb{Bn}}}}{{{d{Af}}{d{Af}}}{{Cb{Bn}}}}{{{d{{Bj{c}}}}{d{{Bj{c}}}}}{{Cb{Bn}}}Gf}{{{d{n}}{d{n}}}{{Cb{Bn}}}}{{{d{Ah{b{c}}}}{d{Ff}}}{{G`{c}}}{jl}}{{{d{Ah{b{c}}}}Fh{d{Fj}}}{{Cb{{d{c}}}}}{jl}}{{{d{{b{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jl}{{Fn{c}}}}`{{{d{Bh}}c}ClGj}{{{d{Ab}}c}ClGj}{{{d{Ad}}c}ClGj}{{{d{Af}}c}ClGj}{{{d{n}}c}ClGj}`{{{d{{b{c}}}}{d{c}}}{{Cb{{d{Fd}}}}}{jl}}`{nc{}}{{{d{c}}}e{}{}}00000000{nAn}{{{d{c}}}Gl{}}{c{{Cl{e}}}{}{}}00000000000000000`{{{d{{b{c}}}}Fh}{{Cb{{Dn{{d{c}}{d{Fj}}}}}}}{jl}}`{{{d{{b{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}Gn}}}{jl}}{{{d{{b{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}}}}{jl}}{{{d{c}}}Hb{}}00000000{D`Bh}{{{d{Ah{b{c}}}}{d{c}}}Db{jl}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{Fd}}}}}}}}j}}}{jl}{{Fn{c}}}}{ce{}{}}00000000```````{{{d{Ah{Hd{ce}}}}{Hd{ce}}}AlA`Aj}{{{d{Ah{Hf{ce}}}}E`C`}{{Hd{c}}}{EdA`}Hh}{{{d{Ah{Hf{ce}}}}{d{E`}}C`}{{Hd{c}}}{EdA`}Hh}{{{d{Ah{Hh{}{{Hj{c}}}}}}c}Al{}}{{{d{Ah{Hf{ce}}}}{Hd{c}}}AlA`Hh}{{{d{Ah{Hf{ce}}}}{Hl{c}}}{{Hd{c}}}A`Hh}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}{{{d{Ah{Hf{ce}}}}i}{{Hd{c}}}A`Hh{{Hn{}{{Gb{c}}}}}{{Hn{}{{Gb{{Dn{{d{Ff}}g}}}}}}}}{{{d{Ah{Hf{ce}}}}g}{{Hd{c}}}A`Hh{{Hn{}{{Gb{{Dn{{d{Ff}}D`}}}}}}}}{{{d{Ah{Hf{ce}}}}g}{{Hd{c}}}A`Hh{{Hn{}{{Gb{{Dn{FfD`}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Ahc}}}{{d{Ahe}}}{}{}}0{{{d{{Hd{ce}}}}}{{Hd{ce}}}jj}{{{d{c}}{d{Ahe}}}Al{}{}}{{}{{Hf{ce}}}{}I`}{{}{{Hd{ce}}}{}I`}{c{{Cl{{Hd{eg}}}}}Cn{lIb}Ib}{{{d{{Hd{ce}}}}{d{{Hd{ce}}}}}DbDdDd}{{{d{{Hf{ce}}}}{d{AhDf}}}DhDjDj}{{{d{{Hd{ce}}}}{d{AhDf}}}DhDjDj}{cc{}}{{{Id{c}}}{{Hd{ce}}}{}I`}1{{{If{c}}}{{Hd{e{If{c}}}}}{}{}}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}``{{{d{Ah{Hh{}{{Hj{c}}}}}}{d{Ff}}}c{}}{{{d{Ah{Hh{}{{Hj{c}}}}}}Fh{d{Fj}}}c{}}`{{{d{{Hh{}{{Hj{c}}}}}}}c{}}{{{d{{Hf{ce}}}}}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}H`c}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}H`D`}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}Ff}{{Hd{c}}}A`Hh}{{{d{Ah{Hf{ce}}}}FhFj}{{Hd{c}}}A`Hh}{ce{}{}}0{{{d{{Hd{ce}}}}}DbA`Aj}{{{d{{Hh{}{{Hj{c}}}}}}{d{Ff}}}Db{}}{c{{Hf{ec}}}{}{}}{{{d{{Hd{ce}}}}g}Cl{lIh}IhGj}{{{d{c}}}e{}{}}{c{{Cl{e}}}{}{}}000{{{d{c}}}Hb{}}077```{{IjIj}Ij}{{{d{{Il{c}}}}}{{h{c{Bl{{Cf{Cd}}}}}}}{jlDj}}{{{d{Ah{If{c}}}}{If{c}}}All}{{{d{Ah{Il{c}}}}{If{c}}}Al{jlDj}}{{{d{Ah{Il{c}}}}e}Al{jlDj}{}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{Ahc}}}{{d{Ahe}}}{}{}}00{{{d{{If{c}}}}}{{If{c}}}j}{{{d{{Il{c}}}}}{{Il{c}}}j}{{{d{Ij}}}Ij}{{{d{c}}{d{Ahe}}}Al{}{}}00`{{}{{If{c}}}{}}{{}{{Il{c}}}{}}{{}Ij}{c{{Cl{{If{e}}}}}Cn{lIb}}{c{{Cl{Ij}}}Cn}{{{d{{If{c}}}}{d{{If{c}}}}}DbDd}{{{d{Ij}}{d{Ij}}}Db}{{{d{{If{c}}}}{d{AhDf}}}DhDj}{{{d{{Il{c}}}}{d{AhDf}}}DhDj}{{{d{Ij}}{d{AhDf}}}Dh}0{cc{}}00{{{d{{Il{c}}}}{d{c}}}{{Cb{{d{{Cf{Cd}}}}}}}{jlDj}}`{{{d{{Il{c}}}}{d{Fd}}}{{Cb{{Dn{cC`}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{Ff}}}e{jlDj}{}}{{{d{Ah{Il{c}}}}Fh{d{Fj}}}e{jlDj}{}}{{{d{{Il{c}}}}}e{jlDj}{}}{{{d{{Il{c}}}}}{{d{{b{{Dn{nC`}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}c{Cf{Cd}}}{{If{c}}}{jlDj}}{ce{}{}}00{{{d{{If{c}}}}}Dbl}{{{d{{Il{c}}}}{d{Ff}}}Db{jlDj}}{{{d{{Il{c}}}}cC`}Db{jlDj}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`Fh}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}C`Fh}}}}}}}}}{jlDj}{{Fn{c}}}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{{Cf{Cd}}}}}}}}}}Gn}}}{jlDj}}``{{{d{{Il{c}}}}{d{c}}}{{Cb{C`}}}{jlDj}}{{{d{{Il{c}}}}}{{h{cC`}}}{jlDj}}10{{{d{{Il{c}}}}}C`{jlDj}}{{{d{Ah{Il{c}}}}{d{c}}C`}Al{jlDj}}{{{d{Ah{Il{c}}}}cC`}Db{jlDj}}{{{d{{Il{c}}}}{d{Ff}}e}Fl{jlDj}{{Fn{c}}}}{C`{{Il{c}}}{}}{{{d{{Il{c}}}}{d{c}}}{{Cb{{Dn{C`Db}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{c}}}{{Cb{{Dn{{Dn{C`{d{Fd}}}}{If{c}}}}}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{Dn{cC`}}Fh}}}}}}}}}{jlDj}}1{{{d{Ah{Il{c}}}}{d{c}}C`}{{Cb{{Dn{{Bl{{Cf{Cd}}}}{If{c}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}{d{{h{cC`}}}}}{{Dn{{h{c{Bl{{Cf{Cd}}}}}}{If{c}}}}}{jlDj}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`{d{Fd}}}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}C`{d{Fd}}}}}}}}j}}}{jlDj}{{Fn{c}}}}{{{d{{Il{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jlDj}{{Fn{c}}}}{{{d{{If{c}}}}e}Cl{lIh}Gj}{{{d{Ij}}c}ClGj}{{{d{{Il{c}}}}cC`}{{Cb{{d{Fd}}}}}{jlDj}}{{{d{c}}}e{}{}}00{{{d{c}}}Gl{}}{{{d{Ij}}}Gh}`0{c{{Cl{e}}}{}{}}00000{{{d{{Il{c}}}}Fh}{{Cb{{Dn{cC`{d{Fj}}}}}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{cC`Fh{d{Fj}}}}}}}}}}}{jlDj}}{{{d{{Il{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{cC`Fh{d{Fj}}}}}}}}}}}{jlDj}}{{{d{c}}}Hb{}}00{{{d{{Il{c}}}}{d{c}}}{{Cb{{Bl{{Cf{Cd}}}}}}}{jlDj}}{{{d{Ah{Il{c}}}}cC`}Db{jlDj}}`{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Dn{C`{d{Fd}}}}}}}}j}}}{jlDj}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{cC`{d{Fd}}}}}}}}j}}}{jlDj}}{ce{}{}}00``````````{{{d{AhIn}}{d{J`}}}{{Cl{AlJb}}}}{{{d{AhIn}}{d{Jd}}C`}{{Cl{J`Jf}}}}{{{d{AhIn}}{d{Jd}}C`Ab}{{Cl{J`Jh}}}}{{{d{AhIn}}Jj}{{Cl{J`Jf}}}}{{{d{Jj}}}Ab}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000000{{{d{Jj}}}Jj}{{{d{In}}}In}{{{d{Jb}}}Jb}{{{d{Jl}}}Jl}{{{d{Jf}}}Jf}{{{d{Jh}}}Jh}{{{d{c}}{d{Ahe}}}Al{}{}}00000{{{d{AhIn}}Ab}{{Cl{J`Jb}}}}{{{d{Jj}}{d{Jj}}}Db}{{{d{In}}{d{In}}}Db}{{{d{Jb}}{d{Jb}}}Db}{{{d{Jl}}{d{Jl}}}Db}{{{d{Jf}}{d{Jf}}}Db}{{{d{Jh}}{d{Jh}}}Db}{{Jjc}{{Cl{JjJj}}}{{Hn{}{{Gb{Ab}}}}}}{{{d{Jj}}{d{AhDf}}}Dh}{{{d{In}}{d{AhDf}}}Dh}{{{d{Jb}}{d{AhDf}}}Dh}0{{{d{Jl}}{d{AhDf}}}Dh}0{{{d{Jf}}{d{AhDf}}}Dh}0{{{d{Jh}}{d{AhDf}}}Dh}0{cc{}}000000{c{{Cl{Jj{Cb{Jj}}}}}{{Hn{}{{Gb{Ab}}}}}}{{{h{C`Dl}}}{{Cl{InJb}}}}{J`{{Cl{InJb}}}}{Dl{{Dn{InJ`}}}}{{{d{Jd}}C`}Jj}{Jj{{Cl{InJb}}}}{{{d{In}}}Dl}{{{d{Jj}}C`}{{Cb{Jj}}}}{{{d{In}}C`}{{Cb{Jj}}}}{{{d{In}}}{{Cl{Abc}}}{}}{{{d{Jj}}}Dl}{{{d{Jj}}}C`}`{{{d{In}}}J`}{{JjAb}Jj}{{{d{AhIn}}Ab}{{Cl{J`Jl}}}}{ce{}{}}0000000{Jjc{}}{{{d{In}}AbAb}{{Cl{{Cb{Db}}c}}}{}}{{{d{Jj}}}Jn}{{{d{In}}}Jn}{AbJj}{{{d{AhJn}}}{{Cb{c}}}{}}`{{{d{Jj}}}{{Cb{Jj}}}}{{JjAb}{{Cl{JjJj}}}}{{{d{Jj}}c}{{`{{K`{}{{Gb{Jj}}}}}}}{{Fn{C`}}}}{{{d{In}}c}{{`{{K`{}{{Gb{Jj}}}}}}}{{Fn{C`}}}}{{{d{In}}}Jj}{{{d{c}}}e{}{}}00000{{{d{c}}}Gl{}}000{c{{Cl{e}}}{}{}}000000`0000000{{{d{c}}}Hb{}}000000`???????````{{{d{c}}}{{d{e}}}{}{}}000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000{{Kbe}Kb{{Gn{}{{Gb{Fh}}}}Kd}{{Hn{}{{Kf{c}}{Gb{Fh}}}}}}{{Kbe}Kb{{Gn{}{{Gb{f}}}}Kd}{{Hn{}{{Kf{c}}{Gb{f}}}}}}{{{Kh{c}}cg}{{Kh{c}}}{lj}{{K`{}{{Gb{{Dn{C`f}}}}}}Kd}{{Hn{}{{Kf{e}}}}}}``{{Kbe}Kb{{Gn{}{{Gb{H`}}}}Kd}{{Hn{}{{Kf{c}}{Gb{H`}}}}}}``{cc{}}000{JjKb}{Jj{{Kh{c}}}{lj}}{{Jj{d{{Il{c}}}}}{{Kh{c}}}{Djlj}}``{{Kbc}Kb{{Kj{{d{Fh}}}}KdKl}}{{Kbc}Kb{{Kj{{d{Fd}}}}KdKl}}{{{Kh{c}}e}{{Kh{c}}}{Kdlj}{{Kj{cC`{d{Fd}}}}KdKlj}}{{{Kh{c}}ce}{{Kh{c}}}{Kdlj}{{Kj{C`{d{Fd}}}}KdKl}}{{Kbc}Kb{{Kj{{d{H`}}}}KdKl}}{ce{}{}}000``{{Kb{d{{Il{c}}}}e}Kb{jlDjKdKl}{{Fn{c}}}}{{Kbe}Kb{{Gn{}{{Gb{Fh}}}}Kd}{{Hn{}{{Kf{c}}}}}}{{Kbe}Kb{{Gn{}{{Gb{f}}}}Kd}{{Hn{}{{Kf{c}}}}}}>{{Kbe}Kb{{Gn{}{{Gb{H`}}}}Kd}{{Hn{}{{Kf{c}}}}}}``{c{{Cl{e}}}{}{}}0000000`{{{d{c}}}Hb{}}0006666`````````{{{d{{Hl{c}}}}}{{d{{G`{{Dn{cH`}}}}}}}{}}{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Id{c}}}}}{{`{{K`{}{{Gb{C`}}}}}}}A`}``{{{d{Ah{Id{c}}}}{Id{c}}}All}{{{d{Ah{Hl{c}}}}{Id{c}}}Al{jl}}{{{d{Ah{Hl{c}}}}{Hl{c}}}{{Id{c}}}{jl}}{{{d{{Hl{c}}}}}{{d{{Hl{c}}}}}{}}{{{d{{Hl{c}}}}{d{e}}Abik}IjA`{{El{}{{Ej{Kn}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Kj{{d{g}}{d{Fd}}}{{L`{Db}}}}}}{{{d{Ah{Hl{c}}}}e}{{Id{c}}}{jl}{{Hn{}{{Gb{{Dn{FfD`}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ahc}}}{{d{Ahe}}}{}{}}000000{{{d{{Hl{c}}}}{d{Ff}}}{{Cl{GhLb}}}{}}`{c{{Cb{Gh}}}{}}{c{{Cb{Fl}}}{}}01{{{d{{Hl{c}}}}}{{Hl{c}}}j}{{{d{{Ld{ce}}}}}{{Ld{ce}}}jj}{{{d{{Lf{ce}}}}}{{Lf{ce}}}jj}{{{d{{Id{c}}}}}{{Id{c}}}j}{{{d{c}}{d{Ahe}}}Al{}{}}000{{{d{{Ld{ce}}}}{d{{Ld{ce}}}}}Bnll}{{{d{{Lf{ce}}}}{d{{Lf{ce}}}}}Bnll}{{}{{Hl{c}}}{}}{{}{{Id{c}}}{}}{{{d{{Ld{ce}}}}}{{d{g}}}{}{}{}}{c{{Cl{{Id{e}}}}}Cn{lIb}}{{{d{{Hl{c}}}}{d{Ff}}}{{`{{K`{}{{Gb{{Dn{EbH`}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{{Hl{c}}}}}DbDd}{{{d{{Ld{ce}}}}{d{{Ld{ce}}}}}DbDdDd}{{{d{{Lf{ce}}}}{d{{Lf{ce}}}}}DbDdDd}{{{d{Lb}}{d{Lb}}}Db}{{{d{{Id{c}}}}{d{{Id{c}}}}}DbDd}{{{d{{Hl{c}}}}{d{e}}Abi}{{`{{K`{}{{Gb{{Dn{g{Bj{c}}}}}}}}}}}A`{{El{}{{Ej{Kn}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{AhDf}}}DhDj}{{{d{{Ld{ce}}}}{d{AhDf}}}DhDjDj}{{{d{{Lf{ce}}}}{d{AhDf}}}DhDjDj}{{{d{Lb}}{d{AhDf}}}Dh}0{{{d{{Id{c}}}}{d{AhDf}}}DhDj}{cc{}}000000{{{d{{Hl{c}}}}}{{`{{K`{}{{Gb{{Ld{{Lh{Ff}}c}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{e}}AbH`}{{Cb{{Bf{{d{c}}}}}}}A`{{El{}{{Ej{Kn}}}}}}{{{d{{Hl{c}}}}{d{e}}AbFh}{{Cb{{Dn{{Bf{{d{c}}}}H`}}}}}A`{{El{}{{Ej{Kn}}}}}}{{{d{{Hl{c}}}}H`}{{Cb{{Lh{Ff}}}}}{}}{{{d{{Hl{c}}}}H`}{{Cb{{Ld{{Lh{Ff}}c}}}}}{}}{{{d{{Hl{c}}}}Fh}{{Cb{{d{Fj}}}}}{}}{{{d{{Hl{c}}}}}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}H`c}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}H`D`}{{Id{c}}}{jl}}{{{d{Ah{Hl{c}}}}e}{{Id{c}}}{jl}{{Lj{{Lh{Ff}}}}}}{{{d{Ah{Hl{c}}}}FhFj}{{Id{c}}}{jl}}{ce{}{}}00000000{{{d{{Hl{c}}}}}Db{}}{{{d{{Id{c}}}}}Dbl}``{{{d{{Hl{c}}}}{d{e}}Ab}{{`{{K`{}{{Gb{{Lf{{Lh{Ff}}c}}}}}}}}}A`El}{{{Hl{c}}g}{{Hl{e}}}{jl}{jl}{{Kj{c}{{L`{e}}}}}}{{{Id{c}}g}{{Id{e}}}ll{{Kj{c}{{L`{e}}}}}}{c{{Hl{e}}}{{Hn{}{{Gb{Ff}}}}}{jl}}{{{d{Ah{Ll{cg}}}}}{{Cb{i}}}{}{}{{Kj{Eb{Lh{Ff}}}{{L`{{Cb{e}}}}}}}{}}{{{d{Ah{Ln{cg}}}}}{{Cb{i}}}{}{}{{Kj{EbH`}{{L`{{Cb{e}}}}}}}{}}{{{d{{Hl{c}}}}Fh}{{d{{M`{H`}}}}}{}}{{{d{{Ld{ce}}}}{d{{Ld{ce}}}}}{{Cb{Bn}}}GfGf}{{{d{{Lf{ce}}}}{d{{Lf{ce}}}}}{{Cb{Bn}}}GfGf}{{{d{{Id{c}}}}e}Cl{lIh}Gj}{{{d{c}}}e{}{}}000{{{d{c}}}Gl{}}{{{d{{Hl{c}}}}{d{e}}Abik}{{Cl{Ij}}}A`Elj{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Kj{{d{g}}{d{Fd}}}{{L`{Db}}}}}}{{{d{{Hl{c}}}}{d{e}}Abi}{{`{{K`{}{{Gb{{Cl{{Dn{g{Bj{c}}}}}}}}}}}}}A`Elj{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{c{{Cl{e}}}{}{}}000000{{{d{{Hl{c}}}}{d{e}}AbH`}{{Cl{{Cb{{Bf{{d{c}}}}}}}}}A`El}{{{d{{Hl{c}}}}{d{e}}AbFh}{{Cl{{Cb{{Dn{{Bf{{d{c}}}}H`}}}}}}}A`El}2222222{{{d{{Hl{c}}}}{d{e}}Ab}{{`{{K`{}{{Gb{{Cl{{Lf{{Lh{Ff}}c}}}}}}}}}}}A`El}``{{{d{{Hl{c}}}}H`}{{Cb{{h{C`{d{Fj}}}}}}}{}}{{{d{{Hl{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{C`{d{{M`{H`}}}}}}}}}}}}}{}}`{{{d{{Id{c}}}}}{{`{{K`{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}``{{{d{c}}}Hb{}}000000{{{d{Ah{Hl{c}}}}D`}{{Id{c}}}{jl}}{ce{}{}}000000{{{d{{Hl{c}}}}ei}{{Ll{ci}}}{jl}{{Lj{{Lh{Ff}}}}}{}{{Kj{Eb{Lh{Ff}}}{{L`{{Cb{g}}}}}}}}{{{d{{Hl{c}}}}{d{Ff}}g}{{Ln{cg}}}{}{}{{Kj{EbH`}{{L`{{Cb{e}}}}}}}}{{{d{{Hl{c}}}}H`g}{{Ln{cg}}}{jl}{}{{Kj{EbH`}{{L`{{Cb{e}}}}}}}}","D":"BLl","p":[[5,"SpkTxOutIndex",0,798],[1,"reference"],[5,"ScriptBuf",799],[5,"BTreeMap",800],[10,"Clone",801],[10,"Ord",802],[5,"DescriptorId",0,803],[10,"Anchor",0,804],[5,"BlockId",0,805],[5,"ConfirmationHeightAnchor",0,805],[5,"ConfirmationTimeHeightAnchor",0,805],[0,"mut"],[10,"Append",0,804],[1,"unit"],[5,"Hash",806],[1,"u8"],[1,"slice"],[1,"array"],[6,"ChainPosition",0,805],[6,"ConfirmationTime",0,805],[5,"FullTxOut",0,805],[5,"SpkIterator",0,807],[6,"Ordering",802],[1,"u32"],[6,"Option",808],[6,"DescriptorPublicKey",809],[6,"Descriptor",810],[10,"Borrow",811],[10,"DescriptorExt",0,803],[6,"Result",812],[10,"Deserializer",813],[1,"u64"],[1,"bool"],[10,"PartialEq",802],[5,"Formatter",814],[8,"Result",814],[10,"Debug",814],[5,"BlockHash",815],[1,"tuple"],[5,"Block",816],[1,"usize"],[10,"AnchorFromBlockPosition",0,804],[5,"FromSliceError",817],[1,"str"],[17,"Error"],[10,"ChainOracle",0,818],[10,"Hash",819],[10,"Hasher",819],[10,"SliceIndex",820],[5,"Script",821],[5,"Transaction",822],[5,"OutPoint",822],[5,"TxOut",822],[5,"SignedAmount",823],[10,"RangeBounds",824],[5,"BTreeSet",825],[17,"Item"],[10,"DoubleEndedIterator",826],[10,"PartialOrd",802],[5,"Amount",823],[10,"Serializer",827],[5,"String",828],[10,"ExactSizeIterator",829],[5,"Txid",815],[5,"TypeId",830],[5,"ChangeSet",272],[5,"IndexedTxGraph",272],[10,"Indexer",272],[17,"ChangeSet"],[5,"TxGraph",637],[10,"IntoIterator",831],[10,"Default",832],[10,"Deserialize",813],[5,"ChangeSet",637],[5,"ChangeSet",329,833],[10,"Serialize",827],[5,"Balance",329],[5,"KeychainTxOutIndex",329,833],[5,"LocalChain",431],[8,"ChangeSet",431],[5,"MissingGenesisError",431],[5,"Header",816],[5,"CannotConnectError",431],[6,"ApplyHeaderError",431],[5,"CheckPoint",431],[5,"AlterCheckPointError",431],[5,"CheckPointIter",431],[10,"Iterator",834],[5,"SyncRequest",573],[10,"Send",835],[17,"IntoIter"],[5,"FullScanRequest",573],[10,"FnMut",836],[10,"Sync",835],[6,"Infallible",837],[17,"Output"],[6,"CalculateFeeError",637],[5,"TxNode",637],[5,"CanonicalTx",637],[5,"Arc",838],[10,"Into",837],[5,"TxAncestors",637],[5,"TxDescendants",637],[5,"HashSet",839],[15,"Confirmed",269],[15,"Unconfirmed",269],[5,"SyncResult",573],[5,"FullScanResult",573]],"r":[[0,804],[1,804],[2,804],[3,807],[4,805],[6,818],[7,805],[8,805],[9,805],[10,805],[13,803],[14,803],[16,805],[17,272],[18,807],[19,798],[20,637],[330,833],[331,833]],"b":[[35,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[36,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[119,"impl-Debug-for-DescriptorId"],[120,"impl-Display-for-DescriptorId"],[121,"impl-LowerHex-for-DescriptorId"],[122,"impl-UpperHex-for-DescriptorId"],[127,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[128,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[299,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[301,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[335,"impl-KeychainTxOutIndex%3CK%3E"],[336,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[359,"impl-Debug-for-Balance"],[360,"impl-Display-for-Balance"],[482,"impl-Display-for-MissingGenesisError"],[483,"impl-Debug-for-MissingGenesisError"],[484,"impl-Display-for-AlterCheckPointError"],[485,"impl-Debug-for-AlterCheckPointError"],[486,"impl-Display-for-CannotConnectError"],[487,"impl-Debug-for-CannotConnectError"],[488,"impl-Display-for-ApplyHeaderError"],[489,"impl-Debug-for-ApplyHeaderError"],[703,"impl-Debug-for-CalculateFeeError"],[704,"impl-Display-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALgBSgASAAAAFQAAABkAAAAbAAIAIQABACQAFQA7ABEATgAGAFoAAQBdAAMAYwAEAGkAEgB+AAAAgAABAIcAAACKAAQAkAACAJQABQCcAAAAngABAKEAAACsAAAAtQAAALoAAAC+AAEAwwAGAM0ABQDWAAkA4QASAPkACAAFAQgAFQEAABsBAAAfAQsALAEAAC4BAAA9AQAAQAEJAE0BAABRAQwAXwEKAHABAgB5AQAAkgEBAJUBAwCcAQUApQECAK0BAgC/ARkA2gEFAOEBCQD7AQAACQICAA8CAAAWAhAAKAINADcCBgBCAgcAbQIHAHYCBwCMAgAAjwIAAJICDQCiAhEAtQIEAL0CBQDcAgEA3wIAAOYCAQDpAgcA9AIGAP0CBgANAwYAFQMGAA=="}],\
["bdk_coin_select",{"t":"FFGGFFPIPFGPPPFGFPPSPPPPPFNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNONONNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNOOOONNNNONOOOOONNNNONNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOOON","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","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":[[0,"bdk_coin_select"],[235,"bdk_coin_select::bnb"],[236,"core::cmp"],[237,"bdk_coin_select::coin_selector"],[238,"core::iter::traits::iterator"],[239,"core::option"],[240,"core::convert"],[241,"core::result"],[242,"core::fmt"],[243,"core::time"],[244,"bitcoin::blockdata::transaction"],[245,"core::hash"],[246,"alloc::vec"],[247,"core::marker"],[248,"alloc::string"],[249,"core::any"]],"i":[0,0,0,0,0,0,41,0,22,0,0,18,18,22,0,0,0,41,41,0,18,18,11,11,11,0,2,6,7,2,16,2,7,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,6,6,15,16,6,17,18,7,11,12,15,16,6,17,18,7,11,12,11,0,6,6,6,12,16,16,6,15,18,11,7,7,12,12,6,15,16,6,17,17,18,18,7,11,11,12,2,41,2,34,22,22,22,15,16,6,17,18,7,11,12,16,11,15,41,2,34,22,15,16,6,17,18,7,11,12,2,34,6,15,6,16,16,16,16,16,2,15,6,34,6,11,2,2,12,2,2,6,6,6,6,7,6,6,6,6,6,6,2,16,16,16,15,16,6,17,18,7,11,12,17,18,11,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,6,6,15,41,2,34,22,15,16,6,17,18,7,11,12,12,15,12,41],"f":"``````````````````````````{{{f{b{d{c}}}}c}hj}{{{f{l}}}h}{{{f{n}}{f{{A`{c}}}}}{{`{{Ad{}{{Ab{{f{c}}}}}}}}}{}}{{{f{b{d{c}}}}}hj}``{{{f{n}}}{{Aj{{f{Af}}{f{Ah}}}}}}{{{f{c}}}{{f{e}}}{}{}}00000000000{{{f{bc}}}{{f{be}}}{}{}}00000000000{{{f{l}}Al}{{f{An}}}}`{{{f{An}}}An}{{{f{B`}}}B`}{{{f{l}}}l}{{{f{Bb}}}Bb}{{{f{Bd}}}Bd}{{{f{n}}}n}{{{f{Af}}}Af}{{{f{Ah}}}Ah}{{{f{c}}{f{be}}}Bf{}{}}0000000{{{f{Af}}{f{Af}}}Bh}{{cl}{{Bj{l}}}{{Bn{Bl}}}}{{{f{l}}}C`}{{{f{l}}}Cb}{{{f{bl}}Al}h}`{{{f{B`}}}C`}`3{{{f{An}}Cd}C`}{{{f{Bd}}{f{Bd}}}h}{{{f{Af}}{f{Af}}}h}```{{{f{Ah}}}Cd}{{{f{l}}}{{Cf{nBb}}}}{{{f{An}}{f{bCh}}}Cj}{{{f{B`}}{f{bCh}}}Cj}{{{f{l}}{f{bCh}}}Cj}{{{f{Bb}}{f{bCh}}}Cj}0{{{f{Bd}}{f{bCh}}}Cj}0{{{f{n}}{f{bCh}}}Cj}{{{f{Af}}{f{bCh}}}Cj}0{{{f{Ah}}{f{bCh}}}Cj}{{{f{b{d{c}}}}h}Bfj}{cc{}}00{AlBl}{ClBl}222222222{{{f{{A`{Cn}}}}{f{Cn}}Cb}B`}{{{f{Af}}{f{bc}}}BfD`}`{ce{}{}}00000000000{{{d{c}}{f{{Db{c}}}}}{{Dd{c}}}j}1{{{f{l}}}h}`{{{f{l}}Al}h}{{{f{B`}}}Cd}````{{l{Df{{Aj{Al{f{An}}}}}}c}{{d{c}}}j}{{DhCbh}An}{{{f{{Df{An}}}}{f{B`}}}l}{{{f{b{Dd{c}}}}}{{Bj{e}}}{jDjDl}{}}`{{{f{Af}}{f{Af}}}{{Bj{Bh}}}}`````{{{f{bl}}Al}h}{{{f{bl}}}Bf}{{{f{bl}}}{{Cf{nBb}}}}{{{f{l}}}{{`{{Ad{}{{Ab{{Aj{Al{f{An}}}}}}}}}}}}`{{{f{l}}}Dh}{{{f{l}}}Al}{{{f{l}}}C`}{{{f{l}}}{{`{{Ad{}{{Ab{Al}}}}}}}}1{{{f{l}}}Cb}````{{{f{c}}}e{}{}}0000000{{{f{c}}}Dn{}}00{c{{Cf{e}}}{}{}}00000000000000000000000{{{f{c}}}E`{}}0000000000095`{ce{}{}}00000000000```{{{f{Eb}}}h}","D":"Hh","p":[[0,"mut"],[5,"Bnb",0,235],[1,"reference"],[1,"bool"],[10,"Ord",236],[5,"CoinSelector",0,237],[5,"Selection",0,237],[1,"slice"],[17,"Item"],[10,"Iterator",238],[6,"ExcessStrategyKind",0,237],[5,"ExcessStrategy",0,237],[1,"tuple"],[1,"usize"],[5,"WeightedValue",0,237],[5,"CoinSelectorOpt",0,237],[5,"SelectionError",0,237],[6,"SelectionConstraint",0,237],[1,"unit"],[6,"Ordering",236],[6,"Option",239],[6,"BnbLimit",0,235],[10,"Into",240],[1,"i64"],[1,"u32"],[1,"f32"],[6,"Result",241],[5,"Formatter",242],[8,"Result",242],[5,"Duration",243],[5,"TxOut",244],[10,"Hasher",245],[8,"DecideStrategy",0,235],[5,"BnbIter",0,235],[5,"Vec",246],[1,"u64"],[10,"Copy",247],[10,"Display",242],[5,"String",248],[5,"TypeId",249],[6,"BranchStrategy",0,235]],"r":[[0,235],[1,235],[2,235],[3,235],[4,237],[5,237],[7,235],[9,237],[10,237],[14,237],[15,237],[16,237],[25,237],[76,235]],"b":[[95,"impl-Debug-for-SelectionError"],[96,"impl-Display-for-SelectionError"],[97,"impl-Debug-for-SelectionConstraint"],[98,"impl-Display-for-SelectionConstraint"],[100,"impl-Display-for-ExcessStrategyKind"],[101,"impl-Debug-for-ExcessStrategyKind"],[107,"impl-From%3Cusize%3E-for-BnbLimit"],[108,"impl-From%3CDuration%3E-for-BnbLimit"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKcAFwAAAAAAAgAAAAYAAAAJAAIADgADABcAAgAcAAEAIAAAACIAKgBQAAIAVgAEAFwACwBsAAEAdwABAIcAAQCKAAEAkgANAKEAAACjAAAApgAAAKoAMADcAAwA6gABAA=="}],\
-["bdk_electrum",{"t":"KFFENNNNENNMNNMNNNNNNNNNNNN","n":["ElectrumExt","ElectrumFullScanResult","ElectrumSyncResult","bdk_chain","borrow","borrow","borrow_mut","borrow_mut","electrum_client","from","from","full_scan","into","into","sync","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","with_confirmation_height_anchor","with_confirmation_height_anchor","with_confirmation_time_height_anchor","with_confirmation_time_height_anchor"],"q":[[0,"bdk_electrum"],[27,"bdk_electrum::electrum_ext"],[28,"bdk_chain::spk_client"],[29,"electrum_client::types"],[30,"core::result"],[31,"core::cmp"],[32,"core::clone"],[33,"core::any"],[34,"bdk_chain::chain_data"],[35,"electrum_client::api"]],"i":[0,0,0,0,7,13,7,13,0,7,13,3,7,13,3,7,13,7,13,7,13,7,13,7,13,7,13],"f":"````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0`{cc{}}0{{{b{f}}{h{c}}jjl}{{Ab{{n{c}}A`}}}{AdAf}}{ce{}{}}0{{{b{f}}Ahjl}{{Ab{AjA`}}}}{c{{Ab{e}}}{}{}}000{{{b{c}}}Al{}}033{{{n{c}}}{{B`{cAn}}}{}}{Aj{{Bb{An}}}}{{{n{c}}{b{e}}}{{Ab{{B`{cBd}}A`}}}{}Bf}{{Aj{b{c}}}{{Ab{{Bb{Bd}}A`}}}Bf}","D":"Al","p":[[1,"reference"],[0,"mut"],[10,"ElectrumExt",0,27],[5,"FullScanRequest",28],[1,"usize"],[1,"bool"],[5,"ElectrumFullScanResult",0,27],[6,"Error",29],[6,"Result",30],[10,"Ord",31],[10,"Clone",32],[5,"SyncRequest",28],[5,"ElectrumSyncResult",0,27],[5,"TypeId",33],[5,"ConfirmationHeightAnchor",34],[5,"FullScanResult",28],[5,"SyncResult",28],[5,"ConfirmationTimeHeightAnchor",34],[10,"ElectrumApi",35]],"r":[[0,27],[1,27],[2,27]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA0AAgAEAAUAEAAHAA=="}],\
+["bdk_electrum",{"t":"FFFENNNNNNENNNNNNONNNNNNNNNNNNNNNNNNNNNNN","n":["BdkElectrumClient","ElectrumFullScanResult","ElectrumSyncResult","bdk_chain","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","electrum_client","fetch_tx","fmt","from","from","from","full_scan","inner","into","into","into","new","populate_tx_cache","sync","transaction_broadcast","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with_confirmation_height_anchor","with_confirmation_height_anchor","with_confirmation_time_height_anchor","with_confirmation_time_height_anchor"],"q":[[0,"bdk_electrum"],[41,"bdk_electrum::bdk_electrum_client"],[42,"bitcoin::hash_types::newtypes"],[43,"bitcoin::blockdata::transaction"],[44,"alloc::sync"],[45,"electrum_client::types"],[46,"core::result"],[47,"electrum_client::api"],[48,"core::fmt"],[49,"bdk_chain::spk_client"],[50,"core::cmp"],[51,"core::clone"],[52,"bdk_chain::tx_graph"],[53,"core::convert"],[54,"core::any"],[55,"bdk_chain::chain_data"]],"i":[0,0,0,0,16,23,3,16,23,3,0,3,3,16,23,3,3,3,16,23,3,3,3,3,3,16,23,3,16,23,3,16,23,3,16,23,3,16,23,16,23],"f":"````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00`{{{b{{f{c}}}}h}{{A`{{l{j}}n}}}Ab}{{{b{{f{c}}}}{b{dAd}}}AfAh}{cc{}}00{{{b{{f{c}}}}{Aj{e}}AlAlAn}{{A`{{B`{e}}n}}}Ab{BbBd}}`{ce{}{}}00{c{{f{c}}}Ab}{{{b{{f{c}}}}g}BfAb{}{{Bj{{Bh{e}}}}}}{{{b{{f{c}}}}BlAlAn}{{A`{Bnn}}}Ab}{{{b{{f{c}}}}{b{j}}}{{A`{hn}}}Ab}{c{{A`{e}}}{}{}}00000{{{b{c}}}C`{}}00666{{{B`{c}}}{{Cd{cCb}}}{}}{Bn{{Cf{Cb}}}}{{{B`{c}}{b{{f{e}}}}}{{A`{{Cd{cCh}}n}}}{}Ab}{{Bn{b{{f{c}}}}}{{A`{{Cf{Ch}}n}}}Ab}","D":"Bj","p":[[1,"reference"],[0,"mut"],[5,"BdkElectrumClient",0,41],[5,"Txid",42],[5,"Transaction",43],[5,"Arc",44],[6,"Error",45],[6,"Result",46],[10,"ElectrumApi",47],[5,"Formatter",48],[8,"Result",48],[10,"Debug",48],[5,"FullScanRequest",49],[1,"usize"],[1,"bool"],[5,"ElectrumFullScanResult",0,41],[10,"Ord",50],[10,"Clone",51],[1,"unit"],[5,"TxGraph",52],[10,"AsRef",53],[5,"SyncRequest",49],[5,"ElectrumSyncResult",0,41],[5,"TypeId",54],[5,"ConfirmationHeightAnchor",55],[5,"FullScanResult",49],[5,"SyncResult",49],[5,"ConfirmationTimeHeightAnchor",55]],"r":[[0,41],[1,41],[2,41]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABQAAwAEAAcADQAAABoACwA="}],\
["bdk_esplora",{"t":"IKKEMMMM","n":["Error","EsploraAsyncExt","EsploraExt","esplora_client","full_scan","full_scan","sync","sync"],"q":[[0,"bdk_esplora"],[8,"bdk_esplora::blocking_ext"],[9,"bdk_chain::spk_client"],[10,"core::result"],[11,"core::cmp"],[12,"core::clone"],[13,"bdk_esplora::async_ext"],[14,"core::future::future"],[15,"alloc::boxed"],[16,"core::pin"],[17,"core::marker"]],"i":[0,0,0,0,1,10,1,10],"f":"````{{{d{b}}{f{c}}hh}{{n{{j{c}}l}}}{A`Ab}}{{{d{Ad}}{f{c}}hh}{{Aj{{Ah{Af}}}}}{A`AbAl}}{{{d{b}}Anh}{{n{B`l}}}}{{{d{Ad}}Anh}{{Aj{{Ah{Af}}}}}}","D":"A`","p":[[10,"EsploraExt",0,8],[1,"reference"],[5,"FullScanRequest",9],[1,"usize"],[5,"FullScanResult",9],[8,"Error",0,8],[6,"Result",10],[10,"Ord",11],[10,"Clone",12],[10,"EsploraAsyncExt",0,13],[10,"Future",14],[5,"Box",15],[5,"Pin",16],[10,"Send",17],[5,"SyncRequest",9],[5,"SyncResult",9]],"r":[[0,8],[1,13],[2,8]],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAQA"}],\
["bdk_file_store",{"t":"FPFGPPPGFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["AggregateChangesetsError","Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset","create_new","drop","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into_iter","iter_changesets","iter_error","load_from_persistence","new","next","open","open_or_create_new","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":[[0,"bdk_file_store"],[75,"bdk_file_store::FileError"],[77,"bdk_file_store::store"],[78,"core::option"],[79,"core::result"],[80,"bdk_chain::tx_data_traits"],[81,"serde::ser"],[82,"serde::de"],[83,"core::marker"],[84,"std::io::error"],[85,"std::path"],[86,"core::convert"],[87,"bdk_file_store::entry_iter"],[88,"core::fmt"],[89,"anyhow"],[90,"std::fs"],[91,"alloc::string"],[92,"core::any"]],"i":[0,20,0,0,16,20,16,0,0,2,2,19,20,2,5,16,19,20,2,5,16,5,2,19,20,20,2,5,5,16,16,19,20,20,2,5,16,16,19,20,2,5,16,19,2,5,2,19,19,2,2,20,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,2,29,29],"f":"`````````{{{f{b{d{c}}}}}{{l{{h{c}}{j{c}}}}}{nA`AbAdAf}}{{{f{b{d{c}}}}{f{c}}}{{l{AhAj}}}{nA`AbAdAf}}{{{f{c}}}{{f{e}}}{}{}}0000{{{f{bc}}}{{f{be}}}{}{}}0000`{{{f{{An{Al}}}}c}{{l{{d{e}}B`}}}{{Bd{Bb}}}{nA`AbAdAf}}{{{f{b{Bf{c}}}}}Ah{}}{{{f{Bh}}{f{bBj}}}Bl}0{{{f{{d{c}}}}{f{bBj}}}Bl{AfAdBn}}{{{f{{j{c}}}}{f{bBj}}}Bl{}}{{{f{{j{c}}}}{f{bBj}}}BlBn}{{{f{B`}}{f{bBj}}}Bl}0{cc{}}0{AjBh}11{AjB`}2{ce{}{}}00000{{{f{b{d{c}}}}}{{Bf{c}}}{nA`AbAdAf}}`{{{f{b{d{c}}}}}{{C`{{h{c}}}}}{nA`AbAdAf}}{{Cb{f{bCd}}}{{Bf{c}}}{}}{{{f{b{Bf{c}}}}}{{h{e}}}Ab{}}>>{{{f{c}}}Cf{}}00{c{{l{e}}}{}{}}000000000{{{f{c}}}Ch{}}000077777{{{f{b{d{c}}}}{f{c}}}{{C`{Ah}}}{nA`AbAdAf}}``","D":"Ch","p":[[0,"mut"],[5,"Store",0,77],[1,"reference"],[6,"Option",78],[5,"AggregateChangesetsError",0,77],[6,"Result",79],[10,"Append",80],[10,"Serialize",81],[10,"DeserializeOwned",82],[10,"Send",83],[10,"Sync",83],[1,"unit"],[5,"Error",84],[1,"u8"],[1,"slice"],[6,"FileError",0],[5,"Path",85],[10,"AsRef",86],[5,"EntryIter",0,87],[6,"IterError",0,87],[5,"Formatter",88],[8,"Result",88],[10,"Debug",88],[8,"Result",89],[1,"u64"],[5,"File",90],[5,"String",91],[5,"TypeId",92],[15,"InvalidMagicBytes",75]],"r":[[0,77],[2,87],[7,87],[8,77]],"b":[[24,"impl-Display-for-IterError"],[25,"impl-Debug-for-IterError"],[27,"impl-Display-for-AggregateChangesetsError%3CC%3E"],[28,"impl-Debug-for-AggregateChangesetsError%3CC%3E"],[29,"impl-Debug-for-FileError"],[30,"impl-Display-for-FileError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADEABwAMAAkAGAAHACIAAAAlAAAALAAAAC8AAgA0ABkA"}],\
["bdk_hwi",{"t":"FNNNNNNNNNNNN","n":["HWISigner","borrow","borrow_mut","fmt","from","from_device","id","into","sign_transaction","try_from","try_into","type_id","vzip"],"q":[[0,"bdk_hwi"],[13,"bdk_hwi::signer"],[14,"core::fmt"],[15,"hwi::types"],[16,"hwi::error"],[17,"core::result"],[18,"secp256k1::context::alloc_only"],[19,"secp256k1"],[20,"bdk_wallet::wallet::signer"],[21,"bitcoin::psbt"],[22,"core::any"]],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{f}}{b{dh}}}j}{cc{}}{{{b{l}}n}{{Ab{fA`}}}}{{{b{f}}{b{{Af{Ad}}}}}Ah}{ce{}{}}{{{b{f}}{b{dAj}}{b{Al}}{b{{Af{Ad}}}}}{{Ab{AnB`}}}}{c{{Ab{e}}}{}{}}0{{{b{c}}}Bb{}}3","D":"j","p":[[1,"reference"],[0,"mut"],[5,"HWISigner",0,13],[5,"Formatter",14],[8,"Result",14],[5,"HWIDevice",15],[5,"HWIChain",15],[6,"Error",16],[6,"Result",17],[6,"All",18],[5,"Secp256k1",19],[6,"SignerId",20],[5,"Psbt",21],[5,"SignOptions",20],[1,"unit"],[6,"SignerError",20],[5,"TypeId",22]],"r":[[0,13]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgAAwACAAIABwAAAAkABAA="}],\
-searchState.loadedDescShard("bdk_chain", 0, "This crate is a collection of core structures for Bitcoin …\nTrait that “anchors” blockchain data to a specific …\nAn <code>Anchor</code> that can be constructed from a given block, …\nTrait that makes an object appendable.\nMaximum BIP32 derivation index.\nA reference to a block in the canonical chain.\nHow many confirmations are needed f or a coinbase output …\nRepresents a service that tracks the blockchain.\nRepresents the observed position of some chain data.\nAn <code>Anchor</code> implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nAn <code>Anchor</code> implementation that also records the exact …\nThe chain data is seen as confirmed, and in anchored by <code>A</code>.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the ID of a descriptor, defined as the sha256 …\nError type.\nA <code>TxOut</code> with as much data as we can retrieve about it\nAn iterator for derived script pubkeys.\nAn index storing <code>TxOut</code>s that have a script pubkey that …\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nThe script pubkeys that are being tracked by the index.\nReturns the <code>BlockId</code> that the associated blockchain data is …\nThe anchor block.\nThe anchor block.\nAppend another object of the same type onto <code>self</code>.\nReturns a reference to the inner hash (sha256, sh256d …\nThe position of the transaction in <code>outpoint</code> in the overall …\nMaps a <code>ChainPosition<&A></code> into a <code>ChainPosition<A></code> by …\nThe exact confirmation height of the transaction.\nThe confirmation height of the transaction being anchored.\nGet the upper bound of the chain data’s confirmation …\nGet the upper bound of the chain data’s confirmation …\nDetermines the upper bound of the confirmation height.\nThe confirmation time of the transaction being anchored.\nGet a reference to the internal descriptor.\nReturns the descriptor id, calculated as the sha256 of the …\nReturns the minimum value (in satoshis) at which an output …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct the anchor from a given <code>block</code>, block height and …\nCreates this wrapper type from the inner hash type.\nGet the best chain’s chain tip.\nThe hash of the block.\nThe height of the block.\nReturns the index associated with the script pubkey.\nContains the <code>IndexedTxGraph</code> and associated types. Refer to …\nAdds a script pubkey to scan for. Returns <code>false</code> and does …\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nDetermines whether <code>block</code> of <code>BlockId</code> exists as an ancestor …\nReturns whether <code>ChainPosition</code> is confirmed or not.\nReturns whether <code>ConfirmationTime</code> is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain <code>tip</code>.\nReturns whether the structure is considered empty.\nWhether the <code>txout</code> is considered mature.\nWhether this output is on a coinbase transaction.\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at <code>index</code> has been used …\nModule for keychain related structures.\nThe <code>LocalChain</code> is a local implementation of <code>ChainOracle</code>.\nMarks the script pubkey at <code>index</code> as used even though it …\nComputes the net value transfer effect of <code>tx</code> on the script …\nCreate a new script pubkey iterator from <code>descriptor</code>.\nCreate a new script pubkey iterator from <code>descriptor</code> and a …\nThe location of the <code>TxOut</code>.\nGet a reference to the set of indexed outpoints.\nIterates over all the outputs with script pubkeys in an …\nScans a transaction’s outputs for matching script …\nScan a single <code>TxOut</code> for a matching script pubkey and …\nComputes the total value transfer effect <code>tx</code> has on the …\nThe txid and chain position of the transaction (if any) …\nReturns the script that has been inserted at the <code>index</code>.\nHelper types for spk-based blockchain clients.\nReturns the inner hash (sha256, sh256d etc.).\nModule for structures that store and traverse transactions.\nReturns the txout and script pubkey index of the <code>TxOut</code> at …\nThe <code>TxOut</code>.\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nConstruct an unconfirmed variant using the given <code>last_seen</code> …\nUndoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …\nIterates over all unused script pubkeys in an index range.\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an <code>IndexedTxGraph</code>.\nThe resultant “changeset” when new transaction data is …\nThe <code>IndexedTxGraph</code> combines a <code>TxGraph</code> and an <code>Indexer</code> …\nUtilities for indexing transaction data.\nBatch insert all transactions of the given <code>block</code> of <code>height</code>.\nBatch insert all transactions of the given <code>block</code> of <code>height</code>…\nApply changeset to itself.\nApplies the <code>ChangeSet</code> to the <code>IndexedTxGraph</code>.\nApply an <code>update</code> directly.\nBatch insert transactions, filtering out those that are …\nBatch insert unconfirmed transactions, filtering out those …\nBatch insert unconfirmed transactions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a reference of the internal transaction graph.\n<code>TxGraph</code> changeset.\nTransaction index.\nScans a transaction for relevant outpoints, which are …\nScan and index the given <code>outpoint</code> and <code>txout</code>.\n<code>Indexer</code> changeset.\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty <code>Indexer</code>.\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty …\nInsert an <code>anchor</code> for a given transaction.\nInsert a unix timestamp of when a transaction is seen in …\nInsert and index a transaction into the graph.\nInsert a floating <code>txout</code> of given <code>outpoint</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nDetermines whether the transaction should be included in …\nConstruct a new <code>IndexedTxGraph</code> with a given <code>index</code>.\nBalance, differentiated into various categories.\nRepresents updates to the derivation index of a …\n<code>KeychainTxOutIndex</code> controls how script pubkeys are …\nGet unbounded spk iterators for all keychains.\nAppend another <code>ChangeSet</code> into self.\nApplies the derivation changeset to the <code>KeychainTxOutIndex</code>…\nConfirmed and immediately spendable balance\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nAll coinbase outputs not yet matured\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal <code>SpkTxOutIndex</code>.\nInsert a descriptor with a keychain associated to it.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nReturns whether the changeset are empty.\nReturns whether the spk under the <code>keychain</code>’s <code>index</code> has …\nIterate over all <code>OutPoint</code>s that have <code>TxOut</code>s with script …\nIterate over <code>OutPoint</code>s that have script pubkeys derived …\nReturn the map of the keychain to descriptors.\nContains the keychains that have been added and their …\nContains for each descriptor_id the last revealed index of …\nGet the last derivation index revealed for <code>keychain</code>. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the <code>keychain</code> where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until <code>target_index</code> (inclusive).\nMarks the script pubkey at <code>index</code> as used even though the …\nComputes the net value that this transaction gives to the …\nConstruct a <code>KeychainTxOutIndex</code> with the given <code>lookahead</code>.\nGet the next derivation index for <code>keychain</code>. The next index …\nGets the next unused script pubkey in the keychain. I.e., …\nGet the set of indexed outpoints, corresponding to tracked …\nAttempts to reveal the next script pubkey for <code>keychain</code>.\nReveals script pubkeys of the <code>keychain</code>’s descriptor <strong>up </strong>…\nConvenience method to call <code>Self::reveal_to_target</code> on …\nIterate over revealed spks of the given <code>keychain</code>.\nIterate over revealed spks of keychains in <code>range</code>\nComputes the total value transfer effect <code>tx</code> has on the …\nReturn the script that exists under the given <code>keychain</code>’s …\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nReturn the <code>TxOut</code> of <code>outpoint</code> if it has been indexed, and …\nIterate over known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nGet an unbounded spk iterator over a given <code>keychain</code>. …\nUndoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …\nUnconfirmed UTXOs received from an external wallet\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nRepresents a failure when trying to insert/remove a …\nThe error type for <code>LocalChain::apply_header_connected_to</code>.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe <code>ChangeSet</code> represents changes to <code>LocalChain</code>.\nA <code>LocalChain</code> checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when <code>connected_to</code> block conflicts with either the …\nThis is a local implementation of <code>ChainOracle</code>.\nAn error which occurs when a <code>LocalChain</code> is constructed …\nApply the given <code>changeset</code>.\nUpdate the chain with a given <code>Header</code> connecting it with …\nUpdate the chain with a given <code>Header</code> at <code>height</code> which you …\nApplies the given <code>update</code> to the chain.\nGet the <code>BlockId</code> of the checkpoint.\nRemoves blocks from (and inclusive of) the given <code>block_id</code>.\nExtends the checkpoint linked list by a iterator of block …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a checkpoint from a list of <code>BlockId</code>s in …\nConstructs a <code>LocalChain</code> from a <code>BTreeMap</code> of height to …\nConstruct a <code>LocalChain</code> from an initial <code>changeset</code>.\nConstruct <code>LocalChain</code> from genesis <code>hash</code>.\nConstruct a checkpoint from the given <code>header</code> and block …\nConstruct a <code>LocalChain</code> from a given <code>checkpoint</code> tip.\nGet the genesis hash.\nGet checkpoint at <code>height</code>.\nGet checkpoint at given <code>height</code> (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial <code>ChangeSet</code>, meaning that it can be …\nInserts <code>block_id</code> at its height within the chain.\nInsert a <code>BlockId</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nIterate from this checkpoint in descending height.\nIterate over checkpoints in descending height order.\nConstruct a new base block at the front of a linked list.\nThe original checkpoint’s block hash which cannot be …\nGet the previous checkpoint in the chain\nPuts another checkpoint onto the linked list representing …\nIterate checkpoints over a height range.\nIterate checkpoints over a height range.\nGet the highest checkpoint.\nThe suggested checkpoint to include to connect the two …\nThe attempted update to the <code>original_block</code> hash.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client full scan.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client sync.\nA cache of <code>Arc</code>-wrapped full transactions, identified by …\nAdd all transactions from <code>TxGraph</code> into the <code>TxCache</code>.\nAdd all transactions from <code>TxGraph</code> into the <code>TxCache</code>.\nAdd to the <code>TxCache</code> held by the request.\nAdd to the <code>TxCache</code> held by the request.\nChain on additional <code>OutPoint</code>s that will be synced against.\nChain on additional <code>Script</code>s that will be synced against.\nChain on additional <code>Script</code>s that will be synced against.\nA checkpoint for the current chain <code>LocalChain::tip</code>. The …\nA checkpoint for the current <code>LocalChain::tip</code>. The full …\nChain on additional <code>Txid</code>s that will be synced against.\nThe update to apply to the receiving <code>LocalChain</code>.\nThe update to apply to the receiving <code>TxGraph</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new <code>SyncRequest</code> from a given <code>cp</code> tip.\nConstruct a new <code>FullScanRequest</code> from a given <code>chain_tip</code>.\nConstruct a new <code>FullScanRequest</code> from a given <code>chain_tip</code> and …\nThe update to apply to the receiving <code>TxGraph</code>.\nThe update to apply to the receiving <code>LocalChain</code>.\nAdd a closure that will be called for <code>OutPoint</code>s previously …\nAdd a closure that will be called for <code>Script</code>s previously …\nAdd a closure that will be called for every <code>Script</code> …\nAdd a closure that will be called for every <code>Script</code> …\nAdd a closure that will be called for <code>Txid</code>s previously …\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nLast active indices for the corresponding keychains (<code>K</code>).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the <code>OutPoint</code>s that will be synced against.\nSet the <code>Script</code>s that will be synced against.\nSet the <code>Script</code>s for a given <code>keychain</code>.\nSet the <code>Txid</code>s that will be synced against.\nTransactions that spend from or to these indexed script …\nIterators of script pubkeys indexed by the keychain index.\nCache of full transactions, so the chain-source can avoid …\nCache of full transactions, so the chain-source can avoid …\nTransactions with these txids.\nErrors returned by <code>TxGraph::calculate_fee</code>.\nA transaction that is included in the chain, or is still …\nThe <code>ChangeSet</code> represents changes to a <code>TxGraph</code>.\nMissing <code>TxOut</code> for one or more of the inputs of the tx\nWhen the transaction is invalid according to the graph it …\nAn iterator that traverses ancestors of a given root …\nAn iterator that traverses transaction descendants.\nA graph of transactions and spends.\nA transaction node in the <code>TxGraph</code>.\nGet all transaction anchors known by <code>TxGraph</code>.\nIterate over all tx outputs known by <code>TxGraph</code>.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies <code>ChangeSet</code> to <code>TxGraph</code>.\nExtends this graph with another so that <code>self</code> becomes the …\nGet the total balance of <code>outpoints</code> that are in <code>chain</code> of …\nBatch insert unconfirmed transactions.\nCalculates the fee of a given transaction. Returns …\nHow the transaction is observed as (confirmed or …\nGiven a transaction, return an iterator of txids that …\nGet a filtered list of outputs from the given <code>outpoints</code> …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by <code>TxGraph</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIterate over all full transactions in the graph.\nGet the position of the transaction in <code>chain</code> with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns <code>Some</code> for full …\nGet a transaction node by txid. This only returns <code>Some</code> for …\nObtains a single tx output (if any) at the specified …\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty <code>TxGraph</code>.\nInserts the given <code>anchor</code> into <code>TxGraph</code>.\nInserts the given <code>seen_at</code> for <code>txid</code> into <code>TxGraph</code>.\nInserts the given transaction into <code>TxGraph</code>.\nInserts the given <code>TxOut</code> at <code>OutPoint</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nWhether the graph has any transactions or outputs in it.\nAdded last-seen unix timestamps of transactions.\nThe last-seen unix timestamp of the transaction as …\nList graph transactions that are in <code>chain</code> with <code>chain_tip</code>.\nTransform the <code>TxGraph</code> to have <code>Anchor</code>s of another type.\nTransform the <code>ChangeSet</code> to have <code>Anchor</code>s of another type.\nConstruct a new <code>TxGraph</code> from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of <code>outpoints</code> that are in <code>chain</code> of …\nGet a filtered list of outputs from the given <code>outpoints</code> …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in <code>chain</code> with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in <code>chain</code> with <code>chain_tip</code>.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given <code>txid</code>.\nIterates over the transactions spending from <code>txid</code>.\nTxid of the transaction.\nIterates over all outpoints contained within <code>ChangeSet</code>.\nAdded txouts.\nAdded transactions.\nUpdate the last seen time for all unconfirmed transactions.\nCreates an iterator that filters and maps ancestor …\nCreates an iterator that both filters and maps conflicting …\nCreates an iterator that filters and maps descendants from …")
\ No newline at end of file
+searchState.loadedDescShard("bdk_chain", 0, "This crate is a collection of core structures for Bitcoin …\nTrait that “anchors” blockchain data to a specific …\nAn <code>Anchor</code> that can be constructed from a given block, …\nTrait that makes an object appendable.\nMaximum BIP32 derivation index.\nA reference to a block in the canonical chain.\nHow many confirmations are needed f or a coinbase output …\nRepresents a service that tracks the blockchain.\nRepresents the observed position of some chain data.\nAn <code>Anchor</code> implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nAn <code>Anchor</code> implementation that also records the exact …\nThe chain data is seen as confirmed, and in anchored by <code>A</code>.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the ID of a descriptor, defined as the sha256 …\nError type.\nA <code>TxOut</code> with as much data as we can retrieve about it\nAn iterator for derived script pubkeys.\nAn index storing <code>TxOut</code>s that have a script pubkey that …\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nThe script pubkeys that are being tracked by the index.\nReturns the <code>BlockId</code> that the associated blockchain data is …\nThe anchor block.\nThe anchor block.\nAppend another object of the same type onto <code>self</code>.\nReturns a reference to the inner hash (sha256, sh256d …\nThe position of the transaction in <code>outpoint</code> in the overall …\nMaps a <code>ChainPosition<&A></code> into a <code>ChainPosition<A></code> by …\nThe exact confirmation height of the transaction.\nThe confirmation height of the transaction being anchored.\nGet the upper bound of the chain data’s confirmation …\nGet the upper bound of the chain data’s confirmation …\nDetermines the upper bound of the confirmation height.\nThe confirmation time of the transaction being anchored.\nGet a reference to the internal descriptor.\nReturns the descriptor id, calculated as the sha256 of the …\nReturns the minimum value (in satoshis) at which an output …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct the anchor from a given <code>block</code>, block height and …\nCreates this wrapper type from the inner hash type.\nGet the best chain’s chain tip.\nThe hash of the block.\nThe height of the block.\nReturns the index associated with the script pubkey.\nContains the <code>IndexedTxGraph</code> and associated types. Refer to …\nAdds a script pubkey to scan for. Returns <code>false</code> and does …\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nDetermines whether <code>block</code> of <code>BlockId</code> exists as an ancestor …\nReturns whether <code>ChainPosition</code> is confirmed or not.\nReturns whether <code>ConfirmationTime</code> is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain <code>tip</code>.\nReturns whether the structure is considered empty.\nWhether the <code>txout</code> is considered mature.\nWhether this output is on a coinbase transaction.\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at <code>index</code> has been used …\nModule for keychain related structures.\nThe <code>LocalChain</code> is a local implementation of <code>ChainOracle</code>.\nMarks the script pubkey at <code>index</code> as used even though it …\nComputes the net value transfer effect of <code>tx</code> on the script …\nCreate a new script pubkey iterator from <code>descriptor</code>.\nCreate a new script pubkey iterator from <code>descriptor</code> and a …\nThe location of the <code>TxOut</code>.\nGet a reference to the set of indexed outpoints.\nIterates over all the outputs with script pubkeys in an …\nScans a transaction’s outputs for matching script …\nScan a single <code>TxOut</code> for a matching script pubkey and …\nComputes the total value transfer effect <code>tx</code> has on the …\nThe txid and chain position of the transaction (if any) …\nReturns the script that has been inserted at the <code>index</code>.\nHelper types for spk-based blockchain clients.\nReturns the inner hash (sha256, sh256d etc.).\nModule for structures that store and traverse transactions.\nReturns the txout and script pubkey index of the <code>TxOut</code> at …\nThe <code>TxOut</code>.\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nConstruct an unconfirmed variant using the given <code>last_seen</code> …\nUndoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …\nIterates over all unused script pubkeys in an index range.\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an <code>IndexedTxGraph</code>.\nThe resultant “changeset” when new transaction data is …\nThe <code>IndexedTxGraph</code> combines a <code>TxGraph</code> and an <code>Indexer</code> …\nUtilities for indexing transaction data.\nBatch insert all transactions of the given <code>block</code> of <code>height</code>.\nBatch insert all transactions of the given <code>block</code> of <code>height</code>…\nApply changeset to itself.\nApplies the <code>ChangeSet</code> to the <code>IndexedTxGraph</code>.\nApply an <code>update</code> directly.\nBatch insert transactions, filtering out those that are …\nBatch insert unconfirmed transactions, filtering out those …\nBatch insert unconfirmed transactions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a reference of the internal transaction graph.\n<code>TxGraph</code> changeset.\nTransaction index.\nScans a transaction for relevant outpoints, which are …\nScan and index the given <code>outpoint</code> and <code>txout</code>.\n<code>Indexer</code> changeset.\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty <code>Indexer</code>.\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty …\nInsert an <code>anchor</code> for a given transaction.\nInsert a unix timestamp of when a transaction is seen in …\nInsert and index a transaction into the graph.\nInsert a floating <code>txout</code> of given <code>outpoint</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nDetermines whether the transaction should be included in …\nConstruct a new <code>IndexedTxGraph</code> with a given <code>index</code>.\nBalance, differentiated into various categories.\nRepresents updates to the derivation index of a …\n<code>KeychainTxOutIndex</code> controls how script pubkeys are …\nGet unbounded spk iterators for all keychains.\nAppend another <code>ChangeSet</code> into self.\nApplies the derivation changeset to the <code>KeychainTxOutIndex</code>…\nConfirmed and immediately spendable balance\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nAll coinbase outputs not yet matured\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal <code>SpkTxOutIndex</code>.\nInsert a descriptor with a keychain associated to it.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nReturns whether the changeset are empty.\nReturns whether the spk under the <code>keychain</code>’s <code>index</code> has …\nIterate over all <code>OutPoint</code>s that have <code>TxOut</code>s with script …\nIterate over <code>OutPoint</code>s that have script pubkeys derived …\nReturn the map of the keychain to descriptors.\nContains the keychains that have been added and their …\nContains for each descriptor_id the last revealed index of …\nGet the last derivation index revealed for <code>keychain</code>. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the <code>keychain</code> where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until <code>target_index</code> (inclusive).\nMarks the script pubkey at <code>index</code> as used even though the …\nComputes the net value that this transaction gives to the …\nConstruct a <code>KeychainTxOutIndex</code> with the given <code>lookahead</code>.\nGet the next derivation index for <code>keychain</code>. The next index …\nGets the next unused script pubkey in the keychain. I.e., …\nGet the set of indexed outpoints, corresponding to tracked …\nAttempts to reveal the next script pubkey for <code>keychain</code>.\nReveals script pubkeys of the <code>keychain</code>’s descriptor <strong>up </strong>…\nConvenience method to call <code>Self::reveal_to_target</code> on …\nIterate over revealed spks of the given <code>keychain</code>.\nIterate over revealed spks of keychains in <code>range</code>\nComputes the total value transfer effect <code>tx</code> has on the …\nReturn the script that exists under the given <code>keychain</code>’s …\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nReturn the <code>TxOut</code> of <code>outpoint</code> if it has been indexed, and …\nIterate over known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nGet an unbounded spk iterator over a given <code>keychain</code>. …\nUndoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …\nUnconfirmed UTXOs received from an external wallet\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nRepresents a failure when trying to insert/remove a …\nThe error type for <code>LocalChain::apply_header_connected_to</code>.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe <code>ChangeSet</code> represents changes to <code>LocalChain</code>.\nA <code>LocalChain</code> checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when <code>connected_to</code> block conflicts with either the …\nThis is a local implementation of <code>ChainOracle</code>.\nAn error which occurs when a <code>LocalChain</code> is constructed …\nApply the given <code>changeset</code>.\nUpdate the chain with a given <code>Header</code> connecting it with …\nUpdate the chain with a given <code>Header</code> at <code>height</code> which you …\nApplies the given <code>update</code> to the chain.\nGet the <code>BlockId</code> of the checkpoint.\nRemoves blocks from (and inclusive of) the given <code>block_id</code>.\nExtends the checkpoint linked list by a iterator of block …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a checkpoint from a list of <code>BlockId</code>s in …\nConstructs a <code>LocalChain</code> from a <code>BTreeMap</code> of height to …\nConstruct a <code>LocalChain</code> from an initial <code>changeset</code>.\nConstruct <code>LocalChain</code> from genesis <code>hash</code>.\nConstruct a checkpoint from the given <code>header</code> and block …\nConstruct a <code>LocalChain</code> from a given <code>checkpoint</code> tip.\nGet the genesis hash.\nGet checkpoint at <code>height</code>.\nGet checkpoint at given <code>height</code> (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial <code>ChangeSet</code>, meaning that it can be …\nInserts <code>block_id</code> at its height within the chain.\nInsert a <code>BlockId</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nIterate from this checkpoint in descending height.\nIterate over checkpoints in descending height order.\nConstruct a new base block at the front of a linked list.\nThe original checkpoint’s block hash which cannot be …\nGet the previous checkpoint in the chain\nPuts another checkpoint onto the linked list representing …\nIterate checkpoints over a height range.\nIterate checkpoints over a height range.\nGet the highest checkpoint.\nThe suggested checkpoint to include to connect the two …\nThe attempted update to the <code>original_block</code> hash.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client full scan.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client sync.\nChain on additional <code>OutPoint</code>s that will be synced against.\nChain on additional <code>Script</code>s that will be synced against.\nChain on additional <code>Script</code>s that will be synced against.\nA checkpoint for the current chain <code>LocalChain::tip</code>. The …\nA checkpoint for the current <code>LocalChain::tip</code>. The full …\nChain on additional <code>Txid</code>s that will be synced against.\nThe update to apply to the receiving <code>LocalChain</code>.\nThe update to apply to the receiving <code>TxGraph</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new <code>SyncRequest</code> from a given <code>cp</code> tip.\nConstruct a new <code>FullScanRequest</code> from a given <code>chain_tip</code>.\nConstruct a new <code>FullScanRequest</code> from a given <code>chain_tip</code> and …\nThe update to apply to the receiving <code>TxGraph</code>.\nThe update to apply to the receiving <code>LocalChain</code>.\nAdd a closure that will be called for <code>OutPoint</code>s previously …\nAdd a closure that will be called for <code>Script</code>s previously …\nAdd a closure that will be called for every <code>Script</code> …\nAdd a closure that will be called for every <code>Script</code> …\nAdd a closure that will be called for <code>Txid</code>s previously …\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nLast active indices for the corresponding keychains (<code>K</code>).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the <code>OutPoint</code>s that will be synced against.\nSet the <code>Script</code>s that will be synced against.\nSet the <code>Script</code>s for a given <code>keychain</code>.\nSet the <code>Txid</code>s that will be synced against.\nTransactions that spend from or to these indexed script …\nIterators of script pubkeys indexed by the keychain index.\nTransactions with these txids.\nErrors returned by <code>TxGraph::calculate_fee</code>.\nA transaction that is included in the chain, or is still …\nThe <code>ChangeSet</code> represents changes to a <code>TxGraph</code>.\nMissing <code>TxOut</code> for one or more of the inputs of the tx\nWhen the transaction is invalid according to the graph it …\nAn iterator that traverses ancestors of a given root …\nAn iterator that traverses transaction descendants.\nA graph of transactions and spends.\nA transaction node in the <code>TxGraph</code>.\nGet all transaction anchors known by <code>TxGraph</code>.\nIterate over all tx outputs known by <code>TxGraph</code>.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies <code>ChangeSet</code> to <code>TxGraph</code>.\nExtends this graph with another so that <code>self</code> becomes the …\nGet the total balance of <code>outpoints</code> that are in <code>chain</code> of …\nBatch insert unconfirmed transactions.\nCalculates the fee of a given transaction. Returns …\nHow the transaction is observed as (confirmed or …\nGiven a transaction, return an iterator of txids that …\nGet a filtered list of outputs from the given <code>outpoints</code> …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by <code>TxGraph</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIterate over all full transactions in the graph.\nGet the position of the transaction in <code>chain</code> with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns <code>Some</code> for full …\nGet a transaction node by txid. This only returns <code>Some</code> for …\nObtains a single tx output (if any) at the specified …\nDetermines the <code>ChangeSet</code> between <code>self</code> and an empty <code>TxGraph</code>.\nInserts the given <code>anchor</code> into <code>TxGraph</code>.\nInserts the given <code>seen_at</code> for <code>txid</code> into <code>TxGraph</code>.\nInserts the given transaction into <code>TxGraph</code>.\nInserts the given <code>TxOut</code> at <code>OutPoint</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nWhether the graph has any transactions or outputs in it.\nAdded last-seen unix timestamps of transactions.\nThe last-seen unix timestamp of the transaction as …\nList graph transactions that are in <code>chain</code> with <code>chain_tip</code>.\nTransform the <code>TxGraph</code> to have <code>Anchor</code>s of another type.\nTransform the <code>ChangeSet</code> to have <code>Anchor</code>s of another type.\nConstruct a new <code>TxGraph</code> from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of <code>outpoints</code> that are in <code>chain</code> of …\nGet a filtered list of outputs from the given <code>outpoints</code> …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in <code>chain</code> with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in <code>chain</code> with <code>chain_tip</code>.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given <code>txid</code>.\nIterates over the transactions spending from <code>txid</code>.\nTxid of the transaction.\nIterates over all outpoints contained within <code>ChangeSet</code>.\nAdded txouts.\nAdded transactions.\nUpdate the last seen time for all unconfirmed transactions.\nCreates an iterator that filters and maps ancestor …\nCreates an iterator that both filters and maps conflicting …\nCreates an iterator that filters and maps descendants from …")
\ No newline at end of file
-searchState.loadedDescShard("bdk_electrum", 0, "This crate is used for updating structures of <code>bdk_chain</code> …\nTrait to extend <code>electrum_client::Client</code> functionality.\nThe result of <code>ElectrumExt::full_scan</code>.\nThe result of <code>ElectrumExt::sync</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFull scan the keychain scripts specified with the …\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nSync a set of scripts with the blockchain (via an Electrum …\nReturn <code>FullScanResult</code> with <code>ConfirmationHeightAnchor</code>.\nReturn <code>SyncResult</code> with <code>ConfirmationHeightAnchor</code>.\nReturn <code>FullScanResult</code> with <code>ConfirmationTimeHeightAnchor</code>.\nReturn <code>SyncResult</code> with <code>ConfirmationTimeHeightAnchor</code>.")
\ No newline at end of file
+searchState.loadedDescShard("bdk_electrum", 0, "This crate is used for updating structures of <code>bdk_chain</code> …\nWrapper around an <code>electrum_client::ElectrumApi</code> which …\nThe result of <code>BdkElectrumClient::full_scan</code>.\nThe result of <code>BdkElectrumClient::sync</code>.\nFetch transaction of given <code>txid</code>.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFull scan the keychain scripts specified with the …\nThe internal <code>electrum_client::ElectrumApi</code>\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCalls <code>U::from(self)</code>.\nCreates a new bdk client from a …\nInserts transactions into the transaction cache so that …\nSync a set of scripts with the blockchain (via an Electrum …\nBroadcasts a transaction to the network.\nReturn <code>FullScanResult</code> with <code>ConfirmationHeightAnchor</code>.\nReturn <code>SyncResult</code> with <code>ConfirmationHeightAnchor</code>.\nReturn <code>FullScanResult</code> with <code>ConfirmationTimeHeightAnchor</code>.\nReturn <code>SyncResult</code> with <code>ConfirmationTimeHeightAnchor</code>.")
\ No newline at end of file
["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_electrum",["",[],["electrum_ext.rs","lib.rs"]]],\
+["bdk_electrum",["",[],["bdk_electrum_client.rs","lib.rs"]]],\
["bdk_esplora",["",[],["async_ext.rs","blocking_ext.rs","lib.rs"]]],\
["bdk_file_store",["",[],["entry_iter.rs","lib.rs","store.rs"]]],\
["bdk_hwi",["",[],["lib.rs","signer.rs"]]],\
<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>
</pre></div><pre class="rust"><code><span class="doccomment">//! Contains the [`IndexedTxGraph`] and associated types. Refer to the
//! [`IndexedTxGraph`] documentation for more.
</span><span class="kw">use </span>alloc::vec::Vec;
<span class="doccomment">/// Determines whether the transaction should be included in the index.
</span><span class="kw">fn </span>is_tx_relevant(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> bool;
}
+
+<span class="kw">impl</span><A, I> AsRef<TxGraph<A>> <span class="kw">for </span>IndexedTxGraph<A, I> {
+ <span class="kw">fn </span>as_ref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>TxGraph<A> {
+ <span class="kw-2">&</span><span class="self">self</span>.graph
+ }
+}
</code></pre></div></section></main></body></html>
\ No newline at end of file
<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>
</pre></div><pre class="rust"><code><span class="doccomment">//! Helper types for spk-based blockchain clients.
</span><span class="kw">use crate</span>::{
- collections::{BTreeMap, HashMap},
- local_chain::CheckPoint,
- ConfirmationTimeHeightAnchor, TxGraph,
+ collections::BTreeMap, local_chain::CheckPoint, ConfirmationTimeHeightAnchor, TxGraph,
};
-<span class="kw">use </span>alloc::{boxed::Box, sync::Arc, vec::Vec};
-<span class="kw">use </span>bitcoin::{OutPoint, Script, ScriptBuf, Transaction, Txid};
+<span class="kw">use </span>alloc::{boxed::Box, vec::Vec};
+<span class="kw">use </span>bitcoin::{OutPoint, Script, ScriptBuf, Txid};
<span class="kw">use </span>core::{fmt::Debug, marker::PhantomData, ops::RangeBounds};
-<span class="doccomment">/// A cache of [`Arc`]-wrapped full transactions, identified by their [`Txid`]s.
-///
-/// This is used by the chain-source to avoid re-fetching full transactions.
-</span><span class="kw">pub type </span>TxCache = HashMap<Txid, Arc<Transaction>>;
-
<span class="doccomment">/// Data required to perform a spk-based blockchain client sync.
///
/// A client sync fetches relevant chain data for a known list of scripts, transaction ids and
///
/// [`LocalChain::tip`]: crate::local_chain::LocalChain::tip
</span><span class="kw">pub </span>chain_tip: CheckPoint,
- <span class="doccomment">/// Cache of full transactions, so the chain-source can avoid re-fetching.
- </span><span class="kw">pub </span>tx_cache: TxCache,
<span class="doccomment">/// Transactions that spend from or to these indexed script pubkeys.
</span><span class="kw">pub </span>spks: Box<<span class="kw">dyn </span>ExactSizeIterator<Item = ScriptBuf> + Send>,
<span class="doccomment">/// Transactions with these txids.
</span><span class="kw">pub fn </span>from_chain_tip(cp: CheckPoint) -> <span class="self">Self </span>{
<span class="self">Self </span>{
chain_tip: cp,
- tx_cache: TxCache::new(),
spks: Box::new(core::iter::empty()),
txids: Box::new(core::iter::empty()),
outpoints: Box::new(core::iter::empty()),
}
}
- <span class="doccomment">/// Add to the [`TxCache`] held by the request.
- ///
- /// This consumes the [`SyncRequest`] and returns the updated one.
- </span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>cache_txs<T>(<span class="kw-2">mut </span><span class="self">self</span>, full_txs: <span class="kw">impl </span>IntoIterator<Item = (Txid, T)>) -> <span class="self">Self
- </span><span class="kw">where
- </span>T: Into<Arc<Transaction>>,
- {
- <span class="self">self</span>.tx_cache = full_txs
- .into_iter()
- .map(|(txid, tx)| (txid, tx.into()))
- .collect();
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add all transactions from [`TxGraph`] into the [`TxCache`].
- ///
- /// This consumes the [`SyncRequest`] and returns the updated one.
- </span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>cache_graph_txs<A>(<span class="self">self</span>, graph: <span class="kw-2">&</span>TxGraph<A>) -> <span class="self">Self </span>{
- <span class="self">self</span>.cache_txs(graph.full_txs().map(|tx_node| (tx_node.txid, tx_node.tx)))
- }
-
<span class="doccomment">/// Set the [`Script`]s that will be synced against.
///
/// This consumes the [`SyncRequest`] and returns the updated one.
///
/// [`LocalChain::tip`]: crate::local_chain::LocalChain::tip
</span><span class="kw">pub </span>chain_tip: CheckPoint,
- <span class="doccomment">/// Cache of full transactions, so the chain-source can avoid re-fetching.
- </span><span class="kw">pub </span>tx_cache: TxCache,
<span class="doccomment">/// Iterators of script pubkeys indexed by the keychain index.
</span><span class="kw">pub </span>spks_by_keychain: BTreeMap<K, Box<<span class="kw">dyn </span>Iterator<Item = (u32, ScriptBuf)> + Send>>,
}
</span><span class="kw">pub fn </span>from_chain_tip(chain_tip: CheckPoint) -> <span class="self">Self </span>{
<span class="self">Self </span>{
chain_tip,
- tx_cache: TxCache::new(),
spks_by_keychain: BTreeMap::new(),
}
}
- <span class="doccomment">/// Add to the [`TxCache`] held by the request.
- ///
- /// This consumes the [`SyncRequest`] and returns the updated one.
- </span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>cache_txs<T>(<span class="kw-2">mut </span><span class="self">self</span>, full_txs: <span class="kw">impl </span>IntoIterator<Item = (Txid, T)>) -> <span class="self">Self
- </span><span class="kw">where
- </span>T: Into<Arc<Transaction>>,
- {
- <span class="self">self</span>.tx_cache = full_txs
- .into_iter()
- .map(|(txid, tx)| (txid, tx.into()))
- .collect();
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add all transactions from [`TxGraph`] into the [`TxCache`].
- ///
- /// This consumes the [`SyncRequest`] and returns the updated one.
- </span><span class="attr">#[must_use]
- </span><span class="kw">pub fn </span>cache_graph_txs<A>(<span class="self">self</span>, graph: <span class="kw-2">&</span>TxGraph<A>) -> <span class="self">Self </span>{
- <span class="self">self</span>.cache_txs(graph.full_txs().map(|tx_node| (tx_node.txid, tx_node.tx)))
- }
-
<span class="doccomment">/// Construct a new [`FullScanRequest`] from a given `chain_tip` and `index`.
///
/// Unbounded script pubkey iterators for each keychain (`K`) are extracted using
--- /dev/null
+<!DOCTYPE html><html lang="en"><head><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/electrum/src/bdk_electrum_client.rs`."><title>bdk_electrum_client.rs - source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../../static.files/src-script-e66d777a5a92e9b2.js"></script><script defer src="../../src-files.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc src"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="src-sidebar-title"><h2>Files</h2></div></nav><div class="sidebar-resizer"></div><main><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="example-wrap"><div data-nosnippet><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>
+</pre></div><pre class="rust"><code><span class="kw">use </span>bdk_chain::{
+ bitcoin::{OutPoint, ScriptBuf, Transaction, Txid},
+ collections::{BTreeMap, HashMap, HashSet},
+ local_chain::CheckPoint,
+ spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
+ tx_graph::TxGraph,
+ BlockId, ConfirmationHeightAnchor, ConfirmationTimeHeightAnchor,
+};
+<span class="kw">use </span>core::str::FromStr;
+<span class="kw">use </span>electrum_client::{ElectrumApi, Error, HeaderNotification};
+<span class="kw">use </span>std::sync::{Arc, Mutex};
+
+<span class="doccomment">/// We include a chain suffix of a certain length for the purpose of robustness.
+</span><span class="kw">const </span>CHAIN_SUFFIX_LENGTH: u32 = <span class="number">8</span>;
+
+<span class="doccomment">/// Wrapper around an [`electrum_client::ElectrumApi`] which includes an internal in-memory
+/// transaction cache to avoid re-fetching already downloaded transactions.
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub struct </span>BdkElectrumClient<E> {
+ <span class="doccomment">/// The internal [`electrum_client::ElectrumApi`]
+ </span><span class="kw">pub </span>inner: E,
+ <span class="doccomment">/// The transaction cache
+ </span>tx_cache: Mutex<HashMap<Txid, Arc<Transaction>>>,
+}
+
+<span class="kw">impl</span><E: ElectrumApi> BdkElectrumClient<E> {
+ <span class="doccomment">/// Creates a new bdk client from a [`electrum_client::ElectrumApi`]
+ </span><span class="kw">pub fn </span>new(client: E) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ inner: client,
+ tx_cache: Default::default(),
+ }
+ }
+
+ <span class="doccomment">/// Inserts transactions into the transaction cache so that the client will not fetch these
+ /// transactions.
+ </span><span class="kw">pub fn </span>populate_tx_cache<A>(<span class="kw-2">&</span><span class="self">self</span>, tx_graph: <span class="kw">impl </span>AsRef<TxGraph<A>>) {
+ <span class="kw">let </span>txs = tx_graph
+ .as_ref()
+ .full_txs()
+ .map(|tx_node| (tx_node.txid, tx_node.tx));
+
+ <span class="kw">let </span><span class="kw-2">mut </span>tx_cache = <span class="self">self</span>.tx_cache.lock().unwrap();
+ <span class="kw">for </span>(txid, tx) <span class="kw">in </span>txs {
+ tx_cache.insert(txid, tx);
+ }
+ }
+
+ <span class="doccomment">/// Fetch transaction of given `txid`.
+ ///
+ /// If it hits the cache it will return the cached version and avoid making the request.
+ </span><span class="kw">pub fn </span>fetch_tx(<span class="kw-2">&</span><span class="self">self</span>, txid: Txid) -> <span class="prelude-ty">Result</span><Arc<Transaction>, Error> {
+ <span class="kw">let </span>tx_cache = <span class="self">self</span>.tx_cache.lock().unwrap();
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(tx) = tx_cache.get(<span class="kw-2">&</span>txid) {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(Arc::clone(tx));
+ }
+
+ drop(tx_cache);
+
+ <span class="kw">let </span>tx = Arc::new(<span class="self">self</span>.inner.transaction_get(<span class="kw-2">&</span>txid)<span class="question-mark">?</span>);
+
+ <span class="self">self</span>.tx_cache.lock().unwrap().insert(txid, Arc::clone(<span class="kw-2">&</span>tx));
+
+ <span class="prelude-val">Ok</span>(tx)
+ }
+
+ <span class="doccomment">/// Broadcasts a transaction to the network.
+ ///
+ /// This is a re-export of [`ElectrumApi::transaction_broadcast`].
+ </span><span class="kw">pub fn </span>transaction_broadcast(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> <span class="prelude-ty">Result</span><Txid, Error> {
+ <span class="self">self</span>.inner.transaction_broadcast(tx)
+ }
+
+ <span class="doccomment">/// Full scan the keychain scripts specified with the blockchain (via an Electrum client) and
+ /// returns updates for [`bdk_chain`] data structures.
+ ///
+ /// - `request`: struct with data required to perform a spk-based blockchain client full scan,
+ /// see [`FullScanRequest`]
+ /// - `stop_gap`: the full scan for each keychain stops after a gap of script pubkeys with no
+ /// associated transactions
+ /// - `batch_size`: specifies the max number of script pubkeys to request for in a single batch
+ /// request
+ /// - `fetch_prev_txouts`: specifies whether or not we want previous `TxOut`s for fee
+ </span><span class="kw">pub fn </span>full_scan<K: Ord + Clone>(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ request: FullScanRequest<K>,
+ stop_gap: usize,
+ batch_size: usize,
+ fetch_prev_txouts: bool,
+ ) -> <span class="prelude-ty">Result</span><ElectrumFullScanResult<K>, Error> {
+ <span class="kw">let </span><span class="kw-2">mut </span>request_spks = request.spks_by_keychain;
+
+ <span class="comment">// We keep track of already-scanned spks just in case a reorg happens and we need to do a
+ // rescan. We need to keep track of this as iterators in `keychain_spks` are "unbounded" so
+ // cannot be collected. In addition, we keep track of whether an spk has an active tx
+ // history for determining the `last_active_index`.
+ // * key: (keychain, spk_index) that identifies the spk.
+ // * val: (script_pubkey, has_tx_history).
+ </span><span class="kw">let </span><span class="kw-2">mut </span>scanned_spks = BTreeMap::<(K, u32), (ScriptBuf, bool)>::new();
+
+ <span class="kw">let </span>update = <span class="kw">loop </span>{
+ <span class="kw">let </span>(tip, <span class="kw">_</span>) = construct_update_tip(<span class="kw-2">&</span><span class="self">self</span>.inner, request.chain_tip.clone())<span class="question-mark">?</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>graph_update = TxGraph::<ConfirmationHeightAnchor>::default();
+ <span class="kw">let </span>cps = tip
+ .iter()
+ .take(<span class="number">10</span>)
+ .map(|cp| (cp.height(), cp))
+ .collect::<BTreeMap<u32, CheckPoint>>();
+
+ <span class="kw">if </span>!request_spks.is_empty() {
+ <span class="kw">if </span>!scanned_spks.is_empty() {
+ scanned_spks.append(
+ <span class="kw-2">&mut </span><span class="self">self</span>.populate_with_spks(
+ <span class="kw-2">&</span>cps,
+ <span class="kw-2">&mut </span>graph_update,
+ <span class="kw-2">&mut </span>scanned_spks
+ .iter()
+ .map(|(i, (spk, <span class="kw">_</span>))| (i.clone(), spk.clone())),
+ stop_gap,
+ batch_size,
+ )<span class="question-mark">?</span>,
+ );
+ }
+ <span class="kw">for </span>(keychain, keychain_spks) <span class="kw">in </span><span class="kw-2">&mut </span>request_spks {
+ scanned_spks.extend(
+ <span class="self">self</span>.populate_with_spks(
+ <span class="kw-2">&</span>cps,
+ <span class="kw-2">&mut </span>graph_update,
+ keychain_spks,
+ stop_gap,
+ batch_size,
+ )<span class="question-mark">?
+ </span>.into_iter()
+ .map(|(spk_i, spk)| ((keychain.clone(), spk_i), spk)),
+ );
+ }
+ }
+
+ <span class="comment">// check for reorgs during scan process
+ </span><span class="kw">let </span>server_blockhash = <span class="self">self</span>.inner.block_header(tip.height() <span class="kw">as </span>usize)<span class="question-mark">?</span>.block_hash();
+ <span class="kw">if </span>tip.hash() != server_blockhash {
+ <span class="kw">continue</span>; <span class="comment">// reorg
+ </span>}
+
+ <span class="comment">// Fetch previous `TxOut`s for fee calculation if flag is enabled.
+ </span><span class="kw">if </span>fetch_prev_txouts {
+ <span class="self">self</span>.fetch_prev_txout(<span class="kw-2">&mut </span>graph_update)<span class="question-mark">?</span>;
+ }
+
+ <span class="kw">let </span>chain_update = tip;
+
+ <span class="kw">let </span>keychain_update = request_spks
+ .into_keys()
+ .filter_map(|k| {
+ scanned_spks
+ .range((k.clone(), u32::MIN)..=(k.clone(), u32::MAX))
+ .rev()
+ .find(|(<span class="kw">_</span>, (<span class="kw">_</span>, active))| <span class="kw-2">*</span>active)
+ .map(|((<span class="kw">_</span>, i), <span class="kw">_</span>)| (k, <span class="kw-2">*</span>i))
+ })
+ .collect::<BTreeMap<<span class="kw">_</span>, <span class="kw">_</span>>>();
+
+ <span class="kw">break </span>FullScanResult {
+ graph_update,
+ chain_update,
+ last_active_indices: keychain_update,
+ };
+ };
+
+ <span class="prelude-val">Ok</span>(ElectrumFullScanResult(update))
+ }
+
+ <span class="doccomment">/// Sync a set of scripts with the blockchain (via an Electrum client) for the data specified
+ /// and returns updates for [`bdk_chain`] data structures.
+ ///
+ /// - `request`: struct with data required to perform a spk-based blockchain client sync,
+ /// see [`SyncRequest`]
+ /// - `batch_size`: specifies the max number of script pubkeys to request for in a single batch
+ /// request
+ /// - `fetch_prev_txouts`: specifies whether or not we want previous `TxOut`s for fee
+ /// calculation
+ ///
+ /// If the scripts to sync are unknown, such as when restoring or importing a keychain that
+ /// may include scripts that have been used, use [`full_scan`] with the keychain.
+ ///
+ /// [`full_scan`]: Self::full_scan
+ </span><span class="kw">pub fn </span>sync(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ request: SyncRequest,
+ batch_size: usize,
+ fetch_prev_txouts: bool,
+ ) -> <span class="prelude-ty">Result</span><ElectrumSyncResult, Error> {
+ <span class="kw">let </span>full_scan_req = FullScanRequest::from_chain_tip(request.chain_tip.clone())
+ .set_spks_for_keychain((), request.spks.enumerate().map(|(i, spk)| (i <span class="kw">as </span>u32, spk)));
+ <span class="kw">let </span><span class="kw-2">mut </span>full_scan_res = <span class="self">self
+ </span>.full_scan(full_scan_req, usize::MAX, batch_size, <span class="bool-val">false</span>)<span class="question-mark">?
+ </span>.with_confirmation_height_anchor();
+
+ <span class="kw">let </span>(tip, <span class="kw">_</span>) = construct_update_tip(<span class="kw-2">&</span><span class="self">self</span>.inner, request.chain_tip)<span class="question-mark">?</span>;
+ <span class="kw">let </span>cps = tip
+ .iter()
+ .take(<span class="number">10</span>)
+ .map(|cp| (cp.height(), cp))
+ .collect::<BTreeMap<u32, CheckPoint>>();
+
+ <span class="self">self</span>.populate_with_txids(<span class="kw-2">&</span>cps, <span class="kw-2">&mut </span>full_scan_res.graph_update, request.txids)<span class="question-mark">?</span>;
+ <span class="self">self</span>.populate_with_outpoints(<span class="kw-2">&</span>cps, <span class="kw-2">&mut </span>full_scan_res.graph_update, request.outpoints)<span class="question-mark">?</span>;
+
+ <span class="comment">// Fetch previous `TxOut`s for fee calculation if flag is enabled.
+ </span><span class="kw">if </span>fetch_prev_txouts {
+ <span class="self">self</span>.fetch_prev_txout(<span class="kw-2">&mut </span>full_scan_res.graph_update)<span class="question-mark">?</span>;
+ }
+
+ <span class="prelude-val">Ok</span>(ElectrumSyncResult(SyncResult {
+ chain_update: full_scan_res.chain_update,
+ graph_update: full_scan_res.graph_update,
+ }))
+ }
+
+ <span class="doccomment">/// Populate the `graph_update` with transactions/anchors associated with the given `spks`.
+ ///
+ /// Transactions that contains an output with requested spk, or spends form an output with
+ /// requested spk will be added to `graph_update`. Anchors of the aforementioned transactions are
+ /// also included.
+ ///
+ /// Checkpoints (in `cps`) are used to create anchors. The `tx_cache` is self-explanatory.
+ </span><span class="kw">fn </span>populate_with_spks<I: Ord + Clone>(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
+ graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
+ spks: <span class="kw-2">&mut </span><span class="kw">impl </span>Iterator<Item = (I, ScriptBuf)>,
+ stop_gap: usize,
+ batch_size: usize,
+ ) -> <span class="prelude-ty">Result</span><BTreeMap<I, (ScriptBuf, bool)>, Error> {
+ <span class="kw">let </span><span class="kw-2">mut </span>unused_spk_count = <span class="number">0_usize</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>scanned_spks = BTreeMap::new();
+
+ <span class="kw">loop </span>{
+ <span class="kw">let </span>spks = (<span class="number">0</span>..batch_size)
+ .map_while(|<span class="kw">_</span>| spks.next())
+ .collect::<Vec<<span class="kw">_</span>>>();
+ <span class="kw">if </span>spks.is_empty() {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(scanned_spks);
+ }
+
+ <span class="kw">let </span>spk_histories = <span class="self">self
+ </span>.inner
+ .batch_script_get_history(spks.iter().map(|(<span class="kw">_</span>, s)| s.as_script()))<span class="question-mark">?</span>;
+
+ <span class="kw">for </span>((spk_index, spk), spk_history) <span class="kw">in </span>spks.into_iter().zip(spk_histories) {
+ <span class="kw">if </span>spk_history.is_empty() {
+ scanned_spks.insert(spk_index, (spk, <span class="bool-val">false</span>));
+ unused_spk_count += <span class="number">1</span>;
+ <span class="kw">if </span>unused_spk_count > stop_gap {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(scanned_spks);
+ }
+ <span class="kw">continue</span>;
+ } <span class="kw">else </span>{
+ scanned_spks.insert(spk_index, (spk, <span class="bool-val">true</span>));
+ unused_spk_count = <span class="number">0</span>;
+ }
+
+ <span class="kw">for </span>tx_res <span class="kw">in </span>spk_history {
+ <span class="kw">let _ </span>= graph_update.insert_tx(<span class="self">self</span>.fetch_tx(tx_res.tx_hash)<span class="question-mark">?</span>);
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, tx_res.height, tx_res.tx_hash) {
+ <span class="kw">let _ </span>= graph_update.insert_anchor(tx_res.tx_hash, anchor);
+ }
+ }
+ }
+ }
+ }
+
+ <span class="comment">// Helper function which fetches the `TxOut`s of our relevant transactions' previous transactions,
+ // which we do not have by default. This data is needed to calculate the transaction fee.
+ </span><span class="kw">fn </span>fetch_prev_txout(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
+ ) -> <span class="prelude-ty">Result</span><(), Error> {
+ <span class="kw">let </span>full_txs: Vec<Arc<Transaction>> =
+ graph_update.full_txs().map(|tx_node| tx_node.tx).collect();
+ <span class="kw">for </span>tx <span class="kw">in </span>full_txs {
+ <span class="kw">for </span>vin <span class="kw">in </span><span class="kw-2">&</span>tx.input {
+ <span class="kw">let </span>outpoint = vin.previous_output;
+ <span class="kw">let </span>vout = outpoint.vout;
+ <span class="kw">let </span>prev_tx = <span class="self">self</span>.fetch_tx(outpoint.txid)<span class="question-mark">?</span>;
+ <span class="kw">let </span>txout = prev_tx.output[vout <span class="kw">as </span>usize].clone();
+ <span class="kw">let _ </span>= graph_update.insert_txout(outpoint, txout);
+ }
+ }
+ <span class="prelude-val">Ok</span>(())
+ }
+
+ <span class="doccomment">/// Populate the `graph_update` with associated transactions/anchors of `outpoints`.
+ ///
+ /// Transactions in which the outpoint resides, and transactions that spend from the outpoint are
+ /// included. Anchors of the aforementioned transactions are included.
+ ///
+ /// Checkpoints (in `cps`) are used to create anchors. The `tx_cache` is self-explanatory.
+ </span><span class="kw">fn </span>populate_with_outpoints(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
+ graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
+ outpoints: <span class="kw">impl </span>IntoIterator<Item = OutPoint>,
+ ) -> <span class="prelude-ty">Result</span><(), Error> {
+ <span class="kw">for </span>outpoint <span class="kw">in </span>outpoints {
+ <span class="kw">let </span>op_txid = outpoint.txid;
+ <span class="kw">let </span>op_tx = <span class="self">self</span>.fetch_tx(op_txid)<span class="question-mark">?</span>;
+ <span class="kw">let </span>op_txout = <span class="kw">match </span>op_tx.output.get(outpoint.vout <span class="kw">as </span>usize) {
+ <span class="prelude-val">Some</span>(txout) => txout,
+ <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
+ };
+ <span class="macro">debug_assert_eq!</span>(op_tx.txid(), op_txid);
+
+ <span class="comment">// attempt to find the following transactions (alongside their chain positions), and
+ // add to our sparsechain `update`:
+ </span><span class="kw">let </span><span class="kw-2">mut </span>has_residing = <span class="bool-val">false</span>; <span class="comment">// tx in which the outpoint resides
+ </span><span class="kw">let </span><span class="kw-2">mut </span>has_spending = <span class="bool-val">false</span>; <span class="comment">// tx that spends the outpoint
+ </span><span class="kw">for </span>res <span class="kw">in </span><span class="self">self</span>.inner.script_get_history(<span class="kw-2">&</span>op_txout.script_pubkey)<span class="question-mark">? </span>{
+ <span class="kw">if </span>has_residing && has_spending {
+ <span class="kw">break</span>;
+ }
+
+ <span class="kw">if </span>!has_residing && res.tx_hash == op_txid {
+ has_residing = <span class="bool-val">true</span>;
+ <span class="kw">let _ </span>= graph_update.insert_tx(Arc::clone(<span class="kw-2">&</span>op_tx));
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
+ <span class="kw">let _ </span>= graph_update.insert_anchor(res.tx_hash, anchor);
+ }
+ }
+
+ <span class="kw">if </span>!has_spending && res.tx_hash != op_txid {
+ <span class="kw">let </span>res_tx = <span class="self">self</span>.fetch_tx(res.tx_hash)<span class="question-mark">?</span>;
+ <span class="comment">// we exclude txs/anchors that do not spend our specified outpoint(s)
+ </span>has_spending = res_tx
+ .input
+ .iter()
+ .any(|txin| txin.previous_output == outpoint);
+ <span class="kw">if </span>!has_spending {
+ <span class="kw">continue</span>;
+ }
+ <span class="kw">let _ </span>= graph_update.insert_tx(Arc::clone(<span class="kw-2">&</span>res_tx));
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
+ <span class="kw">let _ </span>= graph_update.insert_anchor(res.tx_hash, anchor);
+ }
+ }
+ }
+ }
+ <span class="prelude-val">Ok</span>(())
+ }
+
+ <span class="doccomment">/// Populate the `graph_update` with transactions/anchors of the provided `txids`.
+ </span><span class="kw">fn </span>populate_with_txids(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
+ graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
+ txids: <span class="kw">impl </span>IntoIterator<Item = Txid>,
+ ) -> <span class="prelude-ty">Result</span><(), Error> {
+ <span class="kw">for </span>txid <span class="kw">in </span>txids {
+ <span class="kw">let </span>tx = <span class="kw">match </span><span class="self">self</span>.fetch_tx(txid) {
+ <span class="prelude-val">Ok</span>(tx) => tx,
+ <span class="prelude-val">Err</span>(electrum_client::Error::Protocol(<span class="kw">_</span>)) => <span class="kw">continue</span>,
+ <span class="prelude-val">Err</span>(other_err) => <span class="kw">return </span><span class="prelude-val">Err</span>(other_err),
+ };
+
+ <span class="kw">let </span>spk = tx
+ .output
+ .first()
+ .map(|txo| <span class="kw-2">&</span>txo.script_pubkey)
+ .expect(<span class="string">"tx must have an output"</span>);
+
+ <span class="comment">// because of restrictions of the Electrum API, we have to use the `script_get_history`
+ // call to get confirmation status of our transaction
+ </span><span class="kw">let </span>anchor = <span class="kw">match </span><span class="self">self
+ </span>.inner
+ .script_get_history(spk)<span class="question-mark">?
+ </span>.into_iter()
+ .find(|r| r.tx_hash == txid)
+ {
+ <span class="prelude-val">Some</span>(r) => determine_tx_anchor(cps, r.height, txid),
+ <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
+ };
+
+ <span class="kw">let _ </span>= graph_update.insert_tx(tx);
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = anchor {
+ <span class="kw">let _ </span>= graph_update.insert_anchor(txid, anchor);
+ }
+ }
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="doccomment">/// The result of [`BdkElectrumClient::full_scan`].
+///
+/// This can be transformed into a [`FullScanResult`] with either [`ConfirmationHeightAnchor`] or
+/// [`ConfirmationTimeHeightAnchor`] anchor types.
+</span><span class="kw">pub struct </span>ElectrumFullScanResult<K>(FullScanResult<K, ConfirmationHeightAnchor>);
+
+<span class="kw">impl</span><K> ElectrumFullScanResult<K> {
+ <span class="doccomment">/// Return [`FullScanResult`] with [`ConfirmationHeightAnchor`].
+ </span><span class="kw">pub fn </span>with_confirmation_height_anchor(<span class="self">self</span>) -> FullScanResult<K, ConfirmationHeightAnchor> {
+ <span class="self">self</span>.<span class="number">0
+ </span>}
+
+ <span class="doccomment">/// Return [`FullScanResult`] with [`ConfirmationTimeHeightAnchor`].
+ ///
+ /// This requires additional calls to the Electrum server.
+ </span><span class="kw">pub fn </span>with_confirmation_time_height_anchor(
+ <span class="self">self</span>,
+ client: <span class="kw-2">&</span>BdkElectrumClient<<span class="kw">impl </span>ElectrumApi>,
+ ) -> <span class="prelude-ty">Result</span><FullScanResult<K, ConfirmationTimeHeightAnchor>, Error> {
+ <span class="kw">let </span>res = <span class="self">self</span>.<span class="number">0</span>;
+ <span class="prelude-val">Ok</span>(FullScanResult {
+ graph_update: try_into_confirmation_time_result(res.graph_update, <span class="kw-2">&</span>client.inner)<span class="question-mark">?</span>,
+ chain_update: res.chain_update,
+ last_active_indices: res.last_active_indices,
+ })
+ }
+}
+
+<span class="doccomment">/// The result of [`BdkElectrumClient::sync`].
+///
+/// This can be transformed into a [`SyncResult`] with either [`ConfirmationHeightAnchor`] or
+/// [`ConfirmationTimeHeightAnchor`] anchor types.
+</span><span class="kw">pub struct </span>ElectrumSyncResult(SyncResult<ConfirmationHeightAnchor>);
+
+<span class="kw">impl </span>ElectrumSyncResult {
+ <span class="doccomment">/// Return [`SyncResult`] with [`ConfirmationHeightAnchor`].
+ </span><span class="kw">pub fn </span>with_confirmation_height_anchor(<span class="self">self</span>) -> SyncResult<ConfirmationHeightAnchor> {
+ <span class="self">self</span>.<span class="number">0
+ </span>}
+
+ <span class="doccomment">/// Return [`SyncResult`] with [`ConfirmationTimeHeightAnchor`].
+ ///
+ /// This requires additional calls to the Electrum server.
+ </span><span class="kw">pub fn </span>with_confirmation_time_height_anchor(
+ <span class="self">self</span>,
+ client: <span class="kw-2">&</span>BdkElectrumClient<<span class="kw">impl </span>ElectrumApi>,
+ ) -> <span class="prelude-ty">Result</span><SyncResult<ConfirmationTimeHeightAnchor>, Error> {
+ <span class="kw">let </span>res = <span class="self">self</span>.<span class="number">0</span>;
+ <span class="prelude-val">Ok</span>(SyncResult {
+ graph_update: try_into_confirmation_time_result(res.graph_update, <span class="kw-2">&</span>client.inner)<span class="question-mark">?</span>,
+ chain_update: res.chain_update,
+ })
+ }
+}
+
+<span class="kw">fn </span>try_into_confirmation_time_result(
+ graph_update: TxGraph<ConfirmationHeightAnchor>,
+ client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
+) -> <span class="prelude-ty">Result</span><TxGraph<ConfirmationTimeHeightAnchor>, Error> {
+ <span class="kw">let </span>relevant_heights = graph_update
+ .all_anchors()
+ .iter()
+ .map(|(a, <span class="kw">_</span>)| a.confirmation_height)
+ .collect::<HashSet<<span class="kw">_</span>>>();
+
+ <span class="kw">let </span>height_to_time = relevant_heights
+ .clone()
+ .into_iter()
+ .zip(
+ client
+ .batch_block_header(relevant_heights)<span class="question-mark">?
+ </span>.into_iter()
+ .map(|bh| bh.time <span class="kw">as </span>u64),
+ )
+ .collect::<HashMap<u32, u64>>();
+
+ <span class="prelude-val">Ok</span>(graph_update.map_anchors(|a| ConfirmationTimeHeightAnchor {
+ anchor_block: a.anchor_block,
+ confirmation_height: a.confirmation_height,
+ confirmation_time: height_to_time[<span class="kw-2">&</span>a.confirmation_height],
+ }))
+}
+
+<span class="doccomment">/// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`.
+</span><span class="kw">fn </span>construct_update_tip(
+ client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
+ prev_tip: CheckPoint,
+) -> <span class="prelude-ty">Result</span><(CheckPoint, <span class="prelude-ty">Option</span><u32>), Error> {
+ <span class="kw">let </span>HeaderNotification { height, .. } = client.block_headers_subscribe()<span class="question-mark">?</span>;
+ <span class="kw">let </span>new_tip_height = height <span class="kw">as </span>u32;
+
+ <span class="comment">// If electrum returns a tip height that is lower than our previous tip, then checkpoints do
+ // not need updating. We just return the previous tip and use that as the point of agreement.
+ </span><span class="kw">if </span>new_tip_height < prev_tip.height() {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>((prev_tip.clone(), <span class="prelude-val">Some</span>(prev_tip.height())));
+ }
+
+ <span class="comment">// Atomically fetch the latest `CHAIN_SUFFIX_LENGTH` count of blocks from Electrum. We use this
+ // to construct our checkpoint update.
+ </span><span class="kw">let </span><span class="kw-2">mut </span>new_blocks = {
+ <span class="kw">let </span>start_height = new_tip_height.saturating_sub(CHAIN_SUFFIX_LENGTH - <span class="number">1</span>);
+ <span class="kw">let </span>hashes = client
+ .block_headers(start_height <span class="kw">as _</span>, CHAIN_SUFFIX_LENGTH <span class="kw">as _</span>)<span class="question-mark">?
+ </span>.headers
+ .into_iter()
+ .map(|h| h.block_hash());
+ (start_height..).zip(hashes).collect::<BTreeMap<u32, <span class="kw">_</span>>>()
+ };
+
+ <span class="comment">// Find the "point of agreement" (if any).
+ </span><span class="kw">let </span>agreement_cp = {
+ <span class="kw">let </span><span class="kw-2">mut </span>agreement_cp = <span class="prelude-ty">Option</span>::<CheckPoint>::None;
+ <span class="kw">for </span>cp <span class="kw">in </span>prev_tip.iter() {
+ <span class="kw">let </span>cp_block = cp.block_id();
+ <span class="kw">let </span>hash = <span class="kw">match </span>new_blocks.get(<span class="kw-2">&</span>cp_block.height) {
+ <span class="prelude-val">Some</span>(<span class="kw-2">&</span>hash) => hash,
+ <span class="prelude-val">None </span>=> {
+ <span class="macro">assert!</span>(
+ new_tip_height >= cp_block.height,
+ <span class="string">"already checked that electrum's tip cannot be smaller"
+ </span>);
+ <span class="kw">let </span>hash = client.block_header(cp_block.height <span class="kw">as _</span>)<span class="question-mark">?</span>.block_hash();
+ new_blocks.insert(cp_block.height, hash);
+ hash
+ }
+ };
+ <span class="kw">if </span>hash == cp_block.hash {
+ agreement_cp = <span class="prelude-val">Some</span>(cp);
+ <span class="kw">break</span>;
+ }
+ }
+ agreement_cp
+ };
+
+ <span class="kw">let </span>agreement_height = agreement_cp.as_ref().map(CheckPoint::height);
+
+ <span class="kw">let </span>new_tip = new_blocks
+ .into_iter()
+ <span class="comment">// Prune `new_blocks` to only include blocks that are actually new.
+ </span>.filter(|(height, <span class="kw">_</span>)| <span class="prelude-val">Some</span>(<span class="kw-2">*</span>height) > agreement_height)
+ .map(|(height, hash)| BlockId { height, hash })
+ .fold(agreement_cp, |prev_cp, block| {
+ <span class="prelude-val">Some</span>(<span class="kw">match </span>prev_cp {
+ <span class="prelude-val">Some</span>(cp) => cp.push(block).expect(<span class="string">"must extend checkpoint"</span>),
+ <span class="prelude-val">None </span>=> CheckPoint::new(block),
+ })
+ })
+ .expect(<span class="string">"must have at least one checkpoint"</span>);
+
+ <span class="prelude-val">Ok</span>((new_tip, agreement_height))
+}
+
+<span class="doccomment">/// A [tx status] comprises of a concatenation of `tx_hash:height:`s. We transform a single one of
+/// these concatenations into a [`ConfirmationHeightAnchor`] if possible.
+///
+/// We use the lowest possible checkpoint as the anchor block (from `cps`). If an anchor block
+/// cannot be found, or the transaction is unconfirmed, [`None`] is returned.
+///
+/// [tx status](https://electrumx-spesmilo.readthedocs.io/en/latest/protocol-basics.html#status)
+</span><span class="kw">fn </span>determine_tx_anchor(
+ cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
+ raw_height: i32,
+ txid: Txid,
+) -> <span class="prelude-ty">Option</span><ConfirmationHeightAnchor> {
+ <span class="comment">// The electrum API has a weird quirk where an unconfirmed transaction is presented with a
+ // height of 0. To avoid invalid representation in our data structures, we manually set
+ // transactions residing in the genesis block to have height 0, then interpret a height of 0 as
+ // unconfirmed for all other transactions.
+ </span><span class="kw">if </span>txid
+ == Txid::from_str(<span class="string">"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"</span>)
+ .expect(<span class="string">"must deserialize genesis coinbase txid"</span>)
+ {
+ <span class="kw">let </span>anchor_block = cps.values().next()<span class="question-mark">?</span>.block_id();
+ <span class="kw">return </span><span class="prelude-val">Some</span>(ConfirmationHeightAnchor {
+ anchor_block,
+ confirmation_height: <span class="number">0</span>,
+ });
+ }
+ <span class="kw">match </span>raw_height {
+ h <span class="kw">if </span>h <= <span class="number">0 </span>=> {
+ <span class="macro">debug_assert!</span>(h == <span class="number">0 </span>|| h == -<span class="number">1</span>, <span class="string">"unexpected height ({}) from electrum"</span>, h);
+ <span class="prelude-val">None
+ </span>}
+ h => {
+ <span class="kw">let </span>h = h <span class="kw">as </span>u32;
+ <span class="kw">let </span>anchor_block = cps.range(h..).next().map(|(<span class="kw">_</span>, cp)| cp.block_id())<span class="question-mark">?</span>;
+ <span class="kw">if </span>h > anchor_block.height {
+ <span class="prelude-val">None
+ </span>} <span class="kw">else </span>{
+ <span class="prelude-val">Some</span>(ConfirmationHeightAnchor {
+ anchor_block,
+ confirmation_height: h,
+ })
+ }
+ }
+ }
+}
+</code></pre></div></section></main></body></html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html><html lang="en"><head><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/electrum/src/electrum_ext.rs`."><title>electrum_ext.rs - source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../../static.files/src-script-e66d777a5a92e9b2.js"></script><script defer src="../../src-files.js"></script><script defer src="../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc src"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="src-sidebar-title"><h2>Files</h2></div></nav><div class="sidebar-resizer"></div><main><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="example-wrap"><div data-nosnippet><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>
-</pre></div><pre class="rust"><code><span class="kw">use </span>bdk_chain::{
- bitcoin::{OutPoint, ScriptBuf, Transaction, Txid},
- collections::{BTreeMap, HashMap, HashSet},
- local_chain::CheckPoint,
- spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult, TxCache},
- tx_graph::TxGraph,
- BlockId, ConfirmationHeightAnchor, ConfirmationTimeHeightAnchor,
-};
-<span class="kw">use </span>core::str::FromStr;
-<span class="kw">use </span>electrum_client::{ElectrumApi, Error, HeaderNotification};
-<span class="kw">use </span>std::sync::Arc;
-
-<span class="doccomment">/// We include a chain suffix of a certain length for the purpose of robustness.
-</span><span class="kw">const </span>CHAIN_SUFFIX_LENGTH: u32 = <span class="number">8</span>;
-
-<span class="doccomment">/// Trait to extend [`electrum_client::Client`] functionality.
-</span><span class="kw">pub trait </span>ElectrumExt {
- <span class="doccomment">/// Full scan the keychain scripts specified with the blockchain (via an Electrum client) and
- /// returns updates for [`bdk_chain`] data structures.
- ///
- /// - `request`: struct with data required to perform a spk-based blockchain client full scan,
- /// see [`FullScanRequest`]
- /// - `stop_gap`: the full scan for each keychain stops after a gap of script pubkeys with no
- /// associated transactions
- /// - `batch_size`: specifies the max number of script pubkeys to request for in a single batch
- /// request
- /// - `fetch_prev_txouts`: specifies whether or not we want previous `TxOut`s for fee
- /// calculation
- </span><span class="kw">fn </span>full_scan<K: Ord + Clone>(
- <span class="kw-2">&</span><span class="self">self</span>,
- request: FullScanRequest<K>,
- stop_gap: usize,
- batch_size: usize,
- fetch_prev_txouts: bool,
- ) -> <span class="prelude-ty">Result</span><ElectrumFullScanResult<K>, Error>;
-
- <span class="doccomment">/// Sync a set of scripts with the blockchain (via an Electrum client) for the data specified
- /// and returns updates for [`bdk_chain`] data structures.
- ///
- /// - `request`: struct with data required to perform a spk-based blockchain client sync,
- /// see [`SyncRequest`]
- /// - `batch_size`: specifies the max number of script pubkeys to request for in a single batch
- /// request
- /// - `fetch_prev_txouts`: specifies whether or not we want previous `TxOut`s for fee
- /// calculation
- ///
- /// If the scripts to sync are unknown, such as when restoring or importing a keychain that
- /// may include scripts that have been used, use [`full_scan`] with the keychain.
- ///
- /// [`full_scan`]: ElectrumExt::full_scan
- </span><span class="kw">fn </span>sync(
- <span class="kw-2">&</span><span class="self">self</span>,
- request: SyncRequest,
- batch_size: usize,
- fetch_prev_txouts: bool,
- ) -> <span class="prelude-ty">Result</span><ElectrumSyncResult, Error>;
-}
-
-<span class="kw">impl</span><E: ElectrumApi> ElectrumExt <span class="kw">for </span>E {
- <span class="kw">fn </span>full_scan<K: Ord + Clone>(
- <span class="kw-2">&</span><span class="self">self</span>,
- <span class="kw-2">mut </span>request: FullScanRequest<K>,
- stop_gap: usize,
- batch_size: usize,
- fetch_prev_txouts: bool,
- ) -> <span class="prelude-ty">Result</span><ElectrumFullScanResult<K>, Error> {
- <span class="kw">let </span><span class="kw-2">mut </span>request_spks = request.spks_by_keychain;
-
- <span class="comment">// We keep track of already-scanned spks just in case a reorg happens and we need to do a
- // rescan. We need to keep track of this as iterators in `keychain_spks` are "unbounded" so
- // cannot be collected. In addition, we keep track of whether an spk has an active tx
- // history for determining the `last_active_index`.
- // * key: (keychain, spk_index) that identifies the spk.
- // * val: (script_pubkey, has_tx_history).
- </span><span class="kw">let </span><span class="kw-2">mut </span>scanned_spks = BTreeMap::<(K, u32), (ScriptBuf, bool)>::new();
-
- <span class="kw">let </span>update = <span class="kw">loop </span>{
- <span class="kw">let </span>(tip, <span class="kw">_</span>) = construct_update_tip(<span class="self">self</span>, request.chain_tip.clone())<span class="question-mark">?</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>graph_update = TxGraph::<ConfirmationHeightAnchor>::default();
- <span class="kw">let </span>cps = tip
- .iter()
- .take(<span class="number">10</span>)
- .map(|cp| (cp.height(), cp))
- .collect::<BTreeMap<u32, CheckPoint>>();
-
- <span class="kw">if </span>!request_spks.is_empty() {
- <span class="kw">if </span>!scanned_spks.is_empty() {
- scanned_spks.append(<span class="kw-2">&mut </span>populate_with_spks(
- <span class="self">self</span>,
- <span class="kw-2">&</span>cps,
- <span class="kw-2">&mut </span>request.tx_cache,
- <span class="kw-2">&mut </span>graph_update,
- <span class="kw-2">&mut </span>scanned_spks
- .iter()
- .map(|(i, (spk, <span class="kw">_</span>))| (i.clone(), spk.clone())),
- stop_gap,
- batch_size,
- )<span class="question-mark">?</span>);
- }
- <span class="kw">for </span>(keychain, keychain_spks) <span class="kw">in </span><span class="kw-2">&mut </span>request_spks {
- scanned_spks.extend(
- populate_with_spks(
- <span class="self">self</span>,
- <span class="kw-2">&</span>cps,
- <span class="kw-2">&mut </span>request.tx_cache,
- <span class="kw-2">&mut </span>graph_update,
- keychain_spks,
- stop_gap,
- batch_size,
- )<span class="question-mark">?
- </span>.into_iter()
- .map(|(spk_i, spk)| ((keychain.clone(), spk_i), spk)),
- );
- }
- }
-
- <span class="comment">// check for reorgs during scan process
- </span><span class="kw">let </span>server_blockhash = <span class="self">self</span>.block_header(tip.height() <span class="kw">as </span>usize)<span class="question-mark">?</span>.block_hash();
- <span class="kw">if </span>tip.hash() != server_blockhash {
- <span class="kw">continue</span>; <span class="comment">// reorg
- </span>}
-
- <span class="comment">// Fetch previous `TxOut`s for fee calculation if flag is enabled.
- </span><span class="kw">if </span>fetch_prev_txouts {
- fetch_prev_txout(<span class="self">self</span>, <span class="kw-2">&mut </span>request.tx_cache, <span class="kw-2">&mut </span>graph_update)<span class="question-mark">?</span>;
- }
-
- <span class="kw">let </span>chain_update = tip;
-
- <span class="kw">let </span>keychain_update = request_spks
- .into_keys()
- .filter_map(|k| {
- scanned_spks
- .range((k.clone(), u32::MIN)..=(k.clone(), u32::MAX))
- .rev()
- .find(|(<span class="kw">_</span>, (<span class="kw">_</span>, active))| <span class="kw-2">*</span>active)
- .map(|((<span class="kw">_</span>, i), <span class="kw">_</span>)| (k, <span class="kw-2">*</span>i))
- })
- .collect::<BTreeMap<<span class="kw">_</span>, <span class="kw">_</span>>>();
-
- <span class="kw">break </span>FullScanResult {
- graph_update,
- chain_update,
- last_active_indices: keychain_update,
- };
- };
-
- <span class="prelude-val">Ok</span>(ElectrumFullScanResult(update))
- }
-
- <span class="kw">fn </span>sync(
- <span class="kw-2">&</span><span class="self">self</span>,
- request: SyncRequest,
- batch_size: usize,
- fetch_prev_txouts: bool,
- ) -> <span class="prelude-ty">Result</span><ElectrumSyncResult, Error> {
- <span class="kw">let </span><span class="kw-2">mut </span>tx_cache = request.tx_cache.clone();
-
- <span class="kw">let </span>full_scan_req = FullScanRequest::from_chain_tip(request.chain_tip.clone())
- .cache_txs(request.tx_cache)
- .set_spks_for_keychain((), request.spks.enumerate().map(|(i, spk)| (i <span class="kw">as </span>u32, spk)));
- <span class="kw">let </span><span class="kw-2">mut </span>full_scan_res = <span class="self">self
- </span>.full_scan(full_scan_req, usize::MAX, batch_size, <span class="bool-val">false</span>)<span class="question-mark">?
- </span>.with_confirmation_height_anchor();
-
- <span class="kw">let </span>(tip, <span class="kw">_</span>) = construct_update_tip(<span class="self">self</span>, request.chain_tip)<span class="question-mark">?</span>;
- <span class="kw">let </span>cps = tip
- .iter()
- .take(<span class="number">10</span>)
- .map(|cp| (cp.height(), cp))
- .collect::<BTreeMap<u32, CheckPoint>>();
-
- populate_with_txids(
- <span class="self">self</span>,
- <span class="kw-2">&</span>cps,
- <span class="kw-2">&mut </span>tx_cache,
- <span class="kw-2">&mut </span>full_scan_res.graph_update,
- request.txids,
- )<span class="question-mark">?</span>;
- populate_with_outpoints(
- <span class="self">self</span>,
- <span class="kw-2">&</span>cps,
- <span class="kw-2">&mut </span>tx_cache,
- <span class="kw-2">&mut </span>full_scan_res.graph_update,
- request.outpoints,
- )<span class="question-mark">?</span>;
-
- <span class="comment">// Fetch previous `TxOut`s for fee calculation if flag is enabled.
- </span><span class="kw">if </span>fetch_prev_txouts {
- fetch_prev_txout(<span class="self">self</span>, <span class="kw-2">&mut </span>tx_cache, <span class="kw-2">&mut </span>full_scan_res.graph_update)<span class="question-mark">?</span>;
- }
-
- <span class="prelude-val">Ok</span>(ElectrumSyncResult(SyncResult {
- chain_update: full_scan_res.chain_update,
- graph_update: full_scan_res.graph_update,
- }))
- }
-}
-
-<span class="doccomment">/// The result of [`ElectrumExt::full_scan`].
-///
-/// This can be transformed into a [`FullScanResult`] with either [`ConfirmationHeightAnchor`] or
-/// [`ConfirmationTimeHeightAnchor`] anchor types.
-</span><span class="kw">pub struct </span>ElectrumFullScanResult<K>(FullScanResult<K, ConfirmationHeightAnchor>);
-
-<span class="kw">impl</span><K> ElectrumFullScanResult<K> {
- <span class="doccomment">/// Return [`FullScanResult`] with [`ConfirmationHeightAnchor`].
- </span><span class="kw">pub fn </span>with_confirmation_height_anchor(<span class="self">self</span>) -> FullScanResult<K, ConfirmationHeightAnchor> {
- <span class="self">self</span>.<span class="number">0
- </span>}
-
- <span class="doccomment">/// Return [`FullScanResult`] with [`ConfirmationTimeHeightAnchor`].
- ///
- /// This requires additional calls to the Electrum server.
- </span><span class="kw">pub fn </span>with_confirmation_time_height_anchor(
- <span class="self">self</span>,
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- ) -> <span class="prelude-ty">Result</span><FullScanResult<K, ConfirmationTimeHeightAnchor>, Error> {
- <span class="kw">let </span>res = <span class="self">self</span>.<span class="number">0</span>;
- <span class="prelude-val">Ok</span>(FullScanResult {
- graph_update: try_into_confirmation_time_result(res.graph_update, client)<span class="question-mark">?</span>,
- chain_update: res.chain_update,
- last_active_indices: res.last_active_indices,
- })
- }
-}
-
-<span class="doccomment">/// The result of [`ElectrumExt::sync`].
-///
-/// This can be transformed into a [`SyncResult`] with either [`ConfirmationHeightAnchor`] or
-/// [`ConfirmationTimeHeightAnchor`] anchor types.
-</span><span class="kw">pub struct </span>ElectrumSyncResult(SyncResult<ConfirmationHeightAnchor>);
-
-<span class="kw">impl </span>ElectrumSyncResult {
- <span class="doccomment">/// Return [`SyncResult`] with [`ConfirmationHeightAnchor`].
- </span><span class="kw">pub fn </span>with_confirmation_height_anchor(<span class="self">self</span>) -> SyncResult<ConfirmationHeightAnchor> {
- <span class="self">self</span>.<span class="number">0
- </span>}
-
- <span class="doccomment">/// Return [`SyncResult`] with [`ConfirmationTimeHeightAnchor`].
- ///
- /// This requires additional calls to the Electrum server.
- </span><span class="kw">pub fn </span>with_confirmation_time_height_anchor(
- <span class="self">self</span>,
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- ) -> <span class="prelude-ty">Result</span><SyncResult<ConfirmationTimeHeightAnchor>, Error> {
- <span class="kw">let </span>res = <span class="self">self</span>.<span class="number">0</span>;
- <span class="prelude-val">Ok</span>(SyncResult {
- graph_update: try_into_confirmation_time_result(res.graph_update, client)<span class="question-mark">?</span>,
- chain_update: res.chain_update,
- })
- }
-}
-
-<span class="kw">fn </span>try_into_confirmation_time_result(
- graph_update: TxGraph<ConfirmationHeightAnchor>,
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
-) -> <span class="prelude-ty">Result</span><TxGraph<ConfirmationTimeHeightAnchor>, Error> {
- <span class="kw">let </span>relevant_heights = graph_update
- .all_anchors()
- .iter()
- .map(|(a, <span class="kw">_</span>)| a.confirmation_height)
- .collect::<HashSet<<span class="kw">_</span>>>();
-
- <span class="kw">let </span>height_to_time = relevant_heights
- .clone()
- .into_iter()
- .zip(
- client
- .batch_block_header(relevant_heights)<span class="question-mark">?
- </span>.into_iter()
- .map(|bh| bh.time <span class="kw">as </span>u64),
- )
- .collect::<HashMap<u32, u64>>();
-
- <span class="prelude-val">Ok</span>(graph_update.map_anchors(|a| ConfirmationTimeHeightAnchor {
- anchor_block: a.anchor_block,
- confirmation_height: a.confirmation_height,
- confirmation_time: height_to_time[<span class="kw-2">&</span>a.confirmation_height],
- }))
-}
-
-<span class="doccomment">/// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`.
-</span><span class="kw">fn </span>construct_update_tip(
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- prev_tip: CheckPoint,
-) -> <span class="prelude-ty">Result</span><(CheckPoint, <span class="prelude-ty">Option</span><u32>), Error> {
- <span class="kw">let </span>HeaderNotification { height, .. } = client.block_headers_subscribe()<span class="question-mark">?</span>;
- <span class="kw">let </span>new_tip_height = height <span class="kw">as </span>u32;
-
- <span class="comment">// If electrum returns a tip height that is lower than our previous tip, then checkpoints do
- // not need updating. We just return the previous tip and use that as the point of agreement.
- </span><span class="kw">if </span>new_tip_height < prev_tip.height() {
- <span class="kw">return </span><span class="prelude-val">Ok</span>((prev_tip.clone(), <span class="prelude-val">Some</span>(prev_tip.height())));
- }
-
- <span class="comment">// Atomically fetch the latest `CHAIN_SUFFIX_LENGTH` count of blocks from Electrum. We use this
- // to construct our checkpoint update.
- </span><span class="kw">let </span><span class="kw-2">mut </span>new_blocks = {
- <span class="kw">let </span>start_height = new_tip_height.saturating_sub(CHAIN_SUFFIX_LENGTH - <span class="number">1</span>);
- <span class="kw">let </span>hashes = client
- .block_headers(start_height <span class="kw">as _</span>, CHAIN_SUFFIX_LENGTH <span class="kw">as _</span>)<span class="question-mark">?
- </span>.headers
- .into_iter()
- .map(|h| h.block_hash());
- (start_height..).zip(hashes).collect::<BTreeMap<u32, <span class="kw">_</span>>>()
- };
-
- <span class="comment">// Find the "point of agreement" (if any).
- </span><span class="kw">let </span>agreement_cp = {
- <span class="kw">let </span><span class="kw-2">mut </span>agreement_cp = <span class="prelude-ty">Option</span>::<CheckPoint>::None;
- <span class="kw">for </span>cp <span class="kw">in </span>prev_tip.iter() {
- <span class="kw">let </span>cp_block = cp.block_id();
- <span class="kw">let </span>hash = <span class="kw">match </span>new_blocks.get(<span class="kw-2">&</span>cp_block.height) {
- <span class="prelude-val">Some</span>(<span class="kw-2">&</span>hash) => hash,
- <span class="prelude-val">None </span>=> {
- <span class="macro">assert!</span>(
- new_tip_height >= cp_block.height,
- <span class="string">"already checked that electrum's tip cannot be smaller"
- </span>);
- <span class="kw">let </span>hash = client.block_header(cp_block.height <span class="kw">as _</span>)<span class="question-mark">?</span>.block_hash();
- new_blocks.insert(cp_block.height, hash);
- hash
- }
- };
- <span class="kw">if </span>hash == cp_block.hash {
- agreement_cp = <span class="prelude-val">Some</span>(cp);
- <span class="kw">break</span>;
- }
- }
- agreement_cp
- };
-
- <span class="kw">let </span>agreement_height = agreement_cp.as_ref().map(CheckPoint::height);
-
- <span class="kw">let </span>new_tip = new_blocks
- .into_iter()
- <span class="comment">// Prune `new_blocks` to only include blocks that are actually new.
- </span>.filter(|(height, <span class="kw">_</span>)| <span class="prelude-val">Some</span>(<span class="kw-2">*</span>height) > agreement_height)
- .map(|(height, hash)| BlockId { height, hash })
- .fold(agreement_cp, |prev_cp, block| {
- <span class="prelude-val">Some</span>(<span class="kw">match </span>prev_cp {
- <span class="prelude-val">Some</span>(cp) => cp.push(block).expect(<span class="string">"must extend checkpoint"</span>),
- <span class="prelude-val">None </span>=> CheckPoint::new(block),
- })
- })
- .expect(<span class="string">"must have at least one checkpoint"</span>);
-
- <span class="prelude-val">Ok</span>((new_tip, agreement_height))
-}
-
-<span class="doccomment">/// A [tx status] comprises of a concatenation of `tx_hash:height:`s. We transform a single one of
-/// these concatenations into a [`ConfirmationHeightAnchor`] if possible.
-///
-/// We use the lowest possible checkpoint as the anchor block (from `cps`). If an anchor block
-/// cannot be found, or the transaction is unconfirmed, [`None`] is returned.
-///
-/// [tx status](https://electrumx-spesmilo.readthedocs.io/en/latest/protocol-basics.html#status)
-</span><span class="kw">fn </span>determine_tx_anchor(
- cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
- raw_height: i32,
- txid: Txid,
-) -> <span class="prelude-ty">Option</span><ConfirmationHeightAnchor> {
- <span class="comment">// The electrum API has a weird quirk where an unconfirmed transaction is presented with a
- // height of 0. To avoid invalid representation in our data structures, we manually set
- // transactions residing in the genesis block to have height 0, then interpret a height of 0 as
- // unconfirmed for all other transactions.
- </span><span class="kw">if </span>txid
- == Txid::from_str(<span class="string">"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"</span>)
- .expect(<span class="string">"must deserialize genesis coinbase txid"</span>)
- {
- <span class="kw">let </span>anchor_block = cps.values().next()<span class="question-mark">?</span>.block_id();
- <span class="kw">return </span><span class="prelude-val">Some</span>(ConfirmationHeightAnchor {
- anchor_block,
- confirmation_height: <span class="number">0</span>,
- });
- }
- <span class="kw">match </span>raw_height {
- h <span class="kw">if </span>h <= <span class="number">0 </span>=> {
- <span class="macro">debug_assert!</span>(h == <span class="number">0 </span>|| h == -<span class="number">1</span>, <span class="string">"unexpected height ({}) from electrum"</span>, h);
- <span class="prelude-val">None
- </span>}
- h => {
- <span class="kw">let </span>h = h <span class="kw">as </span>u32;
- <span class="kw">let </span>anchor_block = cps.range(h..).next().map(|(<span class="kw">_</span>, cp)| cp.block_id())<span class="question-mark">?</span>;
- <span class="kw">if </span>h > anchor_block.height {
- <span class="prelude-val">None
- </span>} <span class="kw">else </span>{
- <span class="prelude-val">Some</span>(ConfirmationHeightAnchor {
- anchor_block,
- confirmation_height: h,
- })
- }
- }
- }
-}
-
-<span class="doccomment">/// Populate the `graph_update` with associated transactions/anchors of `outpoints`.
-///
-/// Transactions in which the outpoint resides, and transactions that spend from the outpoint are
-/// included. Anchors of the aforementioned transactions are included.
-///
-/// Checkpoints (in `cps`) are used to create anchors. The `tx_cache` is self-explanatory.
-</span><span class="kw">fn </span>populate_with_outpoints(
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
- tx_cache: <span class="kw-2">&mut </span>TxCache,
- graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
- outpoints: <span class="kw">impl </span>IntoIterator<Item = OutPoint>,
-) -> <span class="prelude-ty">Result</span><(), Error> {
- <span class="kw">for </span>outpoint <span class="kw">in </span>outpoints {
- <span class="kw">let </span>op_txid = outpoint.txid;
- <span class="kw">let </span>op_tx = fetch_tx(client, tx_cache, op_txid)<span class="question-mark">?</span>;
- <span class="kw">let </span>op_txout = <span class="kw">match </span>op_tx.output.get(outpoint.vout <span class="kw">as </span>usize) {
- <span class="prelude-val">Some</span>(txout) => txout,
- <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
- };
- <span class="macro">debug_assert_eq!</span>(op_tx.txid(), op_txid);
-
- <span class="comment">// attempt to find the following transactions (alongside their chain positions), and
- // add to our sparsechain `update`:
- </span><span class="kw">let </span><span class="kw-2">mut </span>has_residing = <span class="bool-val">false</span>; <span class="comment">// tx in which the outpoint resides
- </span><span class="kw">let </span><span class="kw-2">mut </span>has_spending = <span class="bool-val">false</span>; <span class="comment">// tx that spends the outpoint
- </span><span class="kw">for </span>res <span class="kw">in </span>client.script_get_history(<span class="kw-2">&</span>op_txout.script_pubkey)<span class="question-mark">? </span>{
- <span class="kw">if </span>has_residing && has_spending {
- <span class="kw">break</span>;
- }
-
- <span class="kw">if </span>!has_residing && res.tx_hash == op_txid {
- has_residing = <span class="bool-val">true</span>;
- <span class="kw">let _ </span>= graph_update.insert_tx(Arc::clone(<span class="kw-2">&</span>op_tx));
- <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
- <span class="kw">let _ </span>= graph_update.insert_anchor(res.tx_hash, anchor);
- }
- }
-
- <span class="kw">if </span>!has_spending && res.tx_hash != op_txid {
- <span class="kw">let </span>res_tx = fetch_tx(client, tx_cache, res.tx_hash)<span class="question-mark">?</span>;
- <span class="comment">// we exclude txs/anchors that do not spend our specified outpoint(s)
- </span>has_spending = res_tx
- .input
- .iter()
- .any(|txin| txin.previous_output == outpoint);
- <span class="kw">if </span>!has_spending {
- <span class="kw">continue</span>;
- }
- <span class="kw">let _ </span>= graph_update.insert_tx(Arc::clone(<span class="kw-2">&</span>res_tx));
- <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
- <span class="kw">let _ </span>= graph_update.insert_anchor(res.tx_hash, anchor);
- }
- }
- }
- }
- <span class="prelude-val">Ok</span>(())
-}
-
-<span class="doccomment">/// Populate the `graph_update` with transactions/anchors of the provided `txids`.
-</span><span class="kw">fn </span>populate_with_txids(
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
- tx_cache: <span class="kw-2">&mut </span>TxCache,
- graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
- txids: <span class="kw">impl </span>IntoIterator<Item = Txid>,
-) -> <span class="prelude-ty">Result</span><(), Error> {
- <span class="kw">for </span>txid <span class="kw">in </span>txids {
- <span class="kw">let </span>tx = <span class="kw">match </span>fetch_tx(client, tx_cache, txid) {
- <span class="prelude-val">Ok</span>(tx) => tx,
- <span class="prelude-val">Err</span>(electrum_client::Error::Protocol(<span class="kw">_</span>)) => <span class="kw">continue</span>,
- <span class="prelude-val">Err</span>(other_err) => <span class="kw">return </span><span class="prelude-val">Err</span>(other_err),
- };
-
- <span class="kw">let </span>spk = tx
- .output
- .first()
- .map(|txo| <span class="kw-2">&</span>txo.script_pubkey)
- .expect(<span class="string">"tx must have an output"</span>);
-
- <span class="comment">// because of restrictions of the Electrum API, we have to use the `script_get_history`
- // call to get confirmation status of our transaction
- </span><span class="kw">let </span>anchor = <span class="kw">match </span>client
- .script_get_history(spk)<span class="question-mark">?
- </span>.into_iter()
- .find(|r| r.tx_hash == txid)
- {
- <span class="prelude-val">Some</span>(r) => determine_tx_anchor(cps, r.height, txid),
- <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
- };
-
- <span class="kw">let _ </span>= graph_update.insert_tx(tx);
- <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = anchor {
- <span class="kw">let _ </span>= graph_update.insert_anchor(txid, anchor);
- }
- }
- <span class="prelude-val">Ok</span>(())
-}
-
-<span class="doccomment">/// Fetch transaction of given `txid`.
-///
-/// We maintain a `tx_cache` so that we won't need to fetch from Electrum with every call.
-</span><span class="kw">fn </span>fetch_tx<C: ElectrumApi>(
- client: <span class="kw-2">&</span>C,
- tx_cache: <span class="kw-2">&mut </span>TxCache,
- txid: Txid,
-) -> <span class="prelude-ty">Result</span><Arc<Transaction>, Error> {
- <span class="kw">use </span>bdk_chain::collections::hash_map::Entry;
- <span class="prelude-val">Ok</span>(<span class="kw">match </span>tx_cache.entry(txid) {
- Entry::Occupied(entry) => entry.get().clone(),
- Entry::Vacant(entry) => entry
- .insert(Arc::new(client.transaction_get(<span class="kw-2">&</span>txid)<span class="question-mark">?</span>))
- .clone(),
- })
-}
-
-<span class="comment">// Helper function which fetches the `TxOut`s of our relevant transactions' previous transactions,
-// which we do not have by default. This data is needed to calculate the transaction fee.
-</span><span class="kw">fn </span>fetch_prev_txout<C: ElectrumApi>(
- client: <span class="kw-2">&</span>C,
- tx_cache: <span class="kw-2">&mut </span>TxCache,
- graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
-) -> <span class="prelude-ty">Result</span><(), Error> {
- <span class="kw">let </span>full_txs: Vec<Arc<Transaction>> =
- graph_update.full_txs().map(|tx_node| tx_node.tx).collect();
- <span class="kw">for </span>tx <span class="kw">in </span>full_txs {
- <span class="kw">for </span>vin <span class="kw">in </span><span class="kw-2">&</span>tx.input {
- <span class="kw">let </span>outpoint = vin.previous_output;
- <span class="kw">let </span>vout = outpoint.vout;
- <span class="kw">let </span>prev_tx = fetch_tx(client, tx_cache, outpoint.txid)<span class="question-mark">?</span>;
- <span class="kw">let </span>txout = prev_tx.output[vout <span class="kw">as </span>usize].clone();
- <span class="kw">let _ </span>= graph_update.insert_txout(outpoint, txout);
- }
- }
- <span class="prelude-val">Ok</span>(())
-}
-
-<span class="doccomment">/// Populate the `graph_update` with transactions/anchors associated with the given `spks`.
-///
-/// Transactions that contains an output with requested spk, or spends form an output with
-/// requested spk will be added to `graph_update`. Anchors of the aforementioned transactions are
-/// also included.
-///
-/// Checkpoints (in `cps`) are used to create anchors. The `tx_cache` is self-explanatory.
-</span><span class="kw">fn </span>populate_with_spks<I: Ord + Clone>(
- client: <span class="kw-2">&</span><span class="kw">impl </span>ElectrumApi,
- cps: <span class="kw-2">&</span>BTreeMap<u32, CheckPoint>,
- tx_cache: <span class="kw-2">&mut </span>TxCache,
- graph_update: <span class="kw-2">&mut </span>TxGraph<ConfirmationHeightAnchor>,
- spks: <span class="kw-2">&mut </span><span class="kw">impl </span>Iterator<Item = (I, ScriptBuf)>,
- stop_gap: usize,
- batch_size: usize,
-) -> <span class="prelude-ty">Result</span><BTreeMap<I, (ScriptBuf, bool)>, Error> {
- <span class="kw">let </span><span class="kw-2">mut </span>unused_spk_count = <span class="number">0_usize</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>scanned_spks = BTreeMap::new();
-
- <span class="kw">loop </span>{
- <span class="kw">let </span>spks = (<span class="number">0</span>..batch_size)
- .map_while(|<span class="kw">_</span>| spks.next())
- .collect::<Vec<<span class="kw">_</span>>>();
- <span class="kw">if </span>spks.is_empty() {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(scanned_spks);
- }
-
- <span class="kw">let </span>spk_histories =
- client.batch_script_get_history(spks.iter().map(|(<span class="kw">_</span>, s)| s.as_script()))<span class="question-mark">?</span>;
-
- <span class="kw">for </span>((spk_index, spk), spk_history) <span class="kw">in </span>spks.into_iter().zip(spk_histories) {
- <span class="kw">if </span>spk_history.is_empty() {
- scanned_spks.insert(spk_index, (spk, <span class="bool-val">false</span>));
- unused_spk_count += <span class="number">1</span>;
- <span class="kw">if </span>unused_spk_count > stop_gap {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(scanned_spks);
- }
- <span class="kw">continue</span>;
- } <span class="kw">else </span>{
- scanned_spks.insert(spk_index, (spk, <span class="bool-val">true</span>));
- unused_spk_count = <span class="number">0</span>;
- }
-
- <span class="kw">for </span>tx_res <span class="kw">in </span>spk_history {
- <span class="kw">let _ </span>= graph_update.insert_tx(fetch_tx(client, tx_cache, tx_res.tx_hash)<span class="question-mark">?</span>);
- <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = determine_tx_anchor(cps, tx_res.height, tx_res.tx_hash) {
- <span class="kw">let _ </span>= graph_update.insert_anchor(tx_res.tx_hash, anchor);
- }
- }
- }
- }
-}
-</code></pre></div></section></main></body></html>
\ No newline at end of file
<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>
</pre></div><pre class="rust"><code><span class="doccomment">//! This crate is used for updating structures of [`bdk_chain`] with data from an Electrum server.
//!
-//! The two primary methods are [`ElectrumExt::sync`] and [`ElectrumExt::full_scan`]. In most cases
-//! [`ElectrumExt::sync`] is used to sync the transaction histories of scripts that the application
+//! The two primary methods are [`BdkElectrumClient::sync`] and [`BdkElectrumClient::full_scan`]. In most cases
+//! [`BdkElectrumClient::sync`] 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
-//! has shown a user. [`ElectrumExt::full_scan`] is meant to be used when importing or restoring a
+//! has shown a user. [`BdkElectrumClient::full_scan`] is meant to be used when importing or restoring a
//! 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
</span><span class="attr">#![warn(missing_docs)]
-</span><span class="kw">mod </span>electrum_ext;
+</span><span class="kw">mod </span>bdk_electrum_client;
+<span class="kw">pub use </span>bdk_electrum_client::<span class="kw-2">*</span>;
+
<span class="kw">pub use </span>bdk_chain;
<span class="kw">pub use </span>electrum_client;
-<span class="kw">pub use </span>electrum_ext::<span class="kw-2">*</span>;
</code></pre></div></section></main></body></html>
\ No newline at end of file
<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>
</pre></div><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
//
/// 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, ..)
}
/// 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())
}
}
<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>
</pre></div><pre class="rust"><code><span class="kw">use </span>std::{
io::{<span class="self">self</span>, Write},
sync::Mutex,
};
<span class="kw">use </span>bdk_electrum::{
electrum_client::{<span class="self">self</span>, Client, ElectrumApi},
- ElectrumExt,
+ BdkElectrumClient,
};
<span class="kw">use </span>example_cli::{
anyhow::{<span class="self">self</span>, Context},
}
};
- <span class="kw">let </span>client = electrum_cmd.electrum_args().client(args.network)<span class="question-mark">?</span>;
+ <span class="kw">let </span>client = BdkElectrumClient::new(electrum_cmd.electrum_args().client(args.network)<span class="question-mark">?</span>);
+
+ <span class="comment">// Tell the electrum client about the txs we've already got locally so it doesn't re-download them
+ </span>client.populate_tx_cache(<span class="kw-2">&*</span>graph.lock().unwrap());
<span class="kw">let </span>(chain_update, <span class="kw-2">mut </span>graph_update, keychain_update) = <span class="kw">match </span>electrum_cmd.clone() {
ElectrumCommands::Scan {
<span class="kw">let </span>chain = <span class="kw-2">&*</span>chain.lock().unwrap();
FullScanRequest::from_chain_tip(chain.tip())
- .cache_graph_txs(graph.graph())
.set_spks_for_keychain(
Keychain::External,
graph
}
<span class="kw">let </span>chain_tip = chain.tip();
- <span class="kw">let </span><span class="kw-2">mut </span>request =
- SyncRequest::from_chain_tip(chain_tip.clone()).cache_graph_txs(graph.graph());
+ <span class="kw">let </span><span class="kw-2">mut </span>request = SyncRequest::from_chain_tip(chain_tip.clone());
<span class="kw">if </span>all_spks {
<span class="kw">let </span>all_spks = graph
<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>
</pre></div><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_electrum::{
- electrum_client::{<span class="self">self</span>, ElectrumApi},
- ElectrumExt,
-};
+<span class="kw">use </span>bdk_electrum::electrum_client;
+<span class="kw">use </span>bdk_electrum::BdkElectrumClient;
<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="macro">println!</span>(<span class="string">"Wallet balance before syncing: {} sats"</span>, balance.total());
<span class="macro">print!</span>(<span class="string">"Syncing..."</span>);
- <span class="kw">let </span>client = electrum_client::Client::new(<span class="string">"ssl://electrum.blockstream.info:60002"</span>)<span class="question-mark">?</span>;
+ <span class="kw">let </span>client = BdkElectrumClient::new(electrum_client::Client::new(
+ <span class="string">"ssl://electrum.blockstream.info:60002"</span>,
+ )<span class="question-mark">?</span>);
+
+ <span class="comment">// Populate the electrum client's transaction cache so it doesn't redownload transaction we
+ // already have.
+ </span>client.populate_tx_cache(<span class="kw-2">&</span>wallet);
<span class="kw">let </span>request = wallet
.start_full_scan()
+++ /dev/null
-(function() {var implementors = {
-"bdk_electrum":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk_chain":[["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>"],["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> <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>"]],
+"bdk_chain":[["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>"],["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> <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, I> <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/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I>"]],
"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=\"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/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</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=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
"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 <a 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=\"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.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 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.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=\"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/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 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>"],["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, 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: <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: <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>> <a 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: <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: <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<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<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>"]],
"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=\"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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</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>"],["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=\"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=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</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>"]],
+"bdk_electrum":[["impl<E: <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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E>"]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</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_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> for <a class=\"struct\" href=\"bdk_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><div class=\"where\">where\n 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>,</div>"],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C>"]],
"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>"],["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: <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.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A>"]],
"bdk_bitcoind_rpc":[["impl<'c, C> <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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><div class=\"where\">where\n B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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 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=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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 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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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 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=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> <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=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> <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=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> <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=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <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=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> <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=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> <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=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> <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=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> <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=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> <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=\"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, I> <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=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <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=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><div class=\"where\">where\n IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> <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=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><div class=\"where\">where\n D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> <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=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> <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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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<K> <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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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"]],["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=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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 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=\"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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</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> <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=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> <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=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> <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=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["impl<K> <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=\"bdk_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> !<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=\"bdk_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> <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=\"bdk_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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=\"bdk_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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=\"bdk_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> <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=\"bdk_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> <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=\"bdk_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> <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=\"bdk_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> <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=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a>,</div>",1,["bdk_persist::persist::Persist"]],["impl<K, A> <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=\"bdk_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
"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><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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=\"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 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 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.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=\"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/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["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 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<'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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::spk_client::SyncResult"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::tx_graph::ChangeSet"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::tx_graph::TxGraph"]],["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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",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><div class=\"where\">where\n IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["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><div class=\"where\">where\n D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",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=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]],["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 <a 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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["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=\"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=\"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=\"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> <a 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<'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<'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><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> <a 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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E><div class=\"where\">where\n E: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> <a 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_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_file_store::entry_iter::EntryIter"]],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_file_store::store::AggregateChangesetsError"]],["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_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"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><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_persist::persist::Persist"]],["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_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</div>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
"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><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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 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=\"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 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 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.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=\"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/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 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<'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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::spk_client::SyncResult"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::ChangeSet"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::tx_graph::TxGraph"]],["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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["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><div class=\"where\">where\n D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["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 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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["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><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",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=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]],["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 <a 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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["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=\"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=\"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=\"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> <a 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<'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<'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><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> <a 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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E><div class=\"where\">where\n E: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> <a 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_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_file_store::entry_iter::EntryIter"]],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_file_store::store::AggregateChangesetsError"]],["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_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"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><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_persist::persist::Persist"]],["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_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</div>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
"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><div class=\"where\">where\n B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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=\"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 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 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.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=\"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/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["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 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<'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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["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><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",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><div class=\"where\">where\n F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["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<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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["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<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, 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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",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><div class=\"where\">where\n IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["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><div class=\"where\">where\n D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["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<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=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]],["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 <a 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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["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=\"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=\"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=\"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> <a 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<'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><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_coin_select::bnb::BnbIter"]],["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><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> <a 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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E><div class=\"where\">where\n E: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> <a 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_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T><div class=\"where\">where\n T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_file_store::entry_iter::EntryIter"]],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_file_store::store::AggregateChangesetsError"]],["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_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"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><div class=\"where\">where\n C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</div>",1,["bdk_persist::persist::Persist"]],["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_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
"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><div class=\"where\">where\n 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>,</div>",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><div class=\"where\">where\n 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>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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 class=\"trait\" href=\"https://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=\"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 class=\"trait\" href=\"https://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 class=\"trait\" href=\"https://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.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=\"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/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 class=\"trait\" href=\"https://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<'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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::spk_client::SyncResult"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::tx_graph::ChangeSet"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::tx_graph::TxGraph"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["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 class=\"trait\" href=\"https://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><div class=\"where\">where\n 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>,</div>",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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]],["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 <a class=\"trait\" href=\"https://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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["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=\"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=\"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=\"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> <a class=\"trait\" href=\"https://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<'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<'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><div class=\"where\">where\n 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>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n 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>,</div>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> <a class=\"trait\" href=\"https://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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E><div class=\"where\">where\n E: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</div>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n 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>,</div>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, 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> for <a class=\"struct\" href=\"bdk_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T><div class=\"where\">where\n 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>,</div>",1,["bdk_file_store::entry_iter::EntryIter"]],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["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_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><div class=\"where\">where\n 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>,</div>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"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"]],["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_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
"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><div class=\"where\">where\n 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>,</div>",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><div class=\"where\">where\n 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>,</div>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["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 class=\"trait\" href=\"https://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=\"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 class=\"trait\" href=\"https://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 class=\"trait\" href=\"https://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.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=\"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/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 class=\"trait\" href=\"https://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<'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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::CanonicalTx"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::TxNode"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::tx_graph::TxDescendants"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::chain_data::ChainPosition"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::spk_client::SyncResult"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::chain_data::FullTxOut"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::tx_graph::ChangeSet"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::tx_graph::TxGraph"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::spk_iter::SpkIterator"]],["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><div class=\"where\">where\n 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> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</div>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["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 class=\"trait\" href=\"https://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><div class=\"where\">where\n 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>,</div>",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><div class=\"where\">where\n 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>,</div>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["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><div class=\"where\">where\n 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>,\n 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>,</div>",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=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]],["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 <a class=\"trait\" href=\"https://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=\"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.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["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=\"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=\"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=\"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> <a class=\"trait\" href=\"https://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<'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<'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><div class=\"where\">where\n 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>,</div>",1,["bdk_coin_select::bnb::Bnb"]]],
-"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::electrum_ext::ElectrumSyncResult"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n 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>,</div>",1,["bdk_electrum::electrum_ext::ElectrumFullScanResult"]]],
+"bdk_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=\"struct\" href=\"bdk_electrum/struct.ElectrumSyncResult.html\" title=\"struct bdk_electrum::ElectrumSyncResult\">ElectrumSyncResult</a>",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> <a class=\"trait\" href=\"https://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_electrum/struct.BdkElectrumClient.html\" title=\"struct bdk_electrum::BdkElectrumClient\">BdkElectrumClient</a><E><div class=\"where\">where\n E: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</div>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["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_electrum/struct.ElectrumFullScanResult.html\" title=\"struct bdk_electrum::ElectrumFullScanResult\">ElectrumFullScanResult</a><K><div class=\"where\">where\n 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>,</div>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]],
"bdk_file_store":[["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_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>",1,["bdk_file_store::FileError"]],["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_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, 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> for <a class=\"struct\" href=\"bdk_file_store/struct.EntryIter.html\" title=\"struct bdk_file_store::EntryIter\">EntryIter</a><'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["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_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["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_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><div class=\"where\">where\n 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>,</div>",1,["bdk_file_store::store::Store"]]],
"bdk_hwi":[["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_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>",1,["bdk_hwi::signer::HWISigner"]]],
"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"]],["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_persist/struct.CombinedChangeSet.html\" title=\"struct bdk_persist::CombinedChangeSet\">CombinedChangeSet</a><K, A><div class=\"where\">where\n 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>,\n 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>,</div>",1,["bdk_persist::changeset::CombinedChangeSet"]]],
(function() {var type_impls = {
-"example_cli":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Debug-for-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#14\">source</a><a href=\"#impl-Debug-for-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a 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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.fmt\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#14\">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=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/result/enum.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>","Debug","example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Default-for-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#21\">source</a><a href=\"#impl-Default-for-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">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> 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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.default\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#22\">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=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></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>","Default","example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#211-214\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a> + <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html\" title=\"trait bdk_chain::tx_data_traits::AnchorFromBlockPosition\">AnchorFromBlockPosition</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,\n <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</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=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a>,</div></h3></section></summary><div class=\"docblock\"><p>Methods are available if the anchor (<code>A</code>) implements <a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html\" title=\"trait bdk_chain::tx_data_traits::AnchorFromBlockPosition\"><code>AnchorFromBlockPosition</code></a>.</p>\n</div><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_block_relevant\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#224-228\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_block_relevant\" class=\"fn\">apply_block_relevant</a>(\n &mut self,\n block: &Block,\n height: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert all transactions of the given <code>block</code> of <code>height</code>, filtering out those that are\nirrelevant.</p>\n<p>Each inserted transaction’s anchor will be constructed from\n<a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html#tymethod.from_block_position\" title=\"associated function bdk_chain::tx_data_traits::AnchorFromBlockPosition::from_block_position\"><code>AnchorFromBlockPosition::from_block_position</code></a>.</p>\n<p>Relevancy is determined by the internal <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>.\nIrrelevant transactions in <code>txs</code> will be ignored.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_block\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#256\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_block\" class=\"fn\">apply_block</a>(\n &mut self,\n block: Block,\n height: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert all transactions of the given <code>block</code> of <code>height</code>.</p>\n<p>Each inserted transaction’s anchor will be constructed from\n<a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html#tymethod.from_block_position\" title=\"associated function bdk_chain::tx_data_traits::AnchorFromBlockPosition::from_block_position\"><code>AnchorFromBlockPosition::from_block_position</code></a>.</p>\n<p>To only insert relevant transactions, use <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#method.apply_block_relevant\" title=\"method bdk_chain::indexed_tx_graph::IndexedTxGraph::apply_block_relevant\"><code>apply_block_relevant</code></a> instead.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#30\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.new\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#32\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.new\" class=\"fn\">new</a>(index: I) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></h4></section></summary><div class=\"docblock\"><p>Construct a new <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a> with a given <code>index</code>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.graph\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#40\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.graph\" class=\"fn\">graph</a>(&self) -> &<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A></h4></section></summary><div class=\"docblock\"><p>Get a reference of the internal transaction graph.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#45\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_changeset\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#47\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_changeset\" class=\"fn\">apply_changeset</a>(\n &mut self,\n changeset: <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>>\n)</h4></section></summary><div class=\"docblock\"><p>Applies the <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a> to the <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.initial_changeset\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#61\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.initial_changeset\" class=\"fn\">initial_changeset</a>(&self) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Determines the <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a> between <code>self</code> and an empty <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a>.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#68-70\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,\n <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</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=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_update\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#89\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_update\" class=\"fn\">apply_update</a>(\n &mut self,\n update: <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Apply an <code>update</code> directly.</p>\n<p><code>update</code> is a <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph<A></code></a> and the resultant changes is returned as <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_txout\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#96\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_txout\" class=\"fn\">insert_txout</a>(\n &mut self,\n outpoint: OutPoint,\n txout: TxOut\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert a floating <code>txout</code> of given <code>outpoint</code>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_tx\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#103\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_tx\" class=\"fn\">insert_tx</a>(\n &mut self,\n tx: Transaction\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert and index a transaction into the graph.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_anchor\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#110\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_anchor\" class=\"fn\">insert_anchor</a>(\n &mut self,\n txid: Txid,\n anchor: A\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert an <code>anchor</code> for a given transaction.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_seen_at\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#118\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_seen_at\" class=\"fn\">insert_seen_at</a>(\n &mut self,\n txid: Txid,\n seen_at: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u64.html\">u64</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert a unix timestamp of when a transaction is seen in the mempool.</p>\n<p>This is used for transaction conflict resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> where the transaction with\nthe later last-seen is prioritized.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_relevant\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#126-129\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_relevant\" class=\"fn\">batch_insert_relevant</a><'t>(\n &mut self,\n 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, 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 = A>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert transactions, filtering out those that are irrelevant.</p>\n<p>Relevancy is determined by the <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>. Irrelevant\ntransactions in <code>txs</code> will be ignored. <code>txs</code> do not need to be in topological order.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_relevant_unconfirmed\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#165-168\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_relevant_unconfirmed\" class=\"fn\">batch_insert_relevant_unconfirmed</a><'t>(\n &mut self,\n 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>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert unconfirmed transactions, filtering out those that are irrelevant.</p>\n<p>Relevancy is determined by the internal <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>.\nIrrelevant transactions in <code>txs</code> will be ignored.</p>\n<p>Items of <code>txs</code> are tuples containing the transaction and a <em>last seen</em> timestamp. The\n<em>last seen</em> communicates when the transaction is last seen in the mempool which is used for\nconflict-resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> (refer to <a href=\"bdk_chain/tx_graph/struct.TxGraph.html#method.insert_seen_at\" title=\"method bdk_chain::tx_graph::TxGraph::insert_seen_at\"><code>TxGraph::insert_seen_at</code></a> for details).</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_unconfirmed\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#200-203\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_unconfirmed\" class=\"fn\">batch_insert_unconfirmed</a>(\n &mut self,\n 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 = (Transaction, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u64.html\">u64</a>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert unconfirmed transactions.</p>\n<p>Items of <code>txs</code> are tuples containing the transaction and a <em>last seen</em> timestamp. The\n<em>last seen</em> communicates when the transaction is last seen in the mempool which is used for\nconflict-resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> (refer to <a href=\"bdk_chain/tx_graph/struct.TxGraph.html#method.insert_seen_at\" title=\"method bdk_chain::tx_graph::TxGraph::insert_seen_at\"><code>TxGraph::insert_seen_at</code></a> for details).</p>\n<p>To filter out irrelevant transactions, use <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#method.batch_insert_relevant_unconfirmed\" title=\"method bdk_chain::indexed_tx_graph::IndexedTxGraph::batch_insert_relevant_unconfirmed\"><code>batch_insert_relevant_unconfirmed</code></a> instead.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"]]
+"example_cli":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#356\">source</a><a href=\"#impl-AsRef%3CTxGraph%3CA%3E%3E-for-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <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/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.as_ref\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#357\">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></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details>","AsRef<TxGraph<A>>","example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Debug-for-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#14\">source</a><a href=\"#impl-Debug-for-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a 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><div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.fmt\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#14\">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=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/result/enum.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>","Debug","example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Default-for-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#21\">source</a><a href=\"#impl-Default-for-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">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> 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><div class=\"where\">where\n I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.default\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#22\">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=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></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>","Default","example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#211-214\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a> + <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html\" title=\"trait bdk_chain::tx_data_traits::AnchorFromBlockPosition\">AnchorFromBlockPosition</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,\n <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</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=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a>,</div></h3></section></summary><div class=\"docblock\"><p>Methods are available if the anchor (<code>A</code>) implements <a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html\" title=\"trait bdk_chain::tx_data_traits::AnchorFromBlockPosition\"><code>AnchorFromBlockPosition</code></a>.</p>\n</div><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_block_relevant\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#224-228\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_block_relevant\" class=\"fn\">apply_block_relevant</a>(\n &mut self,\n block: &Block,\n height: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert all transactions of the given <code>block</code> of <code>height</code>, filtering out those that are\nirrelevant.</p>\n<p>Each inserted transaction’s anchor will be constructed from\n<a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html#tymethod.from_block_position\" title=\"associated function bdk_chain::tx_data_traits::AnchorFromBlockPosition::from_block_position\"><code>AnchorFromBlockPosition::from_block_position</code></a>.</p>\n<p>Relevancy is determined by the internal <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>.\nIrrelevant transactions in <code>txs</code> will be ignored.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_block\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#256\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_block\" class=\"fn\">apply_block</a>(\n &mut self,\n block: Block,\n height: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert all transactions of the given <code>block</code> of <code>height</code>.</p>\n<p>Each inserted transaction’s anchor will be constructed from\n<a href=\"bdk_chain/tx_data_traits/trait.AnchorFromBlockPosition.html#tymethod.from_block_position\" title=\"associated function bdk_chain::tx_data_traits::AnchorFromBlockPosition::from_block_position\"><code>AnchorFromBlockPosition::from_block_position</code></a>.</p>\n<p>To only insert relevant transactions, use <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#method.apply_block_relevant\" title=\"method bdk_chain::indexed_tx_graph::IndexedTxGraph::apply_block_relevant\"><code>apply_block_relevant</code></a> instead.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#30\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.new\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#32\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.new\" class=\"fn\">new</a>(index: I) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I></h4></section></summary><div class=\"docblock\"><p>Construct a new <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a> with a given <code>index</code>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.graph\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#40\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.graph\" class=\"fn\">graph</a>(&self) -> &<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A></h4></section></summary><div class=\"docblock\"><p>Get a reference of the internal transaction graph.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#45\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_changeset\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#47\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_changeset\" class=\"fn\">apply_changeset</a>(\n &mut self,\n changeset: <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>>\n)</h4></section></summary><div class=\"docblock\"><p>Applies the <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a> to the <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.initial_changeset\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#61\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.initial_changeset\" class=\"fn\">initial_changeset</a>(&self) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Determines the <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a> between <code>self</code> and an empty <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\"><code>IndexedTxGraph</code></a>.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IndexedTxGraph%3CA,+I%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#68-70\">source</a><a href=\"#impl-IndexedTxGraph%3CA,+I%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<A, I> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><div class=\"where\">where\n A: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Anchor.html\" title=\"trait bdk_chain::tx_data_traits::Anchor\">Anchor</a>,\n I: <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>,\n <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</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=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.apply_update\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#89\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.apply_update\" class=\"fn\">apply_update</a>(\n &mut self,\n update: <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Apply an <code>update</code> directly.</p>\n<p><code>update</code> is a <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph<A></code></a> and the resultant changes is returned as <a href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\"><code>ChangeSet</code></a>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_txout\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#96\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_txout\" class=\"fn\">insert_txout</a>(\n &mut self,\n outpoint: OutPoint,\n txout: TxOut\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert a floating <code>txout</code> of given <code>outpoint</code>.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_tx\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#103\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_tx\" class=\"fn\">insert_tx</a>(\n &mut self,\n tx: Transaction\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert and index a transaction into the graph.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_anchor\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#110\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_anchor\" class=\"fn\">insert_anchor</a>(\n &mut self,\n txid: Txid,\n anchor: A\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert an <code>anchor</code> for a given transaction.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert_seen_at\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#118\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.insert_seen_at\" class=\"fn\">insert_seen_at</a>(\n &mut self,\n txid: Txid,\n seen_at: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u64.html\">u64</a>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Insert a unix timestamp of when a transaction is seen in the mempool.</p>\n<p>This is used for transaction conflict resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> where the transaction with\nthe later last-seen is prioritized.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_relevant\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#126-129\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_relevant\" class=\"fn\">batch_insert_relevant</a><'t>(\n &mut self,\n 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, 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 = A>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert transactions, filtering out those that are irrelevant.</p>\n<p>Relevancy is determined by the <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>. Irrelevant\ntransactions in <code>txs</code> will be ignored. <code>txs</code> do not need to be in topological order.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_relevant_unconfirmed\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#165-168\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_relevant_unconfirmed\" class=\"fn\">batch_insert_relevant_unconfirmed</a><'t>(\n &mut self,\n 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>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert unconfirmed transactions, filtering out those that are irrelevant.</p>\n<p>Relevancy is determined by the internal <a href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#tymethod.is_tx_relevant\" title=\"method bdk_chain::indexed_tx_graph::Indexer::is_tx_relevant\"><code>Indexer::is_tx_relevant</code></a> implementation of <code>I</code>.\nIrrelevant transactions in <code>txs</code> will be ignored.</p>\n<p>Items of <code>txs</code> are tuples containing the transaction and a <em>last seen</em> timestamp. The\n<em>last seen</em> communicates when the transaction is last seen in the mempool which is used for\nconflict-resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> (refer to <a href=\"bdk_chain/tx_graph/struct.TxGraph.html#method.insert_seen_at\" title=\"method bdk_chain::tx_graph::TxGraph::insert_seen_at\"><code>TxGraph::insert_seen_at</code></a> for details).</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.batch_insert_unconfirmed\" class=\"method\"><a class=\"src rightside\" href=\"src/bdk_chain/indexed_tx_graph.rs.html#200-203\">source</a><h4 class=\"code-header\">pub fn <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#tymethod.batch_insert_unconfirmed\" class=\"fn\">batch_insert_unconfirmed</a>(\n &mut self,\n 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 = (Transaction, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u64.html\">u64</a>)>\n) -> <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <I as <a class=\"trait\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html\" title=\"trait bdk_chain::indexed_tx_graph::Indexer\">Indexer</a>>::<a class=\"associatedtype\" href=\"bdk_chain/indexed_tx_graph/trait.Indexer.html#associatedtype.ChangeSet\" title=\"type bdk_chain::indexed_tx_graph::Indexer::ChangeSet\">ChangeSet</a>></h4></section></summary><div class=\"docblock\"><p>Batch insert unconfirmed transactions.</p>\n<p>Items of <code>txs</code> are tuples containing the transaction and a <em>last seen</em> timestamp. The\n<em>last seen</em> communicates when the transaction is last seen in the mempool which is used for\nconflict-resolution in <a href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\"><code>TxGraph</code></a> (refer to <a href=\"bdk_chain/tx_graph/struct.TxGraph.html#method.insert_seen_at\" title=\"method bdk_chain::tx_graph::TxGraph::insert_seen_at\"><code>TxGraph::insert_seen_at</code></a> for details).</p>\n<p>To filter out irrelevant transactions, use <a href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html#method.batch_insert_relevant_unconfirmed\" title=\"method bdk_chain::indexed_tx_graph::IndexedTxGraph::batch_insert_relevant_unconfirmed\"><code>batch_insert_relevant_unconfirmed</code></a> instead.</p>\n</div></details></div></details>",0,"example_cli::KeychainTxGraph"]]
};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var type_impls = {
-"bdk_chain":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Clone-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1262-1266\">source</a></span><a href=\"#impl-Clone-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.clone\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1269\">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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, 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=\"toggle method-toggle\" open><summary><section id=\"method.clone_from\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1274\">source</a><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=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S>)</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>","Clone","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Debug-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1305-1308\">source</a></span><a href=\"#impl-Debug-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a 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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.fmt\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1310\">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=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/result/enum.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>","Debug","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Default-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1316-1318\">source</a></span><a href=\"#impl-Default-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.default\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1322\">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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S></h4></section></summary><div class=\"docblock\"><p>Creates an empty <code>HashMap<K, V, S></code>, with the <code>Default</code> value for the hasher.</p>\n</div></details></div></details>","Default","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Deserialize%3C'de%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/de/impls.rs.html#1576-1582\">source</a><a href=\"#impl-Deserialize%3C'de%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<'de, K, V, S> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> + <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n V: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.deserialize\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/de/impls.rs.html#1576-1582\">source</a><a href=\"#method.deserialize\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize\" class=\"fn\">deserialize</a><D>(\n deserializer: D\n) -> <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/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S>, <D as <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html\" title=\"trait serde::de::Deserializer\">Deserializer</a><'de>>::<a class=\"associatedtype\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html#associatedtype.Error\" title=\"type serde::de::Deserializer::Error\">Error</a>><div class=\"where\">where\n D: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html\" title=\"trait serde::de::Deserializer\">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize\">Read more</a></div></details></div></details>","Deserialize<'de>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Extend%3C(%26K,+%26V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.4.0\">1.4.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3159-3163\">source</a></span><a href=\"#impl-Extend%3C(%26K,+%26V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<'a, K, V, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html\" title=\"trait core::iter::traits::collect::Extend\">Extend</a><(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a V</a>)> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3166\">source</a><a href=\"#method.extend\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#tymethod.extend\" class=\"fn\">extend</a><T>(&mut self, iter: T)<div class=\"where\">where\n T: <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 = (<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a V</a>)>,</div></h4></section></summary><div class='docblock'>Extends a collection with the contents of an iterator. <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#tymethod.extend\">Read more</a></div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend_one\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3171\">source</a><a href=\"#method.extend_one\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_one\" class=\"fn\">extend_one</a>(&mut self, _: (<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&'a V</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>extend_one</code>)</span></div></span><div class='docblock'>Extends a collection with exactly one element.</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend_reserve\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3176\">source</a><a href=\"#method.extend_reserve\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_reserve\" class=\"fn\">extend_reserve</a>(&mut self, additional: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</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>extend_one</code>)</span></div></span><div class='docblock'>Reserves capacity in a collection for the given number of additional elements. <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_reserve\">Read more</a></div></details></div></details>","Extend<(&'a K, &'a V)>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Extend%3C(K,+V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3137-3140\">source</a></span><a href=\"#impl-Extend%3C(K,+V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html\" title=\"trait core::iter::traits::collect::Extend\">Extend</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"docblock\"><p>Inserts all new key-values from the iterator and replaces values with existing\nkeys with new values returned from the iterator.</p>\n</div><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3143\">source</a><a href=\"#method.extend\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#tymethod.extend\" class=\"fn\">extend</a><T>(&mut self, iter: T)<div class=\"where\">where\n T: <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 = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>>,</div></h4></section></summary><div class='docblock'>Extends a collection with the contents of an iterator. <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#tymethod.extend\">Read more</a></div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend_one\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3148\">source</a><a href=\"#method.extend_one\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_one\" class=\"fn\">extend_one</a>(&mut self, _: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</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>extend_one</code>)</span></div></span><div class='docblock'>Extends a collection with exactly one element.</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.extend_reserve\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3153\">source</a><a href=\"#method.extend_reserve\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_reserve\" class=\"fn\">extend_reserve</a>(&mut self, additional: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</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>extend_one</code>)</span></div></span><div class='docblock'>Reserves capacity in a collection for the given number of additional elements. <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#method.extend_reserve\">Read more</a></div></details></div></details>","Extend<(K, V)>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-From%3C%5B(K,+V);+N%5D%3E-for-HashMap%3CK,+V%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.56.0\">1.56.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1360-1362\">source</a></span><a href=\"#impl-From%3C%5B(K,+V);+N%5D%3E-for-HashMap%3CK,+V%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</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=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.from\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1373\">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>(arr: [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V></h4></section></summary><div class=\"docblock\"><h5 id=\"examples\"><a class=\"doc-anchor\" href=\"#examples\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map1 = HashMap::from([(<span class=\"number\">1</span>, <span class=\"number\">2</span>), (<span class=\"number\">3</span>, <span class=\"number\">4</span>)]);\n<span class=\"kw\">let </span>map2: HashMap<<span class=\"kw\">_</span>, <span class=\"kw\">_</span>> = [(<span class=\"number\">1</span>, <span class=\"number\">2</span>), (<span class=\"number\">3</span>, <span class=\"number\">4</span>)].into();\n<span class=\"macro\">assert_eq!</span>(map1, map2);</code></pre></div>\n</div></details></div></details>","From<[(K, V); N]>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-FromIterator%3C(K,+V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3122-3125\">source</a></span><a href=\"#impl-FromIterator%3C(K,+V)%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html\" title=\"trait core::iter::traits::collect::FromIterator\">FromIterator</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.from_iter\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#3127\">source</a><a href=\"#method.from_iter\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter\" class=\"fn\">from_iter</a><T>(iter: T) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n T: <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 = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a>>,</div></h4></section></summary><div class='docblock'>Creates a value from an iterator. <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter\">Read more</a></div></details></div></details>","FromIterator<(K, V)>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-HashMap%3CK,+V%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#217\">source</a><a href=\"#impl-HashMap%3CK,+V%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.new\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#232\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.new\" class=\"fn\">new</a>() -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V></h4></section></summary><div class=\"docblock\"><p>Creates an empty <code>HashMap</code>.</p>\n<p>The hash map is initially created with a capacity of 0, so it will not allocate until it\nis first inserted into.</p>\n<h5 id=\"examples\"><a class=\"doc-anchor\" href=\"#examples\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<<span class=\"kw-2\">&</span>str, i32> = HashMap::new();</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.with_capacity\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#251\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.with_capacity\" class=\"fn\">with_capacity</a>(capacity: <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/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V></h4></section></summary><div class=\"docblock\"><p>Creates an empty <code>HashMap</code> with at least the specified capacity.</p>\n<p>The hash map will be able to hold at least <code>capacity</code> elements without\nreallocating. This method is allowed to allocate for more elements than\n<code>capacity</code>. If <code>capacity</code> is 0, the hash map will not allocate.</p>\n<h5 id=\"examples-1\"><a class=\"doc-anchor\" href=\"#examples-1\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<<span class=\"kw-2\">&</span>str, i32> = HashMap::with_capacity(<span class=\"number\">10</span>);</code></pre></div>\n</div></details></div></details>",0,"bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-HashMap%3CK,+V,+S%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1198-1200\">source</a><a href=\"#impl-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.raw_entry_mut\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1235\">source</a><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.raw_entry_mut\" class=\"fn\">raw_entry_mut</a>(&mut self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.RawEntryBuilderMut.html\" title=\"struct std::collections::hash::map::RawEntryBuilderMut\">RawEntryBuilderMut</a><'_, K, V, S></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>hash_raw_entry</code>)</span></div></span></summary><div class=\"docblock\"><p>Creates a raw entry builder for the HashMap.</p>\n<p>Raw entries provide the lowest level of control for searching and\nmanipulating a map. They must be manually initialized with a hash and\nthen manually searched. After this, insertions into a vacant entry\nstill require an owned key to be provided.</p>\n<p>Raw entries are useful for such exotic situations as:</p>\n<ul>\n<li>Hash memoization</li>\n<li>Deferring the creation of an owned key until it is known to be required</li>\n<li>Using a search key that doesn’t work with the Borrow trait</li>\n<li>Using custom comparison logic without newtype wrappers</li>\n</ul>\n<p>Because raw entries provide much more low-level control, it’s much easier\nto put the HashMap into an inconsistent state which, while memory-safe,\nwill cause the map to produce seemingly random results. Higher-level and\nmore foolproof APIs like <code>entry</code> should be preferred when possible.</p>\n<p>In particular, the hash used to initialized the raw entry must still be\nconsistent with the hash of the key that is ultimately stored in the entry.\nThis is because implementations of HashMap may need to recompute hashes\nwhen resizing, at which point only the keys are available.</p>\n<p>Raw entries give mutable access to the keys. This must not be used\nto modify how the key would compare or hash, as the map will not re-evaluate\nwhere the key should go, meaning the keys may become “lost” if their\nlocation does not reflect their state. For instance, if you change a key\nso that the map now contains keys which compare equal, search may start\nacting erratically, with two keys randomly masking each other. Implementations\nare free to assume this doesn’t happen (within the limits of memory-safety).</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.raw_entry\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1256\">source</a><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.raw_entry\" class=\"fn\">raw_entry</a>(&self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.RawEntryBuilder.html\" title=\"struct std::collections::hash::map::RawEntryBuilder\">RawEntryBuilder</a><'_, K, V, S></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>hash_raw_entry</code>)</span></div></span></summary><div class=\"docblock\"><p>Creates a raw immutable entry builder for the HashMap.</p>\n<p>Raw entries provide the lowest level of control for searching and\nmanipulating a map. They must be manually initialized with a hash and\nthen manually searched.</p>\n<p>This is useful for</p>\n<ul>\n<li>Hash memoization</li>\n<li>Using a search key that doesn’t work with the Borrow trait</li>\n<li>Using custom comparison logic without newtype wrappers</li>\n</ul>\n<p>Unless you are in such a situation, higher-level and more foolproof APIs like\n<code>get</code> should be preferred.</p>\n<p>Immutable raw entries have very limited use; you might instead want <code>raw_entry_mut</code>.</p>\n</div></details></div></details>",0,"bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-HashMap%3CK,+V,+S%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#256\">source</a><a href=\"#impl-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.with_hasher\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.7.0, const unstable\">1.7.0 (const: <a href=\"https://github.com/rust-lang/rust/issues/102575\" title=\"Tracking issue for const_collections_with_hasher\">unstable</a>)</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#283\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.with_hasher\" class=\"fn\">with_hasher</a>(hash_builder: S) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S></h4></section></summary><div class=\"docblock\"><p>Creates an empty <code>HashMap</code> which will use the given hash builder to hash\nkeys.</p>\n<p>The created map has the default initial capacity.</p>\n<p>Warning: <code>hash_builder</code> is normally randomly generated, and\nis designed to allow HashMaps to be resistant to attacks that\ncause many collisions and very poor performance. Setting it\nmanually using this function can expose a DoS attack vector.</p>\n<p>The <code>hash_builder</code> passed should implement the <a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\"><code>BuildHasher</code></a> trait for\nthe HashMap to be useful, see its documentation for details.</p>\n<h5 id=\"examples\"><a class=\"doc-anchor\" href=\"#examples\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">use </span>std::hash::RandomState;\n\n<span class=\"kw\">let </span>s = RandomState::new();\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::with_hasher(s);\nmap.insert(<span class=\"number\">1</span>, <span class=\"number\">2</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.with_capacity_and_hasher\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.7.0\">1.7.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#314\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.with_capacity_and_hasher\" class=\"fn\">with_capacity_and_hasher</a>(capacity: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>, hasher: S) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S></h4></section></summary><div class=\"docblock\"><p>Creates an empty <code>HashMap</code> with at least the specified capacity, using\n<code>hasher</code> to hash the keys.</p>\n<p>The hash map will be able to hold at least <code>capacity</code> elements without\nreallocating. This method is allowed to allocate for more elements than\n<code>capacity</code>. If <code>capacity</code> is 0, the hash map will not allocate.</p>\n<p>Warning: <code>hasher</code> is normally randomly generated, and\nis designed to allow HashMaps to be resistant to attacks that\ncause many collisions and very poor performance. Setting it\nmanually using this function can expose a DoS attack vector.</p>\n<p>The <code>hasher</code> passed should implement the <a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\"><code>BuildHasher</code></a> trait for\nthe HashMap to be useful, see its documentation for details.</p>\n<h5 id=\"examples-1\"><a class=\"doc-anchor\" href=\"#examples-1\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">use </span>std::hash::RandomState;\n\n<span class=\"kw\">let </span>s = RandomState::new();\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::with_capacity_and_hasher(<span class=\"number\">10</span>, s);\nmap.insert(<span class=\"number\">1</span>, <span class=\"number\">2</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.capacity\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#332\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.capacity\" class=\"fn\">capacity</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>Returns the number of elements the map can hold without reallocating.</p>\n<p>This number is a lower bound; the <code>HashMap<K, V></code> might be able to hold\nmore, but is guaranteed to be able to hold at least this many.</p>\n<h5 id=\"examples-2\"><a class=\"doc-anchor\" href=\"#examples-2\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">let </span>map: HashMap<i32, i32> = HashMap::with_capacity(<span class=\"number\">100</span>);\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">100</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.keys\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#361\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.keys\" class=\"fn\">keys</a>(&self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.Keys.html\" title=\"struct std::collections::hash::map::Keys\">Keys</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"Keys<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>An iterator visiting all keys in arbitrary order.\nThe iterator element type is <code>&'a K</code>.</p>\n<h5 id=\"examples-3\"><a class=\"doc-anchor\" href=\"#examples-3\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">for </span>key <span class=\"kw\">in </span>map.keys() {\n <span class=\"macro\">println!</span>(<span class=\"string\">\"{key}\"</span>);\n}</code></pre></div>\n<h5 id=\"performance\"><a class=\"doc-anchor\" href=\"#performance\">§</a>Performance</h5>\n<p>In the current implementation, iterating over keys takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.into_keys\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.54.0\">1.54.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#394\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.into_keys\" class=\"fn\">into_keys</a>(self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.IntoKeys.html\" title=\"struct std::collections::hash::map::IntoKeys\">IntoKeys</a><K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"IntoKeys<K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>Creates a consuming iterator visiting all the keys in arbitrary order.\nThe map cannot be used after calling this.\nThe iterator element type is <code>K</code>.</p>\n<h5 id=\"examples-4\"><a class=\"doc-anchor\" href=\"#examples-4\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>vec: Vec<<span class=\"kw-2\">&</span>str> = map.into_keys().collect();\n<span class=\"comment\">// The `IntoKeys` iterator produces keys in arbitrary order, so the\n// keys must be sorted to test them against a sorted array.\n</span>vec.sort_unstable();\n<span class=\"macro\">assert_eq!</span>(vec, [<span class=\"string\">\"a\"</span>, <span class=\"string\">\"b\"</span>, <span class=\"string\">\"c\"</span>]);</code></pre></div>\n<h5 id=\"performance-1\"><a class=\"doc-anchor\" href=\"#performance-1\">§</a>Performance</h5>\n<p>In the current implementation, iterating over keys takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.values\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#423\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.values\" class=\"fn\">values</a>(&self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.Values.html\" title=\"struct std::collections::hash::map::Values\">Values</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"Values<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>An iterator visiting all values in arbitrary order.\nThe iterator element type is <code>&'a V</code>.</p>\n<h5 id=\"examples-5\"><a class=\"doc-anchor\" href=\"#examples-5\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">for </span>val <span class=\"kw\">in </span>map.values() {\n <span class=\"macro\">println!</span>(<span class=\"string\">\"{val}\"</span>);\n}</code></pre></div>\n<h5 id=\"performance-2\"><a class=\"doc-anchor\" href=\"#performance-2\">§</a>Performance</h5>\n<p>In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.values_mut\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.10.0\">1.10.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#456\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.values_mut\" class=\"fn\">values_mut</a>(&mut self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.ValuesMut.html\" title=\"struct std::collections::hash::map::ValuesMut\">ValuesMut</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"ValuesMut<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>An iterator visiting all values mutably in arbitrary order.\nThe iterator element type is <code>&'a mut V</code>.</p>\n<h5 id=\"examples-6\"><a class=\"doc-anchor\" href=\"#examples-6\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">for </span>val <span class=\"kw\">in </span>map.values_mut() {\n <span class=\"kw-2\">*</span>val = <span class=\"kw-2\">*</span>val + <span class=\"number\">10</span>;\n}\n\n<span class=\"kw\">for </span>val <span class=\"kw\">in </span>map.values() {\n <span class=\"macro\">println!</span>(<span class=\"string\">\"{val}\"</span>);\n}</code></pre></div>\n<h5 id=\"performance-3\"><a class=\"doc-anchor\" href=\"#performance-3\">§</a>Performance</h5>\n<p>In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.into_values\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.54.0\">1.54.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#489\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.into_values\" class=\"fn\">into_values</a>(self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.IntoValues.html\" title=\"struct std::collections::hash::map::IntoValues\">IntoValues</a><K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"IntoValues<K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>Creates a consuming iterator visiting all the values in arbitrary order.\nThe map cannot be used after calling this.\nThe iterator element type is <code>V</code>.</p>\n<h5 id=\"examples-7\"><a class=\"doc-anchor\" href=\"#examples-7\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>vec: Vec<i32> = map.into_values().collect();\n<span class=\"comment\">// The `IntoValues` iterator produces values in arbitrary order, so\n// the values must be sorted to test them against a sorted array.\n</span>vec.sort_unstable();\n<span class=\"macro\">assert_eq!</span>(vec, [<span class=\"number\">1</span>, <span class=\"number\">2</span>, <span class=\"number\">3</span>]);</code></pre></div>\n<h5 id=\"performance-4\"><a class=\"doc-anchor\" href=\"#performance-4\">§</a>Performance</h5>\n<p>In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.iter\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#518\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.iter\" class=\"fn\">iter</a>(&self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.Iter.html\" title=\"struct std::collections::hash::map::Iter\">Iter</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"Iter<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>An iterator visiting all key-value pairs in arbitrary order.\nThe iterator element type is <code>(&'a K, &'a V)</code>.</p>\n<h5 id=\"examples-8\"><a class=\"doc-anchor\" href=\"#examples-8\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"kw\">for </span>(key, val) <span class=\"kw\">in </span>map.iter() {\n <span class=\"macro\">println!</span>(<span class=\"string\">\"key: {key} val: {val}\"</span>);\n}</code></pre></div>\n<h5 id=\"performance-5\"><a class=\"doc-anchor\" href=\"#performance-5\">§</a>Performance</h5>\n<p>In the current implementation, iterating over map takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.iter_mut\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#553\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.iter_mut\" class=\"fn\">iter_mut</a>(&mut self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.IterMut.html\" title=\"struct std::collections::hash::map::IterMut\">IterMut</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"IterMut<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>An iterator visiting all key-value pairs in arbitrary order,\nwith mutable references to the values.\nThe iterator element type is <code>(&'a K, &'a mut V)</code>.</p>\n<h5 id=\"examples-9\"><a class=\"doc-anchor\" href=\"#examples-9\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"comment\">// Update all values\n</span><span class=\"kw\">for </span>(<span class=\"kw\">_</span>, val) <span class=\"kw\">in </span>map.iter_mut() {\n <span class=\"kw-2\">*</span>val <span class=\"kw-2\">*</span>= <span class=\"number\">2</span>;\n}\n\n<span class=\"kw\">for </span>(key, val) <span class=\"kw\">in </span><span class=\"kw-2\">&</span>map {\n <span class=\"macro\">println!</span>(<span class=\"string\">\"key: {key} val: {val}\"</span>);\n}</code></pre></div>\n<h5 id=\"performance-6\"><a class=\"doc-anchor\" href=\"#performance-6\">§</a>Performance</h5>\n<p>In the current implementation, iterating over map takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.len\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#570\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.len\" class=\"fn\">len</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>Returns the number of elements in the map.</p>\n<h5 id=\"examples-10\"><a class=\"doc-anchor\" href=\"#examples-10\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>a = HashMap::new();\n<span class=\"macro\">assert_eq!</span>(a.len(), <span class=\"number\">0</span>);\na.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(a.len(), <span class=\"number\">1</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.is_empty\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#588\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.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\"><p>Returns <code>true</code> if the map contains no elements.</p>\n<h5 id=\"examples-11\"><a class=\"doc-anchor\" href=\"#examples-11\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>a = HashMap::new();\n<span class=\"macro\">assert!</span>(a.is_empty());\na.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert!</span>(!a.is_empty());</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.drain\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.6.0\">1.6.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#618\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.drain\" class=\"fn\">drain</a>(&mut self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.Drain.html\" title=\"struct std::collections::hash::map::Drain\">Drain</a><'_, K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"Drain<'_, K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>Clears the map, returning all key-value pairs as an iterator. Keeps the\nallocated memory for reuse.</p>\n<p>If the returned iterator is dropped before being fully consumed, it\ndrops the remaining key-value pairs. The returned iterator keeps a\nmutable borrow on the map to optimize its implementation.</p>\n<h5 id=\"examples-12\"><a class=\"doc-anchor\" href=\"#examples-12\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>a = HashMap::new();\na.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\na.insert(<span class=\"number\">2</span>, <span class=\"string\">\"b\"</span>);\n\n<span class=\"kw\">for </span>(k, v) <span class=\"kw\">in </span>a.drain().take(<span class=\"number\">1</span>) {\n <span class=\"macro\">assert!</span>(k == <span class=\"number\">1 </span>|| k == <span class=\"number\">2</span>);\n <span class=\"macro\">assert!</span>(v == <span class=\"string\">\"a\" </span>|| v == <span class=\"string\">\"b\"</span>);\n}\n\n<span class=\"macro\">assert!</span>(a.is_empty());</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.extract_if\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#659-661\">source</a><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.extract_if\" class=\"fn\">extract_if</a><F>(&mut self, pred: F) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.ExtractIf.html\" title=\"struct std::collections::hash::map::ExtractIf\">ExtractIf</a><'_, K, V, F> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"ExtractIf<'_, K, V, F>\">ⓘ</a><div class=\"where\">where\n 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\">&K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&mut V</a>) -> <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>hash_extract_if</code>)</span></div></span></summary><div class=\"docblock\"><p>Creates an iterator which uses a closure to determine if an element should be removed.</p>\n<p>If the closure returns true, the element is removed from the map and yielded.\nIf the closure returns false, or panics, the element remains in the map and will not be\nyielded.</p>\n<p>Note that <code>extract_if</code> lets you mutate every value in the filter closure, regardless of\nwhether you choose to keep or remove it.</p>\n<p>If the returned <code>ExtractIf</code> is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#method.retain\" title=\"method std::collections::hash::map::HashMap::retain\"><code>retain</code></a> with a negated predicate if you do not need the returned iterator.</p>\n<h5 id=\"examples-13\"><a class=\"doc-anchor\" href=\"#examples-13\">§</a>Examples</h5>\n<p>Splitting a map into even and odd keys, reusing the original map:</p>\n\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"attr\">#![feature(hash_extract_if)]\n</span><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<i32, i32> = (<span class=\"number\">0</span>..<span class=\"number\">8</span>).map(|x| (x, x)).collect();\n<span class=\"kw\">let </span>extracted: HashMap<i32, i32> = map.extract_if(|k, _v| k % <span class=\"number\">2 </span>== <span class=\"number\">0</span>).collect();\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>evens = extracted.keys().copied().collect::<Vec<<span class=\"kw\">_</span>>>();\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>odds = map.keys().copied().collect::<Vec<<span class=\"kw\">_</span>>>();\nevens.sort();\nodds.sort();\n\n<span class=\"macro\">assert_eq!</span>(evens, <span class=\"macro\">vec!</span>[<span class=\"number\">0</span>, <span class=\"number\">2</span>, <span class=\"number\">4</span>, <span class=\"number\">6</span>]);\n<span class=\"macro\">assert_eq!</span>(odds, <span class=\"macro\">vec!</span>[<span class=\"number\">1</span>, <span class=\"number\">3</span>, <span class=\"number\">5</span>, <span class=\"number\">7</span>]);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.retain\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.18.0\">1.18.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#688-690\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.retain\" class=\"fn\">retain</a><F>(&mut self, f: F)<div class=\"where\">where\n 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\">&K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&mut V</a>) -> <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></h4></section></summary><div class=\"docblock\"><p>Retains only the elements specified by the predicate.</p>\n<p>In other words, remove all pairs <code>(k, v)</code> for which <code>f(&k, &mut v)</code> returns <code>false</code>.\nThe elements are visited in unsorted (and unspecified) order.</p>\n<h5 id=\"examples-14\"><a class=\"doc-anchor\" href=\"#examples-14\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<i32, i32> = (<span class=\"number\">0</span>..<span class=\"number\">8</span>).map(|x| (x, x<span class=\"kw-2\">*</span><span class=\"number\">10</span>)).collect();\nmap.retain(|<span class=\"kw-2\">&</span>k, <span class=\"kw\">_</span>| k % <span class=\"number\">2 </span>== <span class=\"number\">0</span>);\n<span class=\"macro\">assert_eq!</span>(map.len(), <span class=\"number\">4</span>);</code></pre></div>\n<h5 id=\"performance-7\"><a class=\"doc-anchor\" href=\"#performance-7\">§</a>Performance</h5>\n<p>In the current implementation, this operation takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.</p>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.clear\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#710\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.clear\" class=\"fn\">clear</a>(&mut self)</h4></section></summary><div class=\"docblock\"><p>Clears the map, removing all key-value pairs. Keeps the allocated memory\nfor reuse.</p>\n<h5 id=\"examples-15\"><a class=\"doc-anchor\" href=\"#examples-15\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>a = HashMap::new();\na.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\na.clear();\n<span class=\"macro\">assert!</span>(a.is_empty());</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.hasher\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.9.0\">1.9.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#728\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.hasher\" class=\"fn\">hasher</a>(&self) -> <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&S</a></h4></section></summary><div class=\"docblock\"><p>Returns a reference to the map’s <a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\"><code>BuildHasher</code></a>.</p>\n<h5 id=\"examples-16\"><a class=\"doc-anchor\" href=\"#examples-16\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">use </span>std::hash::RandomState;\n\n<span class=\"kw\">let </span>hasher = RandomState::new();\n<span class=\"kw\">let </span>map: HashMap<i32, i32> = HashMap::with_hasher(hasher);\n<span class=\"kw\">let </span>hasher: <span class=\"kw-2\">&</span>RandomState = map.hasher();</code></pre></div>\n</div></details></div></details>",0,"bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-HashMap%3CK,+V,+S%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#733-736\">source</a><a href=\"#impl-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.reserve\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#757\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.reserve\" class=\"fn\">reserve</a>(&mut self, additional: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>)</h4></section></summary><div class=\"docblock\"><p>Reserves capacity for at least <code>additional</code> more elements to be inserted\nin the <code>HashMap</code>. The collection may reserve more space to speculatively\navoid frequent reallocations. After calling <code>reserve</code>,\ncapacity will be greater than or equal to <code>self.len() + additional</code>.\nDoes nothing if capacity is already sufficient.</p>\n<h5 id=\"panics\"><a class=\"doc-anchor\" href=\"#panics\">§</a>Panics</h5>\n<p>Panics if the new allocation size overflows <a href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\" title=\"primitive usize\"><code>usize</code></a>.</p>\n<h5 id=\"examples\"><a class=\"doc-anchor\" href=\"#examples\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<<span class=\"kw-2\">&</span>str, i32> = HashMap::new();\nmap.reserve(<span class=\"number\">10</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.try_reserve\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.57.0\">1.57.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#783\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.try_reserve\" class=\"fn\">try_reserve</a>(&mut self, additional: <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/result/enum.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/alloc/collections/struct.TryReserveError.html\" title=\"struct alloc::collections::TryReserveError\">TryReserveError</a>></h4></section></summary><div class=\"docblock\"><p>Tries to reserve capacity for at least <code>additional</code> more elements to be inserted\nin the <code>HashMap</code>. The collection may reserve more space to speculatively\navoid frequent reallocations. After calling <code>try_reserve</code>,\ncapacity will be greater than or equal to <code>self.len() + additional</code> if\nit returns <code>Ok(())</code>.\nDoes nothing if capacity is already sufficient.</p>\n<h5 id=\"errors\"><a class=\"doc-anchor\" href=\"#errors\">§</a>Errors</h5>\n<p>If the capacity overflows, or the allocator reports a failure, then an error\nis returned.</p>\n<h5 id=\"examples-1\"><a class=\"doc-anchor\" href=\"#examples-1\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<<span class=\"kw-2\">&</span>str, isize> = HashMap::new();\nmap.try_reserve(<span class=\"number\">10</span>).expect(<span class=\"string\">\"why is the test harness OOMing on a handful of bytes?\"</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.shrink_to_fit\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#805\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.shrink_to_fit\" class=\"fn\">shrink_to_fit</a>(&mut self)</h4></section></summary><div class=\"docblock\"><p>Shrinks the capacity of the map as much as possible. It will drop\ndown as much as possible while maintaining the internal rules\nand possibly leaving some space in accordance with the resize policy.</p>\n<h5 id=\"examples-2\"><a class=\"doc-anchor\" href=\"#examples-2\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<i32, i32> = HashMap::with_capacity(<span class=\"number\">100</span>);\nmap.insert(<span class=\"number\">1</span>, <span class=\"number\">2</span>);\nmap.insert(<span class=\"number\">3</span>, <span class=\"number\">4</span>);\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">100</span>);\nmap.shrink_to_fit();\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">2</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.shrink_to\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.56.0\">1.56.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#831\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.shrink_to\" class=\"fn\">shrink_to</a>(&mut self, min_capacity: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>)</h4></section></summary><div class=\"docblock\"><p>Shrinks the capacity of the map with a lower limit. It will drop\ndown no lower than the supplied limit while maintaining the internal rules\nand possibly leaving some space in accordance with the resize policy.</p>\n<p>If the current capacity is less than the lower limit, this is a no-op.</p>\n<h5 id=\"examples-3\"><a class=\"doc-anchor\" href=\"#examples-3\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map: HashMap<i32, i32> = HashMap::with_capacity(<span class=\"number\">100</span>);\nmap.insert(<span class=\"number\">1</span>, <span class=\"number\">2</span>);\nmap.insert(<span class=\"number\">3</span>, <span class=\"number\">4</span>);\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">100</span>);\nmap.shrink_to(<span class=\"number\">10</span>);\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">10</span>);\nmap.shrink_to(<span class=\"number\">0</span>);\n<span class=\"macro\">assert!</span>(map.capacity() >= <span class=\"number\">2</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.entry\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#855\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.entry\" class=\"fn\">entry</a>(&mut self, key: K) -> <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/enum.Entry.html\" title=\"enum std::collections::hash::map::Entry\">Entry</a><'_, K, V></h4></section></summary><div class=\"docblock\"><p>Gets the given key’s corresponding entry in the map for in-place manipulation.</p>\n<h5 id=\"examples-4\"><a class=\"doc-anchor\" href=\"#examples-4\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>letters = HashMap::new();\n\n<span class=\"kw\">for </span>ch <span class=\"kw\">in </span><span class=\"string\">\"a short treatise on fungi\"</span>.chars() {\n letters.entry(ch).and_modify(|counter| <span class=\"kw-2\">*</span>counter += <span class=\"number\">1</span>).or_insert(<span class=\"number\">1</span>);\n}\n\n<span class=\"macro\">assert_eq!</span>(letters[<span class=\"kw-2\">&</span><span class=\"string\">'s'</span>], <span class=\"number\">2</span>);\n<span class=\"macro\">assert_eq!</span>(letters[<span class=\"kw-2\">&</span><span class=\"string\">'t'</span>], <span class=\"number\">3</span>);\n<span class=\"macro\">assert_eq!</span>(letters[<span class=\"kw-2\">&</span><span class=\"string\">'u'</span>], <span class=\"number\">1</span>);\n<span class=\"macro\">assert_eq!</span>(letters.get(<span class=\"kw-2\">&</span><span class=\"string\">'y'</span>), <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.get\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#877-880\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.get\" class=\"fn\">get</a><Q>(&self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</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.reference.html\">&V</a>><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Returns a reference to the value corresponding to the key.</p>\n<p>The key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-5\"><a class=\"doc-anchor\" href=\"#examples-5\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.get(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">Some</span>(<span class=\"kw-2\">&</span><span class=\"string\">\"a\"</span>));\n<span class=\"macro\">assert_eq!</span>(map.get(<span class=\"kw-2\">&</span><span class=\"number\">2</span>), <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.get_key_value\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.40.0\">1.40.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#903-906\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.get_key_value\" class=\"fn\">get_key_value</a><Q>(&self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</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.reference.html\">&K</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&V</a>)><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Returns the key-value pair corresponding to the supplied key.</p>\n<p>The supplied key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-6\"><a class=\"doc-anchor\" href=\"#examples-6\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.get_key_value(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">Some</span>((<span class=\"kw-2\">&</span><span class=\"number\">1</span>, <span class=\"kw-2\">&</span><span class=\"string\">\"a\"</span>)));\n<span class=\"macro\">assert_eq!</span>(map.get_key_value(<span class=\"kw-2\">&</span><span class=\"number\">2</span>), <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.get_many_mut\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#957-960\">source</a><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.get_many_mut\" class=\"fn\">get_many_mut</a><Q, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>>(\n &mut self,\n ks: [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]\n) -> <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.reference.html\">&mut V</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>map_many_mut</code>)</span></div></span></summary><div class=\"docblock\"><p>Attempts to get mutable references to <code>N</code> values in the map at once.</p>\n<p>Returns an array of length <code>N</code> with the results of each query. For soundness, at most one\nmutable reference will be returned to any value. <code>None</code> will be returned if any of the\nkeys are duplicates or missing.</p>\n<h5 id=\"examples-7\"><a class=\"doc-anchor\" href=\"#examples-7\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"attr\">#![feature(map_many_mut)]\n</span><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>libraries = HashMap::new();\nlibraries.insert(<span class=\"string\">\"Bodleian Library\"</span>.to_string(), <span class=\"number\">1602</span>);\nlibraries.insert(<span class=\"string\">\"Athenæum\"</span>.to_string(), <span class=\"number\">1807</span>);\nlibraries.insert(<span class=\"string\">\"Herzogin-Anna-Amalia-Bibliothek\"</span>.to_string(), <span class=\"number\">1691</span>);\nlibraries.insert(<span class=\"string\">\"Library of Congress\"</span>.to_string(), <span class=\"number\">1800</span>);\n\n<span class=\"kw\">let </span>got = libraries.get_many_mut([\n <span class=\"string\">\"Athenæum\"</span>,\n <span class=\"string\">\"Library of Congress\"</span>,\n]);\n<span class=\"macro\">assert_eq!</span>(\n got,\n <span class=\"prelude-val\">Some</span>([\n <span class=\"kw-2\">&mut </span><span class=\"number\">1807</span>,\n <span class=\"kw-2\">&mut </span><span class=\"number\">1800</span>,\n ]),\n);\n\n<span class=\"comment\">// Missing keys result in None\n</span><span class=\"kw\">let </span>got = libraries.get_many_mut([\n <span class=\"string\">\"Athenæum\"</span>,\n <span class=\"string\">\"New York Public Library\"</span>,\n]);\n<span class=\"macro\">assert_eq!</span>(got, <span class=\"prelude-val\">None</span>);\n\n<span class=\"comment\">// Duplicate keys result in None\n</span><span class=\"kw\">let </span>got = libraries.get_many_mut([\n <span class=\"string\">\"Athenæum\"</span>,\n <span class=\"string\">\"Athenæum\"</span>,\n]);\n<span class=\"macro\">assert_eq!</span>(got, <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.get_many_unchecked_mut\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1013-1019\">source</a><h4 class=\"code-header\">pub unsafe fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.get_many_unchecked_mut\" class=\"fn\">get_many_unchecked_mut</a><Q, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>>(\n &mut self,\n ks: [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]\n) -> <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.reference.html\">&mut V</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">N</a>]><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>map_many_mut</code>)</span></div></span></summary><div class=\"docblock\"><p>Attempts to get mutable references to <code>N</code> values in the map at once, without validating that\nthe values are unique.</p>\n<p>Returns an array of length <code>N</code> with the results of each query. <code>None</code> will be returned if\nany of the keys are missing.</p>\n<p>For a safe alternative see <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#method.get_many_mut\" title=\"method std::collections::hash::map::HashMap::get_many_mut\"><code>get_many_mut</code></a>.</p>\n<h5 id=\"safety\"><a class=\"doc-anchor\" href=\"#safety\">§</a>Safety</h5>\n<p>Calling this method with overlapping keys is <em><a href=\"https://doc.rust-lang.org/reference/behavior-considered-undefined.html\">undefined behavior</a></em> even if the resulting\nreferences are not used.</p>\n<h5 id=\"examples-8\"><a class=\"doc-anchor\" href=\"#examples-8\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"attr\">#![feature(map_many_mut)]\n</span><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>libraries = HashMap::new();\nlibraries.insert(<span class=\"string\">\"Bodleian Library\"</span>.to_string(), <span class=\"number\">1602</span>);\nlibraries.insert(<span class=\"string\">\"Athenæum\"</span>.to_string(), <span class=\"number\">1807</span>);\nlibraries.insert(<span class=\"string\">\"Herzogin-Anna-Amalia-Bibliothek\"</span>.to_string(), <span class=\"number\">1691</span>);\nlibraries.insert(<span class=\"string\">\"Library of Congress\"</span>.to_string(), <span class=\"number\">1800</span>);\n\n<span class=\"kw\">let </span>got = libraries.get_many_mut([\n <span class=\"string\">\"Athenæum\"</span>,\n <span class=\"string\">\"Library of Congress\"</span>,\n]);\n<span class=\"macro\">assert_eq!</span>(\n got,\n <span class=\"prelude-val\">Some</span>([\n <span class=\"kw-2\">&mut </span><span class=\"number\">1807</span>,\n <span class=\"kw-2\">&mut </span><span class=\"number\">1800</span>,\n ]),\n);\n\n<span class=\"comment\">// Missing keys result in None\n</span><span class=\"kw\">let </span>got = libraries.get_many_mut([\n <span class=\"string\">\"Athenæum\"</span>,\n <span class=\"string\">\"New York Public Library\"</span>,\n]);\n<span class=\"macro\">assert_eq!</span>(got, <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.contains_key\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1042-1045\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.contains_key\" class=\"fn\">contains_key</a><Q>(&self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>) -> <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Returns <code>true</code> if the map contains a value for the specified key.</p>\n<p>The key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-9\"><a class=\"doc-anchor\" href=\"#examples-9\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.contains_key(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"bool-val\">true</span>);\n<span class=\"macro\">assert_eq!</span>(map.contains_key(<span class=\"kw-2\">&</span><span class=\"number\">2</span>), <span class=\"bool-val\">false</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.get_mut\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1070-1073\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.get_mut\" class=\"fn\">get_mut</a><Q>(&mut self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</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.reference.html\">&mut V</a>><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Returns a mutable reference to the value corresponding to the key.</p>\n<p>The key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-10\"><a class=\"doc-anchor\" href=\"#examples-10\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"kw\">if let </span><span class=\"prelude-val\">Some</span>(x) = map.get_mut(<span class=\"kw-2\">&</span><span class=\"number\">1</span>) {\n <span class=\"kw-2\">*</span>x = <span class=\"string\">\"b\"</span>;\n}\n<span class=\"macro\">assert_eq!</span>(map[<span class=\"kw-2\">&</span><span class=\"number\">1</span>], <span class=\"string\">\"b\"</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.insert\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1105\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.insert\" class=\"fn\">insert</a>(&mut self, k: K, v: V) -> <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html\" title=\"enum core::option::Option\">Option</a><V></h4></section></summary><div class=\"docblock\"><p>Inserts a key-value pair into the map.</p>\n<p>If the map did not have this key present, <a href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None\" title=\"variant core::option::Option::None\"><code>None</code></a> is returned.</p>\n<p>If the map did have this key present, the value is updated, and the old\nvalue is returned. The key is not updated, though; this matters for\ntypes that can be <code>==</code> without being identical. See the <a href=\"https://doc.rust-lang.org/nightly/std/collections/index.html#insert-and-complex-keys\" title=\"mod std::collections\">module-level\ndocumentation</a> for more.</p>\n<h5 id=\"examples-11\"><a class=\"doc-anchor\" href=\"#examples-11\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\n<span class=\"macro\">assert_eq!</span>(map.insert(<span class=\"number\">37</span>, <span class=\"string\">\"a\"</span>), <span class=\"prelude-val\">None</span>);\n<span class=\"macro\">assert_eq!</span>(map.is_empty(), <span class=\"bool-val\">false</span>);\n\nmap.insert(<span class=\"number\">37</span>, <span class=\"string\">\"b\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.insert(<span class=\"number\">37</span>, <span class=\"string\">\"c\"</span>), <span class=\"prelude-val\">Some</span>(<span class=\"string\">\"b\"</span>));\n<span class=\"macro\">assert_eq!</span>(map[<span class=\"kw-2\">&</span><span class=\"number\">37</span>], <span class=\"string\">\"c\"</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.try_insert\" class=\"method\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1133\">source</a><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.try_insert\" class=\"fn\">try_insert</a>(\n &mut self,\n key: K,\n value: V\n) -> <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/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 V</a>, <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.OccupiedError.html\" title=\"struct std::collections::hash::map::OccupiedError\">OccupiedError</a><'_, K, V>></h4></section><span class=\"item-info\"><div class=\"stab unstable\"><span class=\"emoji\">🔬</span><span>This is a nightly-only experimental API. (<code>map_try_insert</code>)</span></div></span></summary><div class=\"docblock\"><p>Tries to insert a key-value pair into the map, and returns\na mutable reference to the value in the entry.</p>\n<p>If the map already had this key present, nothing is updated, and\nan error containing the occupied entry and the value is returned.</p>\n<h5 id=\"examples-12\"><a class=\"doc-anchor\" href=\"#examples-12\">§</a>Examples</h5>\n<p>Basic usage:</p>\n\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"attr\">#![feature(map_try_insert)]\n\n</span><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\n<span class=\"macro\">assert_eq!</span>(map.try_insert(<span class=\"number\">37</span>, <span class=\"string\">\"a\"</span>).unwrap(), <span class=\"kw-2\">&</span><span class=\"string\">\"a\"</span>);\n\n<span class=\"kw\">let </span>err = map.try_insert(<span class=\"number\">37</span>, <span class=\"string\">\"b\"</span>).unwrap_err();\n<span class=\"macro\">assert_eq!</span>(err.entry.key(), <span class=\"kw-2\">&</span><span class=\"number\">37</span>);\n<span class=\"macro\">assert_eq!</span>(err.entry.get(), <span class=\"kw-2\">&</span><span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(err.value, <span class=\"string\">\"b\"</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.remove\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1160-1163\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.remove\" class=\"fn\">remove</a><Q>(&mut self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>) -> <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html\" title=\"enum core::option::Option\">Option</a><V><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Removes a key from the map, returning the value at the key if the key\nwas previously in the map.</p>\n<p>The key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-13\"><a class=\"doc-anchor\" href=\"#examples-13\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.remove(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">Some</span>(<span class=\"string\">\"a\"</span>));\n<span class=\"macro\">assert_eq!</span>(map.remove(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.remove_entry\" class=\"method\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.27.0\">1.27.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1189-1192\">source</a></span><h4 class=\"code-header\">pub fn <a href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html#tymethod.remove_entry\" class=\"fn\">remove_entry</a><Q>(&mut self, k: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</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.tuple.html\">(K, V)</a>><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,</div></h4></section></summary><div class=\"docblock\"><p>Removes a key from the map, returning the stored key and value if the\nkey was previously in the map.</p>\n<p>The key may be any borrowed form of the map’s key type, but\n<a href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\"><code>Hash</code></a> and <a href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\"><code>Eq</code></a> on the borrowed form <em>must</em> match those for\nthe key type.</p>\n<h5 id=\"examples-14\"><a class=\"doc-anchor\" href=\"#examples-14\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span><span class=\"kw-2\">mut </span>map = HashMap::new();\nmap.insert(<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>);\n<span class=\"macro\">assert_eq!</span>(map.remove_entry(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">Some</span>((<span class=\"number\">1</span>, <span class=\"string\">\"a\"</span>)));\n<span class=\"macro\">assert_eq!</span>(map.remove(<span class=\"kw-2\">&</span><span class=\"number\">1</span>), <span class=\"prelude-val\">None</span>);</code></pre></div>\n</div></details></div></details>",0,"bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Index%3C%26Q%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1328-1332\">source</a></span><a href=\"#impl-Index%3C%26Q%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, Q, V, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html\" title=\"trait core::ops::index::Index\">Index</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html\" title=\"trait core::borrow::Borrow\">Borrow</a><Q>,\n Q: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> + ?<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.index\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1342\">source</a><a href=\"#method.index\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#tymethod.index\" class=\"fn\">index</a>(&self, key: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&Q</a>) -> <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&V</a></h4></section></summary><div class=\"docblock\"><p>Returns a reference to the value corresponding to the supplied key.</p>\n<h5 id=\"panics\"><a class=\"doc-anchor\" href=\"#panics\">§</a>Panics</h5>\n<p>Panics if the key is not present in the <code>HashMap</code>.</p>\n</div></details><details class=\"toggle\" open><summary><section id=\"associatedtype.Output\" class=\"associatedtype trait-impl\"><a href=\"#associatedtype.Output\" class=\"anchor\">§</a><h4 class=\"code-header\">type <a href=\"https://doc.rust-lang.org/nightly/core/ops/index/trait.Index.html#associatedtype.Output\" class=\"associatedtype\">Output</a> = V</h4></section></summary><div class='docblock'>The returned type after indexing.</div></details></div></details>","Index<&Q>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IntoDeserializer%3C'de,+E%3E-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/de/value.rs.html#1440-1445\">source</a><a href=\"#impl-IntoDeserializer%3C'de,+E%3E-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<'de, K, V, S, E> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html\" title=\"trait serde::de::IntoDeserializer\">IntoDeserializer</a><'de, E> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html\" title=\"trait serde::de::IntoDeserializer\">IntoDeserializer</a><'de, E> + <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n V: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html\" title=\"trait serde::de::IntoDeserializer\">IntoDeserializer</a><'de, E>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,\n E: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.Error.html\" title=\"trait serde::de::Error\">Error</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle\" open><summary><section id=\"associatedtype.Deserializer\" class=\"associatedtype trait-impl\"><a href=\"#associatedtype.Deserializer\" class=\"anchor\">§</a><h4 class=\"code-header\">type <a href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html#associatedtype.Deserializer\" class=\"associatedtype\">Deserializer</a> = <a class=\"struct\" href=\"https://docs.rs/serde/1.0.203/serde/de/value/struct.MapDeserializer.html\" title=\"struct serde::de::value::MapDeserializer\">MapDeserializer</a><'de, <<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S> as <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>>::<a class=\"associatedtype\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter\" title=\"type core::iter::traits::collect::IntoIterator::IntoIter\">IntoIter</a>, E></h4></section></summary><div class='docblock'>The type of the deserializer being converted into.</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.into_deserializer\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/de/value.rs.html#1449\">source</a><a href=\"#method.into_deserializer\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html#tymethod.into_deserializer\" class=\"fn\">into_deserializer</a>(\n self\n) -> <<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S> as <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html\" title=\"trait serde::de::IntoDeserializer\">IntoDeserializer</a><'de, E>>::<a class=\"associatedtype\" href=\"https://docs.rs/serde/1.0.203/serde/de/trait.IntoDeserializer.html#associatedtype.Deserializer\" title=\"type serde::de::IntoDeserializer::Deserializer\">Deserializer</a></h4></section></summary><div class='docblock'>Convert this value into a deserializer.</div></details></div></details>","IntoDeserializer<'de, E>","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-IntoIterator-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#2199\">source</a></span><a href=\"#impl-IntoIterator-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <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> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.into_iter\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#2223\">source</a><a href=\"#method.into_iter\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter\" class=\"fn\">into_iter</a>(self) -> <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.IntoIter.html\" title=\"struct std::collections::hash::map::IntoIter\">IntoIter</a><K, V> <a href=\"#\" class=\"tooltip\" data-notable-ty=\"IntoIter<K, V>\">ⓘ</a></h4></section></summary><div class=\"docblock\"><p>Creates a consuming iterator, that is, one that moves each key-value\npair out of the map in arbitrary order. The map cannot be used after\ncalling this.</p>\n<h5 id=\"examples\"><a class=\"doc-anchor\" href=\"#examples\">§</a>Examples</h5>\n<div class=\"example-wrap\"><pre class=\"rust rust-example-rendered\"><code><span class=\"kw\">use </span>std::collections::HashMap;\n\n<span class=\"kw\">let </span>map = HashMap::from([\n (<span class=\"string\">\"a\"</span>, <span class=\"number\">1</span>),\n (<span class=\"string\">\"b\"</span>, <span class=\"number\">2</span>),\n (<span class=\"string\">\"c\"</span>, <span class=\"number\">3</span>),\n]);\n\n<span class=\"comment\">// Not possible with .iter()\n</span><span class=\"kw\">let </span>vec: Vec<(<span class=\"kw-2\">&</span>str, i32)> = map.into_iter().collect();</code></pre></div>\n</div></details><details class=\"toggle\" open><summary><section id=\"associatedtype.Item\" class=\"associatedtype trait-impl\"><a href=\"#associatedtype.Item\" class=\"anchor\">§</a><h4 class=\"code-header\">type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.tuple.html\">(K, V)</a></h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class=\"toggle\" open><summary><section id=\"associatedtype.IntoIter\" class=\"associatedtype trait-impl\"><a href=\"#associatedtype.IntoIter\" class=\"anchor\">§</a><h4 class=\"code-header\">type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter\" class=\"associatedtype\">IntoIter</a> = <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.IntoIter.html\" title=\"struct std::collections::hash::map::IntoIter\">IntoIter</a><K, V></h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details></div></details>","IntoIterator","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-PartialEq-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1280-1284\">source</a></span><a href=\"#impl-PartialEq-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.eq\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1286\">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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S>) -> <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\nby <code>==</code>.</div></details><details class=\"toggle method-toggle\" open><summary><section id=\"method.ne\" class=\"method trait-impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263\">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\">&Rhs</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>!=</code>. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.</div></details></div></details>","PartialEq","bdk_chain::spk_client::TxCache"],["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Serialize-for-HashMap%3CK,+V,+H%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/ser/impls.rs.html#501-505\">source</a><a href=\"#impl-Serialize-for-HashMap%3CK,+V,+H%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, H> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, H><div class=\"where\">where\n K: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,\n V: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,</div></h3></section></summary><div class=\"impl-items\"><details class=\"toggle method-toggle\" open><summary><section id=\"method.serialize\" class=\"method trait-impl\"><a class=\"src rightside\" href=\"https://docs.rs/serde/1.0.203/src/serde/ser/impls.rs.html#501-505\">source</a><a href=\"#method.serialize\" class=\"anchor\">§</a><h4 class=\"code-header\">fn <a href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serialize.html#tymethod.serialize\" class=\"fn\">serialize</a><S>(\n &self,\n serializer: S\n) -> <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.203/serde/ser/trait.Serializer.html\" title=\"trait serde::ser::Serializer\">Serializer</a>>::<a class=\"associatedtype\" href=\"https://docs.rs/serde/1.0.203/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.203/serde/ser/trait.Serializer.html\" title=\"trait serde::ser::Serializer\">Serializer</a>>::<a class=\"associatedtype\" href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serializer.html#associatedtype.Error\" title=\"type serde::ser::Serializer::Error\">Error</a>><div class=\"where\">where\n S: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serializer.html\" title=\"trait serde::ser::Serializer\">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href=\"https://docs.rs/serde/1.0.203/serde/ser/trait.Serialize.html#tymethod.serialize\">Read more</a></div></details></div></details>","Serialize","bdk_chain::spk_client::TxCache"],["<section id=\"impl-Eq-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.0.0\">1.0.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#1296-1300\">source</a></span><a href=\"#impl-Eq-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, S> <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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n K: <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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a>,\n S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html\" title=\"trait core::hash::BuildHasher\">BuildHasher</a>,</div></h3></section>","Eq","bdk_chain::spk_client::TxCache"],["<section id=\"impl-UnwindSafe-for-HashMap%3CK,+V,+S%3E\" class=\"impl\"><span class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 1.36.0\">1.36.0</span> · <a class=\"src\" href=\"https://doc.rust-lang.org/nightly/src/std/panic.rs.html#82-86\">source</a></span><a href=\"#impl-UnwindSafe-for-HashMap%3CK,+V,+S%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl<K, V, 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=\"https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html\" title=\"struct std::collections::hash::map::HashMap\">HashMap</a><K, V, S><div class=\"where\">where\n 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>,\n V: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,\n 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>,</div></h3></section>","UnwindSafe","bdk_chain::spk_client::TxCache"]]
-};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})()
\ 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`."><title>main in wallet_electrum_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../wallet_electrum_example/index.html">wallet_electrum_example</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">wallet_electrum_example</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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><pre class="rust item-decl"><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.85/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></section></div></main></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`."><title>main in wallet_electrum_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../wallet_electrum_example/index.html">wallet_electrum_example</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">wallet_electrum_example</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/wallet_electrum_example/main.rs.html#17-100">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><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.85/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></section></div></main></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."><title>wallet_electrum_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../wallet_electrum_example/index.html">wallet_electrum_example</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">wallet_electrum_example</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" 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="section-header">Constants<a href="#constants" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.BATCH_SIZE.html" title="constant wallet_electrum_example::BATCH_SIZE">BATCH_SIZE</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.DB_MAGIC.html" title="constant wallet_electrum_example::DB_MAGIC">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.SEND_AMOUNT.html" title="constant wallet_electrum_example::SEND_AMOUNT">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.STOP_GAP.html" title="constant wallet_electrum_example::STOP_GAP">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn wallet_electrum_example::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></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."><title>wallet_electrum_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="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.80.0-nightly (78a775127 2024-05-11)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" 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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../wallet_electrum_example/index.html">wallet_electrum_example</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><ul class="block"><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><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">wallet_electrum_example</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/wallet_electrum_example/main.rs.html#1-100">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.BATCH_SIZE.html" title="constant wallet_electrum_example::BATCH_SIZE">BATCH_SIZE</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.DB_MAGIC.html" title="constant wallet_electrum_example::DB_MAGIC">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.SEND_AMOUNT.html" title="constant wallet_electrum_example::SEND_AMOUNT">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="constant" href="constant.STOP_GAP.html" title="constant wallet_electrum_example::STOP_GAP">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn wallet_electrum_example::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></body></html>
\ No newline at end of file