From f0bb684403060aa7b35f0defdab373bf71010d91 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 9 Jul 2024 19:31:24 +0000 Subject: [PATCH] Publish autogenerated nightly docs --- .../bdk/nightly/latest/bdk_chain/all.html | 2 +- ...html => struct.ConfirmationBlockTime.html} | 6 +- .../struct.ConfirmationTimeHeightAnchor.html | 11 - .../latest/bdk_chain/enum.ChainPosition.html | 4 +- .../bdk_chain/enum.ConfirmationTime.html | 4 +- .../bdk/nightly/latest/bdk_chain/index.html | 3 +- .../indexed_tx_graph/struct.ChangeSet.html | 2 +- .../enum.InsertDescriptorError.html | 2 +- .../keychain_txout/struct.ChangeSet.html | 4 +- .../local_chain/enum.ApplyHeaderError.html | 2 +- .../struct.CannotConnectError.html | 2 +- .../nightly/latest/bdk_chain/sidebar-items.js | 2 +- .../spk_client/struct.FullScanResult.html | 2 +- .../spk_client/struct.SyncResult.html | 2 +- .../latest/bdk_chain/struct.Balance.html | 4 +- .../latest/bdk_chain/struct.BlockId.html | 4 +- .../bdk_chain/struct.CombinedChangeSet.html | 2 +- .../struct.ConfirmationBlockTime.html | 32 + .../struct.ConfirmationHeightAnchor.html | 38 -- .../struct.ConfirmationTimeHeightAnchor.html | 36 -- .../latest/bdk_chain/struct.DescriptorId.html | 14 +- .../latest/bdk_chain/struct.FullTxOut.html | 14 +- .../latest/bdk_chain/trait.Anchor.html | 42 +- .../trait.AnchorFromBlockPosition.html | 6 +- .../nightly/latest/bdk_chain/trait.Merge.html | 32 +- .../tx_graph/enum.CalculateFeeError.html | 2 +- .../bdk_chain/tx_graph/struct.ChangeSet.html | 2 +- .../enum.SelectionConstraint.html | 2 +- .../bdk/nightly/latest/bdk_electrum/all.html | 2 +- .../struct.ElectrumFullScanResult.html | 11 - .../struct.ElectrumSyncResult.html | 11 - .../nightly/latest/bdk_electrum/index.html | 2 +- .../latest/bdk_electrum/sidebar-items.js | 2 +- .../struct.BdkElectrumClient.html | 20 +- .../struct.ElectrumFullScanResult.html | 27 - .../struct.ElectrumSyncResult.html | 23 - .../bdk/nightly/latest/bdk_esplora/index.html | 2 +- .../latest/bdk_file_store/enum.FileError.html | 2 +- .../latest/bdk_file_store/enum.IterError.html | 2 +- .../bdk_tmp_plan/enum.SigningError.html | 2 +- .../descriptor/enum.Descriptor.html | 6 +- .../descriptor/error/enum.Error.html | 2 +- .../descriptor/policy/enum.PolicyError.html | 2 +- .../bdk_wallet/keys/enum.ExtendedKey.html | 2 +- .../latest/bdk_wallet/keys/enum.KeyError.html | 2 +- .../bdk_wallet/keys/struct.GeneratedKey.html | 4 +- .../keys/trait.IntoDescriptorKey.html | 2 +- .../wallet/coin_selection/enum.Error.html | 2 +- .../wallet/enum.ApplyBlockError.html | 2 +- .../bdk_wallet/wallet/enum.LoadError.html | 2 +- .../wallet/error/enum.CreateTxError.html | 2 +- .../bdk_wallet/wallet/export/index.html | 2 +- .../export/struct.FullyNodedExport.html | 4 +- .../fn.wallet_name_from_descriptor.html | 2 +- .../latest/bdk_wallet/wallet/index.html | 2 +- .../wallet/signer/enum.SignerId.html | 2 +- .../wallet/signer/struct.SignerWrapper.html | 6 +- .../bdk_wallet/wallet/struct.AddressInfo.html | 2 +- .../bdk_wallet/wallet/struct.Update.html | 4 +- .../bdk_wallet/wallet/struct.Wallet.html | 72 +-- .../tx_builder/enum.AddForeignUtxoError.html | 2 +- .../bdk_wallet/wallet/type.ChangeSet.html | 6 +- .../type.ChangeSet.html | 2 +- .../latest/example_cli/enum.Keychain.html | 4 +- .../latest/example_electrum/fn.main.html | 2 +- .../latest/example_electrum/index.html | 2 +- .../example_electrum/type.ChangeSet.html | 2 +- .../example_esplora/type.ChangeSet.html | 2 +- .../docs-rs/bdk/nightly/latest/help.html | 2 +- .../bdk/nightly/latest/search-index.js | 12 +- .../bdk_chain/bdk_chain-desc-0-.js | 2 +- .../bdk_electrum/bdk_electrum-desc-0-.js | 2 +- .../docs-rs/bdk/nightly/latest/settings.html | 2 +- .../latest/src/bdk_chain/chain_data.rs.html | 132 +--- .../latest/src/bdk_chain/spk_client.rs.html | 6 +- .../src/bdk_chain/tx_data_traits.rs.html | 58 +- .../bdk_electrum/bdk_electrum_client.rs.html | 564 ++++++------------ .../latest/src/bdk_esplora/async_ext.rs.html | 8 +- .../src/bdk_esplora/blocking_ext.rs.html | 8 +- .../latest/src/bdk_esplora/lib.rs.html | 10 +- .../latest/src/bdk_sqlite/store.rs.html | 60 +- .../src/bdk_wallet/wallet/export.rs.html | 22 +- .../latest/src/bdk_wallet/wallet/mod.rs.html | 40 +- .../example_bitcoind_rpc_polling/main.rs.html | 4 +- .../latest/src/example_electrum/main.rs.html | 14 +- .../latest/src/example_esplora/main.rs.html | 4 +- .../src/wallet_electrum_example/main.rs.html | 6 +- .../trait.impl/core/clone/trait.Clone.js | 2 +- .../latest/trait.impl/core/cmp/trait.Eq.js | 2 +- .../latest/trait.impl/core/cmp/trait.Ord.js | 2 +- .../trait.impl/core/cmp/trait.PartialEq.js | 2 +- .../trait.impl/core/cmp/trait.PartialOrd.js | 2 +- .../trait.impl/core/convert/trait.AsRef.js | 2 +- .../trait.impl/core/convert/trait.From.js | 2 +- .../trait.impl/core/default/trait.Default.js | 2 +- .../latest/trait.impl/core/fmt/trait.Debug.js | 2 +- .../latest/trait.impl/core/hash/trait.Hash.js | 2 +- .../trait.impl/core/marker/trait.Copy.js | 2 +- .../trait.impl/core/marker/trait.Freeze.js | 4 +- .../trait.impl/core/marker/trait.Send.js | 4 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- .../trait.impl/core/marker/trait.Sync.js | 4 +- .../trait.impl/core/marker/trait.Unpin.js | 4 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 4 +- .../panic/unwind_safe/trait.UnwindSafe.js | 4 +- .../trait.impl/serde/de/trait.Deserialize.js | 2 +- .../trait.impl/serde/ser/trait.Serialize.js | 2 +- .../collections/btree/map/struct.BTreeMap.js | 2 +- .../latest/type.impl/std/primitive.tuple.js | 2 +- .../wallet_electrum_example/fn.main.html | 2 +- .../latest/wallet_electrum_example/index.html | 2 +- 111 files changed, 510 insertions(+), 1036 deletions(-) rename docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/{struct.ConfirmationHeightAnchor.html => struct.ConfirmationBlockTime.html} (61%) delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html create mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationBlockTime.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeHeightAnchor.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumFullScanResult.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumSyncResult.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumFullScanResult.html delete mode 100644 docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumSyncResult.html diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html index e3155c322a..13bfbcc39d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationBlockTime.html similarity index 61% rename from docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html rename to docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationBlockTime.html index cbe3277b52..13a86d1202 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationBlockTime.html @@ -1,11 +1,11 @@ - + Redirection -

Redirecting to ../../bdk_chain/struct.ConfirmationHeightAnchor.html...

- +

Redirecting to ../../bdk_chain/struct.ConfirmationBlockTime.html...

+ \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html deleted file mode 100644 index 6906fc8bbc..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk_chain/struct.ConfirmationTimeHeightAnchor.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ChainPosition.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ChainPosition.html index 85dcbbef20..d98cb78af3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ChainPosition.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ChainPosition.html @@ -1,4 +1,4 @@ -ChainPosition in bdk_chain - Rust

Enum bdk_chain::ChainPosition

source ·
pub enum ChainPosition<A> {
+ChainPosition in bdk_chain - Rust

Enum bdk_chain::ChainPosition

source ·
pub enum ChainPosition<A> {
     Confirmed(A),
     Unconfirmed(u64),
 }
Expand description

Represents the observed position of some chain data.

@@ -8,7 +8,7 @@

Implementations§

source§

impl<A> ChainPosition<A>

source

pub fn is_confirmed(&self) -> bool

Returns whether ChainPosition is confirmed or not.

source§

impl<A: Clone> ChainPosition<&A>

source

pub fn cloned(self) -> ChainPosition<A>

Maps a ChainPosition<&A> into a ChainPosition<A> by cloning the contents.

source§

impl<A: Anchor> ChainPosition<A>

source

pub fn confirmation_height_upper_bound(&self) -> Option<u32>

Determines the upper bound of the confirmation height.

-

Trait Implementations§

source§

impl<A: Clone> Clone for ChainPosition<A>

source§

fn clone(&self) -> ChainPosition<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for ChainPosition<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime

source§

fn from(observed_as: ChainPosition<ConfirmationTimeHeightAnchor>) -> Self

Converts to this type from the input type.
source§

impl<A: Hash> Hash for ChainPosition<A>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl<A: Clone> Clone for ChainPosition<A>

source§

fn clone(&self) -> ChainPosition<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for ChainPosition<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ChainPosition<ConfirmationBlockTime>> for ConfirmationTime

source§

fn from(observed_as: ChainPosition<ConfirmationBlockTime>) -> Self

Converts to this type from the input type.
source§

impl<A: Hash> Hash for ChainPosition<A>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<A: Ord> Ord for ChainPosition<A>

source§

fn cmp(&self, other: &ChainPosition<A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ConfirmationTime.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ConfirmationTime.html index cf2f7f375a..78896c8a7c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ConfirmationTime.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.ConfirmationTime.html @@ -1,4 +1,4 @@ -ConfirmationTime in bdk_chain - Rust

Enum bdk_chain::ConfirmationTime

source ·
pub enum ConfirmationTime {
+ConfirmationTime in bdk_chain - Rust

Enum bdk_chain::ConfirmationTime

source ·
pub enum ConfirmationTime {
     Confirmed {
         height: u32,
         time: u64,
@@ -15,7 +15,7 @@
 

Implementations§

source§

impl ConfirmationTime

source

pub fn unconfirmed(last_seen: u64) -> Self

Construct an unconfirmed variant using the given last_seen time in unix seconds.

source

pub fn is_confirmed(&self) -> bool

Returns whether ConfirmationTime is the confirmed variant.

Trait Implementations§

source§

impl Clone for ConfirmationTime

source§

fn clone(&self) -> ConfirmationTime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ConfirmationTime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConfirmationTime

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime

source§

fn from(observed_as: ChainPosition<ConfirmationTimeHeightAnchor>) -> Self

Converts to this type from the input type.
source§

impl Hash for ConfirmationTime

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<ChainPosition<ConfirmationBlockTime>> for ConfirmationTime

source§

fn from(observed_as: ChainPosition<ConfirmationBlockTime>) -> Self

Converts to this type from the input type.
source§

impl Hash for ConfirmationTime

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for ConfirmationTime

source§

fn cmp(&self, other: &ConfirmationTime) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/index.html index 6693df6f77..39fd16bd2d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/index.html @@ -15,6 +15,5 @@ consistently. cache or how you retrieve it from persistent storage.

Re-exports§

Modules§

Structs§

Enums§

Constants§

Traits§

Structs§

Enums§

Constants§

Traits§

  • Trait that “anchors” blockchain data to a specific block of height and hash.
  • An Anchor that can be constructed from a given block, block height and transaction position within the block.
  • Represents a service that tracks the blockchain.
  • A trait to extend the functionality of a miniscript descriptor.
  • Trait that makes an object mergeable.

Type Aliases§

  • A tuple of keychain index and T representing the indexed value.
  • A tuple of keychain K, derivation index (u32) and a T associated with them.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html index d34dc591e9..13a6ca0926 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html @@ -7,7 +7,7 @@

Trait Implementations§

source§

impl<A: Clone, IA: Clone> Clone for ChangeSet<A, IA>

source§

fn clone(&self) -> ChangeSet<A, IA>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug, IA: Debug> Debug for ChangeSet<A, IA>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A, IA: Default> Default for ChangeSet<A, IA>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, A, IA> Deserialize<'de> for ChangeSet<A, IA>
where A: Ord + Deserialize<'de>, IA: Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>

source§

fn from(graph: ChangeSet<A>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

source§

fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> Self

Converts to this type from the input type.
source§

impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<A: Anchor, IA: Merge> Merge for ChangeSet<A, IA>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>

source§

fn eq(&self, other: &ChangeSet<A, IA>) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>

source§

fn from(graph: ChangeSet<A>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

source§

fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> Self

Converts to this type from the input type.
source§

impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<A: Anchor, IA: Merge> Merge for ChangeSet<A, IA>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>

source§

fn eq(&self, other: &ChangeSet<A, IA>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<A, IA> Serialize for ChangeSet<A, IA>
where A: Ord + Serialize, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/enum.InsertDescriptorError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/enum.InsertDescriptorError.html index 201612a002..c93205f046 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/enum.InsertDescriptorError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/enum.InsertDescriptorError.html @@ -14,7 +14,7 @@

§

KeychainAlreadyAssigned

The keychain is already assigned to a descriptor so you can’t reassign it

Fields

§keychain: K

The keychain that you have attempted to reassign

§existing_assignment: Descriptor<DescriptorPublicKey>

The descriptor that the keychain is already assigned to

-

Trait Implementations§

source§

impl<K: Clone> Clone for InsertDescriptorError<K>

source§

fn clone(&self) -> InsertDescriptorError<K>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K: Debug> Debug for InsertDescriptorError<K>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K: Debug> Display for InsertDescriptorError<K>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K: Debug> Error for InsertDescriptorError<K>

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl<K: PartialEq> PartialEq for InsertDescriptorError<K>

source§

fn eq(&self, other: &InsertDescriptorError<K>) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<K: Clone> Clone for InsertDescriptorError<K>

source§

fn clone(&self) -> InsertDescriptorError<K>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K: Debug> Debug for InsertDescriptorError<K>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K: Debug> Display for InsertDescriptorError<K>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K: Debug> Error for InsertDescriptorError<K>

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl<K: PartialEq> PartialEq for InsertDescriptorError<K>

source§

fn eq(&self, other: &InsertDescriptorError<K>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<K> StructuralPartialEq for InsertDescriptorError<K>

Auto Trait Implementations§

§

impl<K> !Freeze for InsertDescriptorError<K>

§

impl<K> RefUnwindSafe for InsertDescriptorError<K>
where K: RefUnwindSafe,

§

impl<K> Send for InsertDescriptorError<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/struct.ChangeSet.html index 0c209e4d23..9ce98ef857 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexer/keychain_txout/struct.ChangeSet.html @@ -11,11 +11,11 @@ same one-to-one keychain <-> descriptor mapping invariant as §last_revealed: BTreeMap<DescriptorId, u32>

Contains for each descriptor_id the last revealed index of derivation

Trait Implementations§

source§

impl<K: Clone> Clone for ChangeSet<K>

source§

fn clone(&self) -> ChangeSet<K>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K: Debug> Debug for ChangeSet<K>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K> Default for ChangeSet<K>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, K> Deserialize<'de> for ChangeSet<K>
where K: Ord + Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K: Ord> Merge for ChangeSet<K>

source§

fn merge(&mut self, other: Self)

Merge another ChangeSet<K> into self.

+ __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K: Ord> Merge for ChangeSet<K>

source§

fn merge(&mut self, other: Self)

Merge another ChangeSet<K> into self.

For the keychains_added field this method respects the invariants of insert_descriptor. last_revealed always becomes the larger of the two.

source§

fn is_empty(&self) -> bool

Returns whether the changeset are empty.

-
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<K: PartialEq> PartialEq for ChangeSet<K>

source§

fn eq(&self, other: &ChangeSet<K>) -> bool

This method tests for self and other values to be equal, and is used +
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<K: PartialEq> PartialEq for ChangeSet<K>

source§

fn eq(&self, other: &ChangeSet<K>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<K> Serialize for ChangeSet<K>
where K: Ord + Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/enum.ApplyHeaderError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/enum.ApplyHeaderError.html index f8c6a81b24..59d8188ddf 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/enum.ApplyHeaderError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/enum.ApplyHeaderError.html @@ -4,7 +4,7 @@ }
Expand description

Variants§

§

InconsistentBlocks

Occurs when connected_to block conflicts with either the current block or previous block.

§

CannotConnect(CannotConnectError)

Occurs when the update cannot connect with the original chain.

-

Trait Implementations§

source§

impl Clone for ApplyHeaderError

source§

fn clone(&self) -> ApplyHeaderError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ApplyHeaderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ApplyHeaderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ApplyHeaderError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for ApplyHeaderError

source§

fn eq(&self, other: &ApplyHeaderError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ApplyHeaderError

source§

fn clone(&self) -> ApplyHeaderError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ApplyHeaderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ApplyHeaderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ApplyHeaderError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for ApplyHeaderError

source§

fn eq(&self, other: &ApplyHeaderError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for ApplyHeaderError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/struct.CannotConnectError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/struct.CannotConnectError.html index a724f09883..05581e8410 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/struct.CannotConnectError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/local_chain/struct.CannotConnectError.html @@ -2,7 +2,7 @@ pub try_include_height: u32, }
Expand description

Occurs when an update does not have a common checkpoint with the original chain.

Fields§

§try_include_height: u32

The suggested checkpoint to include to connect the two chains.

-

Trait Implementations§

source§

impl Clone for CannotConnectError

source§

fn clone(&self) -> CannotConnectError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CannotConnectError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CannotConnectError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CannotConnectError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for CannotConnectError

source§

fn eq(&self, other: &CannotConnectError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CannotConnectError

source§

fn clone(&self) -> CannotConnectError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CannotConnectError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CannotConnectError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CannotConnectError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for CannotConnectError

source§

fn eq(&self, other: &CannotConnectError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for CannotConnectError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js index 4d4efdbcd5..2dd7b98750 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":["BIP32_MAX_INDEX","COINBASE_MATURITY"],"enum":["ChainPosition","ConfirmationTime"],"externcrate":["serde"],"mod":["indexed_tx_graph","indexer","local_chain","spk_client","tx_graph"],"struct":["Balance","BlockId","CombinedChangeSet","ConfirmationHeightAnchor","ConfirmationTimeHeightAnchor","DescriptorId","FullTxOut","SpkIterator"],"trait":["Anchor","AnchorFromBlockPosition","ChainOracle","DescriptorExt","Merge"],"type":["Indexed","KeychainIndexed"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["BIP32_MAX_INDEX","COINBASE_MATURITY"],"enum":["ChainPosition","ConfirmationTime"],"externcrate":["serde"],"mod":["indexed_tx_graph","indexer","local_chain","spk_client","tx_graph"],"struct":["Balance","BlockId","CombinedChangeSet","ConfirmationBlockTime","DescriptorId","FullTxOut","SpkIterator"],"trait":["Anchor","AnchorFromBlockPosition","ChainOracle","DescriptorExt","Merge"],"type":["Indexed","KeychainIndexed"]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html index 2af843a7cf..f8e45c5b10 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html @@ -1,4 +1,4 @@ -FullScanResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::FullScanResult

source ·
pub struct FullScanResult<K, A = ConfirmationTimeHeightAnchor> {
+FullScanResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::FullScanResult

source ·
pub struct FullScanResult<K, A = ConfirmationBlockTime> {
     pub graph_update: TxGraph<A>,
     pub chain_update: CheckPoint,
     pub last_active_indices: BTreeMap<K, u32>,
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html
index 23263c7207..54c380ecd6 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html
@@ -1,4 +1,4 @@
-SyncResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::SyncResult

source ·
pub struct SyncResult<A = ConfirmationTimeHeightAnchor> {
+SyncResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::SyncResult

source ·
pub struct SyncResult<A = ConfirmationBlockTime> {
     pub graph_update: TxGraph<A>,
     pub chain_update: CheckPoint,
 }
Expand description

Data returned from a spk-based blockchain client sync.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.Balance.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.Balance.html index b4052bed27..404556f182 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.Balance.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.Balance.html @@ -12,8 +12,8 @@

This is the balance you can spend right now that shouldn’t get cancelled via another party double spending it.

source

pub fn total(&self) -> Amount

Get the whole balance visible to the wallet.

-

Trait Implementations§

source§

impl Add for Balance

§

type Output = Balance

The resulting type after applying the + operator.
source§

fn add(self, other: Self) -> Self

Performs the + operation. Read more
source§

impl Clone for Balance

source§

fn clone(&self) -> Balance

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Balance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Balance

source§

fn default() -> Balance

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Balance

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Balance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Balance

source§

fn eq(&self, other: &Balance) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Add for Balance

§

type Output = Balance

The resulting type after applying the + operator.
source§

fn add(self, other: Self) -> Self

Performs the + operation. Read more
source§

impl Clone for Balance

source§

fn clone(&self) -> Balance

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Balance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Balance

source§

fn default() -> Balance

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Balance

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Balance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Balance

source§

fn eq(&self, other: &Balance) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Balance

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Balance

source§

impl StructuralPartialEq for Balance

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html index 9e9123a624..524e021749 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html @@ -6,12 +6,12 @@ block and anchor block are the same block.

Fields§

§height: u32

The height of the block.

§hash: BlockHash

The hash of the block.

-

Trait Implementations§

source§

impl Anchor for BlockId

source§

fn anchor_block(&self) -> Self

Returns the BlockId that the associated blockchain data is “anchored” in.
source§

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height. Read more
source§

impl AnchorFromBlockPosition for BlockId

Trait Implementations§

source§

impl Anchor for BlockId

source§

fn anchor_block(&self) -> Self

Returns the BlockId that the associated blockchain data is “anchored” in.
source§

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height. Read more
source§

impl AnchorFromBlockPosition for BlockId

source§

fn from_block_position( _block: &Block, block_id: BlockId, _tx_pos: usize ) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.
source§

impl Clone for BlockId

source§

fn clone(&self) -> BlockId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlockId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BlockId

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BlockId

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<(&u32, &BlockHash)> for BlockId

source§

fn from((height, hash): (&u32, &BlockHash)) -> Self

Converts to this type from the input type.
source§

impl From<(u32, BlockHash)> for BlockId

source§

fn from((height, hash): (u32, BlockHash)) -> Self

Converts to this type from the input type.
source§

impl From<BlockId> for (u32, BlockHash)

source§

fn from(block_id: BlockId) -> Self

Converts to this type from the input type.
source§

impl Hash for BlockId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<(&u32, &BlockHash)> for BlockId

source§

fn from((height, hash): (&u32, &BlockHash)) -> Self

Converts to this type from the input type.
source§

impl From<(u32, BlockHash)> for BlockId

source§

fn from((height, hash): (u32, BlockHash)) -> Self

Converts to this type from the input type.
source§

impl From<BlockId> for (u32, BlockHash)

source§

fn from(block_id: BlockId) -> Self

Converts to this type from the input type.
source§

impl Hash for BlockId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for BlockId

source§

fn cmp(&self, other: &BlockId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.CombinedChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.CombinedChangeSet.html index a83f990c49..e1555a27d4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.CombinedChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.CombinedChangeSet.html @@ -9,7 +9,7 @@

Trait Implementations§

source§

impl<K: Clone, A: Clone> Clone for CombinedChangeSet<K, A>

source§

fn clone(&self) -> CombinedChangeSet<K, A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K: Debug, A: Debug> Debug for CombinedChangeSet<K, A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<K, A> Default for CombinedChangeSet<K, A>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
where A: Ord + Deserialize<'de>, K: Ord + Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>

source§

fn from(chain: ChangeSet) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

source§

fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K: Ord, A: Anchor> Merge for CombinedChangeSet<K, A>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>

source§

fn eq(&self, other: &CombinedChangeSet<K, A>) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>

source§

fn from(chain: ChangeSet) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

source§

fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> Self

Converts to this type from the input type.
source§

impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>

source§

fn from(indexer: ChangeSet<K>) -> Self

Converts to this type from the input type.
source§

impl<K: Ord, A: Anchor> Merge for CombinedChangeSet<K, A>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>

source§

fn eq(&self, other: &CombinedChangeSet<K, A>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<K, A> Serialize for CombinedChangeSet<K, A>
where A: Ord + Serialize, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationBlockTime.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationBlockTime.html new file mode 100644 index 0000000000..1f88516bef --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationBlockTime.html @@ -0,0 +1,32 @@ +ConfirmationBlockTime in bdk_chain - Rust

Struct bdk_chain::ConfirmationBlockTime

source ·
pub struct ConfirmationBlockTime {
+    pub block_id: BlockId,
+    pub confirmation_time: u64,
+}
Expand description

An Anchor implementation that also records the exact confirmation time of the transaction.

+

Refer to Anchor for more details.

+

Fields§

§block_id: BlockId

The anchor block.

+
§confirmation_time: u64

The confirmation time of the transaction being anchored.

+

Trait Implementations§

source§

impl Anchor for ConfirmationBlockTime

source§

fn anchor_block(&self) -> BlockId

Returns the BlockId that the associated blockchain data is “anchored” in.
source§

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height. Read more
source§

impl AnchorFromBlockPosition for ConfirmationBlockTime

source§

fn from_block_position(block: &Block, block_id: BlockId, _tx_pos: usize) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.
source§

impl Clone for ConfirmationBlockTime

source§

fn clone(&self) -> ConfirmationBlockTime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ConfirmationBlockTime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ConfirmationBlockTime

source§

fn default() -> ConfirmationBlockTime

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ConfirmationBlockTime

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ConfirmationBlockTime

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for ConfirmationBlockTime

source§

fn cmp(&self, other: &ConfirmationBlockTime) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ConfirmationBlockTime

source§

fn eq(&self, other: &ConfirmationBlockTime) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for ConfirmationBlockTime

source§

fn partial_cmp(&self, other: &ConfirmationBlockTime) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Serialize for ConfirmationBlockTime

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ConfirmationBlockTime

source§

impl Eq for ConfirmationBlockTime

source§

impl StructuralPartialEq for ConfirmationBlockTime

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html deleted file mode 100644 index faf4f7f803..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html +++ /dev/null @@ -1,38 +0,0 @@ -ConfirmationHeightAnchor in bdk_chain - Rust

Struct bdk_chain::ConfirmationHeightAnchor

source ·
pub struct ConfirmationHeightAnchor {
-    pub confirmation_height: u32,
-    pub anchor_block: BlockId,
-}
Expand description

An Anchor implementation that also records the exact confirmation height of the transaction.

-

Note that the confirmation block and the anchor block can be different here.

-

Refer to Anchor for more details.

-

Fields§

§confirmation_height: u32

The exact confirmation height of the transaction.

-

It is assumed that this value is never larger than the height of the anchor block.

-
§anchor_block: BlockId

The anchor block.

-

Trait Implementations§

source§

impl Anchor for ConfirmationHeightAnchor

source§

fn anchor_block(&self) -> BlockId

Returns the BlockId that the associated blockchain data is “anchored” in.
source§

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height. Read more
source§

impl AnchorFromBlockPosition for ConfirmationHeightAnchor

source§

fn from_block_position( - _block: &Block, - block_id: BlockId, - _tx_pos: usize -) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.
source§

impl Clone for ConfirmationHeightAnchor

source§

fn clone(&self) -> ConfirmationHeightAnchor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ConfirmationHeightAnchor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ConfirmationHeightAnchor

source§

fn default() -> ConfirmationHeightAnchor

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ConfirmationHeightAnchor

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ConfirmationHeightAnchor

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for ConfirmationHeightAnchor

source§

fn cmp(&self, other: &ConfirmationHeightAnchor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ConfirmationHeightAnchor

source§

fn eq(&self, other: &ConfirmationHeightAnchor) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for ConfirmationHeightAnchor

source§

fn partial_cmp(&self, other: &ConfirmationHeightAnchor) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Serialize for ConfirmationHeightAnchor

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ConfirmationHeightAnchor

source§

impl Eq for ConfirmationHeightAnchor

source§

impl StructuralPartialEq for ConfirmationHeightAnchor

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeHeightAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeHeightAnchor.html deleted file mode 100644 index ee42a6ffa1..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeHeightAnchor.html +++ /dev/null @@ -1,36 +0,0 @@ -ConfirmationTimeHeightAnchor in bdk_chain - Rust

Struct bdk_chain::ConfirmationTimeHeightAnchor

source ·
pub struct ConfirmationTimeHeightAnchor {
-    pub confirmation_height: u32,
-    pub confirmation_time: u64,
-    pub anchor_block: BlockId,
-}
Expand description

An Anchor implementation that also records the exact confirmation time and height of the -transaction.

-

Note that the confirmation block and the anchor block can be different here.

-

Refer to Anchor for more details.

-

Fields§

§confirmation_height: u32

The confirmation height of the transaction being anchored.

-
§confirmation_time: u64

The confirmation time of the transaction being anchored.

-
§anchor_block: BlockId

The anchor block.

-

Trait Implementations§

source§

impl Anchor for ConfirmationTimeHeightAnchor

source§

fn anchor_block(&self) -> BlockId

Returns the BlockId that the associated blockchain data is “anchored” in.
source§

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height. Read more
source§

impl AnchorFromBlockPosition for ConfirmationTimeHeightAnchor

source§

fn from_block_position(block: &Block, block_id: BlockId, _tx_pos: usize) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.
source§

impl Clone for ConfirmationTimeHeightAnchor

source§

fn clone(&self) -> ConfirmationTimeHeightAnchor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ConfirmationTimeHeightAnchor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ConfirmationTimeHeightAnchor

source§

fn default() -> ConfirmationTimeHeightAnchor

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ConfirmationTimeHeightAnchor

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ConfirmationTimeHeightAnchor

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for ConfirmationTimeHeightAnchor

source§

fn cmp(&self, other: &ConfirmationTimeHeightAnchor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ConfirmationTimeHeightAnchor

source§

fn eq(&self, other: &ConfirmationTimeHeightAnchor) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for ConfirmationTimeHeightAnchor

source§

fn partial_cmp(&self, other: &ConfirmationTimeHeightAnchor) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Serialize for ConfirmationTimeHeightAnchor

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ConfirmationTimeHeightAnchor

source§

impl Eq for ConfirmationTimeHeightAnchor

source§

impl StructuralPartialEq for ConfirmationTimeHeightAnchor

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.DescriptorId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.DescriptorId.html index 17111af18d..bed0cea074 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.DescriptorId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.DescriptorId.html @@ -5,15 +5,15 @@ descriptor without having to re-write the whole descriptor each time.

Tuple Fields§

§0: Hash

Implementations§

source§

impl DescriptorId

source

pub fn from_raw_hash(inner: Hash) -> DescriptorId

Creates this wrapper type from the inner hash type.

source

pub fn to_raw_hash(self) -> Hash

Returns the inner hash (sha256, sh256d etc.).

source

pub fn as_raw_hash(&self) -> &Hash

Returns a reference to the inner hash (sha256, sh256d etc.).

-

Trait Implementations§

source§

impl AsRef<[u8]> for DescriptorId

source§

fn as_ref(&self) -> &[u8] ⓘ

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for DescriptorId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for DescriptorId

source§

fn borrow(&self) -> &[u8] ⓘ

Immutably borrows from an owned value. Read more
source§

impl Clone for DescriptorId

source§

fn clone(&self) -> DescriptorId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for DescriptorId

source§

fn deserialize<D: Deserializer<'de>>(d: D) -> Result<DescriptorId, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<DescriptorId> for Hash

source§

fn from(hashtype: DescriptorId) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for DescriptorId

source§

fn from(inner: Hash) -> DescriptorId

Converts to this type from the input type.
source§

impl FromStr for DescriptorId

§

type Err = HexToArrayError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<DescriptorId, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for DescriptorId

§

type Engine = <Hash as Hash>::Engine

A hashing engine which bytes can be serialized into. It is expected +

Trait Implementations§

source§

impl AsRef<[u8]> for DescriptorId

source§

fn as_ref(&self) -> &[u8] ⓘ

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<[u8; 32]> for DescriptorId

source§

fn as_ref(&self) -> &[u8; 32]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<[u8]> for DescriptorId

source§

fn borrow(&self) -> &[u8] ⓘ

Immutably borrows from an owned value. Read more
source§

impl Clone for DescriptorId

source§

fn clone(&self) -> DescriptorId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for DescriptorId

source§

fn deserialize<D: Deserializer<'de>>(d: D) -> Result<DescriptorId, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<DescriptorId> for Hash

source§

fn from(hashtype: DescriptorId) -> Hash

Converts to this type from the input type.
source§

impl From<Hash> for DescriptorId

source§

fn from(inner: Hash) -> DescriptorId

Converts to this type from the input type.
source§

impl FromStr for DescriptorId

§

type Err = HexToArrayError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<DescriptorId, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for DescriptorId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Hash for DescriptorId

§

type Engine = <Hash as Hash>::Engine

A hashing engine which bytes can be serialized into. It is expected to implement the io::Write trait, and to never return errors under any conditions.
§

type Bytes = <Hash as Hash>::Bytes

The byte array that represents the hash internally.
source§

const LEN: usize = 32usize

Length of the hash, in bytes.
source§

const DISPLAY_BACKWARD: bool = false

Flag indicating whether user-visible serializations of this hash should be backward. For some reason Satoshi decided this should be -true for Sha256dHash, so here we are.
source§

fn engine() -> Self::Engine

Constructs a new engine.
source§

fn from_engine(e: Self::Engine) -> Self

Produces a hash from the current state of a given engine.
source§

fn from_slice(sl: &[u8]) -> Result<DescriptorId, FromSliceError>

Copies a byte slice into a hash object.
source§

fn from_byte_array(bytes: Self::Bytes) -> Self

Constructs a hash from the underlying byte array.
source§

fn to_byte_array(self) -> Self::Bytes

Returns the underlying byte array.
source§

fn as_byte_array(&self) -> &Self::Bytes

Returns a reference to the underlying byte array.
source§

fn all_zeros() -> Self

Returns an all zero hash. Read more
§

fn hash(data: &[u8]) -> Self

Hashes some bytes.
§

fn hash_byte_chunks<B, I>(byte_slices: I) -> Self
where +true for Sha256dHash, so here we are.

source§

fn engine() -> Self::Engine

Constructs a new engine.
source§

fn from_engine(e: Self::Engine) -> Self

Produces a hash from the current state of a given engine.
source§

fn from_slice(sl: &[u8]) -> Result<DescriptorId, FromSliceError>

Copies a byte slice into a hash object.
source§

fn from_byte_array(bytes: Self::Bytes) -> Self

Constructs a hash from the underlying byte array.
source§

fn to_byte_array(self) -> Self::Bytes

Returns the underlying byte array.
source§

fn as_byte_array(&self) -> &Self::Bytes

Returns a reference to the underlying byte array.
source§

fn all_zeros() -> Self

Returns an all zero hash. Read more
§

fn hash(data: &[u8]) -> Self

Hashes some bytes.
§

fn hash_byte_chunks<B, I>(byte_slices: I) -> Self
where B: AsRef<[u8]>, - I: IntoIterator<Item = B>,

Hashes all the byte slices retrieved from the iterator together.
source§

impl Hash for DescriptorId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<I: SliceIndex<[u8]>> Index<I> for DescriptorId

§

type Output = <I as SliceIndex<[u8]>>::Output

The returned type after indexing.
source§

fn index(&self, index: I) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl LowerHex for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for DescriptorId

source§

fn cmp(&self, other: &DescriptorId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + I: IntoIterator<Item = B>,

Hashes all the byte slices retrieved from the iterator together.
source§

impl<I: SliceIndex<[u8]>> Index<I> for DescriptorId

§

type Output = <I as SliceIndex<[u8]>>::Output

The returned type after indexing.
source§

fn index(&self, index: I) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl LowerHex for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for DescriptorId

source§

fn cmp(&self, other: &DescriptorId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for DescriptorId

source§

fn eq(&self, other: &DescriptorId) -> bool

This method tests for self and other values to be equal, and is used @@ -24,8 +24,8 @@ operator. Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where - S: Serializer,

Do serde serialization.
§

fn deserialize<'de, D>(d: D) -> Result<Self, <D as Deserializer<'de>>::Error>
where - D: Deserializer<'de>,

Do serde deserialization.
source§

impl Serialize for DescriptorId

source§

fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl UpperHex for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for DescriptorId

source§

impl Eq for DescriptorId

source§

impl StructuralPartialEq for DescriptorId

Auto Trait Implementations§

§

impl Freeze for DescriptorId

§

impl RefUnwindSafe for DescriptorId

§

impl Send for DescriptorId

§

impl Sync for DescriptorId

§

impl Unpin for DescriptorId

§

impl UnwindSafe for DescriptorId

Blanket Implementations§

source§

impl<T> Any for T
where + S: Serializer,

Do serde serialization.
§

fn deserialize<'de, D>(d: D) -> Result<Self, <D as Deserializer<'de>>::Error>
where + D: Deserializer<'de>,

Do serde deserialization.
source§

impl Serialize for DescriptorId

source§

fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl UpperHex for DescriptorId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for DescriptorId

source§

impl Eq for DescriptorId

source§

impl StructuralPartialEq for DescriptorId

Auto Trait Implementations§

§

impl Freeze for DescriptorId

§

impl RefUnwindSafe for DescriptorId

§

impl Send for DescriptorId

§

impl Sync for DescriptorId

§

impl Unpin for DescriptorId

§

impl UnwindSafe for DescriptorId

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.FullTxOut.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.FullTxOut.html index afcec0dbbe..4adb4b52cf 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.FullTxOut.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.FullTxOut.html @@ -1,4 +1,4 @@ -FullTxOut in bdk_chain - Rust

Struct bdk_chain::FullTxOut

source ·
pub struct FullTxOut<A> {
+FullTxOut in bdk_chain - Rust

Struct bdk_chain::FullTxOut

source ·
pub struct FullTxOut<A> {
     pub chain_position: ChainPosition<A>,
     pub outpoint: OutPoint,
     pub txout: TxOut,
@@ -10,23 +10,23 @@
 
§txout: TxOut

The TxOut.

§spent_by: Option<(ChainPosition<A>, Txid)>

The txid and chain position of the transaction (if any) that has spent this output.

§is_on_coinbase: bool

Whether this output is on a coinbase transaction.

-

Implementations§

source§

impl<A: Anchor> FullTxOut<A>

source

pub fn is_mature(&self, tip: u32) -> bool

Whether the txout is considered mature.

+

Implementations§

source§

impl<A: Anchor> FullTxOut<A>

source

pub fn is_mature(&self, tip: u32) -> bool

Whether the txout is considered mature.

Depending on the implementation of confirmation_height_upper_bound in Anchor, this method may return false-negatives. In other words, interpreted confirmation count may be less than the actual value.

-
source

pub fn is_confirmed_and_spendable(&self, tip: u32) -> bool

Whether the utxo is/was/will be spendable with chain tip.

+
source

pub fn is_confirmed_and_spendable(&self, tip: u32) -> bool

Whether the utxo is/was/will be spendable with chain tip.

This method does not take into account the lock time.

Depending on the implementation of confirmation_height_upper_bound in Anchor, this method may return false-negatives. In other words, interpreted confirmation count may be less than the actual value.

-

Trait Implementations§

source§

impl<A: Clone> Clone for FullTxOut<A>

source§

fn clone(&self) -> FullTxOut<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for FullTxOut<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A: Ord> Ord for FullTxOut<A>

source§

fn cmp(&self, other: &FullTxOut<A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where +

Trait Implementations§

source§

impl<A: Clone> Clone for FullTxOut<A>

source§

fn clone(&self) -> FullTxOut<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for FullTxOut<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A: Ord> Ord for FullTxOut<A>

source§

fn cmp(&self, other: &FullTxOut<A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<A: PartialEq> PartialEq for FullTxOut<A>

source§

fn eq(&self, other: &FullTxOut<A>) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
source§

impl<A: PartialEq> PartialEq for FullTxOut<A>

source§

fn eq(&self, other: &FullTxOut<A>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<A: PartialOrd> PartialOrd for FullTxOut<A>

source§

fn partial_cmp(&self, other: &FullTxOut<A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl<A: PartialOrd> PartialOrd for FullTxOut<A>

source§

fn partial_cmp(&self, other: &FullTxOut<A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl<A: Eq> Eq for FullTxOut<A>

source§

impl<A> StructuralPartialEq for FullTxOut<A>

Auto Trait Implementations§

§

impl<A> Freeze for FullTxOut<A>
where +operator. Read more

source§

impl<A: Eq> Eq for FullTxOut<A>

source§

impl<A> StructuralPartialEq for FullTxOut<A>

Auto Trait Implementations§

§

impl<A> Freeze for FullTxOut<A>
where A: Freeze,

§

impl<A> RefUnwindSafe for FullTxOut<A>
where A: RefUnwindSafe,

§

impl<A> Send for FullTxOut<A>
where A: Send,

§

impl<A> Sync for FullTxOut<A>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Anchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Anchor.html index 5b5fb15ae0..68bba13001 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Anchor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Anchor.html @@ -1,4 +1,4 @@ -Anchor in bdk_chain - Rust

Trait bdk_chain::Anchor

source ·
pub trait Anchor: Debug + Clone + Eq + PartialOrd + Ord + Hash {
+Anchor in bdk_chain - Rust

Trait bdk_chain::Anchor

source ·
pub trait Anchor: Debug + Clone + Eq + PartialOrd + Ord + Hash {
     // Required method
     fn anchor_block(&self) -> BlockId;
 
@@ -41,44 +41,24 @@ graph_a.insert_anchor(
     },
 );
 
-// Insert `tx` into a `TxGraph` that uses `ConfirmationHeightAnchor` as the anchor type.
-// This anchor records the anchor block and the confirmation height of the transaction.
-// When a transaction is anchored with `ConfirmationHeightAnchor`, the anchor block and
-// confirmation block can be different. However, the confirmation block cannot be higher than
-// the anchor block and both blocks must be in the same chain for the anchor to be valid.
-let mut graph_b = TxGraph::<ConfirmationHeightAnchor>::default();
-let _ = graph_b.insert_tx(tx.clone());
-graph_b.insert_anchor(
-    tx.compute_txid(),
-    ConfirmationHeightAnchor {
-        anchor_block: BlockId {
-            height: 2,
-            hash: Hash::hash("second".as_bytes()),
-        },
-        confirmation_height: 1,
-    },
-);
-
-// Insert `tx` into a `TxGraph` that uses `ConfirmationTimeHeightAnchor` as the anchor type.
-// This anchor records the anchor block, the confirmation height and time of the transaction.
-// When a transaction is anchored with `ConfirmationTimeHeightAnchor`, the anchor block and
-// confirmation block can be different. However, the confirmation block cannot be higher than
-// the anchor block and both blocks must be in the same chain for the anchor to be valid.
-let mut graph_c = TxGraph::<ConfirmationTimeHeightAnchor>::default();
+// Insert `tx` into a `TxGraph` that uses `ConfirmationBlockTime` as the anchor type.
+// This anchor records the anchor block and the confirmation time of the transaction. When a
+// transaction is anchored with `ConfirmationBlockTime`, the anchor block and confirmation block
+// of the transaction is the same block.
+let mut graph_c = TxGraph::<ConfirmationBlockTime>::default();
 let _ = graph_c.insert_tx(tx.clone());
 graph_c.insert_anchor(
     tx.compute_txid(),
-    ConfirmationTimeHeightAnchor {
-        anchor_block: BlockId {
+    ConfirmationBlockTime {
+        block_id: BlockId {
             height: 2,
             hash: Hash::hash("third".as_bytes()),
         },
-        confirmation_height: 1,
         confirmation_time: 123,
     },
 );
-

Required Methods§

source

fn anchor_block(&self) -> BlockId

Returns the BlockId that the associated blockchain data is “anchored” in.

-

Provided Methods§

source

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height.

+

Required Methods§

source

fn anchor_block(&self) -> BlockId

Returns the BlockId that the associated blockchain data is “anchored” in.

+

Provided Methods§

source

fn confirmation_height_upper_bound(&self) -> u32

Get the upper bound of the chain data’s confirmation height.

The default definition gives a pessimistic answer. This can be overridden by the Anchor implementation for a more accurate value.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, A: Anchor> Anchor for &'a A

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, A: Anchor> Anchor for &'a A

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.AnchorFromBlockPosition.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.AnchorFromBlockPosition.html index fdcf6de80f..7d72f7a947 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.AnchorFromBlockPosition.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.AnchorFromBlockPosition.html @@ -1,4 +1,4 @@ -AnchorFromBlockPosition in bdk_chain - Rust

Trait bdk_chain::AnchorFromBlockPosition

source ·
pub trait AnchorFromBlockPosition: Anchor {
+AnchorFromBlockPosition in bdk_chain - Rust

Trait bdk_chain::AnchorFromBlockPosition

source ·
pub trait AnchorFromBlockPosition: Anchor {
     // Required method
     fn from_block_position(
         block: &Block,
@@ -7,5 +7,5 @@
     ) -> Self;
 }
Expand description

An Anchor that can be constructed from a given block, block height and transaction position within the block.

-

Required Methods§

source

fn from_block_position(block: &Block, block_id: BlockId, tx_pos: usize) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Required Methods§

source

fn from_block_position(block: &Block, block_id: BlockId, tx_pos: usize) -> Self

Construct the anchor from a given block, block height and tx_pos within the block.

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Merge.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Merge.html index 7e6d568862..3602e28ca0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Merge.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Merge.html @@ -1,4 +1,4 @@ -Merge in bdk_chain - Rust

Trait bdk_chain::Merge

source ·
pub trait Merge: Default {
+Merge in bdk_chain - Rust

Trait bdk_chain::Merge

source ·
pub trait Merge: Default {
     // Required methods
     fn merge(&mut self, other: Self);
     fn is_empty(&self) -> bool;
@@ -6,38 +6,38 @@
     // Provided method
     fn take(&mut self) -> Option<Self> { ... }
 }
Expand description

Trait that makes an object mergeable.

-

Required Methods§

source

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.

-
source

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.

-

Provided Methods§

source

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Merge for ()

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<K: Ord, V> Merge for BTreeMap<K, V>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0> Merge for (T0,)
where - T0: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1> Merge for (T0, T1)
where +

Required Methods§

source

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.

+
source

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.

+

Provided Methods§

source

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.

+

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Merge for ()

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<K: Ord, V> Merge for BTreeMap<K, V>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0> Merge for (T0,)
where + T0: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1> Merge for (T0, T1)
where T0: Merge, - T1: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2> Merge for (T0, T1, T2)
where + T1: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2> Merge for (T0, T1, T2)
where T0: Merge, T1: Merge, - T2: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3> Merge for (T0, T1, T2, T3)
where + T2: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3> Merge for (T0, T1, T2, T3)
where T0: Merge, T1: Merge, T2: Merge, - T3: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4> Merge for (T0, T1, T2, T3, T4)
where + T3: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4> Merge for (T0, T1, T2, T3, T4)
where T0: Merge, T1: Merge, T2: Merge, T3: Merge, - T4: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5> Merge for (T0, T1, T2, T3, T4, T5)
where + T4: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5> Merge for (T0, T1, T2, T3, T4, T5)
where T0: Merge, T1: Merge, T2: Merge, T3: Merge, T4: Merge, - T5: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6> Merge for (T0, T1, T2, T3, T4, T5, T6)
where + T5: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6> Merge for (T0, T1, T2, T3, T4, T5, T6)
where T0: Merge, T1: Merge, T2: Merge, T3: Merge, T4: Merge, T5: Merge, - T6: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Merge for (T0, T1, T2, T3, T4, T5, T6, T7)
where + T6: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Merge for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Merge, T1: Merge, T2: Merge, @@ -45,7 +45,7 @@ T4: Merge, T5: Merge, T6: Merge, - T7: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where + T7: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Merge, T1: Merge, T2: Merge, @@ -54,7 +54,7 @@ T5: Merge, T6: Merge, T7: Merge, - T8: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where + T8: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Merge, T1: Merge, T2: Merge, @@ -64,7 +64,7 @@ T6: Merge, T7: Merge, T8: Merge, - T9: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where + T9: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Merge for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Merge, T1: Merge, T2: Merge, @@ -75,4 +75,4 @@ T7: Merge, T8: Merge, T9: Merge, - T10: Merge,

source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T> Merge for Vec<T>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T: Ord> Merge for BTreeSet<T>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

Implementors§

source§

impl<A: Ord> Merge for bdk_chain::tx_graph::ChangeSet<A>

source§

impl<A: Anchor, IA: Merge> Merge for bdk_chain::indexed_tx_graph::ChangeSet<A, IA>

source§

impl<K: Ord> Merge for bdk_chain::indexer::keychain_txout::ChangeSet<K>

source§

impl<K: Ord, A: Anchor> Merge for CombinedChangeSet<K, A>

\ No newline at end of file + T10: Merge,
source§

fn merge(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T> Merge for Vec<T>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T: Ord> Merge for BTreeSet<T>

source§

fn merge(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

Implementors§

source§

impl<A: Ord> Merge for bdk_chain::tx_graph::ChangeSet<A>

source§

impl<A: Anchor, IA: Merge> Merge for bdk_chain::indexed_tx_graph::ChangeSet<A, IA>

source§

impl<K: Ord> Merge for bdk_chain::indexer::keychain_txout::ChangeSet<K>

source§

impl<K: Ord, A: Anchor> Merge for CombinedChangeSet<K, A>

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/enum.CalculateFeeError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/enum.CalculateFeeError.html index 7220a2dadf..0862403f0a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/enum.CalculateFeeError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/enum.CalculateFeeError.html @@ -4,7 +4,7 @@ }
Expand description

Errors returned by TxGraph::calculate_fee.

Variants§

§

MissingTxOut(Vec<OutPoint>)

Missing TxOut for one or more of the inputs of the tx

§

NegativeFee(SignedAmount)

When the transaction is invalid according to the graph it has a negative fee

-

Trait Implementations§

source§

impl Debug for CalculateFeeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CalculateFeeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CalculateFeeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for CalculateFeeError

source§

fn eq(&self, other: &CalculateFeeError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Debug for CalculateFeeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CalculateFeeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CalculateFeeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl PartialEq for CalculateFeeError

source§

fn eq(&self, other: &CalculateFeeError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for CalculateFeeError

source§

impl StructuralPartialEq for CalculateFeeError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html index 044377529d..0dbbba0caa 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html @@ -22,7 +22,7 @@ confirm or exclude these anchors.

transform it.

Trait Implementations§

source§

impl<A: Clone> Clone for ChangeSet<A>

source§

fn clone(&self) -> ChangeSet<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for ChangeSet<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A> Default for ChangeSet<A>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, A> Deserialize<'de> for ChangeSet<A>
where A: Ord + Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>

source§

fn from(graph: ChangeSet<A>) -> Self

Converts to this type from the input type.
source§

impl<A: Ord> Merge for ChangeSet<A>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<A: PartialEq> PartialEq for ChangeSet<A>

source§

fn eq(&self, other: &ChangeSet<A>) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>

source§

fn from(graph: ChangeSet<A>) -> Self

Converts to this type from the input type.
source§

impl<A: Ord> Merge for ChangeSet<A>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<A: PartialEq> PartialEq for ChangeSet<A>

source§

fn eq(&self, other: &ChangeSet<A>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<A> Serialize for ChangeSet<A>
where A: Ord + Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html index 502fd1ffe5..3aa459992e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html @@ -7,7 +7,7 @@
§

TargetFee

The target fee (given the feerate) is not met

§

MinAbsoluteFee

Min absolute fee is not met

§

MinDrainValue

Min drain value is not met

-

Trait Implementations§

source§

impl Clone for SelectionConstraint

source§

fn clone(&self) -> SelectionConstraint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SelectionConstraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SelectionConstraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for SelectionConstraint

source§

fn eq(&self, other: &SelectionConstraint) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SelectionConstraint

source§

fn clone(&self) -> SelectionConstraint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SelectionConstraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SelectionConstraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for SelectionConstraint

source§

fn eq(&self, other: &SelectionConstraint) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for SelectionConstraint

source§

impl Eq for SelectionConstraint

source§

impl StructuralPartialEq for SelectionConstraint

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/all.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/all.html index fdb7554254..780d92b120 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/all.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate

List of all items

Structs

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumFullScanResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumFullScanResult.html deleted file mode 100644 index b2554da080..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumFullScanResult.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk_electrum/struct.ElectrumFullScanResult.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumSyncResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumSyncResult.html deleted file mode 100644 index 23bae6b959..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/bdk_electrum_client/struct.ElectrumSyncResult.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk_electrum/struct.ElectrumSyncResult.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html index 09c3960e57..88ce57af57 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html @@ -9,4 +9,4 @@ sync or full scan the user receives relevant blockchain data and output updates bdk_chain.

Refer to example_electrum for a complete example.

Re-exports§

Structs§

\ No newline at end of file +transaction cache to avoid re-fetching already downloaded transactions.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/sidebar-items.js index 7497493a32..7fad24496a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["BdkElectrumClient","ElectrumFullScanResult","ElectrumSyncResult"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["BdkElectrumClient"]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.BdkElectrumClient.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.BdkElectrumClient.html index 3f8de38535..6c927fa054 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.BdkElectrumClient.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.BdkElectrumClient.html @@ -1,23 +1,23 @@ -BdkElectrumClient in bdk_electrum - Rust

Struct bdk_electrum::BdkElectrumClient

source ·
pub struct BdkElectrumClient<E> {
+BdkElectrumClient in bdk_electrum - Rust

Struct bdk_electrum::BdkElectrumClient

source ·
pub struct BdkElectrumClient<E> {
     pub inner: E,
     /* private fields */
 }
Expand description

Wrapper around an [electrum_client::ElectrumApi] which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

Fields§

§inner: E

The internal [electrum_client::ElectrumApi]

-

Implementations§

source§

impl<E: ElectrumApi> BdkElectrumClient<E>

source

pub fn new(client: E) -> Self

Creates a new bdk client from a [electrum_client::ElectrumApi]

-
source

pub fn populate_tx_cache<A>(&self, tx_graph: impl AsRef<TxGraph<A>>)

Inserts transactions into the transaction cache so that the client will not fetch these +

Implementations§

source§

impl<E: ElectrumApi> BdkElectrumClient<E>

source

pub fn new(client: E) -> Self

Creates a new bdk client from a [electrum_client::ElectrumApi]

+
source

pub fn populate_tx_cache<A>(&self, tx_graph: impl AsRef<TxGraph<A>>)

Inserts transactions into the transaction cache so that the client will not fetch these transactions.

-
source

pub fn fetch_tx(&self, txid: Txid) -> Result<Arc<Transaction>, Error>

Fetch transaction of given txid.

+
source

pub fn fetch_tx(&self, txid: Txid) -> Result<Arc<Transaction>, Error>

Fetch transaction of given txid.

If it hits the cache it will return the cached version and avoid making the request.

-
source

pub fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>

Broadcasts a transaction to the network.

+
source

pub fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>

Broadcasts a transaction to the network.

This is a re-export of [ElectrumApi::transaction_broadcast].

-
source

pub fn full_scan<K: Ord + Clone>( +

source

pub fn full_scan<K: Ord + Clone>( &self, request: FullScanRequest<K>, stop_gap: usize, batch_size: usize, fetch_prev_txouts: bool -) -> Result<ElectrumFullScanResult<K>, Error>

Full scan the keychain scripts specified with the blockchain (via an Electrum client) and +) -> Result<FullScanResult<K>, Error>

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, @@ -28,12 +28,12 @@ associated transactions
  • request
  • fetch_prev_txouts: specifies whether or not we want previous TxOuts for fee
-
source

pub fn sync( +

source

pub fn sync( &self, request: SyncRequest, batch_size: usize, fetch_prev_txouts: bool -) -> Result<ElectrumSyncResult, Error>

Sync a set of scripts with the blockchain (via an Electrum client) for the data specified +) -> Result<SyncResult, Error>

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, @@ -45,7 +45,7 @@ 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.

-

Trait Implementations§

source§

impl<E: Debug> Debug for BdkElectrumClient<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Trait Implementations§

source§

impl<E: Debug> Debug for BdkElectrumClient<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<E> !Freeze for BdkElectrumClient<E>

§

impl<E> RefUnwindSafe for BdkElectrumClient<E>
where E: RefUnwindSafe,

§

impl<E> Send for BdkElectrumClient<E>
where E: Send,

§

impl<E> Sync for BdkElectrumClient<E>
where E: Sync,

§

impl<E> Unpin for BdkElectrumClient<E>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumFullScanResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumFullScanResult.html deleted file mode 100644 index da3560e155..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumFullScanResult.html +++ /dev/null @@ -1,27 +0,0 @@ -ElectrumFullScanResult in bdk_electrum - Rust

Struct bdk_electrum::ElectrumFullScanResult

source ·
pub struct ElectrumFullScanResult<K>(/* private fields */);
Expand description

The result of BdkElectrumClient::full_scan.

-

This can be transformed into a FullScanResult with either ConfirmationHeightAnchor or -ConfirmationTimeHeightAnchor anchor types.

-

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumSyncResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumSyncResult.html deleted file mode 100644 index f8c0816e59..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumSyncResult.html +++ /dev/null @@ -1,23 +0,0 @@ -ElectrumSyncResult in bdk_electrum - Rust

Struct bdk_electrum::ElectrumSyncResult

source ·
pub struct ElectrumSyncResult(/* private fields */);
Expand description

The result of BdkElectrumClient::sync.

-

This can be transformed into a SyncResult with either ConfirmationHeightAnchor or -ConfirmationTimeHeightAnchor anchor types.

-

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html index 9812b27f27..7448e28d36 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html @@ -1,4 +1,4 @@ -bdk_esplora - Rust

Crate bdk_esplora

source ·
Expand description

§BDK Esplora

+bdk_esplora - Rust

Crate bdk_esplora

source ·
Expand description

§BDK Esplora

BDK Esplora extends esplora-client to update bdk_chain structures from an Esplora server.

§Usage

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html index a5905ec09c..28bd785283 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html @@ -7,7 +7,7 @@ }
Expand description

Error that occurs due to problems encountered with the file.

Variants§

§

Io(Error)

IO error, this may mean that the file is too short.

§

InvalidMagicBytes

Magic bytes do not match what is expected.

-

Fields

§got: Vec<u8>
§expected: Vec<u8>

Trait Implementations§

source§

impl Debug for FileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for FileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for FileError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for FileError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Fields

§got: Vec<u8>
§expected: Vec<u8>

Trait Implementations§

source§

impl Debug for FileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for FileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for FileError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for FileError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.IterError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.IterError.html index 38a18a3108..2c58c8c765 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.IterError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.IterError.html @@ -4,7 +4,7 @@ }
Expand description

Error type for EntryIter.

Variants§

§

Io(Error)

Failure to read from the file.

§

Bincode(ErrorKind)

Failure to decode data from the file.

-

Trait Implementations§

source§

impl Debug for IterError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IterError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for IterError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for IterError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for IterError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for IterError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for IterError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for IterError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html index 5463a26adf..065e10c348 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html @@ -2,7 +2,7 @@ SigHashP2wpkh(P2wpkhError), SigHashTaproot(TaprootError), DerivationError(Error), -}

Variants§

§

SigHashP2wpkh(P2wpkhError)

§

SigHashTaproot(TaprootError)

§

DerivationError(Error)

Trait Implementations§

source§

impl Clone for SigningError

source§

fn clone(&self) -> SigningError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SigningError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SigningError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for SigningError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for SigningError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<P2wpkhError> for SigningError

source§

fn from(v: P2wpkhError) -> Self

Converts to this type from the input type.
source§

impl From<TaprootError> for SigningError

source§

fn from(v: TaprootError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Variants§

§

SigHashP2wpkh(P2wpkhError)

§

SigHashTaproot(TaprootError)

§

DerivationError(Error)

Trait Implementations§

source§

impl Clone for SigningError

source§

fn clone(&self) -> SigningError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SigningError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SigningError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for SigningError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for SigningError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<P2wpkhError> for SigningError

source§

fn from(v: P2wpkhError) -> Self

Converts to this type from the input type.
source§

impl From<TaprootError> for SigningError

source§

fn from(v: TaprootError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/enum.Descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/enum.Descriptor.html index 0a563eb682..5d471433e3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/enum.Descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/enum.Descriptor.html @@ -255,10 +255,10 @@ the predicate returned true for every key
FnMut(&'a Pk) -> bool, Pk: 'a,

Run a predicate on every key in the descriptor, returning whether the predicate returned true for any key
§

impl<Pk> From<Bare<Pk>> for Descriptor<Pk>
where - Pk: MiniscriptKey,

§

fn from(inner: Bare<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Pkh<Pk>> for Descriptor<Pk>
where + Pk: MiniscriptKey,

§

fn from(inner: Bare<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Pkh<Pk>> for Descriptor<Pk>
where Pk: MiniscriptKey,

§

fn from(inner: Pkh<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Sh<Pk>> for Descriptor<Pk>
where - Pk: MiniscriptKey,

§

fn from(inner: Sh<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Tr<Pk>> for Descriptor<Pk>
where - Pk: MiniscriptKey,

§

fn from(inner: Tr<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Wpkh<Pk>> for Descriptor<Pk>
where + Pk: MiniscriptKey,

§

fn from(inner: Sh<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Tr<Pk>> for Descriptor<Pk>
where + Pk: MiniscriptKey,

§

fn from(inner: Tr<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Wpkh<Pk>> for Descriptor<Pk>
where Pk: MiniscriptKey,

§

fn from(inner: Wpkh<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> From<Wsh<Pk>> for Descriptor<Pk>
where Pk: MiniscriptKey,

§

fn from(inner: Wsh<Pk>) -> Descriptor<Pk>

Converts to this type from the input type.
§

impl<Pk> FromStr for Descriptor<Pk>
where Pk: FromStrKey,

§

type Err = Error

The associated error which can be returned from parsing.
§

fn from_str(s: &str) -> Result<Descriptor<Pk>, Error>

Parses a string s to return a value of this type. Read more
§

impl<Pk> FromTree for Descriptor<Pk>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html index 34079f799b..f296084e09 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html @@ -26,7 +26,7 @@
§

Miniscript(Error)

Miniscript error

§

Hex(HexToBytesError)

Hex decoding error

§

ExternalAndInternalAreTheSame

The provided wallet descriptors are identical

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<HexToBytesError> for Error

source§

fn from(err: HexToBytesError) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.
source§

impl From<ParsePublicKeyError> for Error

source§

fn from(err: ParsePublicKeyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<HexToBytesError> for Error

source§

fn from(err: HexToBytesError) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.
source§

impl From<ParsePublicKeyError> for Error

source§

fn from(err: ParsePublicKeyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html index 8bac101f36..2852b2f42c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html @@ -12,7 +12,7 @@
§

AddOnPartialComplete

Can not add to an item that is Satisfaction::PartialComplete

§

MixedTimelockUnits

Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000

§

IncompatibleConditions

Incompatible conditions (not currently used)

-

Trait Implementations§

source§

impl Debug for PolicyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PolicyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PolicyError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for PolicyError

source§

fn eq(&self, other: &PolicyError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Debug for PolicyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PolicyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PolicyError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for PolicyError

source§

fn eq(&self, other: &PolicyError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for PolicyError

source§

impl StructuralPartialEq for PolicyError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html index 4dc408b9dc..ea46046a3e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html @@ -22,7 +22,7 @@ given [Network]

origin: Option<KeySource>, derivation_path: DerivationPath ) -> Result<DescriptorKey<Ctx>, KeyError>

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path
source§

impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>

source§

fn from(xprv: Xpriv) -> Self

Converts to this type from the input type.
source§

impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>

source§

fn from(xpub: Xpub) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<Ctx> Freeze for ExtendedKey<Ctx>

§

impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>
where +key origin and derivation path

source§

impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>

source§

fn from(xprv: Xpriv) -> Self

Converts to this type from the input type.
source§

impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>

source§

fn from(xpub: Xpub) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<Ctx> Freeze for ExtendedKey<Ctx>

§

impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>
where Ctx: RefUnwindSafe,

§

impl<Ctx> Send for ExtendedKey<Ctx>
where Ctx: Send,

§

impl<Ctx> Sync for ExtendedKey<Ctx>
where Ctx: Sync,

§

impl<Ctx> Unpin for ExtendedKey<Ctx>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html index 1deccd5756..7ade5ae9e8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html @@ -12,7 +12,7 @@
§

Message(String)

Custom error message

§

Bip32(Error)

BIP32 error

§

Miniscript(Error)

Miniscript error

-

Trait Implementations§

source§

impl Debug for KeyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for KeyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for KeyError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for KeyError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for KeyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for KeyError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for KeyError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for KeyError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for KeyError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/struct.GeneratedKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/struct.GeneratedKey.html index a63e290833..8b80c8e3cd 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/struct.GeneratedKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/struct.GeneratedKey.html @@ -2,14 +2,14 @@

Implementations§

source§

impl<K, Ctx: ScriptContext> GeneratedKey<K, Ctx>

source

pub fn into_key(self) -> K

Consumes self and returns the key

Trait Implementations§

source§

impl<K: Clone, Ctx: ScriptContext> Clone for GeneratedKey<K, Ctx>

source§

fn clone(&self) -> GeneratedKey<K, Ctx>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K, Ctx: ScriptContext> Deref for GeneratedKey<K, Ctx>

§

type Target = K

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<Ctx, K> DerivableKey<Ctx> for GeneratedKey<K, Ctx>
where Ctx: ScriptContext, - K: DerivableKey<Ctx>,

source§

fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError>

Consume self and turn it into an ExtendedKey
source§

fn into_descriptor_key( + K: DerivableKey<Ctx>,

source§

fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError>

Consume self and turn it into an ExtendedKey
source§

fn into_descriptor_key( self, origin: Option<KeySource>, derivation_path: DerivationPath ) -> Result<DescriptorKey<Ctx>, KeyError>

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as key origin and derivation path
source§

impl<Ctx, K> IntoDescriptorKey<Ctx> for GeneratedKey<K, Ctx>
where Ctx: ScriptContext, - K: IntoDescriptorKey<Ctx>,

source§

fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>

Turn the key into a DescriptorKey within the requested ScriptContext

Auto Trait Implementations§

§

impl<K, Ctx> Freeze for GeneratedKey<K, Ctx>
where + K: IntoDescriptorKey<Ctx>,

source§

fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>

Turn the key into a DescriptorKey within the requested ScriptContext

Auto Trait Implementations§

§

impl<K, Ctx> Freeze for GeneratedKey<K, Ctx>
where K: Freeze,

§

impl<K, Ctx> RefUnwindSafe for GeneratedKey<K, Ctx>

§

impl<K, Ctx> Send for GeneratedKey<K, Ctx>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/trait.IntoDescriptorKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/trait.IntoDescriptorKey.html index a70cff9637..64ac3842ce 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/trait.IntoDescriptorKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/trait.IntoDescriptorKey.html @@ -107,4 +107,4 @@ makes the compiler (correctly) fail.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for &str

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for PrivateKey

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for PublicKey

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for XOnlyPublicKey

source§

impl<Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx> for (T, DerivationPath)

source§

impl<Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx> for (T, KeySource, DerivationPath)

Implementors§

source§

impl<Ctx, K> IntoDescriptorKey<Ctx> for GeneratedKey<K, Ctx>
where Ctx: ScriptContext, K: IntoDescriptorKey<Ctx>,

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorKey<Ctx>

The “identity” conversion is used internally by some bdk_wallet::fragments

-
source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorPublicKey

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorSecretKey

\ No newline at end of file +
source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorPublicKey

source§

impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for DescriptorSecretKey

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html index 13a0c0b026..0408ce4e64 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html @@ -13,7 +13,7 @@ the desired outputs plus fee, if there is not such combination this error is thrown

§

BnBTotalTriesExceeded

Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow exponentially, thus a limit is set, and when hit, this error is thrown

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html index 5b85aa51dc..c1c7d73c8c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html @@ -9,7 +9,7 @@
§

UnexpectedConnectedToHash

Occurs when the connected_to hash does not match the hash derived from block.

Fields

§connected_to_hash: BlockHash

Block hash of connected_to.

§expected_hash: BlockHash

Expected block hash of connected_to, as derived from block.

-

Trait Implementations§

source§

impl Debug for ApplyBlockError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ApplyBlockError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ApplyBlockError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for ApplyBlockError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ApplyBlockError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ApplyBlockError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html index e5a256ffa8..745e57455c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html @@ -9,7 +9,7 @@
§

MissingNetwork

Data loaded from persistence is missing network type.

§

MissingGenesis

Data loaded from persistence is missing genesis hash.

§

MissingDescriptor(KeychainKind)

Data loaded from persistence is missing descriptor.

-

Trait Implementations§

source§

impl Debug for LoadError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for LoadError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for LoadError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for LoadError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for LoadError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for LoadError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html index 14b6299645..e2fcc3fd7e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html @@ -56,7 +56,7 @@ explicit origin provided

§

UnknownUtxo

Happens when trying to spend an UTXO that is not in the internal database

§

MissingNonWitnessUtxo(OutPoint)

Missing non_witness_utxo on foreign utxo for given OutPoint

§

MiniscriptPsbt(MiniscriptPsbtError)

Miniscript PSBT error

-

Trait Implementations§

source§

impl Debug for CreateTxError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CreateTxError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CreateTxError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<MiniscriptPsbtError> for CreateTxError

source§

fn from(err: MiniscriptPsbtError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for CreateTxError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CreateTxError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CreateTxError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<MiniscriptPsbtError> for CreateTxError

source§

fn from(err: MiniscriptPsbtError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html index 396000b1a4..253d0e0bc7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html @@ -1,4 +1,4 @@ -bdk_wallet::wallet::export - Rust

Module bdk_wallet::wallet::export

source ·
Expand description

Wallet export

+bdk_wallet::wallet::export - Rust

Module bdk_wallet::wallet::export

source ·
Expand description

Wallet export

This modules implements the wallet export format used by FullyNoded.

§Examples

§Import from JSON

let import = r#"{
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/struct.FullyNodedExport.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/struct.FullyNodedExport.html
index f8f04c0cad..d690ddb737 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/struct.FullyNodedExport.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/struct.FullyNodedExport.html
@@ -20,8 +20,8 @@ for the oldest transaction it knows and use that as the earliest block to rescan
 returned will be 0.

source

pub fn descriptor(&self) -> String

Return the external descriptor

source

pub fn change_descriptor(&self) -> Option<String>

Return the internal descriptor, if present

-

Trait Implementations§

source§

impl Debug for FullyNodedExport

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FullyNodedExport

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FullyNodedExport

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for FullyNodedExport

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for FullyNodedExport

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where +

Trait Implementations§

source§

impl Debug for FullyNodedExport

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FullyNodedExport

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FullyNodedExport

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for FullyNodedExport

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Serialize for FullyNodedExport

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html index 39c9a87ecc..8d6297f192 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html @@ -1,4 +1,4 @@ -wallet_name_from_descriptor in bdk_wallet::wallet - Rust

Function bdk_wallet::wallet::wallet_name_from_descriptor

source ·
pub fn wallet_name_from_descriptor<T>(
+wallet_name_from_descriptor in bdk_wallet::wallet - Rust

Function bdk_wallet::wallet::wallet_name_from_descriptor

source ·
pub fn wallet_name_from_descriptor<T>(
     descriptor: T,
     change_descriptor: Option<T>,
     network: Network,
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
index 1e7a7fe3aa..638075f042 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
@@ -1,4 +1,4 @@
-bdk_wallet::wallet - Rust

Module bdk_wallet::wallet

source ·
Expand description

Wallet

+bdk_wallet::wallet - Rust

Module bdk_wallet::wallet

source ·
Expand description

Wallet

This module defines the Wallet.

Modules§

Structs§

  • A derived address and the index it was found at. For convenience this automatically derefs to Address
  • Balance, differentiated into various categories.
  • An update to Wallet.
  • A Bitcoin wallet

Enums§

Traits§

  • Trait to check if a value is below the dust limit. diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html index 07f85e51fd..5143c21755 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html @@ -7,7 +7,7 @@ multiple of them

Variants§

§

PkHash(Hash)

Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key

§

Fingerprint(Fingerprint)

The fingerprint of a BIP32 extended key

§

Dummy(u64)

Dummy identifier

-

Trait Implementations§

source§

impl Clone for SignerId

source§

fn clone(&self) -> SignerId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SignerId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Fingerprint> for SignerId

source§

fn from(fing: Fingerprint) -> SignerId

Converts to this type from the input type.
source§

impl From<Hash> for SignerId

source§

fn from(hash: Hash) -> SignerId

Converts to this type from the input type.
source§

impl Hash for SignerId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for SignerId

source§

fn clone(&self) -> SignerId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SignerId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Fingerprint> for SignerId

source§

fn from(fing: Fingerprint) -> SignerId

Converts to this type from the input type.
source§

impl From<Hash> for SignerId

source§

fn from(hash: Hash) -> SignerId

Converts to this type from the input type.
source§

impl Hash for SignerId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for SignerId

source§

fn cmp(&self, other: &SignerId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html index 6ab66c4ce6..98ca95048f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html @@ -6,19 +6,19 @@ input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

Sign a single psbt input
source§

impl InputSigner for SignerWrapper<DescriptorXKey<Xpriv>>

source§

fn sign_input( +) -> Result<(), SignerError>

Sign a single psbt input
source§

impl InputSigner for SignerWrapper<DescriptorXKey<Xpriv>>

source§

fn sign_input( &self, psbt: &mut Psbt, input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

Sign a single psbt input
source§

impl InputSigner for SignerWrapper<PrivateKey>

source§

fn sign_input( +) -> Result<(), SignerError>

Sign a single psbt input
source§

impl InputSigner for SignerWrapper<PrivateKey>

source§

fn sign_input( &self, psbt: &mut Psbt, input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

Sign a single psbt input
source§

impl SignerCommon for SignerWrapper<DescriptorMultiXKey<Xpriv>>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more
source§

impl SignerCommon for SignerWrapper<DescriptorXKey<Xpriv>>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more
source§

impl SignerCommon for SignerWrapper<PrivateKey>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more

Auto Trait Implementations§

§

impl<S> Freeze for SignerWrapper<S>
where +) -> Result<(), SignerError>

Sign a single psbt input
source§

impl SignerCommon for SignerWrapper<DescriptorMultiXKey<Xpriv>>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more
source§

impl SignerCommon for SignerWrapper<DescriptorXKey<Xpriv>>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more
source§

impl SignerCommon for SignerWrapper<PrivateKey>

source§

fn id(&self, secp: &Secp256k1<All>) -> SignerId

Return the SignerId for this signer Read more
source§

fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

Return the secret key for the signer Read more

Auto Trait Implementations§

§

impl<S> Freeze for SignerWrapper<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for SignerWrapper<S>
where S: RefUnwindSafe,

§

impl<S> Send for SignerWrapper<S>
where S: Send,

§

impl<S> Sync for SignerWrapper<S>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html index ce63b902cd..aa9d104618 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html @@ -68,7 +68,7 @@ network a simple comparison is not enough anymore. Instead this function can be let address: Address<NetworkUnchecked> = "32iVBEu4dxkUQk9dJbZUiBiQdmypcEyJRf".parse().unwrap(); assert!(address.is_valid_for_network(Network::Bitcoin)); assert_eq!(address.is_valid_for_network(Network::Testnet), false);
-

Trait Implementations§

source§

impl Debug for AddressInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for AddressInfo

§

type Target = Address

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for AddressInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for AddressInfo

source§

fn eq(&self, other: &AddressInfo) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Debug for AddressInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for AddressInfo

§

type Target = Address

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for AddressInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for AddressInfo

source§

fn eq(&self, other: &AddressInfo) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for AddressInfo

source§

impl StructuralPartialEq for AddressInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html index 5bf7818a0f..ed6478e2fa 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html @@ -1,12 +1,12 @@ Update in bdk_wallet::wallet - Rust

Struct bdk_wallet::wallet::Update

source ·
pub struct Update {
     pub last_active_indices: BTreeMap<KeychainKind, u32>,
-    pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
+    pub graph: TxGraph<ConfirmationBlockTime>,
     pub chain: Option<CheckPoint>,
 }
Expand description

An update to Wallet.

It updates [KeychainTxOutIndex], [bdk_chain::TxGraph] and [local_chain::LocalChain] atomically.

Fields§

§last_active_indices: BTreeMap<KeychainKind, u32>

Contains the last active derivation indices per keychain (K), which is used to update the [KeychainTxOutIndex].

-
§graph: TxGraph<ConfirmationTimeHeightAnchor>

Update for the wallet’s internal [TxGraph].

+
§graph: TxGraph<ConfirmationBlockTime>

Update for the wallet’s internal [TxGraph].

§chain: Option<CheckPoint>

Update for the wallet’s internal LocalChain.

Trait Implementations§

source§

impl Clone for Update

source§

fn clone(&self) -> Update

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Update

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Update

source§

fn default() -> Update

Returns the “default value” for a type. Read more
source§

impl From<FullScanResult<KeychainKind>> for Update

source§

fn from(value: FullScanResult<KeychainKind>) -> Self

Converts to this type from the input type.
source§

impl From<SyncResult> for Update

source§

fn from(value: SyncResult) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html index c40acd0d59..99d6ef1748 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html @@ -1,4 +1,4 @@ -Wallet in bdk_wallet::wallet - Rust

Struct bdk_wallet::wallet::Wallet

source ·
pub struct Wallet { /* private fields */ }
Expand description

A Bitcoin wallet

+Wallet in bdk_wallet::wallet - Rust

Struct bdk_wallet::wallet::Wallet

source ·
pub struct Wallet { /* private fields */ }
Expand description

A Bitcoin wallet

The Wallet acts as a way of coherently interfacing with output descriptors and related transactions. Its main components are:

    @@ -10,7 +10,7 @@ Its main components are:

    on when Wallet state needs to be persisted.

    The Wallet descriptor (external) and change descriptor (internal) must not derive the same script pubkeys. See [KeychainTxOutIndex::insert_descriptor()] for more details.

    -

Implementations§

source§

impl Wallet

Implementations§

source§

impl Wallet

source

pub fn new<E: IntoWalletDescriptor>( descriptor: E, change_descriptor: E, network: Network @@ -206,7 +206,7 @@ of this tx’s outputs that send to script pubkeys tracked by this wallet.

source

pub fn get_tx( &self, txid: Txid -) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>

Get a single transaction from the wallet as a [CanonicalTx] (if the transaction exists).

+) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationBlockTime>>

Get a single transaction from the wallet as a [CanonicalTx] (if the transaction exists).

CanonicalTx contains the full transaction alongside meta-data such as:

  • Blocks that the transaction is Anchored in. These may or may not be blocks that exist @@ -237,7 +237,7 @@ the transaction was last seen in the mempool is provided.
  • match canonical_tx.chain_position { ChainPosition::Confirmed(anchor) => println!( "tx is confirmed at height {}, we know this since {}:{} is in the best chain", - anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash, + anchor.block_id.height, anchor.block_id.height, anchor.block_id.hash, ), ChainPosition::Unconfirmed(last_seen) => println!( "tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain", @@ -262,19 +262,19 @@ graph. Any changes are staged but not committed.

    By default the inserted tx won’t be considered “canonical” because it’s not known whether the transaction exists in the best chain. To know whether it exists, the tx must be broadcast to the network and the wallet synced via a chain source.

    -
source

pub fn transactions( +

source

pub fn transactions( &self -) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_

Iterate over the transactions in the wallet.

-
source

pub fn balance(&self) -> Balance

Return the balance, separated into available, trusted-pending, untrusted-pending and immature +) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationBlockTime>> + '_

Iterate over the transactions in the wallet.

+
source

pub fn balance(&self) -> Balance

Return the balance, separated into available, trusted-pending, untrusted-pending and immature values.

-
source

pub fn add_signer( +

source

pub fn add_signer( &mut self, keychain: KeychainKind, ordering: SignerOrdering, signer: Arc<dyn TransactionSigner> )

Add an external signer

See the signer module for an example.

-
source

pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>

Get the signers

+
source

pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>

Get the signers

§Example
let descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/0/*)";
 let change_descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/1/*)";
@@ -285,7 +285,7 @@ values.

} Ok::<(), Box<dyn std::error::Error>>(())
-
source

pub fn build_tx(&mut self) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm>

Start building a transaction.

+
source

pub fn build_tx(&mut self) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm>

Start building a transaction.

This returns a blank TxBuilder from which you can specify the parameters for the transaction.

§Example
let psbt = {
@@ -296,7 +296,7 @@ values.

}; // sign and broadcast ...
-
source

pub fn build_fee_bump( +

source

pub fn build_fee_bump( &mut self, txid: Txid ) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm>, BuildFeeBumpError>

Bump the fee of a transaction previously created with this wallet.

@@ -324,7 +324,7 @@ pre-populated with the inputs and outputs of the original transaction.

let _ = wallet.sign(&mut psbt, SignOptions::default())?; let fee_bumped_tx = psbt.extract_tx(); // broadcast fee_bumped_tx to replace original
-
source

pub fn sign( +

source

pub fn sign( &self, psbt: &mut Psbt, sign_options: SignOptions @@ -342,15 +342,15 @@ in this library will.

}; let finalized = wallet.sign(&mut psbt, SignOptions::default())?; assert!(finalized, "we should have signed all the inputs"); -

source

pub fn policies( +

source

pub fn policies( &self, keychain: KeychainKind ) -> Result<Option<Policy>, DescriptorError>

Return the spending policies for the wallet’s descriptor

-
source

pub fn public_descriptor(&self, keychain: KeychainKind) -> &ExtendedDescriptor

Returns the descriptor used to create addresses for a particular keychain. +

source

pub fn public_descriptor(&self, keychain: KeychainKind) -> &ExtendedDescriptor

Returns the descriptor used to create addresses for a particular keychain. It’s the “public” version of the wallet’s descriptor, meaning a new descriptor that has the same structure but with the all secret keys replaced by their corresponding public key.

This can be used to build a watch-only version of a wallet.

-
source

pub fn finalize_psbt( +

source

pub fn finalize_psbt( &self, psbt: &mut Psbt, sign_options: SignOptions @@ -361,21 +361,21 @@ and BIP for further information.

Returns true if the PSBT could be finalized, and false otherwise.

The SignOptions can be used to tweak the behavior of the finalizer.

-

source

pub fn secp_ctx(&self) -> &Secp256k1<All>

Return the secp256k1 context used for all signing operations

-
source

pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>

The derivation index of this wallet. It will return None if it has not derived any addresses. +

source

pub fn secp_ctx(&self) -> &Secp256k1<All>

Return the secp256k1 context used for all signing operations

+
source

pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>

The derivation index of this wallet. It will return None if it has not derived any addresses. Otherwise, it will return the index of the highest address it has derived.

-
source

pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32

The index of the next address that you would get if you were to ask the wallet for a new address

-
source

pub fn cancel_tx(&mut self, tx: &Transaction)

Informs the wallet that you no longer intend to broadcast a tx that was built from it.

+
source

pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32

The index of the next address that you would get if you were to ask the wallet for a new address

+
source

pub fn cancel_tx(&mut self, tx: &Transaction)

Informs the wallet that you no longer intend to broadcast a tx that was built from it.

This frees up the change address used when creating the tx for use in future transactions.

-
source

pub fn get_psbt_input( +

source

pub fn get_psbt_input( &self, utxo: LocalOutput, sighash_type: Option<PsbtSighashType>, only_witness_utxo: bool ) -> Result<Input, CreateTxError>

get the corresponding PSBT Input for a LocalUtxo

-
source

pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String

Return the checksum of the public descriptor associated to keychain

+
source

pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String

Return the checksum of the public descriptor associated to keychain

Internally calls Self::public_descriptor to fetch the right descriptor

-
source

pub fn apply_update( +

source

pub fn apply_update( &mut self, update: impl Into<Update> ) -> Result<(), CannotConnectError>

Applies an update to the wallet and stages the changes (but does not persist them).

@@ -383,16 +383,16 @@ Otherwise, it will return the index of the highest address it has derived.

transactions related to your wallet into it.

After applying updates you should persist the staged wallet changes. For an example of how to persist staged wallet changes see Wallet::reveal_next_address. `

-
source

pub fn staged(&self) -> Option<&ChangeSet>

Get a reference of the staged ChangeSet that are yet to be committed (if any).

-
source

pub fn take_staged(&mut self) -> Option<ChangeSet>

Take the staged ChangeSet to be persisted now (if any).

-
source

pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

Get a reference to the inner [TxGraph].

-
source

pub fn unbroadcast_transactions( +

source

pub fn staged(&self) -> Option<&ChangeSet>

Get a reference of the staged ChangeSet that are yet to be committed (if any).

+
source

pub fn take_staged(&mut self) -> Option<ChangeSet>

Take the staged ChangeSet to be persisted now (if any).

+
source

pub fn tx_graph(&self) -> &TxGraph<ConfirmationBlockTime>

Get a reference to the inner [TxGraph].

+
source

pub fn unbroadcast_transactions( &self -) -> impl Iterator<Item = TxNode<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>

Iterate over transactions in the wallet that are unseen and unanchored likely +) -> impl Iterator<Item = TxNode<'_, Arc<Transaction>, ConfirmationBlockTime>>

Iterate over transactions in the wallet that are unseen and unanchored likely because they haven’t been broadcast.

-
source

pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>

Get a reference to the inner [KeychainTxOutIndex].

-
source

pub fn local_chain(&self) -> &LocalChain

Get a reference to the inner [LocalChain].

-
source

pub fn apply_block( +

source

pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>

Get a reference to the inner [KeychainTxOutIndex].

+
source

pub fn local_chain(&self) -> &LocalChain

Get a reference to the inner [LocalChain].

+
source

pub fn apply_block( &mut self, block: &Block, height: u32 @@ -400,7 +400,7 @@ because they haven’t been broadcast.

prev_blockhash of the block’s header.

This is a convenience method that is equivalent to calling apply_block_connected_to with prev_blockhash and height-1 as the connected_to parameter.

-

source

pub fn apply_block_connected_to( +

source

pub fn apply_block_connected_to( &mut self, block: &Block, height: u32, @@ -413,7 +413,7 @@ internal [TxGraph].

WARNING: You must persist the changes resulting from one or more calls to this method if you need the inserted block data to be reloaded after closing the wallet. See Wallet::reveal_next_address.

-

source

pub fn apply_unconfirmed_txs<'t>( +

source

pub fn apply_unconfirmed_txs<'t>( &mut self, unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)> )

Apply relevant unconfirmed transactions to the wallet.

@@ -425,18 +425,18 @@ when there is conflicting unconfirmed transactions. The transaction with the lat

WARNING: You must persist the changes resulting from one or more calls to this method if you need the applied unconfirmed transactions to be reloaded after closing the wallet. See Wallet::reveal_next_address.

-
source§

impl Wallet

Methods to construct sync/full-scan requests for spk-based chain sources.

-
source

pub fn start_sync_with_revealed_spks(&self) -> SyncRequest

Create a partial [SyncRequest] for this wallet for all revealed spks.

+
source§

impl Wallet

Methods to construct sync/full-scan requests for spk-based chain sources.

+
source

pub fn start_sync_with_revealed_spks(&self) -> SyncRequest

Create a partial [SyncRequest] for this wallet for all revealed spks.

This is the first step when performing a spk-based wallet partial sync, the returned [SyncRequest] collects all revealed script pubkeys from the wallet keychain needed to start a blockchain sync with a spk based blockchain client.

-
source

pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>

Create a [`FullScanRequest] for this wallet.

+
source

pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>

Create a [`FullScanRequest] for this wallet.

This is the first step when performing a spk-based wallet full scan, the returned [`FullScanRequest] collects iterators for the wallet’s keychain script pub keys needed to start a blockchain full scan with a spk based blockchain client.

This operation is generally only used when importing or restoring a previously used wallet in which the list of used scripts is not known.

-

Trait Implementations§

source§

impl AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet

source§

fn as_ref(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for Wallet

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl AsRef<TxGraph<ConfirmationBlockTime>> for Wallet

source§

fn as_ref(&self) -> &TxGraph<ConfirmationBlockTime>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for Wallet

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html index 470eca13a4..59ce5f4a8d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html @@ -11,7 +11,7 @@
§foreign_utxo: OutPoint

Foreign UTXO outpoint

§

InvalidOutpoint(OutPoint)

Requested outpoint doesn’t exist in the tx (vout greater than available outputs)

§

MissingUtxo

Foreign utxo missing witness_utxo or non_witness_utxo

-

Trait Implementations§

source§

impl Debug for AddForeignUtxoError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AddForeignUtxoError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for AddForeignUtxoError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for AddForeignUtxoError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AddForeignUtxoError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for AddForeignUtxoError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html index b64cc02025..96fd136747 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html @@ -1,9 +1,9 @@ -ChangeSet in bdk_wallet::wallet - Rust

Type Alias bdk_wallet::wallet::ChangeSet

source ·
pub type ChangeSet = CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
Expand description

The changes made to a wallet by applying an Update.

+ChangeSet in bdk_wallet::wallet - Rust

Type Alias bdk_wallet::wallet::ChangeSet

source ·
pub type ChangeSet = CombinedChangeSet<KeychainKind, ConfirmationBlockTime>;
Expand description

The changes made to a wallet by applying an Update.

Aliased Type§

struct ChangeSet {
     pub chain: BTreeMap<u32, Option<BlockHash>>,
-    pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>,
+    pub indexed_tx_graph: ChangeSet<ConfirmationBlockTime, ChangeSet<KeychainKind>>,
     pub network: Option<Network>,
 }

Fields§

§chain: BTreeMap<u32, Option<BlockHash>>

Changes to the LocalChain.

-
§indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>

Changes to IndexedTxGraph.

+
§indexed_tx_graph: ChangeSet<ConfirmationBlockTime, ChangeSet<KeychainKind>>

Changes to IndexedTxGraph.

§network: Option<Network>

Stores the network type of the transaction data.

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html index 656f1da7ac..c995922e26 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_bitcoind_rpc_polling - Rust

Type Alias example_bitcoind_rpc_polling::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
\ No newline at end of file +ChangeSet in example_bitcoind_rpc_polling - Rust

Type Alias example_bitcoind_rpc_polling::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationBlockTime, ChangeSet<Keychain>>);
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html index 78cd130647..d8644e985a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html @@ -1,8 +1,8 @@ Keychain in example_cli - Rust

Enum example_cli::Keychain

source ·
pub enum Keychain {
     External,
     Internal,
-}

Variants§

§

External

§

Internal

Trait Implementations§

source§

impl Clone for Keychain

source§

fn clone(&self) -> Keychain

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Keychain

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Keychain

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Keychain

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for Keychain

source§

fn cmp(&self, other: &Keychain) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where +}

Variants§

§

External

§

Internal

Trait Implementations§

source§

impl Clone for Keychain

source§

fn clone(&self) -> Keychain

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Keychain

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Keychain

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Keychain

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for Keychain

source§

fn cmp(&self, other: &Keychain) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Keychain

source§

fn eq(&self, other: &Keychain) -> bool

This method tests for self and other values to be equal, and is used diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html index 9df089d787..883002735a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html @@ -1 +1 @@ -main in example_electrum - Rust

Function example_electrum::main

source ·
pub(crate) fn main() -> Result<()>
\ No newline at end of file +main in example_electrum - Rust

Function example_electrum::main

source ·
pub(crate) fn main() -> Result<()>
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html index e62f707987..feb4f67fd9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html @@ -1 +1 @@ -example_electrum - Rust

Crate example_electrum

source ·

Structs§

Enums§

Constants§

Functions§

Type Aliases§

\ No newline at end of file +example_electrum - Rust

Crate example_electrum

source ·

Structs§

Enums§

Constants§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html index 6d258055bd..5eb5a40004 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_electrum - Rust

Type Alias example_electrum::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationHeightAnchor, ChangeSet<Keychain>>);
\ No newline at end of file +ChangeSet in example_electrum - Rust

Type Alias example_electrum::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationBlockTime, ChangeSet<Keychain>>);
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html index f5b9f8ca41..75b9a4c4da 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_esplora - Rust

Type Alias example_esplora::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
\ No newline at end of file +ChangeSet in example_esplora - Rust

Type Alias example_esplora::ChangeSet

source ·
pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationBlockTime, ChangeSet<Keychain>>);
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html index 08ff977b9d..ae03e9ecc6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js index ed7b2bcb66..d9ef6f421b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js @@ -1,17 +1,17 @@ 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::blockdata::block"],[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,"core::option"],[41,"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",31],[6,"Option",40],[5,"Header",31],[5,"TypeId",41]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA0ABAAEAAAACAADAA4AAAAYAAcA"}],\ -["bdk_chain",{"t":"KKSFFSKGFFGFPPKFRFIEEIKFEPPNNMNNNOONNNNENNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNOONNNNNNMNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNOOONCOCNNNNNNNNNNNMNNNMNNOCMNEONNNNONNNNNNNDNNNNNNNOCNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNCONNNNNNNNNNNONNNNNNNNNNOOOFFNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNRKMMMMMCCFSPGPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFFFFNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNNN","n":["Anchor","AnchorFromBlockPosition","BIP32_MAX_INDEX","Balance","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","CombinedChangeSet","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","DescriptorId","Error","FullTxOut","Indexed","IndexedTxGraph","Indexer","KeychainIndexed","Merge","SpkIterator","TxGraph","Unconfirmed","Unconfirmed","add","all_zeros","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","as_byte_array","as_raw_hash","as_ref","as_ref","bitcoin","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","chain","chain_position","clone","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","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","confirmed","default","default","default","default","default","descriptor","descriptor_id","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dust_value","engine","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","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","immature","index","indexed_tx_graph","indexed_tx_graph","indexer","into","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_empty","is_mature","is_on_coinbase","local_chain","merge","merge","miniscript","network","new","new_with_range","next","nth","outpoint","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","serde","serialize","serialize","serialize","serialize","serialize","serialize","serialize","spent_by","spk_client","take","take","to_byte_array","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_raw_hash","to_string","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","IndexedTxGraph","apply_block","apply_block_relevant","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","indexer","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","merge","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ChangeSet","Indexer","apply_changeset","index_tx","index_txout","initial_changeset","is_tx_relevant","keychain_txout","spk_txout","ChangeSet","DEFAULT_LOOKAHEAD","DescriptorAlreadyAssigned","InsertDescriptorError","KeychainAlreadyAssigned","KeychainTxOutIndex","NoSuchKeychain","all_unbounded_spk_iters","apply_changeset","apply_changeset","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deserialize","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_descriptor","index_of_spk","index_tx","index_txout","initial_changeset","inner","insert_descriptor","into","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","merge","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","spk_at_index","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","unused_keychain_spks","unused_spks","vzip","vzip","vzip","vzip","descriptor","existing_assignment","existing_assignment","keychain","SpkTxOutIndex","all_spks","apply_changeset","borrow","borrow_mut","clone","clone_into","default","fmt","from","index_of_spk","index_tx","index_txout","initial_changeset","insert_spk","into","is_relevant","is_tx_relevant","is_used","mark_used","net_value","outpoints","outputs_in_range","scan","scan_txout","sent_and_received","spk_at_index","to_owned","try_from","try_into","txout","txouts","txouts_in_tx","type_id","unmark_used","unused_spks","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","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_canonical_txs","map_anchors","map_anchors","merge","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_canonical_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","txs_with_no_anchor_or_last_seen","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"],[288,"bdk_chain::ConfirmationTime"],[291,"bdk_chain::indexed_tx_graph"],[341,"bdk_chain::indexer"],[350,"bdk_chain::indexer::keychain_txout"],[461,"bdk_chain::indexer::keychain_txout::InsertDescriptorError"],[465,"bdk_chain::indexer::spk_txout"],[502,"bdk_chain::local_chain"],[644,"bdk_chain::spk_client"],[708,"bdk_chain::tx_graph"],[870,"bdk_chain::balance"],[871,"bdk_chain::descriptor_ext"],[872,"bdk_chain::tx_data_traits"],[873,"bdk_chain::chain_data"],[874,"bitcoin_hashes::sha256"],[875,"core::clone"],[876,"bdk_chain::spk_iter"],[877,"bdk_chain::changeset"],[878,"core::cmp"],[879,"core::option"],[880,"miniscript::descriptor::key"],[881,"miniscript::descriptor"],[882,"core::borrow"],[883,"core::result"],[884,"serde::de"],[885,"core::fmt"],[886,"bitcoin::blockdata::block"],[887,"bitcoin_hashes"],[888,"bdk_chain::chain_oracle"],[889,"core::hash"],[890,"core::slice::index"],[891,"core::ops::range"],[892,"serde::ser"],[893,"alloc::string"],[894,"bitcoin_units::amount"],[895,"core::any"],[896,"core::iter::traits::collect"],[897,"bitcoin::blockdata::transaction"],[898,"core::default"],[899,"alloc::collections::btree::map"],[900,"bitcoin::blockdata::script::borrowed"],[901,"core::iter::traits::double_ended"],[902,"core::iter::traits::exact_size"],[903,"bitcoin::blockdata::script::owned"],[904,"alloc::collections::btree::set"],[905,"alloc::vec"],[906,"core::iter::traits::iterator"],[907,"core::marker"],[908,"core::ops::function"],[909,"core::convert"],[910,"alloc::sync"],[911,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,13,15,0,0,48,0,0,0,0,0,0,0,0,13,15,1,2,3,5,6,7,6,7,2,2,2,2,0,1,13,15,5,6,7,16,2,2,17,18,1,13,15,5,6,7,16,2,17,18,18,16,1,13,15,5,6,7,16,2,17,18,1,13,15,5,6,7,16,2,17,18,13,13,15,5,6,7,16,2,6,7,3,3,13,6,7,7,1,1,5,6,7,18,17,27,1,15,5,6,7,2,18,27,2,1,13,15,5,6,7,16,2,18,1,1,13,15,5,6,7,16,2,2,2,2,18,1,13,15,15,5,5,5,6,7,16,2,2,17,18,18,18,18,44,5,6,7,2,2,2,2,2,2,48,13,15,5,6,7,2,5,5,1,2,0,18,0,1,13,15,5,6,7,16,2,17,18,17,48,13,15,16,52,18,16,16,0,52,18,0,18,17,17,17,17,16,13,15,5,6,7,16,2,0,1,15,5,6,7,2,18,16,0,52,52,2,1,13,15,5,6,7,16,2,17,18,2,1,2,1,1,1,1,13,15,5,6,7,16,2,17,18,1,13,15,5,6,7,16,2,17,18,0,16,1,13,15,5,6,7,16,2,17,18,15,1,1,13,15,5,6,7,16,2,17,18,111,112,111,0,0,60,60,60,60,60,60,60,60,60,41,60,41,41,41,60,41,41,41,60,41,60,41,41,41,60,41,60,41,60,60,60,60,60,60,41,41,41,60,41,41,60,41,60,41,60,41,60,41,61,0,61,61,61,61,61,0,0,0,0,74,0,74,0,0,72,72,72,72,74,40,75,72,74,40,75,72,74,40,75,72,74,40,75,72,40,40,74,40,75,72,74,74,40,75,75,72,74,40,75,72,72,72,72,72,72,72,72,74,40,75,40,72,72,72,72,72,40,40,72,72,72,72,72,72,72,40,72,72,72,72,72,72,72,72,72,72,72,40,72,72,74,40,75,74,75,72,74,40,75,72,74,40,75,72,72,72,72,74,40,75,72,72,72,72,72,74,40,75,113,113,114,114,0,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,0,0,91,0,0,0,0,91,0,0,87,87,87,87,92,94,92,87,88,93,90,91,94,92,87,88,93,90,91,92,87,88,93,90,91,92,87,88,93,90,91,87,92,87,88,93,90,91,92,92,87,88,88,93,93,90,90,91,91,94,92,87,88,93,90,91,92,87,87,87,92,87,87,92,87,87,92,92,93,87,92,87,94,92,87,88,93,90,91,94,92,87,92,87,92,94,93,92,92,92,87,87,92,87,88,93,90,91,88,93,90,91,94,92,87,88,93,90,91,90,94,92,87,88,93,90,91,94,92,87,88,93,90,91,93,94,92,87,88,93,90,91,0,0,0,0,95,115,98,116,95,115,98,116,95,95,98,95,98,95,115,116,95,115,98,116,95,98,98,115,116,95,95,98,98,95,95,115,98,116,116,95,95,95,95,98,95,95,98,95,115,98,116,95,115,98,116,95,95,115,98,116,95,115,98,116,0,0,0,103,103,0,0,0,0,62,62,67,104,67,62,62,62,62,62,108,109,62,104,105,103,67,108,109,62,104,105,103,67,62,105,108,108,109,109,62,104,105,67,62,104,105,67,104,105,62,67,104,67,62,62,104,105,103,67,62,62,62,62,104,105,103,103,67,108,109,62,104,105,103,67,62,62,62,62,62,62,62,62,62,62,62,108,109,62,104,105,103,67,108,109,62,67,67,104,62,62,67,67,62,108,109,62,104,105,67,62,104,105,67,103,62,62,62,108,109,62,104,105,103,67,62,62,108,109,62,104,105,103,67,62,104,105,62,62,104,67,67,67,62,108,109,62,104,105,103,67,62,108,109,62,104,105,103,67,62,62,62],"f":"```````````````````````````{{bb}b}{{}d}{{{h{f}}}j}{{{h{j}}}j}{{{h{l}}}j}{{{h{n}}}j}``{{{h{d}}}{{h{c}}}{}}{{{h{d}}}{{h{A`}}}}{{{h{d}}}{{h{{Ad{Ab}}}}}}{{{h{d}}}{{h{{Af{Ab}}}}}}`{{{h{c}}}{{h{e}}}{}{}}0000000100{{{h{Ahc}}}{{h{Ahe}}}{}{}}000000000``{{{h{b}}}b}{{{h{{Aj{c}}}}}{{Aj{c}}}Al}{{{h{An}}}An};{{{h{l}}}l}{{{h{n}}}n}{{{h{{B`{c}}}}}{{B`{c}}}Al}{{{h{d}}}d}{{{h{{Bb{c}}}}}{{Bb{c}}}Al}{{{h{{Bd{ce}}}}}{{Bd{ce}}}AlAl}{{{h{c}}{h{Ahe}}}Bf{}{}}000000000{{{Aj{{h{c}}}}}{{Aj{c}}}Al}{{{h{{Aj{c}}}}{h{{Aj{c}}}}}BhBj}{{{h{An}}{h{An}}}Bh}{{{h{j}}{h{j}}}Bh}{{{h{l}}{h{l}}}Bh}{{{h{n}}{h{n}}}Bh}{{{h{{B`{c}}}}{h{{B`{c}}}}}BhBj}{{{h{d}}{h{d}}}Bh}``{{{h{f}}}Bl}0{{{h{{Aj{c}}}}}{{Bn{Bl}}}f}{{{h{l}}}Bl}{{{h{n}}}Bl}``{{}b}{{}j}{{}l}{{}n}{{}{{Bd{ce}}}{}{}}{{{h{{Bb{c}}}}}{{h{c}}}{{Cd{{Cb{C`}}}}}}{{{h{Cf}}}d}{c{{Ch{b}}}Cj}{c{{Ch{An}}}Cj}{c{{Ch{j}}}Cj}{c{{Ch{l}}}Cj}{c{{Ch{n}}}Cj}{c{{Ch{d}}}Cj}{c{{Ch{{Bd{eg}}}}}Cj{BjCl}{BjCl}}{{{h{Cf}}}Cn}{{}c{}}{{{h{b}}{h{b}}}D`}{{{h{{Aj{c}}}}{h{{Aj{c}}}}}D`Db}{{{h{An}}{h{An}}}D`}{{{h{j}}{h{j}}}D`}{{{h{l}}{h{l}}}D`}{{{h{n}}{h{n}}}D`}{{{h{{B`{c}}}}{h{{B`{c}}}}}D`Db}{{{h{d}}{h{d}}}D`}{{{h{{Bd{ce}}}}{h{{Bd{ce}}}}}D`DbDb}{{{h{b}}{h{AhDd}}}Df}0{{{h{{Aj{c}}}}{h{AhDd}}}DfDh}{{{h{An}}{h{AhDd}}}Df}{{{h{j}}{h{AhDd}}}Df}{{{h{l}}{h{AhDd}}}Df}{{{h{n}}{h{AhDd}}}Df}{{{h{{B`{c}}}}{h{AhDd}}}DfDh}{{{h{d}}{h{AhDd}}}Df}000{{{h{{Bd{ce}}}}{h{AhDd}}}DfDhDh}{cc{}}00{{{Aj{n}}}An}{{{Dl{{h{Bl}}{h{Dj}}}}}j}{{{Dl{BlDj}}}j}3333{A`d}444{Dn{{Bd{ce}}}{}{}}{{{E`{c}}}{{Bd{ce}}}{}{}}{{{Eb{c{E`{e}}}}}{{Bd{ec}}}{}{}}{{{h{Ed}}jEf}Eh}{{{h{Ed}}jEf}j}{{{h{Ed}}jEf}l}{{{h{Ed}}jEf}n}{cd{}}08{{{h{{Af{Ab}}}}}{{Ch{dEj}}}}0{{{h{El}}}{{Ch{dc}}}{}}{{{h{{F`{}{{En{c}}}}}}}{{Ch{jc}}}Dh}{{{h{{Aj{c}}}}{h{Ahe}}}BfFbFd}{{{h{An}}{h{Ahc}}}BfFd}{{{h{j}}{h{Ahc}}}BfFd}{{{h{l}}{h{Ahc}}}BfFd}{{{h{n}}{h{Ahc}}}BfFd}{{{h{d}}{h{Ahc}}}BfFd}```{{{h{d}}c}{{h{e}}}{{Ff{{Af{Ab}}}}}{}}```{ce{}{}}0000000000{{{h{{F`{}{{En{c}}}}}}jj}{{Ch{{Bn{D`}}c}}}Dh}{{{h{{Aj{c}}}}}D`{}}{{{h{An}}}D`}{{{h{{B`{c}}}}Bl}D`f}{{{h{Fh}}}D`}{{{h{{Bd{ce}}}}}D`Bjf}2``{{{h{AhFh}}Fh}Bf}{{{h{Ah{Bd{ce}}}}{Bd{ce}}}BfBjf}``{c{{Bb{c}}}{{Cd{{Cb{C`}}}}}}{{ce}{{Bb{c}}}{{Cd{{Cb{C`}}}}}{{Fj{Bl}}}}{{{h{Ah{Bb{c}}}}}{{Bn{e}}}{{Cd{{Cb{C`}}}}}{}}{{{h{Ah{Bb{c}}}}Ef}{{Bn{e}}}{{Cd{{Cb{C`}}}}}{}}`{{{h{{Aj{c}}}}{h{{Aj{c}}}}}{{Bn{Bh}}}Fl}{{{h{An}}{h{An}}}{{Bn{Bh}}}}{{{h{j}}{h{j}}}{{Bn{Bh}}}}{{{h{l}}{h{l}}}{{Bn{Bh}}}}{{{h{n}}{h{n}}}{{Bn{Bh}}}}{{{h{{B`{c}}}}{h{{B`{c}}}}}{{Bn{Bh}}}Fl}{{{h{d}}{h{d}}}{{Bn{Bh}}}}`{{{h{b}}c}ChFn}{{{h{An}}c}ChFn}{{{h{j}}c}ChFn}{{{h{l}}c}ChFn}{{{h{n}}c}ChFn}{{{h{d}}c}ChFn}{{{h{{Bd{ce}}}}g}Ch{BjG`}{BjG`}Fn}``{{{h{AhFh}}}{{Bn{Fh}}}}0{dc{}}{{{h{c}}}e{}{}}000000000{dA`}{{{h{c}}}Gb{}}0{{{h{b}}}Gd}`0{c{{Ch{e}}}{}{}}0000000000000000000``{{{h{c}}}Gf{}}000000000{CnAn}`{ce{}{}}000000000`````{{{h{Ah{Gh{ce}}}}EdBl}{{Eb{c}}}{Ehf}Gj}{{{h{Ah{Gh{ce}}}}{h{Ed}}Bl}{{Eb{c}}}{Ehf}Gj}{{{h{Ah{Gh{ce}}}}{Eb{c}}}BffGj}{{{h{Ah{Gh{ce}}}}{Gl{c}}}{{Eb{c}}}fGj}{{{h{{Gh{ce}}}}}{{h{{Gl{c}}}}}{}{}}{{{h{Ah{Gh{ce}}}}i}{{Eb{c}}}fGj{{H`{}{{Gn{c}}}}}{{H`{}{{Gn{{Dl{{h{Hb}}g}}}}}}}}{{{h{Ah{Gh{ce}}}}g}{{Eb{c}}}fGj{{H`{}{{Gn{{Dl{{h{Hb}}Cn}}}}}}}}{{{h{Ah{Gh{ce}}}}g}{{Eb{c}}}fGj{{H`{}{{Gn{{Dl{HbCn}}}}}}}}{{{h{c}}}{{h{e}}}{}{}}0{{{h{Ahc}}}{{h{Ahe}}}{}{}}0{{{h{{Eb{ce}}}}}{{Eb{ce}}}AlAl}{{{h{c}}{h{Ahe}}}Bf{}{}}{{}{{Gh{ce}}}{}Hd}{{}{{Eb{ce}}}{}Hd}{c{{Ch{{Eb{eg}}}}}Cj{BjCl}Cl}{{{h{{Eb{ce}}}}{h{{Eb{ce}}}}}D`DbDb}{{{h{{Gh{ce}}}}{h{AhDd}}}DfDhDh}{{{h{{Eb{ce}}}}{h{AhDd}}}DfDhDh}{cc{}}0{{{E`{c}}}{{Eb{e{E`{c}}}}}{}{}}{{{Hf{c}}}{{Eb{ce}}}{}Hd}{{{h{{Gh{ce}}}}}{{h{{Gl{c}}}}}{}{}}```{{{h{{Gh{ce}}}}}{{Eb{c}}}fGj}{{{h{Ah{Gh{ce}}}}Hhc}{{Eb{c}}}fGj}{{{h{Ah{Gh{ce}}}}HhCn}{{Eb{c}}}fGj}{{{h{Ah{Gh{ce}}}}Hb}{{Eb{c}}}fGj}{{{h{Ah{Gh{ce}}}}HjHl}{{Eb{c}}}fGj}{ce{}{}}0{{{h{{Eb{ce}}}}}D`fFh}{{{h{Ah{Eb{ce}}}}{Eb{ce}}}BffFh}{c{{Gh{ec}}}{}{}}{{{h{{Eb{ce}}}}g}Ch{BjG`}G`Fn}{{{h{c}}}e{}{}}{c{{Ch{e}}}{}{}}000{{{h{c}}}Gf{}}077``{{{h{Ah{Gj{}{{Hn{c}}}}}}c}Bf{}}{{{h{Ah{Gj{}{{Hn{c}}}}}}{h{Hb}}}c{}}{{{h{Ah{Gj{}{{Hn{c}}}}}}Hj{h{Hl}}}c{}}{{{h{{Gj{}{{Hn{c}}}}}}}c{}}{{{h{{Gj{}{{Hn{c}}}}}}{h{Hb}}}D`{}}`````````{{{h{{I`{c}}}}}{{Ib{c{Bb{{Cb{C`}}}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}e}Bf{AlBjDh}{}}{{{h{Ah{I`{c}}}}{E`{c}}}Bf{AlBjDh}}{{{h{c}}}{{h{e}}}{}{}}000{{{h{Ahc}}}{{h{Ahe}}}{}{}}000{{{h{{I`{c}}}}}{{I`{c}}}Al}{{{h{{Id{c}}}}}{{Id{c}}}Al}{{{h{{E`{c}}}}}{{E`{c}}}Al}{{{h{{If{c}}}}}{{If{c}}}Al}{{{h{c}}{h{Ahe}}}Bf{}{}}000{{}{{I`{c}}}{}}{{}{{E`{c}}}{}}{c{{Ch{{E`{e}}}}}Cj{BjCl}}{{{h{{Id{c}}}}{h{{Id{c}}}}}D`Db}{{{h{{E`{c}}}}{h{{E`{c}}}}}D`Db}{{{h{{If{c}}}}{h{{If{c}}}}}D`Db}{{{h{{I`{c}}}}{h{AhDd}}}DfDh}{{{h{{Id{c}}}}{h{AhDd}}}DfDh}0{{{h{{E`{c}}}}{h{AhDd}}}DfDh}{{{h{{If{c}}}}{h{AhDd}}}DfDh}0{cc{}}000{{{h{{I`{c}}}}{h{c}}}{{Bn{{h{{Cb{C`}}}}}}}{AlBjDh}}{{{h{{I`{c}}}}{h{Ih}}}{{Bn{{h{{Dl{cBl}}}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}{h{Hb}}}e{AlBjDh}{}}{{{h{Ah{I`{c}}}}Hj{h{Hl}}}e{AlBjDh}{}}{{{h{{I`{c}}}}}e{AlBjDh}{}}{{{h{{I`{c}}}}}{{h{{Ij{{Dl{cBl}}}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}c{Cb{C`}}}{{Ch{{E`{c}}{Id{c}}}}}{AlBjDh}}{ce{}{}}000{{{h{{E`{c}}}}}D`Bj}{{{h{{I`{c}}}}{h{Hb}}}D`{AlBjDh}}{{{h{{I`{c}}}}cBl}D`{AlBjDh}}{{{h{{I`{c}}}}{h{c}}}{{`{{In{}{{Gn{{Il{Hj}}}}}}}}}{AlBjDh}}{{{h{{I`{c}}}}e}{{`{{In{}{{Gn{{J`{cHj}}}}}}}}}{AlBjDh}{{Fj{c}}}}{{{h{{I`{c}}}}}{{`{{In{}{{Gn{{Dl{{h{c}}{h{{Cb{C`}}}}}}}}}}Jb}}}{AlBjDh}}``{{{h{{I`{c}}}}{h{c}}}{{Bn{Bl}}}{AlBjDh}}{{{h{{I`{c}}}}}{{Ib{cBl}}}{AlBjDh}}10{{{h{{I`{c}}}}}Bl{AlBjDh}}{{{h{Ah{I`{c}}}}{h{c}}Bl}Bf{AlBjDh}}{{{h{Ah{I`{c}}}}cBl}D`{AlBjDh}}{{{h{Ah{E`{c}}}}{E`{c}}}BfBj}{{{h{{I`{c}}}}{h{Hb}}e}Jd{AlBjDh}{{Fj{c}}}}{Bl{{I`{c}}}{}}{{{h{{I`{c}}}}{h{c}}}{{Bn{{Dl{BlD`}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}{h{c}}}{{Bn{{Dl{{Il{Jf}}{E`{c}}}}}}}{AlBjDh}}{{{h{{I`{c}}}}}{{h{{Jh{{J`{cHj}}}}}}}{AlBjDh}}1{{{h{Ah{I`{c}}}}{h{c}}Bl}{{Bn{{Dl{{Jj{{Il{Jf}}}}{E`{c}}}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}{h{{Ib{cBl}}}}}{{E`{c}}}{AlBjDh}}{{{h{{I`{c}}}}{h{c}}}{{`{{In{}{{Gn{{Il{{h{Ih}}}}}}}}}}}{AlBjDh}}{{{h{{I`{c}}}}e}{{`{{Jl{}{{Gn{{J`{c{h{Ih}}}}}}}}}}}{AlBjDh}{{Fj{c}}}}{{{h{{I`{c}}}}{h{Hb}}e}{{Dl{GdGd}}}{AlBjDh}{{Fj{c}}}}{{{h{{E`{c}}}}e}Ch{BjG`}Fn}{{{h{{I`{c}}}}cBl}{{Bn{{h{Ih}}}}}{AlBjDh}}{{{h{c}}}e{}{}}000{{{h{c}}}Gb{}}0{c{{Ch{e}}}{}{}}0000000{{{h{{I`{c}}}}Hj}{{Bn{{J`{c{h{Hl}}}}}}}{AlBjDh}}{{{h{{I`{c}}}}}{{`{{In{}{{Gn{{J`{c{Dl{Hj{h{Hl}}}}}}}}}}Jb}}}{AlBjDh}}{{{h{{I`{c}}}}Hh}{{`{{In{}{{Gn{{J`{c{Dl{Hj{h{Hl}}}}}}}}}}}}}{AlBjDh}}{{{h{c}}}Gf{}}000{{{h{{I`{c}}}}{h{c}}}{{Bn{{Bb{{Cb{C`}}}}}}}{AlBjDh}}{{{h{Ah{I`{c}}}}cBl}D`{AlBjDh}}{{{h{{I`{c}}}}{h{c}}}{{`{{In{}{{Gn{{Il{{h{Ih}}}}}}}}Al}}}{AlBjDh}}{{{h{{I`{c}}}}}{{`{{In{}{{Gn{{J`{c{h{Ih}}}}}}}}Al}}}{AlBjDh}}{ce{}{}}000`````{{{h{{Ij{c}}}}}{{h{{Ib{cJf}}}}}{AlBjDh}}{{{h{Ah{Ij{c}}}}e}Bf{AlBjDh}{}}{{{h{c}}}{{h{e}}}{}{}}{{{h{Ahc}}}{{h{Ahe}}}{}{}}{{{h{{Ij{c}}}}}{{Ij{c}}}Al}{{{h{c}}{h{Ahe}}}Bf{}{}}{{}{{Ij{c}}}{}}{{{h{{Ij{c}}}}{h{AhDd}}}DfDh}{cc{}}{{{h{{Ij{c}}}}{h{Ih}}}{{Bn{{h{c}}}}}{AlBjDh}}{{{h{Ah{Ij{c}}}}{h{Hb}}}e{AlBjDh}{}}{{{h{Ah{Ij{c}}}}Hj{h{Hl}}}e{AlBjDh}{}}{{{h{{Ij{c}}}}}e{AlBjDh}{}}{{{h{Ah{Ij{c}}}}cJf}D`{AlBjDh}}>{{{h{{Ij{c}}}}{h{Hb}}}D`{AlBjDh}}0{{{h{{Ij{c}}}}{h{c}}}D`{AlBjDh}}{{{h{Ah{Ij{c}}}}{h{c}}}D`{AlBjDh}}{{{h{{Ij{c}}}}{h{Hb}}e}Jd{AlBjDh}{{Fj{c}}}}{{{h{{Ij{c}}}}}{{h{{Jh{{Dl{cHj}}}}}}}{AlBjDh}}{{{h{{Ij{c}}}}e}{{`{{In{}{{Gn{{Dl{{h{c}}Hj}}}}}}}}}{AlBjDh}{{Fj{c}}}}{{{h{Ah{Ij{c}}}}{h{Hb}}}{{Jh{c}}}{AlBjDh}}{{{h{Ah{Ij{c}}}}Hj{h{Hl}}}{{Bn{{h{c}}}}}{AlBjDh}}{{{h{{Ij{c}}}}{h{Hb}}e}{{Dl{GdGd}}}{AlBjDh}{{Fj{c}}}}{{{h{{Ij{c}}}}{h{c}}}{{Bn{{h{Ih}}}}}{AlBjDh}}{{{h{c}}}e{}{}}{c{{Ch{e}}}{}{}}0{{{h{{Ij{c}}}}Hj}{{Bn{{Dl{{h{c}}{h{Hl}}}}}}}{AlBjDh}}{{{h{{Ij{c}}}}}{{`{{In{}{{Gn{{Dl{{h{c}}Hj{h{Hl}}}}}}}}Jb}}}{AlBjDh}}{{{h{{Ij{c}}}}Hh}{{`{{In{}{{Gn{{Dl{{h{c}}Hj{h{Hl}}}}}}}}}}}{AlBjDh}}{{{h{c}}}Gf{}}={{{h{{Ij{c}}}}e}{{`{{In{}{{Gn{{Dl{{h{c}}{h{Ih}}}}}}}}Al}}}{AlBjDh}{{Fj{c}}}}{ce{}{}}``````````{{{h{AhJn}}{h{Dn}}}{{Ch{BfK`}}}}{{{h{AhJn}}{h{Kb}}Bl}{{Ch{DnKd}}}}{{{h{AhJn}}{h{Kb}}Blj}{{Ch{DnKf}}}}{{{h{AhJn}}Kh}{{Ch{DnKd}}}}{{{h{Kh}}}j}{{{h{c}}}{{h{e}}}{}{}}000000{{{h{Ahc}}}{{h{Ahe}}}{}{}}000000{{{h{Kh}}}Kh}{{{h{Jn}}}Jn}{{{h{K`}}}K`}{{{h{Kj}}}Kj}{{{h{Kd}}}Kd}{{{h{Kf}}}Kf}{{{h{c}}{h{Ahe}}}Bf{}{}}00000{{{h{AhJn}}j}{{Ch{DnK`}}}}{{{h{Kh}}{h{Kh}}}D`}{{{h{Jn}}{h{Jn}}}D`}{{{h{K`}}{h{K`}}}D`}{{{h{Kj}}{h{Kj}}}D`}{{{h{Kd}}{h{Kd}}}D`}{{{h{Kf}}{h{Kf}}}D`}{{Khc}{{Ch{KhKh}}}{{H`{}{{Gn{j}}}}}}{{{h{Kh}}{h{AhDd}}}Df}{{{h{Jn}}{h{AhDd}}}Df}{{{h{K`}}{h{AhDd}}}Df}0{{{h{Kj}}{h{AhDd}}}Df}0{{{h{Kd}}{h{AhDd}}}Df}0{{{h{Kf}}{h{AhDd}}}Df}0{cc{}}000000{c{{Ch{Kh{Bn{Kh}}}}}{{H`{}{{Gn{j}}}}}}{{{Ib{BlDj}}}{{Ch{JnK`}}}}{Dn{{Ch{JnK`}}}}{Dj{{Dl{JnDn}}}}{{{h{Kb}}Bl}Kh}{Kh{{Ch{JnK`}}}}{{{h{Jn}}}Dj}{{{h{Kh}}Bl}{{Bn{Kh}}}}{{{h{Jn}}Bl}{{Bn{Kh}}}}{{{h{Jn}}}{{Ch{jc}}}{}}{{{h{Kh}}}Dj}{{{h{Kh}}}Bl}`{{{h{Jn}}}Dn}{{Khj}Kh}{{{h{AhJn}}j}{{Ch{DnKj}}}}{ce{}{}}0000000{Khc{}}{{{h{Jn}}jj}{{Ch{{Bn{D`}}c}}}{}}{{{h{Kh}}}Kl}{{{h{Jn}}}Kl}{jKh}{{{h{AhKl}}}{{Bn{c}}}{}}`{{{h{Kh}}}{{Bn{Kh}}}}{{Khj}{{Ch{KhKh}}}}{{{h{Kh}}c}{{`{{Jl{}{{Gn{Kh}}}}}}}{{Fj{Bl}}}}{{{h{Jn}}c}{{`{{Jl{}{{Gn{Kh}}}}}}}{{Fj{Bl}}}}{{{h{Jn}}}Kh}{{{h{c}}}e{}{}}00000{{{h{c}}}Gb{}}000{c{{Ch{e}}}{}{}}000000`0000000{{{h{c}}}Gf{}}000000`???????````{{{h{c}}}{{h{e}}}{}{}}000{{{h{Ahc}}}{{h{Ahe}}}{}{}}000{{Kne}Kn{{Jb{}{{Gn{Hj}}}}L`}{{H`{}{{Lb{c}}{Gn{Hj}}}}}}{{Kne}Kn{{Jb{}{{Gn{Jf}}}}L`}{{H`{}{{Lb{c}}{Gn{Jf}}}}}}{{{Ld{c}}cg}{{Ld{c}}}{BjAl}{{Jl{}{{Gn{{Il{Jf}}}}}}L`}{{H`{}{{Lb{e}}}}}}``{{Kne}Kn{{Jb{}{{Gn{Hh}}}}L`}{{H`{}{{Lb{c}}{Gn{Hh}}}}}}``{cc{}}000{KhKn}{Kh{{Ld{c}}}{BjAl}}{{Kh{h{{I`{c}}}}}{{Ld{c}}}{DhBjAl}}``{{Knc}Kn{{Lf{{h{Hj}}}}L`Lh}}{{Knc}Kn{{Lf{{h{Ih}}}}L`Lh}}{{{Ld{c}}e}{{Ld{c}}}{L`BjAl}{{Lf{cBl{h{Ih}}}}L`LhAl}}{{{Ld{c}}ce}{{Ld{c}}}{L`BjAl}{{Lf{Bl{h{Ih}}}}L`Lh}}{{Knc}Kn{{Lf{{h{Hh}}}}L`Lh}}{ce{}{}}000``{{Kn{h{{I`{c}}}}e}Kn{AlBjDhL`Lh}{{Fj{c}}}}{{Kne}Kn{{Jb{}{{Gn{Hj}}}}L`}{{H`{}{{Lb{c}}}}}}{{Kne}Kn{{Jb{}{{Gn{Jf}}}}L`}{{H`{}{{Lb{c}}}}}}>{{Kne}Kn{{Jb{}{{Gn{Hh}}}}L`}{{H`{}{{Lb{c}}}}}}``{c{{Ch{e}}}{}{}}0000000`{{{h{c}}}Gf{}}0006666`````````{{{h{{Gl{c}}}}}{{h{{Jh{{Dl{cHh}}}}}}}{}}{{{h{{Gl{c}}}}}{{`{{Jl{}{{Gn{{Dl{Hj{h{Hl}}}}}}}}}}}{}}{{{h{{Hf{c}}}}}{{`{{Jl{}{{Gn{Bl}}}}}}}f}``{{{h{Ah{Gl{c}}}}{Hf{c}}}Bf{AlBj}}{{{h{Ah{Gl{c}}}}{Gl{c}}}{{Hf{c}}}{AlBj}}{{{h{{Gl{c}}}}}{{h{{Gl{c}}}}}{}}{{{h{{Gl{c}}}}{h{e}}jik}bf{{F`{}{{En{Lj}}}}}Al{{H`{}{{Gn{{Dl{gHj}}}}}}}{{Lf{{h{g}}{h{Ih}}}{{Ll{D`}}}}}}{{{h{Ah{Gl{c}}}}e}{{Hf{c}}}{AlBj}{{H`{}{{Gn{{Dl{HbCn}}}}}}}}{{{h{c}}}{{h{e}}}{}{}}000000{{{h{Ahc}}}{{h{Ahe}}}{}{}}000000{{{h{{Gl{c}}}}{h{Hb}}}{{Ch{GdLn}}}{}}`{c{{Bn{Gd}}}{}}{c{{Bn{Jd}}}{}}01{{{h{{Gl{c}}}}}{{Gl{c}}}Al}{{{h{{M`{ce}}}}}{{M`{ce}}}AlAl}{{{h{{Mb{ce}}}}}{{Mb{ce}}}AlAl}{{{h{{Hf{c}}}}}{{Hf{c}}}Al}{{{h{c}}{h{Ahe}}}Bf{}{}}000{{{h{{M`{ce}}}}{h{{M`{ce}}}}}BhBjBj}{{{h{{Mb{ce}}}}{h{{Mb{ce}}}}}BhBjBj}{{}{{Gl{c}}}{}}{{}{{Hf{c}}}{}}{{{h{{M`{ce}}}}}{{h{g}}}{}{}{}}{c{{Ch{{Hf{e}}}}}Cj{BjCl}}{{{h{{Gl{c}}}}{h{Hb}}}{{`{{Jl{}{{Gn{{Dl{EfHh}}}}}}}}}{}}{{{h{{Gl{c}}}}{h{{Gl{c}}}}}D`Db}{{{h{{M`{ce}}}}{h{{M`{ce}}}}}D`DbDb}{{{h{{Mb{ce}}}}{h{{Mb{ce}}}}}D`DbDb}{{{h{Ln}}{h{Ln}}}D`}{{{h{{Hf{c}}}}{h{{Hf{c}}}}}D`Db}{{{h{{Gl{c}}}}{h{e}}ji}{{`{{Jl{}{{Gn{{Dl{g{B`{c}}}}}}}}}}}f{{F`{}{{En{Lj}}}}}Al{{H`{}{{Gn{{Dl{gHj}}}}}}}}0{{{h{{Gl{c}}}}}{{`{{Jl{}{{Gn{{Dl{Hj{h{Hl}}}}}}}}}}}{}}{{{h{{Gl{c}}}}{h{AhDd}}}DfDh}{{{h{{M`{ce}}}}{h{AhDd}}}DfDhDh}{{{h{{Mb{ce}}}}{h{AhDd}}}DfDhDh}{{{h{Ln}}{h{AhDd}}}Df}0{{{h{{Hf{c}}}}{h{AhDd}}}DfDh}{cc{}}000000{{{h{{Gl{c}}}}}{{`{{Jl{}{{Gn{{M`{{Md{Hb}}c}}}}}}}}}{}}{{{h{{Gl{c}}}}{h{e}}jHh}{{Bn{{Aj{{h{c}}}}}}}f{{F`{}{{En{Lj}}}}}}{{{h{{Gl{c}}}}{h{e}}jHj}{{Bn{{Dl{{Aj{{h{c}}}}Hh}}}}}f{{F`{}{{En{Lj}}}}}}{{{h{{Gl{c}}}}Hh}{{Bn{{Md{Hb}}}}}{}}{{{h{{Gl{c}}}}Hh}{{Bn{{M`{{Md{Hb}}c}}}}}{}}{{{h{{Gl{c}}}}Hj}{{Bn{{h{Hl}}}}}{}}{{{h{{Gl{c}}}}}{{Hf{c}}}{AlBj}}{{{h{Ah{Gl{c}}}}Hhc}{{Hf{c}}}{AlBj}}{{{h{Ah{Gl{c}}}}HhCn}{{Hf{c}}}{AlBj}}{{{h{Ah{Gl{c}}}}e}{{Hf{c}}}{AlBj}{{Mf{{Md{Hb}}}}}}{{{h{Ah{Gl{c}}}}HjHl}{{Hf{c}}}{AlBj}}{ce{}{}}00000000{{{h{{Gl{c}}}}}D`{}}{{{h{{Hf{c}}}}}D`Bj}``{{{h{{Gl{c}}}}{h{e}}j}{{`{{Jl{}{{Gn{{Mb{{Md{Hb}}c}}}}}}}}}fF`}{{{Gl{c}}g}{{Gl{e}}}{AlBj}{AlBj}{{Lf{c}{{Ll{e}}}}}}{{{Hf{c}}g}{{Hf{e}}}BjBj{{Lf{c}{{Ll{e}}}}}}{{{h{Ah{Hf{c}}}}{Hf{c}}}BfBj}{c{{Gl{e}}}{{H`{}{{Gn{Hb}}}}}{AlBj}}{{{h{Ah{Mh{cg}}}}}{{Bn{i}}}{}{}{{Lf{Ef{Md{Hb}}}{{Ll{{Bn{e}}}}}}}{}}{{{h{Ah{Mj{cg}}}}}{{Bn{i}}}{}{}{{Lf{EfHh}{{Ll{{Bn{e}}}}}}}{}}{{{h{{Gl{c}}}}Hj}{{h{{Ml{Hh}}}}}{}}{{{h{{M`{ce}}}}{h{{M`{ce}}}}}{{Bn{Bh}}}FlFl}{{{h{{Mb{ce}}}}{h{{Mb{ce}}}}}{{Bn{Bh}}}FlFl}{{{h{{Hf{c}}}}e}Ch{BjG`}Fn}{{{h{c}}}e{}{}}000{{{h{c}}}Gb{}}{{{h{{Gl{c}}}}{h{e}}jik}{{Ch{b}}}fF`Al{{H`{}{{Gn{{Dl{gHj}}}}}}}{{Lf{{h{g}}{h{Ih}}}{{Ll{D`}}}}}}{{{h{{Gl{c}}}}{h{e}}ji}{{`{{Jl{}{{Gn{{Ch{{Dl{g{B`{c}}}}}}}}}}}}}fF`Al{{H`{}{{Gn{{Dl{gHj}}}}}}}}0{c{{Ch{e}}}{}{}}000000{{{h{{Gl{c}}}}{h{e}}jHh}{{Ch{{Bn{{Aj{{h{c}}}}}}}}}fF`}{{{h{{Gl{c}}}}{h{e}}jHj}{{Ch{{Bn{{Dl{{Aj{{h{c}}}}Hh}}}}}}}fF`}2222222{{{h{{Gl{c}}}}{h{e}}j}{{`{{Jl{}{{Gn{{Ch{{Mb{{Md{Hb}}c}}}}}}}}}}}fF`}``{{{h{{Gl{c}}}}Hh}{{Bn{{Ib{Bl{h{Hl}}}}}}}{}}{{{h{{Gl{c}}}}Hh}{{`{{In{}{{Gn{{Dl{Bl{h{{Ml{Hh}}}}}}}}}}}}}{}}`{{{h{{Hf{c}}}}}{{`{{Jl{}{{Gn{{Dl{Hj{h{Hl}}}}}}}}}}}{}}``{{{h{{Gl{c}}}}}{{`{{Jl{}{{Gn{{M`{{Md{Hb}}c}}}}}}}}}{}}{{{h{c}}}Gf{}}000000{{{h{Ah{Gl{c}}}}Cn}{{Hf{c}}}{AlBj}}{ce{}{}}000000{{{h{{Gl{c}}}}ei}{{Mh{ci}}}{AlBj}{{Mf{{Md{Hb}}}}}{}{{Lf{Ef{Md{Hb}}}{{Ll{{Bn{g}}}}}}}}{{{h{{Gl{c}}}}{h{Hb}}g}{{Mj{cg}}}{}{}{{Lf{EfHh}{{Ll{{Bn{e}}}}}}}}{{{h{{Gl{c}}}}Hhg}{{Mj{cg}}}{AlBj}{}{{Lf{EfHh}{{Ll{{Bn{e}}}}}}}}","D":"C@`","p":[[5,"Balance",0,870],[5,"DescriptorId",0,871],[10,"Anchor",0,872],[1,"reference"],[5,"BlockId",0,873],[5,"ConfirmationHeightAnchor",0,873],[5,"ConfirmationTimeHeightAnchor",0,873],[5,"Hash",874],[1,"u8"],[1,"array"],[1,"slice"],[0,"mut"],[6,"ChainPosition",0,873],[10,"Clone",875],[6,"ConfirmationTime",0,873],[5,"FullTxOut",0,873],[5,"SpkIterator",0,876],[5,"CombinedChangeSet",0,877],[1,"unit"],[6,"Ordering",878],[10,"Ord",878],[1,"u32"],[6,"Option",879],[6,"DescriptorPublicKey",880],[6,"Descriptor",881],[10,"Borrow",882],[10,"DescriptorExt",0,871],[6,"Result",883],[10,"Deserializer",884],[10,"Deserialize",884],[1,"u64"],[1,"bool"],[10,"PartialEq",878],[5,"Formatter",885],[8,"Result",885],[10,"Debug",885],[5,"BlockHash",886],[1,"tuple"],[8,"ChangeSet",502],[5,"ChangeSet",350],[5,"ChangeSet",291],[5,"Block",886],[1,"usize"],[10,"AnchorFromBlockPosition",0,872],[5,"FromSliceError",887],[1,"str"],[17,"Error"],[10,"ChainOracle",0,888],[10,"Hash",889],[10,"Hasher",889],[10,"SliceIndex",890],[10,"Merge",0,872],[10,"RangeBounds",891],[10,"PartialOrd",878],[10,"Serializer",892],[10,"Serialize",892],[5,"String",893],[5,"Amount",894],[5,"TypeId",895],[5,"IndexedTxGraph",291],[10,"Indexer",341],[5,"TxGraph",708],[17,"Item"],[10,"IntoIterator",896],[5,"Transaction",897],[10,"Default",898],[5,"ChangeSet",708],[5,"Txid",897],[5,"OutPoint",897],[5,"TxOut",897],[17,"ChangeSet"],[5,"KeychainTxOutIndex",350],[5,"BTreeMap",899],[6,"InsertDescriptorError",350],[5,"NoSuchKeychain",350],[5,"Script",900],[5,"SpkTxOutIndex",465],[8,"Indexed",0],[10,"DoubleEndedIterator",901],[8,"KeychainIndexed",0],[10,"ExactSizeIterator",902],[5,"SignedAmount",894],[5,"ScriptBuf",903],[5,"BTreeSet",904],[5,"Vec",905],[10,"Iterator",906],[5,"LocalChain",502],[5,"MissingGenesisError",502],[5,"Header",886],[5,"CannotConnectError",502],[6,"ApplyHeaderError",502],[5,"CheckPoint",502],[5,"AlterCheckPointError",502],[5,"CheckPointIter",502],[5,"SyncRequest",644],[10,"Send",907],[17,"IntoIter"],[5,"FullScanRequest",644],[10,"FnMut",908],[10,"Sync",907],[6,"Infallible",909],[17,"Output"],[6,"CalculateFeeError",708],[5,"TxNode",708],[5,"CanonicalTx",708],[5,"Arc",910],[10,"Into",909],[5,"TxAncestors",708],[5,"TxDescendants",708],[5,"HashSet",911],[15,"Confirmed",288],[15,"Unconfirmed",288],[15,"DescriptorAlreadyAssigned",461],[15,"KeychainAlreadyAssigned",461],[5,"SyncResult",644],[5,"FullScanResult",644]],"r":[[0,872],[1,872],[2,876],[3,870],[4,873],[6,888],[7,873],[8,877],[9,873],[10,873],[11,873],[14,871],[15,871],[17,873],[19,291],[20,341],[22,872],[23,876],[24,708]],"b":[[37,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[38,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[125,"impl-Debug-for-Balance"],[126,"impl-Display-for-Balance"],[133,"impl-UpperHex-for-DescriptorId"],[134,"impl-Display-for-DescriptorId"],[135,"impl-LowerHex-for-DescriptorId"],[136,"impl-Debug-for-DescriptorId"],[142,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[143,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[152,"impl-From%3CBTreeMap%3Cu32,+Option%3CBlockHash%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[153,"impl-From%3CChangeSet%3CK%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[154,"impl-From%3CChangeSet%3CA,+ChangeSet%3CK%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[315,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[316,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[358,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[359,"impl-KeychainTxOutIndex%3CK%3E"],[383,"impl-Debug-for-InsertDescriptorError%3CK%3E"],[384,"impl-Display-for-InsertDescriptorError%3CK%3E"],[386,"impl-Display-for-NoSuchKeychain%3CK%3E"],[387,"impl-Debug-for-NoSuchKeychain%3CK%3E"],[553,"impl-Display-for-MissingGenesisError"],[554,"impl-Debug-for-MissingGenesisError"],[555,"impl-Debug-for-AlterCheckPointError"],[556,"impl-Display-for-AlterCheckPointError"],[557,"impl-Debug-for-CannotConnectError"],[558,"impl-Display-for-CannotConnectError"],[559,"impl-Display-for-ApplyHeaderError"],[560,"impl-Debug-for-ApplyHeaderError"],[773,"impl-Display-for-CalculateFeeError"],[774,"impl-Debug-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOYBSgAUAAEAGQAAABwAAQAfAAIAJAAAACYAFwBAABMAVQAGAGEAAQBlAAQAbAAGAHQAFgCOAAIAlQAAAJkAAgCdAAQAowACAKcABQCwAAAAvgAAAMQAAADJAAEAzgABANEADgDkAAoA8AABAPUAEwALAQkAFwEJACoBAAAuAQsAPAEBAEkBAQBMAQkAZwEAAGkBGwCLAQIAlQEAAK8BAACxAQ0AwgEDAMoBAwDUAQYA3QECAOMBAADtAQIA8wEAAPYBAAAGAhkAIQIFACgCCQBCAgAAUAICAFYCAABdAhAAbwINAH4CBgCJAgcAtAIHAL0CBwDVAgAA2AINAOgCEQD7AgQAAwMFACIDAQAlAwAAKwMAAC0DAQAwAwcAOwMGAEQDBgBVAwYAXQMGAA=="}],\ -["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{ClBl}{AlBl}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-Display-for-SelectionConstraint"],[98,"impl-Debug-for-SelectionConstraint"],[100,"impl-Debug-for-ExcessStrategyKind"],[101,"impl-Display-for-ExcessStrategyKind"],[107,"impl-From%3CDuration%3E-for-BnbLimit"],[108,"impl-From%3Cusize%3E-for-BnbLimit"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKcAFwAAAAAAAgAAAAYAAAAJAAIADgADABcAAgAcAAEAIAAAACIAKgBQAAIAVgAEAFwACwBsAAEAdwABAIcAAQCKAAEAkgANAKEAAACjAAAApgAAAKoAMADcAAwA6gABAA=="}],\ -["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::blockdata::transaction"],[43,"alloc::sync"],[44,"electrum_client::types"],[45,"core::result"],[46,"electrum_client::api"],[47,"core::fmt"],[48,"bdk_chain::spk_client"],[49,"core::cmp"],[50,"core::clone"],[51,"bdk_chain::tx_graph"],[52,"core::convert"],[53,"core::any"],[54,"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",42],[5,"Arc",43],[6,"Error",44],[6,"Result",45],[10,"ElectrumApi",46],[5,"Formatter",47],[8,"Result",47],[10,"Debug",47],[5,"FullScanRequest",48],[1,"usize"],[1,"bool"],[5,"ElectrumFullScanResult",0,41],[10,"Ord",49],[10,"Clone",50],[1,"unit"],[5,"TxGraph",51],[10,"AsRef",52],[5,"SyncRequest",48],[5,"ElectrumSyncResult",0,41],[5,"TypeId",53],[5,"ConfirmationHeightAnchor",54],[5,"FullScanResult",48],[5,"SyncResult",48],[5,"ConfirmationTimeHeightAnchor",54]],"r":[[0,41],[1,41],[2,41]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABQAAwAEAAcADQAAABoACwA="}],\ +["bdk_chain",{"t":"KKSFFSKGFFGPPKFRFIEEIKFEPPNNMNNNNNNEONNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNMNNNNNOOONCOCNNNNNNNNNNMNNNMNNOCMNEONNNNONNNNNNDNNNNNNOCNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNCONNNNNNNNNNONNNNNNNNNOOOFFNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNRKMMMMMCCFSPGPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFFFFNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNNN","n":["Anchor","AnchorFromBlockPosition","BIP32_MAX_INDEX","Balance","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","CombinedChangeSet","ConfirmationBlockTime","ConfirmationTime","Confirmed","Confirmed","DescriptorExt","DescriptorId","Error","FullTxOut","Indexed","IndexedTxGraph","Indexer","KeychainIndexed","Merge","SpkIterator","TxGraph","Unconfirmed","Unconfirmed","add","all_zeros","anchor_block","anchor_block","anchor_block","as_byte_array","as_raw_hash","as_ref","as_ref","bitcoin","block_id","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","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","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","confirmed","default","default","default","default","descriptor","descriptor_id","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dust_value","engine","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","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","height","immature","index","indexed_tx_graph","indexed_tx_graph","indexer","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_empty","is_mature","is_on_coinbase","local_chain","merge","merge","miniscript","network","new","new_with_range","next","nth","outpoint","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","serde","serialize","serialize","serialize","serialize","serialize","serialize","spent_by","spk_client","take","take","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","to_string","total","trusted_pending","trusted_spendable","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","IndexedTxGraph","apply_block","apply_block_relevant","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","indexer","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","merge","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ChangeSet","Indexer","apply_changeset","index_tx","index_txout","initial_changeset","is_tx_relevant","keychain_txout","spk_txout","ChangeSet","DEFAULT_LOOKAHEAD","DescriptorAlreadyAssigned","InsertDescriptorError","KeychainAlreadyAssigned","KeychainTxOutIndex","NoSuchKeychain","all_unbounded_spk_iters","apply_changeset","apply_changeset","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deserialize","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_descriptor","index_of_spk","index_tx","index_txout","initial_changeset","inner","insert_descriptor","into","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","merge","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","spk_at_index","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","unused_keychain_spks","unused_spks","vzip","vzip","vzip","vzip","descriptor","existing_assignment","existing_assignment","keychain","SpkTxOutIndex","all_spks","apply_changeset","borrow","borrow_mut","clone","clone_into","default","fmt","from","index_of_spk","index_tx","index_txout","initial_changeset","insert_spk","into","is_relevant","is_tx_relevant","is_used","mark_used","net_value","outpoints","outputs_in_range","scan","scan_txout","sent_and_received","spk_at_index","to_owned","try_from","try_into","txout","txouts","txouts_in_tx","type_id","unmark_used","unused_spks","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","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_canonical_txs","map_anchors","map_anchors","merge","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_canonical_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","txs_with_no_anchor_or_last_seen","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"],[262,"bdk_chain::ConfirmationTime"],[265,"bdk_chain::indexed_tx_graph"],[315,"bdk_chain::indexer"],[324,"bdk_chain::indexer::keychain_txout"],[435,"bdk_chain::indexer::keychain_txout::InsertDescriptorError"],[439,"bdk_chain::indexer::spk_txout"],[476,"bdk_chain::local_chain"],[618,"bdk_chain::spk_client"],[682,"bdk_chain::tx_graph"],[844,"bdk_chain::balance"],[845,"bdk_chain::descriptor_ext"],[846,"bdk_chain::tx_data_traits"],[847,"bdk_chain::chain_data"],[848,"bitcoin_hashes::sha256"],[849,"core::clone"],[850,"bdk_chain::spk_iter"],[851,"bdk_chain::changeset"],[852,"core::cmp"],[853,"core::option"],[854,"miniscript::descriptor::key"],[855,"miniscript::descriptor"],[856,"core::borrow"],[857,"core::result"],[858,"serde::de"],[859,"core::fmt"],[860,"bitcoin::blockdata::block"],[861,"bitcoin_hashes"],[862,"bdk_chain::chain_oracle"],[863,"core::hash"],[864,"core::slice::index"],[865,"core::ops::range"],[866,"serde::ser"],[867,"alloc::string"],[868,"bitcoin_units::amount"],[869,"core::any"],[870,"core::iter::traits::collect"],[871,"bitcoin::blockdata::transaction"],[872,"core::default"],[873,"alloc::collections::btree::map"],[874,"bitcoin::blockdata::script::borrowed"],[875,"core::iter::traits::double_ended"],[876,"core::iter::traits::exact_size"],[877,"bitcoin::blockdata::script::owned"],[878,"alloc::collections::btree::set"],[879,"alloc::vec"],[880,"core::iter::traits::iterator"],[881,"core::marker"],[882,"core::ops::function"],[883,"core::convert"],[884,"alloc::sync"],[885,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,12,14,0,0,47,0,0,0,0,0,0,0,0,12,14,1,2,3,5,6,2,2,2,2,0,6,1,12,14,5,6,15,2,2,16,17,1,12,14,5,6,15,2,16,17,17,15,1,12,14,5,6,15,2,16,17,1,12,14,5,6,15,2,16,17,12,12,14,5,6,15,2,3,3,12,6,6,1,1,5,6,17,16,26,1,14,5,6,2,17,26,2,1,12,14,5,6,15,2,17,1,1,12,14,5,6,15,2,2,2,2,17,1,12,14,14,5,5,5,6,15,2,2,16,17,17,17,17,43,5,6,2,2,2,2,2,2,47,12,14,5,6,2,5,5,1,2,0,17,0,1,12,14,5,6,15,2,16,17,16,47,12,14,15,51,17,15,15,0,51,17,0,17,16,16,16,16,15,12,14,5,6,15,2,0,1,14,5,6,2,17,15,0,51,51,2,1,12,14,5,6,15,2,16,17,2,1,2,1,1,1,1,12,14,5,6,15,2,16,17,1,12,14,5,6,15,2,16,17,0,15,1,12,14,5,6,15,2,16,17,14,1,1,12,14,5,6,15,2,16,17,110,111,110,0,0,59,59,59,59,59,59,59,59,59,39,59,39,39,39,59,39,39,39,59,39,59,39,39,39,59,39,59,39,59,59,59,59,59,59,39,39,39,59,39,39,59,39,59,39,59,39,59,39,60,0,60,60,60,60,60,0,0,0,0,73,0,73,0,0,71,71,71,71,73,38,74,71,73,38,74,71,73,38,74,71,73,38,74,71,38,38,73,38,74,71,73,73,38,74,74,71,73,38,74,71,71,71,71,71,71,71,71,73,38,74,38,71,71,71,71,71,38,38,71,71,71,71,71,71,71,38,71,71,71,71,71,71,71,71,71,71,71,38,71,71,73,38,74,73,74,71,73,38,74,71,73,38,74,71,71,71,71,73,38,74,71,71,71,71,71,73,38,74,112,112,113,113,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,0,0,90,0,0,0,0,90,0,0,86,86,86,86,91,93,91,86,87,92,89,90,93,91,86,87,92,89,90,91,86,87,92,89,90,91,86,87,92,89,90,86,91,86,87,92,89,90,91,91,86,87,87,92,92,89,89,90,90,93,91,86,87,92,89,90,91,86,86,86,91,86,86,91,86,86,91,91,92,86,91,86,93,91,86,87,92,89,90,93,91,86,91,86,91,93,92,91,91,91,86,86,91,86,87,92,89,90,87,92,89,90,93,91,86,87,92,89,90,89,93,91,86,87,92,89,90,93,91,86,87,92,89,90,92,93,91,86,87,92,89,90,0,0,0,0,94,114,97,115,94,114,97,115,94,94,97,94,97,94,114,115,94,114,97,115,94,97,97,114,115,94,94,97,97,94,94,114,97,115,115,94,94,94,94,97,94,94,97,94,114,97,115,94,114,97,115,94,94,114,97,115,94,114,97,115,0,0,0,102,102,0,0,0,0,61,61,66,103,66,61,61,61,61,61,107,108,61,103,104,102,66,107,108,61,103,104,102,66,61,104,107,107,108,108,61,103,104,66,61,103,104,66,103,104,61,66,103,66,61,61,103,104,102,66,61,61,61,61,103,104,102,102,66,107,108,61,103,104,102,66,61,61,61,61,61,61,61,61,61,61,61,107,108,61,103,104,102,66,107,108,61,66,66,103,61,61,66,66,61,107,108,61,103,104,66,61,103,104,66,102,61,61,61,107,108,61,103,104,102,66,61,61,107,108,61,103,104,102,66,61,103,104,61,61,103,66,66,66,61,107,108,61,103,104,102,66,61,107,108,61,103,104,102,66,61,61,61],"f":"``````````````````````````{{bb}b}{{}d}{{{h{f}}}j}{{{h{j}}}j}{{{h{l}}}j}{{{h{d}}}{{h{c}}}{}}{{{h{d}}}{{h{n}}}}{{{h{d}}}{{h{{Ab{A`}}}}}}{{{h{d}}}{{h{{Ad{A`}}}}}}``{{{h{c}}}{{h{e}}}{}{}}000000200{{{h{Afc}}}{{h{Afe}}}{}{}}00000000``{{{h{b}}}b}{{{h{{Ah{c}}}}}{{Ah{c}}}Aj}{{{h{Al}}}Al}:{{{h{l}}}l}{{{h{{An{c}}}}}{{An{c}}}Aj}{{{h{d}}}d}{{{h{{B`{c}}}}}{{B`{c}}}Aj}{{{h{{Bb{ce}}}}}{{Bb{ce}}}AjAj}{{{h{c}}{h{Afe}}}Bd{}{}}00000000{{{Ah{{h{c}}}}}{{Ah{c}}}Aj}{{{h{{Ah{c}}}}{h{{Ah{c}}}}}BfBh}{{{h{Al}}{h{Al}}}Bf}{{{h{j}}{h{j}}}Bf}{{{h{l}}{h{l}}}Bf}{{{h{{An{c}}}}{h{{An{c}}}}}BfBh}{{{h{d}}{h{d}}}Bf}{{{h{f}}}Bj}0{{{h{{Ah{c}}}}}{{Bl{Bj}}}f}{{{h{l}}}Bj}``{{}b}{{}j}{{}l}{{}{{Bb{ce}}}{}{}}{{{h{{B`{c}}}}}{{h{c}}}{{Cb{{C`{Bn}}}}}}{{{h{Cd}}}d}{c{{Cf{b}}}Ch}{c{{Cf{Al}}}Ch}{c{{Cf{j}}}Ch}{c{{Cf{l}}}Ch}{c{{Cf{d}}}Ch}{c{{Cf{{Bb{eg}}}}}Ch{BhCj}{BhCj}}{{{h{Cd}}}Cl}{{}c{}}{{{h{b}}{h{b}}}Cn}{{{h{{Ah{c}}}}{h{{Ah{c}}}}}CnD`}{{{h{Al}}{h{Al}}}Cn}{{{h{j}}{h{j}}}Cn}{{{h{l}}{h{l}}}Cn}{{{h{{An{c}}}}{h{{An{c}}}}}CnD`}{{{h{d}}{h{d}}}Cn}{{{h{{Bb{ce}}}}{h{{Bb{ce}}}}}CnD`D`}{{{h{b}}{h{AfDb}}}Dd}0{{{h{{Ah{c}}}}{h{AfDb}}}DdDf}{{{h{Al}}{h{AfDb}}}Dd}{{{h{j}}{h{AfDb}}}Dd}{{{h{l}}{h{AfDb}}}Dd}{{{h{{An{c}}}}{h{AfDb}}}DdDf}{{{h{d}}{h{AfDb}}}Dd}000{{{h{{Bb{ce}}}}{h{AfDb}}}DdDfDf}{cc{}}00{{{Ah{l}}}Al}{{{Dj{{h{Bj}}{h{Dh}}}}}j}{{{Dj{BjDh}}}j}3333{nd}4{{{Dn{c{Dl{e}}}}}{{Bb{ec}}}{}{}}{{{Dl{c}}}{{Bb{ce}}}{}{}}{E`{{Bb{ce}}}{}{}}7{{{h{Eb}}jEd}Ef}{{{h{Eb}}jEd}j}{{{h{Eb}}jEd}l}{cd{}}07{{{h{{Ab{A`}}}}}{{Cf{dEh}}}}0{{{h{Ej}}}{{Cf{dc}}}{}}{{{h{{En{}{{El{c}}}}}}}{{Cf{jc}}}Df}{{{h{{Ah{c}}}}{h{Afe}}}BdF`Fb}{{{h{Al}}{h{Afc}}}BdFb}{{{h{j}}{h{Afc}}}BdFb}{{{h{l}}{h{Afc}}}BdFb}{{{h{d}}{h{Afc}}}BdFb}```{{{h{d}}c}{{h{e}}}{{Fd{{Ab{A`}}}}}{}}```{ce{}{}}000000000{{{h{{En{}{{El{c}}}}}}jj}{{Cf{{Bl{Cn}}c}}}Df}{{{h{{Ah{c}}}}}Cn{}}{{{h{Al}}}Cn}{{{h{{An{c}}}}Bj}Cnf}{{{h{Ff}}}Cn}{{{h{{Bb{ce}}}}}CnBhf}2``{{{h{AfFf}}Ff}Bd}{{{h{Af{Bb{ce}}}}{Bb{ce}}}BdBhf}``{c{{B`{c}}}{{Cb{{C`{Bn}}}}}}{{ce}{{B`{c}}}{{Cb{{C`{Bn}}}}}{{Fh{Bj}}}}{{{h{Af{B`{c}}}}}{{Bl{e}}}{{Cb{{C`{Bn}}}}}{}}{{{h{Af{B`{c}}}}Ed}{{Bl{e}}}{{Cb{{C`{Bn}}}}}{}}`{{{h{{Ah{c}}}}{h{{Ah{c}}}}}{{Bl{Bf}}}Fj}{{{h{Al}}{h{Al}}}{{Bl{Bf}}}}{{{h{j}}{h{j}}}{{Bl{Bf}}}}{{{h{l}}{h{l}}}{{Bl{Bf}}}}{{{h{{An{c}}}}{h{{An{c}}}}}{{Bl{Bf}}}Fj}{{{h{d}}{h{d}}}{{Bl{Bf}}}}`{{{h{b}}c}CfFl}{{{h{Al}}c}CfFl}{{{h{j}}c}CfFl}{{{h{l}}c}CfFl}{{{h{d}}c}CfFl}{{{h{{Bb{ce}}}}g}Cf{BhFn}{BhFn}Fl}``{{{h{AfFf}}}{{Bl{Ff}}}}0{dc{}}{{{h{c}}}e{}{}}00000000{dn}{{{h{c}}}G`{}}0{{{h{b}}}Gb}`0{c{{Cf{e}}}{}{}}00000000000000000``{{{h{c}}}Gd{}}00000000{ClAl}`{ce{}{}}00000000`````{{{h{Af{Gf{ce}}}}EbBj}{{Dn{c}}}{Eff}Gh}{{{h{Af{Gf{ce}}}}{h{Eb}}Bj}{{Dn{c}}}{Eff}Gh}{{{h{Af{Gf{ce}}}}{Dn{c}}}BdfGh}{{{h{Af{Gf{ce}}}}{Gj{c}}}{{Dn{c}}}fGh}{{{h{{Gf{ce}}}}}{{h{{Gj{c}}}}}{}{}}{{{h{Af{Gf{ce}}}}i}{{Dn{c}}}fGh{{Gn{}{{Gl{c}}}}}{{Gn{}{{Gl{{Dj{{h{H`}}g}}}}}}}}{{{h{Af{Gf{ce}}}}g}{{Dn{c}}}fGh{{Gn{}{{Gl{{Dj{{h{H`}}Cl}}}}}}}}{{{h{Af{Gf{ce}}}}g}{{Dn{c}}}fGh{{Gn{}{{Gl{{Dj{H`Cl}}}}}}}}{{{h{c}}}{{h{e}}}{}{}}0{{{h{Afc}}}{{h{Afe}}}{}{}}0{{{h{{Dn{ce}}}}}{{Dn{ce}}}AjAj}{{{h{c}}{h{Afe}}}Bd{}{}}{{}{{Gf{ce}}}{}Hb}{{}{{Dn{ce}}}{}Hb}{c{{Cf{{Dn{eg}}}}}Ch{BhCj}Cj}{{{h{{Dn{ce}}}}{h{{Dn{ce}}}}}CnD`D`}{{{h{{Gf{ce}}}}{h{AfDb}}}DdDfDf}{{{h{{Dn{ce}}}}{h{AfDb}}}DdDfDf}{cc{}}0{{{Hd{c}}}{{Dn{ce}}}{}Hb}{{{Dl{c}}}{{Dn{e{Dl{c}}}}}{}{}}{{{h{{Gf{ce}}}}}{{h{{Gj{c}}}}}{}{}}```{{{h{{Gf{ce}}}}}{{Dn{c}}}fGh}{{{h{Af{Gf{ce}}}}Hfc}{{Dn{c}}}fGh}{{{h{Af{Gf{ce}}}}HfCl}{{Dn{c}}}fGh}{{{h{Af{Gf{ce}}}}H`}{{Dn{c}}}fGh}{{{h{Af{Gf{ce}}}}HhHj}{{Dn{c}}}fGh}{ce{}{}}0{{{h{{Dn{ce}}}}}CnfFf}{{{h{Af{Dn{ce}}}}{Dn{ce}}}BdfFf}{c{{Gf{ec}}}{}{}}{{{h{{Dn{ce}}}}g}Cf{BhFn}FnFl}{{{h{c}}}e{}{}}{c{{Cf{e}}}{}{}}000{{{h{c}}}Gd{}}077``{{{h{Af{Gh{}{{Hl{c}}}}}}c}Bd{}}{{{h{Af{Gh{}{{Hl{c}}}}}}{h{H`}}}c{}}{{{h{Af{Gh{}{{Hl{c}}}}}}Hh{h{Hj}}}c{}}{{{h{{Gh{}{{Hl{c}}}}}}}c{}}{{{h{{Gh{}{{Hl{c}}}}}}{h{H`}}}Cn{}}`````````{{{h{{Hn{c}}}}}{{I`{c{B`{{C`{Bn}}}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}{Dl{c}}}Bd{AjBhDf}}{{{h{Af{Hn{c}}}}e}Bd{AjBhDf}{}}{{{h{c}}}{{h{e}}}{}{}}000{{{h{Afc}}}{{h{Afe}}}{}{}}000{{{h{{Hn{c}}}}}{{Hn{c}}}Aj}{{{h{{Ib{c}}}}}{{Ib{c}}}Aj}{{{h{{Dl{c}}}}}{{Dl{c}}}Aj}{{{h{{Id{c}}}}}{{Id{c}}}Aj}{{{h{c}}{h{Afe}}}Bd{}{}}000{{}{{Hn{c}}}{}}{{}{{Dl{c}}}{}}{c{{Cf{{Dl{e}}}}}Ch{BhCj}}{{{h{{Ib{c}}}}{h{{Ib{c}}}}}CnD`}{{{h{{Dl{c}}}}{h{{Dl{c}}}}}CnD`}{{{h{{Id{c}}}}{h{{Id{c}}}}}CnD`}{{{h{{Hn{c}}}}{h{AfDb}}}DdDf}{{{h{{Ib{c}}}}{h{AfDb}}}DdDf}0{{{h{{Dl{c}}}}{h{AfDb}}}DdDf}{{{h{{Id{c}}}}{h{AfDb}}}DdDf}0{cc{}}000{{{h{{Hn{c}}}}{h{c}}}{{Bl{{h{{C`{Bn}}}}}}}{AjBhDf}}{{{h{{Hn{c}}}}{h{If}}}{{Bl{{h{{Dj{cBj}}}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}{h{H`}}}e{AjBhDf}{}}{{{h{Af{Hn{c}}}}Hh{h{Hj}}}e{AjBhDf}{}}{{{h{{Hn{c}}}}}e{AjBhDf}{}}{{{h{{Hn{c}}}}}{{h{{Ih{{Dj{cBj}}}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}c{C`{Bn}}}{{Cf{{Dl{c}}{Ib{c}}}}}{AjBhDf}}{ce{}{}}000{{{h{{Dl{c}}}}}CnBh}{{{h{{Hn{c}}}}{h{H`}}}Cn{AjBhDf}}{{{h{{Hn{c}}}}cBj}Cn{AjBhDf}}{{{h{{Hn{c}}}}{h{c}}}{{`{{Il{}{{Gl{{Ij{Hh}}}}}}}}}{AjBhDf}}{{{h{{Hn{c}}}}e}{{`{{Il{}{{Gl{{In{cHh}}}}}}}}}{AjBhDf}{{Fh{c}}}}{{{h{{Hn{c}}}}}{{`{{Il{}{{Gl{{Dj{{h{c}}{h{{C`{Bn}}}}}}}}}}J`}}}{AjBhDf}}``{{{h{{Hn{c}}}}{h{c}}}{{Bl{Bj}}}{AjBhDf}}{{{h{{Hn{c}}}}}{{I`{cBj}}}{AjBhDf}}10{{{h{{Hn{c}}}}}Bj{AjBhDf}}{{{h{Af{Hn{c}}}}{h{c}}Bj}Bd{AjBhDf}}{{{h{Af{Hn{c}}}}cBj}Cn{AjBhDf}}{{{h{Af{Dl{c}}}}{Dl{c}}}BdBh}{{{h{{Hn{c}}}}{h{H`}}e}Jb{AjBhDf}{{Fh{c}}}}{Bj{{Hn{c}}}{}}{{{h{{Hn{c}}}}{h{c}}}{{Bl{{Dj{BjCn}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}{h{c}}}{{Bl{{Dj{{Ij{Jd}}{Dl{c}}}}}}}{AjBhDf}}{{{h{{Hn{c}}}}}{{h{{Jf{{In{cHh}}}}}}}{AjBhDf}}1{{{h{Af{Hn{c}}}}{h{c}}Bj}{{Bl{{Dj{{Jh{{Ij{Jd}}}}{Dl{c}}}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}{h{{I`{cBj}}}}}{{Dl{c}}}{AjBhDf}}{{{h{{Hn{c}}}}{h{c}}}{{`{{Il{}{{Gl{{Ij{{h{If}}}}}}}}}}}{AjBhDf}}{{{h{{Hn{c}}}}e}{{`{{Jj{}{{Gl{{In{c{h{If}}}}}}}}}}}{AjBhDf}{{Fh{c}}}}{{{h{{Hn{c}}}}{h{H`}}e}{{Dj{GbGb}}}{AjBhDf}{{Fh{c}}}}{{{h{{Dl{c}}}}e}Cf{BhFn}Fl}{{{h{{Hn{c}}}}cBj}{{Bl{{h{If}}}}}{AjBhDf}}{{{h{c}}}e{}{}}000{{{h{c}}}G`{}}0{c{{Cf{e}}}{}{}}0000000{{{h{{Hn{c}}}}Hh}{{Bl{{In{c{h{Hj}}}}}}}{AjBhDf}}{{{h{{Hn{c}}}}}{{`{{Il{}{{Gl{{In{c{Dj{Hh{h{Hj}}}}}}}}}}J`}}}{AjBhDf}}{{{h{{Hn{c}}}}Hf}{{`{{Il{}{{Gl{{In{c{Dj{Hh{h{Hj}}}}}}}}}}}}}{AjBhDf}}{{{h{c}}}Gd{}}000{{{h{{Hn{c}}}}{h{c}}}{{Bl{{B`{{C`{Bn}}}}}}}{AjBhDf}}{{{h{Af{Hn{c}}}}cBj}Cn{AjBhDf}}{{{h{{Hn{c}}}}{h{c}}}{{`{{Il{}{{Gl{{Ij{{h{If}}}}}}}}Aj}}}{AjBhDf}}{{{h{{Hn{c}}}}}{{`{{Il{}{{Gl{{In{c{h{If}}}}}}}}Aj}}}{AjBhDf}}{ce{}{}}000`````{{{h{{Ih{c}}}}}{{h{{I`{cJd}}}}}{AjBhDf}}{{{h{Af{Ih{c}}}}e}Bd{AjBhDf}{}}{{{h{c}}}{{h{e}}}{}{}}{{{h{Afc}}}{{h{Afe}}}{}{}}{{{h{{Ih{c}}}}}{{Ih{c}}}Aj}{{{h{c}}{h{Afe}}}Bd{}{}}{{}{{Ih{c}}}{}}{{{h{{Ih{c}}}}{h{AfDb}}}DdDf}{cc{}}{{{h{{Ih{c}}}}{h{If}}}{{Bl{{h{c}}}}}{AjBhDf}}{{{h{Af{Ih{c}}}}{h{H`}}}e{AjBhDf}{}}{{{h{Af{Ih{c}}}}Hh{h{Hj}}}e{AjBhDf}{}}{{{h{{Ih{c}}}}}e{AjBhDf}{}}{{{h{Af{Ih{c}}}}cJd}Cn{AjBhDf}}>{{{h{{Ih{c}}}}{h{H`}}}Cn{AjBhDf}}0{{{h{{Ih{c}}}}{h{c}}}Cn{AjBhDf}}{{{h{Af{Ih{c}}}}{h{c}}}Cn{AjBhDf}}{{{h{{Ih{c}}}}{h{H`}}e}Jb{AjBhDf}{{Fh{c}}}}{{{h{{Ih{c}}}}}{{h{{Jf{{Dj{cHh}}}}}}}{AjBhDf}}{{{h{{Ih{c}}}}e}{{`{{Il{}{{Gl{{Dj{{h{c}}Hh}}}}}}}}}{AjBhDf}{{Fh{c}}}}{{{h{Af{Ih{c}}}}{h{H`}}}{{Jf{c}}}{AjBhDf}}{{{h{Af{Ih{c}}}}Hh{h{Hj}}}{{Bl{{h{c}}}}}{AjBhDf}}{{{h{{Ih{c}}}}{h{H`}}e}{{Dj{GbGb}}}{AjBhDf}{{Fh{c}}}}{{{h{{Ih{c}}}}{h{c}}}{{Bl{{h{If}}}}}{AjBhDf}}{{{h{c}}}e{}{}}{c{{Cf{e}}}{}{}}0{{{h{{Ih{c}}}}Hh}{{Bl{{Dj{{h{c}}{h{Hj}}}}}}}{AjBhDf}}{{{h{{Ih{c}}}}}{{`{{Il{}{{Gl{{Dj{{h{c}}Hh{h{Hj}}}}}}}}J`}}}{AjBhDf}}{{{h{{Ih{c}}}}Hf}{{`{{Il{}{{Gl{{Dj{{h{c}}Hh{h{Hj}}}}}}}}}}}{AjBhDf}}{{{h{c}}}Gd{}}={{{h{{Ih{c}}}}e}{{`{{Il{}{{Gl{{Dj{{h{c}}{h{If}}}}}}}}Aj}}}{AjBhDf}{{Fh{c}}}}{ce{}{}}``````````{{{h{AfJl}}{h{E`}}}{{Cf{BdJn}}}}{{{h{AfJl}}{h{K`}}Bj}{{Cf{E`Kb}}}}{{{h{AfJl}}{h{K`}}Bjj}{{Cf{E`Kd}}}}{{{h{AfJl}}Kf}{{Cf{E`Kb}}}}{{{h{Kf}}}j}{{{h{c}}}{{h{e}}}{}{}}000000{{{h{Afc}}}{{h{Afe}}}{}{}}000000{{{h{Kf}}}Kf}{{{h{Jl}}}Jl}{{{h{Jn}}}Jn}{{{h{Kh}}}Kh}{{{h{Kb}}}Kb}{{{h{Kd}}}Kd}{{{h{c}}{h{Afe}}}Bd{}{}}00000{{{h{AfJl}}j}{{Cf{E`Jn}}}}{{{h{Kf}}{h{Kf}}}Cn}{{{h{Jl}}{h{Jl}}}Cn}{{{h{Jn}}{h{Jn}}}Cn}{{{h{Kh}}{h{Kh}}}Cn}{{{h{Kb}}{h{Kb}}}Cn}{{{h{Kd}}{h{Kd}}}Cn}{{Kfc}{{Cf{KfKf}}}{{Gn{}{{Gl{j}}}}}}{{{h{Kf}}{h{AfDb}}}Dd}{{{h{Jl}}{h{AfDb}}}Dd}{{{h{Jn}}{h{AfDb}}}Dd}0{{{h{Kh}}{h{AfDb}}}Dd}0{{{h{Kb}}{h{AfDb}}}Dd}0{{{h{Kd}}{h{AfDb}}}Dd}0{cc{}}000000{c{{Cf{Kf{Bl{Kf}}}}}{{Gn{}{{Gl{j}}}}}}{{{I`{BjDh}}}{{Cf{JlJn}}}}{E`{{Cf{JlJn}}}}{Dh{{Dj{JlE`}}}}{{{h{K`}}Bj}Kf}{Kf{{Cf{JlJn}}}}{{{h{Jl}}}Dh}{{{h{Kf}}Bj}{{Bl{Kf}}}}{{{h{Jl}}Bj}{{Bl{Kf}}}}{{{h{Jl}}}{{Cf{jc}}}{}}{{{h{Kf}}}Dh}{{{h{Kf}}}Bj}`{{{h{Jl}}}E`}{{Kfj}Kf}{{{h{AfJl}}j}{{Cf{E`Kh}}}}{ce{}{}}0000000{Kfc{}}{{{h{Jl}}jj}{{Cf{{Bl{Cn}}c}}}{}}{{{h{Kf}}}Kj}{{{h{Jl}}}Kj}{jKf}{{{h{AfKj}}}{{Bl{c}}}{}}`{{{h{Kf}}}{{Bl{Kf}}}}{{Kfj}{{Cf{KfKf}}}}{{{h{Kf}}c}{{`{{Jj{}{{Gl{Kf}}}}}}}{{Fh{Bj}}}}{{{h{Jl}}c}{{`{{Jj{}{{Gl{Kf}}}}}}}{{Fh{Bj}}}}{{{h{Jl}}}Kf}{{{h{c}}}e{}{}}00000{{{h{c}}}G`{}}000{c{{Cf{e}}}{}{}}000000`0000000{{{h{c}}}Gd{}}000000`???????````{{{h{c}}}{{h{e}}}{}{}}000{{{h{Afc}}}{{h{Afe}}}{}{}}000{{Kle}Kl{{J`{}{{Gl{Hh}}}}Kn}{{Gn{}{{L`{c}}{Gl{Hh}}}}}}{{Kle}Kl{{J`{}{{Gl{Jd}}}}Kn}{{Gn{}{{L`{c}}{Gl{Jd}}}}}}{{{Lb{c}}cg}{{Lb{c}}}{BhAj}{{Jj{}{{Gl{{Ij{Jd}}}}}}Kn}{{Gn{}{{L`{e}}}}}}``{{Kle}Kl{{J`{}{{Gl{Hf}}}}Kn}{{Gn{}{{L`{c}}{Gl{Hf}}}}}}``{cc{}}000{KfKl}{Kf{{Lb{c}}}{BhAj}}{{Kf{h{{Hn{c}}}}}{{Lb{c}}}{DfBhAj}}``{{Klc}Kl{{Ld{{h{Hh}}}}KnLf}}{{Klc}Kl{{Ld{{h{If}}}}KnLf}}{{{Lb{c}}e}{{Lb{c}}}{KnBhAj}{{Ld{cBj{h{If}}}}KnLfAj}}{{{Lb{c}}ce}{{Lb{c}}}{KnBhAj}{{Ld{Bj{h{If}}}}KnLf}}{{Klc}Kl{{Ld{{h{Hf}}}}KnLf}}{ce{}{}}000``{{Kl{h{{Hn{c}}}}e}Kl{AjBhDfKnLf}{{Fh{c}}}}{{Kle}Kl{{J`{}{{Gl{Hh}}}}Kn}{{Gn{}{{L`{c}}}}}}{{Kle}Kl{{J`{}{{Gl{Jd}}}}Kn}{{Gn{}{{L`{c}}}}}}>{{Kle}Kl{{J`{}{{Gl{Hf}}}}Kn}{{Gn{}{{L`{c}}}}}}``{c{{Cf{e}}}{}{}}0000000`{{{h{c}}}Gd{}}0006666`````````{{{h{{Gj{c}}}}}{{h{{Jf{{Dj{cHf}}}}}}}{}}{{{h{{Gj{c}}}}}{{`{{Jj{}{{Gl{{Dj{Hh{h{Hj}}}}}}}}}}}{}}{{{h{{Hd{c}}}}}{{`{{Jj{}{{Gl{Bj}}}}}}}f}``{{{h{Af{Gj{c}}}}{Hd{c}}}Bd{AjBh}}{{{h{Af{Gj{c}}}}{Gj{c}}}{{Hd{c}}}{AjBh}}{{{h{{Gj{c}}}}}{{h{{Gj{c}}}}}{}}{{{h{{Gj{c}}}}{h{e}}jik}bf{{En{}{{El{Lh}}}}}Aj{{Gn{}{{Gl{{Dj{gHh}}}}}}}{{Ld{{h{g}}{h{If}}}{{Lj{Cn}}}}}}{{{h{Af{Gj{c}}}}e}{{Hd{c}}}{AjBh}{{Gn{}{{Gl{{Dj{H`Cl}}}}}}}}{{{h{c}}}{{h{e}}}{}{}}000000{{{h{Afc}}}{{h{Afe}}}{}{}}000000{{{h{{Gj{c}}}}{h{H`}}}{{Cf{GbLl}}}{}}`{c{{Bl{Jb}}}{}}{c{{Bl{Gb}}}{}}10{{{h{{Gj{c}}}}}{{Gj{c}}}Aj}{{{h{{Ln{ce}}}}}{{Ln{ce}}}AjAj}{{{h{{M`{ce}}}}}{{M`{ce}}}AjAj}{{{h{{Hd{c}}}}}{{Hd{c}}}Aj}{{{h{c}}{h{Afe}}}Bd{}{}}000{{{h{{Ln{ce}}}}{h{{Ln{ce}}}}}BfBhBh}{{{h{{M`{ce}}}}{h{{M`{ce}}}}}BfBhBh}{{}{{Gj{c}}}{}}{{}{{Hd{c}}}{}}{{{h{{Ln{ce}}}}}{{h{g}}}{}{}{}}{c{{Cf{{Hd{e}}}}}Ch{BhCj}}{{{h{{Gj{c}}}}{h{H`}}}{{`{{Jj{}{{Gl{{Dj{EdHf}}}}}}}}}{}}{{{h{{Gj{c}}}}{h{{Gj{c}}}}}CnD`}{{{h{{Ln{ce}}}}{h{{Ln{ce}}}}}CnD`D`}{{{h{{M`{ce}}}}{h{{M`{ce}}}}}CnD`D`}{{{h{Ll}}{h{Ll}}}Cn}{{{h{{Hd{c}}}}{h{{Hd{c}}}}}CnD`}{{{h{{Gj{c}}}}{h{e}}ji}{{`{{Jj{}{{Gl{{Dj{g{An{c}}}}}}}}}}}f{{En{}{{El{Lh}}}}}Aj{{Gn{}{{Gl{{Dj{gHh}}}}}}}}0{{{h{{Gj{c}}}}}{{`{{Jj{}{{Gl{{Dj{Hh{h{Hj}}}}}}}}}}}{}}{{{h{{Gj{c}}}}{h{AfDb}}}DdDf}{{{h{{Ln{ce}}}}{h{AfDb}}}DdDfDf}{{{h{{M`{ce}}}}{h{AfDb}}}DdDfDf}{{{h{Ll}}{h{AfDb}}}Dd}0{{{h{{Hd{c}}}}{h{AfDb}}}DdDf}{cc{}}000000{{{h{{Gj{c}}}}}{{`{{Jj{}{{Gl{{Ln{{Mb{H`}}c}}}}}}}}}{}}{{{h{{Gj{c}}}}{h{e}}jHf}{{Bl{{Ah{{h{c}}}}}}}f{{En{}{{El{Lh}}}}}}{{{h{{Gj{c}}}}{h{e}}jHh}{{Bl{{Dj{{Ah{{h{c}}}}Hf}}}}}f{{En{}{{El{Lh}}}}}}{{{h{{Gj{c}}}}Hf}{{Bl{{Mb{H`}}}}}{}}{{{h{{Gj{c}}}}Hf}{{Bl{{Ln{{Mb{H`}}c}}}}}{}}{{{h{{Gj{c}}}}Hh}{{Bl{{h{Hj}}}}}{}}{{{h{{Gj{c}}}}}{{Hd{c}}}{AjBh}}{{{h{Af{Gj{c}}}}Hfc}{{Hd{c}}}{AjBh}}{{{h{Af{Gj{c}}}}HfCl}{{Hd{c}}}{AjBh}}{{{h{Af{Gj{c}}}}e}{{Hd{c}}}{AjBh}{{Md{{Mb{H`}}}}}}{{{h{Af{Gj{c}}}}HhHj}{{Hd{c}}}{AjBh}}{ce{}{}}00000000{{{h{{Gj{c}}}}}Cn{}}{{{h{{Hd{c}}}}}CnBh}``{{{h{{Gj{c}}}}{h{e}}j}{{`{{Jj{}{{Gl{{M`{{Mb{H`}}c}}}}}}}}}fEn}{{{Gj{c}}g}{{Gj{e}}}{AjBh}{AjBh}{{Ld{c}{{Lj{e}}}}}}{{{Hd{c}}g}{{Hd{e}}}BhBh{{Ld{c}{{Lj{e}}}}}}{{{h{Af{Hd{c}}}}{Hd{c}}}BdBh}{c{{Gj{e}}}{{Gn{}{{Gl{H`}}}}}{AjBh}}{{{h{Af{Mf{cg}}}}}{{Bl{i}}}{}{}{{Ld{Ed{Mb{H`}}}{{Lj{{Bl{e}}}}}}}{}}{{{h{Af{Mh{cg}}}}}{{Bl{i}}}{}{}{{Ld{EdHf}{{Lj{{Bl{e}}}}}}}{}}{{{h{{Gj{c}}}}Hh}{{h{{Mj{Hf}}}}}{}}{{{h{{Ln{ce}}}}{h{{Ln{ce}}}}}{{Bl{Bf}}}FjFj}{{{h{{M`{ce}}}}{h{{M`{ce}}}}}{{Bl{Bf}}}FjFj}{{{h{{Hd{c}}}}e}Cf{BhFn}Fl}{{{h{c}}}e{}{}}000{{{h{c}}}G`{}}{{{h{{Gj{c}}}}{h{e}}jik}{{Cf{b}}}fEnAj{{Gn{}{{Gl{{Dj{gHh}}}}}}}{{Ld{{h{g}}{h{If}}}{{Lj{Cn}}}}}}{{{h{{Gj{c}}}}{h{e}}ji}{{`{{Jj{}{{Gl{{Cf{{Dj{g{An{c}}}}}}}}}}}}}fEnAj{{Gn{}{{Gl{{Dj{gHh}}}}}}}}0{c{{Cf{e}}}{}{}}000000{{{h{{Gj{c}}}}{h{e}}jHf}{{Cf{{Bl{{Ah{{h{c}}}}}}}}}fEn}{{{h{{Gj{c}}}}{h{e}}jHh}{{Cf{{Bl{{Dj{{Ah{{h{c}}}}Hf}}}}}}}fEn}2222222{{{h{{Gj{c}}}}{h{e}}j}{{`{{Jj{}{{Gl{{Cf{{M`{{Mb{H`}}c}}}}}}}}}}}fEn}``{{{h{{Gj{c}}}}Hf}{{Bl{{I`{Bj{h{Hj}}}}}}}{}}{{{h{{Gj{c}}}}Hf}{{`{{Il{}{{Gl{{Dj{Bj{h{{Mj{Hf}}}}}}}}}}}}}{}}`{{{h{{Hd{c}}}}}{{`{{Jj{}{{Gl{{Dj{Hh{h{Hj}}}}}}}}}}}{}}``{{{h{{Gj{c}}}}}{{`{{Jj{}{{Gl{{Ln{{Mb{H`}}c}}}}}}}}}{}}{{{h{c}}}Gd{}}000000{{{h{Af{Gj{c}}}}Cl}{{Hd{c}}}{AjBh}}{ce{}{}}000000{{{h{{Gj{c}}}}ei}{{Mf{ci}}}{AjBh}{{Md{{Mb{H`}}}}}{}{{Ld{Ed{Mb{H`}}}{{Lj{{Bl{g}}}}}}}}{{{h{{Gj{c}}}}{h{H`}}g}{{Mh{cg}}}{}{}{{Ld{EdHf}{{Lj{{Bl{e}}}}}}}}{{{h{{Gj{c}}}}Hfg}{{Mh{cg}}}{AjBh}{}{{Ld{EdHf}{{Lj{{Bl{e}}}}}}}}","D":"BOd","p":[[5,"Balance",0,844],[5,"DescriptorId",0,845],[10,"Anchor",0,846],[1,"reference"],[5,"BlockId",0,847],[5,"ConfirmationBlockTime",0,847],[5,"Hash",848],[1,"u8"],[1,"slice"],[1,"array"],[0,"mut"],[6,"ChainPosition",0,847],[10,"Clone",849],[6,"ConfirmationTime",0,847],[5,"FullTxOut",0,847],[5,"SpkIterator",0,850],[5,"CombinedChangeSet",0,851],[1,"unit"],[6,"Ordering",852],[10,"Ord",852],[1,"u32"],[6,"Option",853],[6,"DescriptorPublicKey",854],[6,"Descriptor",855],[10,"Borrow",856],[10,"DescriptorExt",0,845],[6,"Result",857],[10,"Deserializer",858],[10,"Deserialize",858],[1,"u64"],[1,"bool"],[10,"PartialEq",852],[5,"Formatter",859],[8,"Result",859],[10,"Debug",859],[5,"BlockHash",860],[1,"tuple"],[5,"ChangeSet",324],[5,"ChangeSet",265],[8,"ChangeSet",476],[5,"Block",860],[1,"usize"],[10,"AnchorFromBlockPosition",0,846],[5,"FromSliceError",861],[1,"str"],[17,"Error"],[10,"ChainOracle",0,862],[10,"Hash",863],[10,"Hasher",863],[10,"SliceIndex",864],[10,"Merge",0,846],[10,"RangeBounds",865],[10,"PartialOrd",852],[10,"Serializer",866],[10,"Serialize",866],[5,"String",867],[5,"Amount",868],[5,"TypeId",869],[5,"IndexedTxGraph",265],[10,"Indexer",315],[5,"TxGraph",682],[17,"Item"],[10,"IntoIterator",870],[5,"Transaction",871],[10,"Default",872],[5,"ChangeSet",682],[5,"Txid",871],[5,"OutPoint",871],[5,"TxOut",871],[17,"ChangeSet"],[5,"KeychainTxOutIndex",324],[5,"BTreeMap",873],[6,"InsertDescriptorError",324],[5,"NoSuchKeychain",324],[5,"Script",874],[5,"SpkTxOutIndex",439],[8,"Indexed",0],[10,"DoubleEndedIterator",875],[8,"KeychainIndexed",0],[10,"ExactSizeIterator",876],[5,"SignedAmount",868],[5,"ScriptBuf",877],[5,"BTreeSet",878],[5,"Vec",879],[10,"Iterator",880],[5,"LocalChain",476],[5,"MissingGenesisError",476],[5,"Header",860],[5,"CannotConnectError",476],[6,"ApplyHeaderError",476],[5,"CheckPoint",476],[5,"AlterCheckPointError",476],[5,"CheckPointIter",476],[5,"SyncRequest",618],[10,"Send",881],[17,"IntoIter"],[5,"FullScanRequest",618],[10,"FnMut",882],[10,"Sync",881],[6,"Infallible",883],[17,"Output"],[6,"CalculateFeeError",682],[5,"TxNode",682],[5,"CanonicalTx",682],[5,"Arc",884],[10,"Into",883],[5,"TxAncestors",682],[5,"TxDescendants",682],[5,"HashSet",885],[15,"Confirmed",262],[15,"Unconfirmed",262],[15,"DescriptorAlreadyAssigned",435],[15,"KeychainAlreadyAssigned",435],[5,"SyncResult",618],[5,"FullScanResult",618]],"r":[[0,846],[1,846],[2,850],[3,844],[4,847],[6,862],[7,847],[8,851],[9,847],[10,847],[13,845],[14,845],[16,847],[18,265],[19,315],[21,846],[22,850],[23,682]],"b":[[33,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[34,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[111,"impl-Debug-for-Balance"],[112,"impl-Display-for-Balance"],[118,"impl-Debug-for-DescriptorId"],[119,"impl-Display-for-DescriptorId"],[120,"impl-UpperHex-for-DescriptorId"],[121,"impl-LowerHex-for-DescriptorId"],[127,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[128,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[135,"impl-From%3CChangeSet%3CA,+ChangeSet%3CK%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[136,"impl-From%3CChangeSet%3CK%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[137,"impl-From%3CBTreeMap%3Cu32,+Option%3CBlockHash%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[289,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[290,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[332,"impl-KeychainTxOutIndex%3CK%3E"],[333,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[357,"impl-Debug-for-InsertDescriptorError%3CK%3E"],[358,"impl-Display-for-InsertDescriptorError%3CK%3E"],[360,"impl-Debug-for-NoSuchKeychain%3CK%3E"],[361,"impl-Display-for-NoSuchKeychain%3CK%3E"],[527,"impl-Display-for-MissingGenesisError"],[528,"impl-Debug-for-MissingGenesisError"],[529,"impl-Display-for-AlterCheckPointError"],[530,"impl-Debug-for-AlterCheckPointError"],[531,"impl-Debug-for-CannotConnectError"],[532,"impl-Display-for-CannotConnectError"],[533,"impl-Debug-for-ApplyHeaderError"],[534,"impl-Display-for-ApplyHeaderError"],[747,"impl-Display-for-CalculateFeeError"],[748,"impl-Debug-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANIBSQATAAEAGAAAABsAAQAeAAIAIgACACYAEgA7ABEATgAFAFcAAABaAAMAYAAFAGcAFAB/AAIAhgAAAIgAAgCNAAMAkgACAJYABACeAAAAqwAAALEAAAC2AAEAuwABAL4ADADPAAkA2gABAN8AEQDzAAgA/gAIABABAAAUAQsAIgEBAC8BAQAyAQkATgEcAHEBAgB7AQAAlQEAAJcBDQCoAQMAsAEDALoBBgDDAQIAyQEAANMBAgDZAQAA3AEAAOwBGQAHAgUADgIJACgCAAA2AgIAPAIAAEMCEABVAg0AZAIGAG8CBwCaAgcAowIHALsCAAC+Ag0AzgIRAOECBADpAgUACAMBAAsDAAARAwAAEwMBABYDBwAhAwYAKgMGADsDBgBDAwYA"}],\ +["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{}}000{ClBl}{AlBl}22222222{{{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-Display-for-SelectionError"],[96,"impl-Debug-for-SelectionError"],[97,"impl-Display-for-SelectionConstraint"],[98,"impl-Debug-for-SelectionConstraint"],[100,"impl-Debug-for-ExcessStrategyKind"],[101,"impl-Display-for-ExcessStrategyKind"],[108,"impl-From%3CDuration%3E-for-BnbLimit"],[109,"impl-From%3Cusize%3E-for-BnbLimit"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKcAFwAAAAAAAgAAAAYAAAAJAAIADgADABcAAgAcAAEAIAAAACIAKgBQAAIAVgAEAFwACwBtAAEAdwABAIcAAQCKAAEAkgANAKEAAACjAAAApgAAAKoAMADcAAwA6gABAA=="}],\ +["bdk_electrum",{"t":"FENNENNNNONNNNNNNNN","n":["BdkElectrumClient","bdk_chain","borrow","borrow_mut","electrum_client","fetch_tx","fmt","from","full_scan","inner","into","new","populate_tx_cache","sync","transaction_broadcast","try_from","try_into","type_id","vzip"],"q":[[0,"bdk_electrum"],[19,"bdk_electrum::bdk_electrum_client"],[20,"bitcoin::blockdata::transaction"],[21,"alloc::sync"],[22,"electrum_client::types"],[23,"core::result"],[24,"electrum_client::api"],[25,"core::fmt"],[26,"bdk_chain::spk_client"],[27,"core::cmp"],[28,"core::clone"],[29,"bdk_chain::tx_graph"],[30,"core::convert"],[31,"core::any"]],"i":[0,0,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":"``{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}`{{{b{{f{c}}}}h}{{A`{{l{j}}n}}}Ab}{{{b{{f{c}}}}{b{dAd}}}AfAh}{cc{}}{{{b{{f{c}}}}{Aj{e}}AlAlAn}{{A`{{B`{e}}n}}}Ab{BbBd}}`{ce{}{}}{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}}}{}{}}0{{{b{c}}}C`{}}6","D":"Af","p":[[1,"reference"],[0,"mut"],[5,"BdkElectrumClient",0,19],[5,"Txid",20],[5,"Transaction",20],[5,"Arc",21],[6,"Error",22],[6,"Result",23],[10,"ElectrumApi",24],[5,"Formatter",25],[8,"Result",25],[10,"Debug",25],[5,"FullScanRequest",26],[1,"usize"],[1,"bool"],[5,"FullScanResult",26],[10,"Ord",27],[10,"Clone",28],[1,"unit"],[5,"TxGraph",29],[10,"AsRef",30],[5,"SyncRequest",26],[5,"SyncResult",26],[5,"TypeId",31]],"r":[[0,19]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgAAwACAAMABwAAABAAAwA="}],\ ["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":"FPFGPPPGFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNOO","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","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","expected","got"],"q":[[0,"bdk_file_store"],[73,"bdk_file_store::FileError"],[75,"bdk_file_store::store"],[76,"core::option"],[77,"core::result"],[78,"bdk_chain::tx_data_traits"],[79,"serde::ser"],[80,"serde::de"],[81,"core::marker"],[82,"std::io::error"],[83,"std::path"],[84,"core::convert"],[85,"bdk_file_store::entry_iter"],[86,"core::fmt"],[87,"std::fs"],[88,"alloc::string"],[89,"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,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,28,28],"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}}}BlBn}{{{f{{j{c}}}}{f{bBj}}}Bl{}}{{{f{B`}}{f{bBj}}}Bl}0{cc{}}0{AjBh}111{AjB`}{ce{}{}}00000{{{f{b{d{c}}}}}{{Bf{c}}}{nA`AbAdAf}}`{{C`{f{bCb}}}{{Bf{c}}}{}}{{{f{b{Bf{c}}}}}{{h{e}}}Ab{}}=={{{f{c}}}Cd{}}00{c{{l{e}}}{}{}}000000000{{{f{c}}}Cf{}}000066666``","D":"Ch","p":[[0,"mut"],[5,"Store",0,75],[1,"reference"],[6,"Option",76],[5,"AggregateChangesetsError",0,75],[6,"Result",77],[10,"Merge",78],[10,"Serialize",79],[10,"DeserializeOwned",80],[10,"Send",81],[10,"Sync",81],[1,"unit"],[5,"Error",82],[1,"u8"],[1,"slice"],[6,"FileError",0],[5,"Path",83],[10,"AsRef",84],[5,"EntryIter",0,85],[6,"IterError",0,85],[5,"Formatter",86],[8,"Result",86],[10,"Debug",86],[1,"u64"],[5,"File",87],[5,"String",88],[5,"TypeId",89],[15,"InvalidMagicBytes",73]],"r":[[0,75],[2,85],[7,85],[8,75]],"b":[[24,"impl-Debug-for-IterError"],[25,"impl-Display-for-IterError"],[27,"impl-Debug-for-AggregateChangesetsError%3CC%3E"],[28,"impl-Display-for-AggregateChangesetsError%3CC%3E"],[29,"impl-Display-for-FileError"],[30,"impl-Debug-for-FileError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAC8ABwAMAAkAGAAHACIAAAAmAAAALAAAAC8AAQAzABgA"}],\ ["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="}],\ ["bdk_sqlite",{"t":"GPPFNNNNNNNNNNNNNENNNNNNNNNNOO","n":["Error","Network","Sqlite","Store","borrow","borrow","borrow_mut","borrow_mut","fmt","fmt","fmt","from","from","into","into","new","read","rusqlite","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write","expected","given"],"q":[[0,"bdk_sqlite"],[28,"bdk_sqlite::Error"],[30,"bdk_sqlite::store"],[31,"core::fmt"],[32,"rusqlite"],[33,"rusqlite::error"],[34,"core::result"],[35,"core::cmp"],[36,"serde::de"],[37,"serde::ser"],[38,"core::marker"],[39,"bdk_chain::tx_data_traits"],[40,"bdk_chain::changeset"],[41,"core::option"],[42,"alloc::string"],[43,"core::any"]],"i":[0,6,6,0,3,6,3,6,3,6,6,3,6,3,6,3,3,0,6,3,6,3,6,3,6,3,6,3,20,20],"f":"````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{f{ce}}}}{b{dh}}}j{}{}}{{{b{l}}{b{dh}}}j}0{cc{}}0{ce{}{}}0{n{{Ab{{f{ce}}A`}}}{AdAfAhAj}{AlAfAhAj}}{{{b{d{f{ce}}}}}{{Ab{{B`{{An{ce}}}}l}}}{AdAfAhAj}{AlAfAhAj}}`{{{b{c}}}Bb{}}{c{{Ab{e}}}{}{}}000{{{b{c}}}Bd{}}055{{{b{d{f{ce}}}}{b{{An{ce}}}}}{{Ab{Bfl}}}{AdAfAhAj}{AlAfAhAj}}``","D":"Ah","p":[[1,"reference"],[0,"mut"],[5,"Store",0,30],[5,"Formatter",31],[8,"Result",31],[6,"Error",0],[5,"Connection",32],[6,"Error",33],[6,"Result",34],[10,"Ord",35],[10,"Deserialize",36],[10,"Serialize",37],[10,"Send",38],[10,"Anchor",39],[5,"CombinedChangeSet",40],[6,"Option",41],[5,"String",42],[5,"TypeId",43],[1,"unit"],[15,"Network",28]],"r":[[3,30]],"b":[[9,"impl-Debug-for-Error"],[10,"impl-Display-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABIAAwAFAAYAEgAJAB0AAQA="}],\ ["bdk_testenv",{"t":"FEEEONNEOENNNNNNNNNNNNNNNNNNN","n":["TestEnv","anyhow","bitcoincore_rpc","bitcoind","bitcoind","borrow","borrow_mut","electrsd","electrsd","electrum_client","electrum_client","from","genesis_hash","into","invalidate_blocks","make_checkpoint_tip","mine_blocks","mine_empty_block","new","reorg","reorg_empty_blocks","reset_electrsd","rpc_client","send","try_from","try_into","type_id","vzip","wait_until_electrum_sees_block"],"q":[[0,"bdk_testenv"],[29,"electrum_client::api"],[30,"bitcoin::blockdata::block"],[31,"anyhow"],[32,"bdk_chain::local_chain"],[33,"bitcoin::address"],[34,"core::option"],[35,"alloc::vec"],[36,"bitcoincore_rpc::client"],[37,"bitcoin_units::amount"],[38,"bitcoin::blockdata::transaction"],[39,"core::result"],[40,"core::any"]],"i":[0,0,0,0,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}```{{{b{f}}}{{b{{`{h}}}}}}{cc{}}{{{b{f}}}{{l{j}}}}{ce{}{}}{{{b{f}}n}{{l{A`}}}}{{{b{f}}}Ab}{{{b{f}}n{Af{Ad}}}{{l{{Ah{j}}}}}}{{{b{f}}}{{l{{Aj{nj}}}}}}{{}{{l{f}}}}{{{b{f}}n}{{l{{Ah{j}}}}}}{{{b{f}}n}{{l{{Ah{{Aj{nj}}}}}}}}{f{{l{f}}}}{{{b{f}}}{{b{{`{Al}}}}}}{{{b{f}}{b{{Ad{An}}}}B`}{{l{Bb}}}}{c{{Bd{e}}}{}{}}0{{{b{c}}}Bf{}}<{{{b{f}}}{{l{A`}}}}","D":"An","p":[[1,"reference"],[0,"mut"],[5,"TestEnv",0],[10,"ElectrumApi",29],[5,"BlockHash",30],[8,"Result",31],[1,"usize"],[1,"unit"],[5,"CheckPoint",32],[5,"Address",33],[6,"Option",34],[5,"Vec",35],[1,"tuple"],[10,"RpcApi",36],[6,"NetworkChecked",33],[5,"Amount",37],[5,"Txid",38],[6,"Result",39],[5,"TypeId",40]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA4ABAAAAAAAAgAIABYAAAAZAAMA"}],\ -["bdk_tmp_plan",{"t":"FKPPPPFFGGFFPPPGPPONNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNOONHNNNNOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOOOOOOOO","n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashP2wpkh","SigHashTaproot","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":[[0,"bdk_tmp_plan"],[151,"bdk_tmp_plan::PlanState"],[153,"bdk_tmp_plan::RequiredSignatures"],[159,"miniscript::descriptor::key"],[160,"bitcoin::bip32"],[161,"core::option"],[162,"bdk_tmp_plan::requirements"],[163,"core::clone"],[164,"bdk_tmp_plan::template"],[165,"core::fmt"],[166,"bitcoin::crypto::sighash"],[167,"miniscript::descriptor"],[168,"bitcoin::blockdata::locktime::absolute"],[169,"bitcoin::blockdata::transaction"],[170,"secp256k1"],[171,"core::result"],[172,"core::borrow"],[173,"secp256k1::context"],[174,"alloc::string"],[175,"core::any"],[176,"bitcoin::blockdata::script::witness_version"]],"i":[0,0,42,10,42,9,0,0,0,0,0,0,9,10,10,0,9,9,11,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,3,7,9,10,11,12,13,14,7,9,10,11,12,13,14,7,9,13,14,11,11,13,12,7,9,10,10,11,12,13,14,42,7,9,10,10,10,10,11,12,13,14,14,7,13,14,7,13,42,7,9,10,11,12,13,14,14,14,12,0,12,12,12,7,14,7,13,13,14,7,13,9,7,7,9,10,11,12,13,14,10,12,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,14,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,12,45,45,46,47,48,49,49,48],"f":"```````````````````{{{b{c}}}{{b{e}}}{}{}}0000000{{{b{dc}}}{{b{de}}}{}{}}0000000{{{b{f}}{b{h}}}{{l{j}}}}{{{b{{n{c}}}}}{{n{c}}}A`}{{{b{{Ab{c}}}}}{{Ab{c}}}A`}{{{b{Ad}}}Ad}{{{b{{Af{c}}}}}{{Af{c}}}A`}{{{b{{Ah{c}}}}}{{Ah{c}}}A`}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}A`}{{{b{c}}{b{de}}}An{}{}}000000{{}{{n{c}}}{}}{{}{{Ab{c}}}{}}{{}Aj}{{}{{Al{c}}}{}}```{{{b{{Ah{c}}}}}B`A`}{{{b{{n{c}}}}{b{dBb}}}BdBf}{{{b{{Ab{c}}}}{b{dBb}}}BdBf}{{{b{Ad}}{b{dBb}}}Bd}0{{{b{{Af{c}}}}{b{dBb}}}BdBf}{{{b{{Ah{c}}}}{b{dBb}}}BdBf}{{{b{Aj}}{b{dBb}}}Bd}{{{b{{Al{c}}}}{b{dBb}}}BdBf}{cc{}}000{BhAd}{BjAd}{BlAd}3333``````{ce{}{}}0000000``{{{b{{Ah{c}}}}}{{l{Bn}}}A`}{{{b{{C`{h}}}}{b{{Al{c}}}}}{{l{{Ah{c}}}}}{fA`}}{{{b{{Ah{c}}}}}{{l{Cb}}}A`}{{{b{{Ah{c}}}}}{{l{Cd}}}A`}{{{b{{Ah{c}}}}}{{n{c}}}A`}{{{b{{n{c}}}}}Cf{}}```````{{{b{{Ab{Ch}}}}B`{b{Cj}}{b{{Cl{c}}}}{l{Cn}}{l{D`}}{b{d{Db{e}}}}{b{dAj}}{b{{Dd{g}}}}}{{Df{CfAd}}}{{Dj{Dh}}}{{Dj{Dl}}}{DnE`}}`{{{b{c}}}e{}{}}000000{{{b{c}}}Eb{}}{{{b{{Ah{c}}}}{b{Aj}}}{{Ed{c}}}A`}{c{{Df{e}}}{}{}}000000000000000`{{{b{c}}}Ef{}}0000000<<<<<<<<{{{b{{Ah{c}}}}}{{l{Eh}}}A`}````````","D":"Fl","p":[[1,"reference"],[0,"mut"],[10,"CanDerive",0],[5,"DefiniteDescriptorKey",159],[5,"DerivationPath",160],[6,"Option",161],[5,"Requirements",0,162],[10,"Clone",163],[6,"RequiredSignatures",0,162],[6,"SigningError",0,162],[5,"PlanKey",0,164],[5,"Plan",0],[5,"SatisfactionMaterial",0],[5,"Assets",0],[1,"unit"],[1,"usize"],[5,"Formatter",165],[8,"Result",165],[10,"Debug",165],[6,"TaprootError",166],[6,"P2wpkhError",166],[6,"Error",160],[1,"u32"],[6,"Descriptor",167],[6,"LockTime",168],[5,"Sequence",169],[1,"bool"],[6,"DescriptorPublicKey",159],[8,"KeyMap",167],[6,"Prevouts",166],[6,"TapSighashType",166],[6,"EcdsaSighashType",166],[5,"SighashCache",166],[5,"Secp256k1",170],[6,"Result",171],[5,"TxOut",169],[10,"Borrow",172],[5,"Transaction",169],[10,"Signing",173],[10,"Verification",173],[5,"String",174],[6,"PlanState",0],[5,"TypeId",175],[6,"WitnessVersion",176],[15,"Complete",151],[15,"Legacy",153],[15,"Segwitv0",153],[15,"TapScript",153],[15,"TapKey",153]],"r":[[7,164],[9,162],[10,162],[15,162]],"b":[[60,"impl-Debug-for-SigningError"],[61,"impl-Display-for-SigningError"],[70,"impl-From%3CTaprootError%3E-for-SigningError"],[71,"impl-From%3CP2wpkhError%3E-for-SigningError"],[72,"impl-From%3CError%3E-for-SigningError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGkAEAABAAEABAABAA4AAgAUACIAOwAHAEcAAgBOAAAAUQAAAFwAAQBfAAAAYgAAAGQAAABoAAAAawAAAG0AKQCaAAEA"}],\ -["bdk_wallet",{"t":"PPEPGPFEEGEFNNDNNNNNNNNENNNNNNNNNOOCQNNNNNNNNNNQNNNNNNNNNNOOCDNONCONNNEENNNNNNNNNNNNNONNNNOHNNNNCOOOPPPIGEGIKTIKRGFPPPPEKGPPPPTIPPPPPPPPPPNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNMNNMNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNCNONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNONNNNNNNNNMNNNNCNNNNNNNNNNNMNNNCNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHHPPGPPPPPPPPPPPNNNNNNNNNNNNNNNNNNPPPGPFIPPIPPPPPPPPPPPGFGPPPPPGGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOFFFFFFFFKIFFFFNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPKGGGRRKGPKKFKPPPRGIPPPPPRPFPKGPPPFFGFPIPPPHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNOONHNMNNHNMNNOONNNNNNMNNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMMMFGFPIPPPKGPPPPPPGGPFFNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNCONNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNMNONONNNNNNNNONNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNCNNNNNNNNNNNNONNNNNNNNHOOOOOOOOPPFPKFIGGPFPFNNNNNNNNNNNNNNNNNNMNNNHNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOGPPGPPPPPPPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFIOONNNNNNNNNNNOONNNNNNPPPPPPPKPPPPPPPPPPPPPPPPFKGGGFFFPGKPNOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNMNONONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOGGPPGPPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOO","n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","miniscript","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","Bare","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","FALSE","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Pkh","Pkh","Policy","ScriptContext","Segwitv0","Sh","Sh","Sh","Single","TRUE","TapKeyOrigins","Tr","Tr","Tr","Wpkh","Wpkh","Wpkh","Wsh","Wsh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","ExternalAndInternalAreTheSame","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_default_with_aux_rand","generate_with_aux_rand","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","n","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","Descriptor","Descriptor","Descriptor","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone_into","clone_into","coin_selection","confirmed","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","is_dust","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load_from_changeset","local_chain","mark_used","network","network","new","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","take_staged","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unbroadcast_transactions","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","csv","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Psbt","Segwitv0","SighashTaproot","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","remove","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","Custom","InvalidOutpoint","InvalidTxid","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone_into","clone_into","clone_into","cmp","coin_selection","current_height","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","fee_absolute","fee_rate","finish","finish_with_aux_rand","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","policy_path","set_recipients","sighash","sort_tx","sort_tx_with_aux_rand","to_owned","to_owned","to_owned","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","unspendable","version","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid","input_sort","output_sort"],"q":[[0,"bdk_wallet"],[97,"bdk_wallet::Utxo"],[100,"bdk_wallet::descriptor"],[352,"bdk_wallet::descriptor::checksum"],[354,"bdk_wallet::descriptor::error"],[386,"bdk_wallet::descriptor::policy"],[533,"bdk_wallet::descriptor::policy::BuildSatisfaction"],[536,"bdk_wallet::descriptor::policy::Satisfaction"],[547,"bdk_wallet::descriptor::policy::SatisfiableItem"],[557,"bdk_wallet::descriptor::template"],[693,"bdk_wallet::keys"],[994,"bdk_wallet::psbt"],[998,"bdk_wallet::wallet"],[1200,"bdk_wallet::wallet::ApplyBlockError"],[1202,"bdk_wallet::wallet::NewOrLoadError"],[1208,"bdk_wallet::wallet::coin_selection"],[1300,"bdk_wallet::wallet::coin_selection::Error"],[1302,"bdk_wallet::wallet::coin_selection::Excess"],[1307,"bdk_wallet::wallet::error"],[1378,"bdk_wallet::wallet::error::CreateTxError"],[1384,"bdk_wallet::wallet::export"],[1407,"bdk_wallet::wallet::signer"],[1584,"bdk_wallet::wallet::signer::SignerContext"],[1585,"bdk_wallet::wallet::tx_builder"],[1698,"bdk_wallet::wallet::tx_builder::AddForeignUtxoError"],[1700,"bdk_wallet::wallet::tx_builder::TxOrdering"],[1702,"bdk_wallet::types"],[1703,"core::cmp"],[1704,"core::result"],[1705,"serde::de"],[1706,"core::fmt"],[1707,"core::hash"],[1708,"bitcoin::blockdata::transaction"],[1709,"core::option"],[1710,"serde::ser"],[1711,"core::any"],[1712,"miniscript::descriptor"],[1713,"bitcoin::network"],[1714,"bitcoin::address"],[1715,"miniscript"],[1716,"miniscript::miniscript"],[1717,"miniscript::miniscript::decode"],[1718,"miniscript::miniscript::context"],[1719,"miniscript::iter::tree"],[1720,"miniscript::descriptor::key"],[1721,"alloc::vec"],[1722,"miniscript::miniscript::satisfy"],[1723,"miniscript::plan"],[1724,"bitcoin_hashes::sha256"],[1725,"miniscript::miniscript::hash256"],[1726,"bitcoin_hashes::ripemd160"],[1727,"bitcoin_hashes::hash160"],[1728,"core::clone"],[1729,"secp256k1"],[1730,"bitcoin::crypto::key"],[1731,"secp256k1::context"],[1732,"bdk_chain::descriptor_ext"],[1733,"miniscript::blanket_traits"],[1734,"bitcoin::blockdata::script::owned"],[1735,"miniscript::miniscript::analyzable"],[1736,"secp256k1::context::alloc_only"],[1737,"bitcoin::blockdata::script::borrowed"],[1738,"core::ops::range"],[1739,"core::ops::function"],[1740,"miniscript::descriptor::bare"],[1741,"miniscript::descriptor::segwitv0"],[1742,"miniscript::descriptor::sh"],[1743,"miniscript::descriptor::tr"],[1744,"miniscript::miniscript::types"],[1745,"miniscript::miniscript::types::extra_props"],[1746,"miniscript::expression"],[1747,"miniscript::miniscript::iter"],[1748,"miniscript::policy::semantic"],[1749,"miniscript::policy"],[1750,"bitcoin_units::weight"],[1751,"alloc::collections::btree::map"],[1752,"alloc::string"],[1753,"hex_conservative::error"],[1754,"bitcoin::bip32"],[1755,"base58ck::error"],[1756,"miniscript::descriptor::sortedmulti"],[1757,"core::str::traits"],[1758,"core::convert"],[1759,"core::default"],[1760,"rand_core"],[1761,"bitcoin_units::amount"],[1762,"bitcoin_units::fee_rate"],[1763,"bdk_chain::balance"],[1764,"alloc::sync"],[1765,"bdk_chain"],[1766,"core::iter::traits::iterator"],[1767,"bitcoin::blockdata::block"],[1768,"bdk_chain::local_chain"],[1769,"bdk_chain::chain_data"],[1770,"core::iter::traits::collect"],[1771,"bdk_chain::tx_graph"],[1772,"bitcoin::psbt"],[1773,"bdk_chain::spk_client"],[1774,"bitcoin::psbt::map::input"],[1775,"bdk_wallet::wallet::utils"],[1776,"core::iter::traits::double_ended"],[1777,"bdk_chain::indexer::keychain_txout"],[1778,"bitcoin::psbt::error"],[1779,"core::marker"],[1780,"bitcoin::blockdata::script::push_bytes::primitive"],[1781,"bitcoin::blockdata::locktime::absolute"]],"i":[1,8,0,1,0,8,0,0,0,0,0,0,1,1,0,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,7,8,1,6,6,0,0,1,6,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,1,6,7,8,6,6,0,0,8,6,1,0,7,8,1,6,0,0,1,6,7,8,1,6,7,8,1,6,7,8,8,6,1,6,7,8,7,0,1,6,7,8,0,248,248,248,94,249,24,0,0,0,0,0,0,31,0,0,33,0,0,35,94,249,24,0,0,0,94,249,24,35,31,0,94,249,24,94,249,24,94,249,24,35,24,54,55,31,31,24,24,54,55,31,24,54,55,31,31,31,31,0,33,54,55,33,55,33,33,54,55,33,54,55,33,33,54,55,33,54,55,33,54,55,0,24,54,55,31,24,54,55,31,24,54,55,31,31,24,24,24,24,24,24,31,24,31,24,54,55,31,0,24,31,31,69,24,31,24,24,24,54,55,31,31,24,31,24,24,24,24,24,24,24,54,55,31,31,31,24,31,31,31,24,31,31,31,24,24,31,31,24,24,54,55,31,24,54,55,31,31,24,93,94,24,24,31,31,31,24,31,31,33,54,55,31,24,31,24,33,54,55,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,33,31,24,31,31,24,54,55,31,33,54,55,24,24,0,31,24,31,24,31,31,24,24,31,24,31,33,54,55,31,0,24,54,55,31,24,31,24,33,33,24,31,24,54,55,31,24,54,55,31,31,24,54,55,31,24,24,54,55,31,31,0,0,74,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,121,119,119,0,122,0,0,121,120,0,121,121,119,119,119,121,122,71,119,122,122,0,0,0,71,71,120,121,121,0,0,121,121,121,120,120,121,122,73,123,119,71,120,121,122,73,123,119,71,120,121,122,73,123,71,120,121,122,73,123,71,73,123,123,120,121,122,73,123,119,120,121,122,73,123,119,119,71,120,121,122,122,73,73,123,119,71,73,120,123,121,73,120,121,122,73,123,119,71,121,122,123,73,123,73,73,120,121,122,73,123,123,120,121,122,73,123,71,119,120,121,122,73,123,119,71,120,121,122,73,123,119,71,120,121,122,73,123,119,71,120,121,122,73,123,119,71,250,250,250,251,252,253,252,253,252,253,252,253,252,253,254,255,256,257,258,259,259,258,260,261,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,124,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,125,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,115,0,0,0,0,158,158,0,0,147,0,0,0,0,115,115,115,33,0,0,30,115,115,103,35,158,151,0,151,0,0,30,35,103,0,0,0,0,30,0,147,103,35,0,262,35,151,143,148,30,144,115,142,35,103,145,146,147,151,143,148,30,144,115,142,35,103,145,146,147,142,33,33,33,33,33,33,33,33,33,143,30,144,142,35,103,145,146,147,143,30,144,142,35,103,145,146,147,142,35,145,147,144,144,143,35,35,142,30,142,35,103,145,146,147,148,30,144,115,115,142,142,35,35,103,103,145,146,147,142,151,151,151,143,148,30,144,115,115,115,142,35,35,103,145,146,147,148,148,35,103,142,35,35,158,161,161,158,158,161,151,35,142,35,145,147,151,143,148,30,144,115,142,35,103,145,146,147,35,127,133,143,143,148,35,103,133,151,143,143,35,103,151,151,35,262,30,35,103,262,30,262,30,35,35,142,145,146,142,0,35,33,142,142,0,142,33,142,35,145,146,33,148,142,35,145,147,33,142,142,142,142,35,33,142,0,143,30,144,142,35,103,145,146,147,103,115,142,35,103,33,33,142,151,143,148,30,144,115,142,35,103,145,146,147,151,143,148,30,144,115,142,35,103,145,146,147,151,143,148,30,144,115,142,35,103,145,146,147,151,143,148,30,144,115,142,35,103,145,146,147,0,168,168,168,0,0,0,202,0,199,200,201,0,0,201,201,201,200,200,200,0,0,202,0,0,171,172,195,172,172,172,172,172,172,172,171,172,185,195,199,200,201,202,171,172,185,195,199,200,201,202,172,172,172,172,172,213,185,172,171,185,171,185,0,171,171,185,195,172,172,172,171,171,195,0,0,172,171,171,172,185,195,195,199,199,200,200,201,201,202,202,171,172,185,185,185,195,199,200,201,202,172,172,172,172,185,171,195,213,172,172,172,171,172,185,195,199,200,201,202,210,172,195,172,185,172,172,172,172,172,172,172,172,213,172,172,172,172,172,172,172,172,172,172,172,172,172,171,172,0,172,172,172,172,172,171,185,171,195,199,200,201,202,171,172,171,171,171,172,185,195,199,200,201,202,171,172,185,195,199,200,201,202,0,172,171,172,185,195,199,200,201,202,172,172,172,171,171,172,185,195,199,200,201,202,0,263,263,264,265,264,265,266,266,225,225,0,226,0,0,0,0,0,225,0,226,0,225,226,224,220,221,222,225,226,224,220,221,222,220,221,222,220,221,222,223,220,221,222,0,220,221,222,224,224,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,224,222,224,224,220,221,222,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,267,267,268,269,269,268,269,0,207,227,0,207,207,192,207,192,207,207,0,207,207,207,207,207,227,207,207,207,207,207,192,192,207,192,227,207,207,227,207,192,227,207,192,227,227,227,227,207,207,192,192,227,207,207,207,207,207,207,192,227,207,192,227,227,207,192,227,207,192,227,207,192,227,207,192,227,207,192,270,270,271,271,272,273,0,0,274,229,229,229,229,229,229,229,229,229,229,229,229,274,229,229,229,229,229,229,229,234,230,234,198,230,234,198,0,198,198,198,231,198,198,198,198,198,198,198,234,230,198,231,198,0,0,0,0,0,0,0,0,231,0,0,198,70,197,197,70,197,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,70,230,231,232,173,70,197,234,230,231,232,173,70,197,234,230,173,173,70,197,234,232,235,232,232,232,230,231,173,234,70,230,198,198,231,232,173,70,197,234,230,230,230,198,231,232,173,70,197,234,230,235,232,232,232,70,230,198,231,232,173,70,197,234,232,70,230,173,70,239,232,232,232,174,232,197,70,197,230,231,232,173,70,197,234,198,197,197,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,275,0,0,244,244,0,245,242,242,242,244,245,0,0,243,245,191,191,191,191,191,191,191,191,191,191,243,242,245,244,191,243,242,245,244,191,191,245,244,191,245,244,244,191,191,245,244,191,191,191,191,191,244,191,191,191,191,191,243,243,242,242,245,244,191,243,242,245,244,244,191,191,243,242,245,244,191,191,191,191,191,244,191,191,191,245,245,191,245,244,243,242,191,243,242,245,244,191,243,242,245,244,191,243,242,245,244,191,191,191,243,242,245,244,276,276,277,277],"f":"````````````{{{d{b}}}f}{{{d{b}}}{{d{{h{f}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000`{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{{d{A`}}}A`}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{b}}{d{b}}}Ad}````{c{{Af{b}}}Ah}{c{{Af{l}}}Ah}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{A`}}{d{A`}}}Aj}{{{d{b}}{d{jAl}}}An}{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}{{{d{A`}}{d{jAl}}}An}`{cc{}}000{{{d{b}}{d{jc}}}AbB`}{{{d{l}}{d{jc}}}AbB`}{ce{}{}}000````{{{d{A`}}}Bb}`{{{d{b}}{d{b}}}{{Bd{Ad}}}}``{{{d{A`}}}{{Bd{Bf}}}}{{{d{b}}c}AfBh}{{{d{l}}c}AfBh}``{{{d{c}}}e{}{}}000{c{{Af{e}}}{}{}}0000000{{{d{A`}}}{{d{Bj}}}}`{{{d{c}}}Bl{}}000`{{}{{d{Bn}}}}::::``````````````````````````````````````````{{{d{{C`{c}}}}Cb}{{Af{CdCf}}}{ChCj}}{{}Cl}0{{{d{{Cn{ce}}}}}{{d{{D`{ce}}}}}ChDb}{{{d{{d{{Cn{ce}}}}}}}{{Dd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000{{{d{{Cn{ce}}}}}{{Dn{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}0`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{Cn{cFn}}}}}{{Af{AbEh}}}Ch}2022102102{{{d{c}}}{{Af{AbEh}}}Ch}00{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{D`{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{D`{cFn}}}}}{{Af{AbEh}}}Ch}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}00`{{{d{{C`{c}}}}}{{C`{c}}}{G`Ch}}{{{d{Fl}}}Fl}{{{d{Fn}}}Fn}{{{d{{Cn{ce}}}}}{{Cn{ce}}}{G`Ch}{G`Db}}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{{C`{c}}}}{d{{C`{c}}}}}Ad{GbCh}}{{{d{Fl}}{d{Fl}}}Ad}{{{d{Fn}}{d{Fn}}}Ad}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AdChDb}{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{{C`{Dj}}}}{d{{Gd{c}}}}}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{Df}}}}{d{{Gd{c}}}}Dh}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{c}}}}}GjCh}{{{d{{C`{Df}}}}}Gl}{c{{Af{{C`{e}}}}}AhGn}{c{{Af{{Cn{eg}}}}}AhGnDb}{{{d{{C`{Df}}}}}H`}{{{d{{Cn{ce}}}}}Hb{CjCh}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}Aj{HdCh}}{{{d{Fl}}{d{Fl}}}Aj}{{{d{Fn}}{d{Fn}}}Aj}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AjChDb}`{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}`{{{d{{Cn{ce}}}}{d{Hf}}}{{Af{AbHh}}}ChDb}{{{d{Hj}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{C`{Df}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{Cn{Dfc}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}Db}{{{d{{C`{Df}}}}{d{{Gd{c}}}}{d{If}}{Ih{Dh}}}{{Af{{Bd{{Ij{Dh{C`{Gf}}}}}}Dl}}}Gh}{{{d{{C`{c}}}}{d{jAl}}}{{Af{AbIl}}}Ch}0{{{d{Fl}}{d{jAl}}}{{Af{AbIl}}}}{{{d{Fn}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{Cn{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{{C`{c}}}}e}AjCh{{J`{{d{c}}}{{In{Aj}}}}}}{{{d{{Cn{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{{{Jb{c}}}{{C`{c}}}Ch}{{{Jd{c}}}{{C`{c}}}Ch}{{{Jf{c}}}{{C`{c}}}Ch}{{{Jh{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}{{{Jl{c}}}{{C`{c}}}Ch}{cc{}}000{{{D`{ce}}}{{Af{{Cn{ce}}Cf}}}ChDb}{{{D`{ce}}JnK`}{{Cn{ce}}}ChDb}{{{d{Bn}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Bn}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{Bn}}{d{Hf}}}{{Af{{Cn{ce}}Cf}}}GnDb}1{{{d{Kb}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Kb}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{{Cn{ce}}}}Kd}{{Bd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}Kd}{{Bd{c}}}ChDb}{{{d{{C`{c}}}}e}{{Af{{Ij{{Dn{{Dn{f}}}}Hb}}Cf}}}{ChCj}{{Kf{c}}}}0{{{d{{Cn{ce}}}}}AjChDb}0{{{d{{C`{Df}}}}}Aj}{{{d{{C`{c}}}}{d{je}}}Ab{KhCh}B`}{{{d{Fl}}{d{jc}}}AbB`}{{{d{Fn}}{d{jc}}}AbB`}{{{d{{Cn{ce}}}}{d{jg}}}AbChDbB`}{ce{}{}}000{{{Cn{ce}}}{{D`{ce}}}ChDb}{{{C`{Df}}}{{Af{{Dn{{C`{Df}}}}Cf}}}}{{Kj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{Kl{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}99:{{{d{{Cn{ce}}}}}{{L`{ce}}}ChDb}{{{d{{Cn{ce}}}}}{{Lb{ce}}}ChDb}{{{d{{C`{c}}}}}{{Af{{Ld{c}}Cf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{{d{{Cn{ce}}}}}{{Af{AbLf}}}ChDb}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{cFn}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{ce}}}}}{{Af{KdCf}}}ChDb}{{{d{{C`{c}}}}}{{Af{KdCf}}}Ch}1{{{d{{C`{c}}}}}{{Af{LhCf}}}Ch}{{}{{d{Bn}}}}00{{{Cn{cLj}}}{{Af{{C`{c}}Cf}}}Ch}{c{{C`{c}}}Ch}{c{{Af{{C`{c}}Cf}}}Ch}{{{Cn{cFl}}}{{Af{{C`{c}}Cf}}}Ch}{{Kd{Dn{c}}}{{Af{{C`{c}}Cf}}}Ch}{{{Jf{c}}}{{C`{c}}}Ch}{{{Jd{c}}}{{C`{c}}}Ch}4{{{Cn{cFn}}}{{Af{{C`{c}}Cf}}}Ch}3{{c{Bd{{Ll{c}}}}}{{Af{{C`{c}}Cf}}}Ch}614`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{If}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{Gd{c}}}}{d{Bn}}}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Cf}}}Mb}1{{{d{If}}{d{Hf}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}{{Bd{Ad}}}{MdCh}}{{{d{Fl}}{d{Fl}}}{{Bd{Ad}}}}{{{d{Fn}}{d{Fn}}}{{Bd{Ad}}}}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}{{Bd{Ad}}}ChDb}{{{d{c}}}KdCh}00{{{C`{Dj}}{d{c}}}{{Af{Mf{C`{Dj}}}}}{{Ed{Dj}}}}0`{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{c}}}}}{{Af{AbCf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{AbHh}}}ChDb}{{{d{{C`{c}}}}{d{jMh}}e}{{Af{AbCf}}}{ChCj}{{Kf{c}}}}{{{d{{Cn{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}0{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}{{{d{{C`{c}}}}}Hb{ChCj}}{{{d{{Cn{ce}}}}}KdChDb}{{{d{{C`{c}}}}e}AfChBh}{{{d{{Cn{ce}}}}g}AfChDbBh}{{}Mj}00{{{d{{Cn{ce}}}}{d{{M`{Fhc}}}}}{{Cn{ce}}}ChDb}`{{{d{c}}}e{}{}}000{{{d{c}}}Ml{}}0{{{d{{C`{Df}}}}{d{{M`{DfLn}}}}}Ml}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{C`{c}}}}{d{ji}}}{{Af{{Mn{g}}}}}ChCh{}{{N`{ceg}}}}{{{d{{Cn{ce}}}}{d{jk}}}{{Af{{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}0000000`{{{d{c}}}Bl{}}000={ce{}{}}000{{{d{{Cn{ce}}}}}AjChDb}{{{d{Bn}}}{{Af{MlId}}}}{{{d{Bn}}}{{Af{{Nb{f}}Id}}}}``````````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{Id}}{d{jAl}}}An}0{NdId}{NfId}{NhId}{cc{}}{NjId}{NlId}{CfId}{NnId}>{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0{{{d{c}}}Bl{}}{ce{}{}}```````````````````````````````````>>>>>>>======={{{d{O`}}}O`}{{{d{Ob}}}Ob}{{{d{Od}}}Od}{{{d{Ib}}}Ib}{{{d{Of}}}Of}{{{d{Hn}}}Hn}{{{d{c}}{d{je}}}Ab{}{}}00000``{{}Of}{{{d{O`}}{d{O`}}}Aj}{{{d{Ob}}{d{Ob}}}Aj}{{{d{Od}}{d{Od}}}Aj}{{{d{Ib}}{d{Ib}}}Aj}{{{d{Of}}{d{Of}}}Aj}{{{d{Nn}}{d{Nn}}}Aj}{{{d{O`}}{d{jAl}}}An}{{{d{Ob}}{d{jAl}}}An}{{{d{Od}}{d{jAl}}}An}{{{d{Ib}}{d{jAl}}}An}{{{d{Of}}{d{jAl}}}An}{{{d{Nn}}{d{jAl}}}An}0{{{d{Hn}}{d{jAl}}}An}{cc{}}00{AjOd}1{ObIb}222{{{d{Ib}}{d{{M`{Ml{Dn{Kd}}}}}}}{{Af{OfNn}}}}{{{d{O`}}{d{jc}}}AbB`}{{{d{Of}}{d{jc}}}AbB`}{{{d{Ob}}}Ml}`{ce{}{}}000000{{{d{Ob}}}Aj}{{{d{Od}}}Aj}{{{d{Of}}}Aj}`{{{d{Of}}{d{Of}}}{{Bd{Ad}}}}{{{d{Ib}}}Aj}`{{{d{O`}}c}AfBh}{{{d{Ob}}c}AfBh}{{{d{Od}}c}AfBh}{{{d{Ib}}c}AfBh}{{{d{Of}}c}AfBh}`{{{d{c}}}e{}{}}00000{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0000000000000{{{d{c}}}Bl{}}000000>>>>>>>``````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{OhCb}{{Af{OjId}}}}{{{Ol{c}}Cb}{{Af{OjId}}}{{On{Fl}}}}{{{A@`{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@b{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@d{c}}Cb}{{Af{OjId}}}{{On{A@f}}}}{{{A@h{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@l{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@n{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AA`{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAb{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAd{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAf{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{{{AAh{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{cc{}}00000000000{ce{}{}}00000000000{{Oj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{c{d{{Gd{I`}}}}Cb}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Id}}}{}}00000000000{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000444444444444```````````````````````````````````````````{{}AAj}{{}Cl}{{DfDh}{{Af{DjDl}}}}{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{{d{{AAl{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}00000{{{d{c}}}{{Af{AbEh}}}Ch}{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}{{{d{{AAn{ce}}}}}{{AAn{ce}}}G`Db}{{{d{Cl}}}Cl}{{{d{AB`}}}AB`}{{{d{{AAl{ce}}}}}{{AAl{ce}}}{G`Ch}{G`Db}}{{{d{Df}}}Df}{{{d{Ln}}}Ln}{{{d{ABb}}}ABb}{{{d{ABd}}}ABd}{{{d{ABf}}}ABf}{{{d{c}}{d{je}}}Ab{}{}}00000000{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Ad{GbCh}{GbDb}}{{{d{Df}}{d{Df}}}Ad}{{{d{ABb}}{d{ABb}}}Ad}{{{d{ABf}}{d{ABf}}}Ad}`{{}AB`}{{{d{{AAn{ce}}}}}{{d{g}}}{}Db{}}{{DfDh}{{Af{DjDl}}}}{c{{Af{Df}}}Ah}{{{d{{AAl{ce}}}}}Hb{CjCh}Db}{{{d{Cl}}{d{Cl}}}Aj}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Aj{HdCh}{HdDb}}{{{d{Df}}{d{Df}}}Aj}{{{d{Ln}}{d{Ln}}}Aj}{{{d{ABb}}{d{ABb}}}Aj}{{{d{ABd}}{d{ABd}}}Aj}{{{d{ABf}}{d{ABf}}}Aj}{{{d{{ABh{c}}}}{d{jAl}}}An{ABjDb}}{{{d{Cl}}{d{jAl}}}An}{{{d{AB`}}{d{jAl}}}An}{{{d{Nf}}{d{jAl}}}An}0{{{d{{AAl{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{Df}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{Ln}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{ABb}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABd}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABf}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{AAl{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{cc{}}{ABl{{ABn{c}}}Db}{AC`{{ABn{c}}}Db}2222{CfNf}3{NjNf}44{DjDf}5555{{DfAAj}{{ABh{c}}}Db}{{LnAAj}{{ABh{c}}}Db}{{{d{Bn}}}{{Af{Df}}}}{{{d{Bn}}}{{Af{Ln}}}}{{{d{Kb}}}{{Af{{AAl{ce}}Cf}}}{ACbCh}Db}{{{d{Df}}}{{Bd{ACd}}}}{{{d{Df}}}{{Dn{ACd}}}}{c{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{{}{{Af{{AAn{ADbc}}e}}}Db{}}{{{d{jc}}}{{Af{{AAn{ADbe}}g}}}{ADdADf}Db{}}{{c{d{je}}}{{Af{{AAn{{ACl{}{{ACf{g}}{ACh{c}}{ACj{i}}}}k}}i}}}{}{ADdADf}{{ACn{{h{f}}}}AD`}ABjDb}{{ce}{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{c{{Af{{AAn{ADbe}}g}}}{}Db{}}{{{d{{ABn{c}}}}}AjDb}{{{d{Df}}}Aj}{{{d{{AAl{ce}}}}{d{jg}}}Ab{KhCh}{KhDb}B`}{{{d{Df}}{d{jc}}}AbB`}{{{d{ABb}}{d{jc}}}AbB`}{{{d{ABf}}{d{jc}}}AbB`}{ce{}{}}00000000000{DfADh}{On{{Af{{ABh{c}}Nf}}}Db}{{A@j{Bd{ADj}}ACd}{{Af{{ABh{c}}Nf}}}Db}{{{AAn{ec}}}{{Af{{ABh{c}}Nf}}}Db{{On{c}}}}{{{AAn{ec}}{Bd{ADj}}ACd}{{Af{{ABh{c}}Nf}}}Db{{A@j{c}}}}{{{ABh{c}}}{{Af{{ABh{c}}Nf}}}Db}{Df{{Af{{ABh{c}}Nf}}}Db}{Ln{{Af{{ABh{c}}Nf}}}Db}{A@j{{Af{{ABn{c}}Nf}}}Db}{{{ABn{c}}}{{Af{{ABn{c}}Nf}}}Db}{{{AAn{ec}}}{{Af{{ABn{c}}Nf}}}Db{{A@j{c}}}}{{{AAn{ce}}}c{}Db}{Df{{Dn{Df}}}}{Ln{{Dn{Ln}}}}{{{ABn{c}}Cb}{{Bd{AC`}}}Db}{{{ABn{c}}Cb{d{{Gd{e}}}}}ABlDbMb}{{{d{Df}}}Aj}{{}Aj}{{{d{Cl}}}Aj}2{{{d{Ln}}}Aj}212133{{{d{{AAl{ce}}}}}KdChDb}``{{{d{{AAl{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{}AAj}{{{d{Df}}}ADl}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}44{{{d{AAj}}{d{AAj}}}AAj}5{{}{{d{Bn}}}}{{Kd{Dn{c}}}{{Af{{AAl{ce}}Cf}}}ChDb}{{{d{Df}}}Kd}``{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{ABh{c}}AAj}{{ABh{c}}}Db}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}{{Bd{Ad}}}{MdCh}{MdDb}}{{{d{Df}}{d{Df}}}{{Bd{Ad}}}}{{{d{ABb}}{d{ABb}}}{{Bd{Ad}}}}{{{d{ABf}}{d{ABf}}}{{Bd{Ad}}}}{{{d{c}}}KdCh}{{{d{{AAl{ce}}}}}{{d{{h{c}}}}}ChDb}{{{d{{AAl{ce}}}}}{{Af{AbCf}}}ChDb}{{{d{{AAl{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}{{{d{{AAl{ce}}}}}KdChDb}{{{d{Df}}c}AfBh}{{}Mj}{{{d{{AAl{ce}}}}}{{D`{ce}}}{CjCh}Db}{{}AAj}{{{d{c}}}e{}{}}00000000{{{d{Ln}}{d{{Gd{c}}}}}{{Af{DfADn}}}Mb}{{{d{c}}}Ml{}}000{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{AAl{ce}}}}{d{jk}}}{{Af{{AAl{ge}}{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000{ce{}{}}00000000000`{{{d{AE`}}}{{Bd{AEb}}}}{{{d{AE`}}}{{Bd{AEd}}}}{{{d{AE`}}Kd}{{Bd{Bj}}}}`````````````````````{{AEfAEf}AEf}{{{d{jAEh}}bAEj{AEn{AEl}}}Ab}`{{{d{AEh}}}{{M`{b{`{{AFd{}{{AF`{{AFb{Hb}}}}}}G`}}}}}}{{{d{jAEh}}{d{AFf}}Dh}{{Af{AbAFh}}}}{{{d{jAEh}}{d{AFf}}DhAFj}{{Af{AbAFl}}}}{{{d{jAEh}}c}Ab{{AG`{}{{AF`{{Ij{{d{AFn}}H`}}}}}}}}{{{d{jAEh}}c}{{Af{AbAFh}}}{{AGd{AGb}}}}{{{d{AEh}}}{{d{{AGh{AGf}}}}}}{{{d{AEh}}}AEf}{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{jc}}}{{d{je}}}{}{}}0000000{{{d{jAEh}}AGj}{{Af{{AGn{AGl}}AH`}}}}{{{d{jAEh}}}{{AGn{AGl}}}}{{{d{AEh}}{d{AFn}}}{{Af{AEbAHb}}}}{{{d{AEh}}{d{AFn}}}{{Af{AEdAHb}}}}{{{d{jAEh}}{d{AFn}}}Ab}``{{{d{AEh}}}AHd}{{{d{AEf}}}AEf}{{{d{AGb}}}AGb}{{{d{c}}{d{je}}}Ab{}{}}0``{{}AEf}{{}AGb}{{{d{AHf}}}{{d{c}}}{}}{{{d{AEh}}b}{{Bd{Dh}}}}{{{d{AEh}}{d{If}}}{{Bd{{Ij{bDh}}}}}}{{{d{AEh}}b}Ml}{c{{Af{AEf}}}Ah}{{{d{AEf}}{d{AEf}}}Aj}{{{d{AHf}}{d{AHf}}}Aj}``{{{d{AEh}}{d{jAHh}}AHj}{{Af{AjAHl}}}}{{{d{AEf}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{AEh}}{d{jAl}}}An}{{{d{AGb}}{d{jAl}}}An}{{{d{AHf}}{d{jAl}}}An}0{{{d{AHn}}{d{jAl}}}An}0{{{d{AI`}}{d{jAl}}}An}0{{{d{AIb}}{d{jAl}}}An}0{{{d{AId}}{d{jAl}}}An}0{cc{}}0{{{AIf{b}}}AGb}1{AIhAGb}22222{{{d{AEh}}l{Bd{AIj}}Aj}{{Af{AIlAIn}}}}{{{d{AEh}}b}{{AEn{Hl}}}}{{{d{AEh}}AGj}{{Bd{{AJ`{{AEn{AFn}}AGf}}}}}}{{{d{AEh}}Bb}{{Bd{l}}}}````{{{d{jAEh}}AFj}{{Af{AjAJb}}}}{{{d{jAEh}}AFn}Aj}{{{d{jAEh}}BbBj}Ab}{ce{}{}}0000000{{{d{AJd}}{d{If}}}Aj}{{{d{AEh}}{d{If}}}Aj}`{{{d{AEh}}}{{`{{AFd{}{{AF`{{Ij{{d{b}}{d{Kl}}}}}}}}}}}}`{{{d{AEh}}}AJf}{{{d{AEh}}}{{`{{AFd{}{{AF`{l}}}}}}}}0{{{d{AEh}}b}{{`{{AJh{}{{AF`{AHf}}}}}}}}{AJj{{Af{AEhAI`}}}}{{{d{AEh}}}{{d{AJl}}}}{{{d{jAEh}}bDh}Aj}{{{d{AEh}}}Cb}`{{ccCb}{{Af{AEhAHn}}}Kj}{{cc{Bd{AJj}}Cb}{{Af{AEhAIb}}}Kj}{{cc{Bd{AJj}}CbAJn}{{Af{AEhAIb}}}Kj}{{ccCbAJn}{{Af{AEhAHn}}}Kj}{{{d{AEh}}b}Dh}{{{d{jAEh}}b}AHf}{{{d{AEh}}bDh}AHf}{{{d{AEh}}b}{{Af{{Bd{Ib}}Id}}}}{{{d{AEh}}b}{{d{Kl}}}}{{{d{jAEh}}bDh}{{`{{AFd{}{{AF`{AHf}}}}}}}}4{{{d{AEh}}}{{d{{Gd{I`}}}}}}{{{d{AEh}}{d{AFn}}}{{Ij{AEbAEb}}}}{{{d{AEf}}c}AfBh}{{{d{AEh}}{d{jAHh}}AHj}{{Af{AjAHl}}}}`{{{d{AEh}}}{{d{{AK`{b}}}}}}{{{d{AEh}}}{{Bd{{d{AJj}}}}}}{{{d{AEh}}}{{AKb{b}}}}{{{d{AEh}}}AKd}{{{d{jAEh}}}{{Bd{AJj}}}}{{{d{c}}}e{}{}}0{{{d{c}}}Ml{}}00000{{{d{AEf}}}AEb}{{{d{AEh}}}{{`{{AFd{}{{AF`{{AJ`{{AEn{AFn}}AGf}}}}}}}}}}`1{c{{Af{e}}}{}{}}000000000000000`{{{d{AEh}}}{{d{{AGh{AGf}}}}}}{{{d{c}}}Bl{}}0000000{{{d{AEh}}b}{{`{{AFd{}{{AF`{{AFb{Hb}}}}}}G`}}}}{{{d{AEh}}}{{`{{AFd{}{{AF`{{AKf{{AEn{AFn}}AGf}}}}}}}}}}{{{d{jAEh}}bDh}Aj}`{ce{}{}}0000000{{c{Bd{c}}Cb{d{{Gd{I`}}}}}{{Af{MlId}}}Kj}`````````````````````{{{d{c}}}{{d{e}}}{}{}}00000{{{d{jc}}}{{d{je}}}{}{}}00000{{{d{AKh}}}AKh}{{{d{AKj}}}AKj}{{{d{AKl}}}AKl}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{AKn}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKh}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKj}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKl}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{H`AEd{d{If}}}ALd}{{}AKh}{{}AKj}{{}AKl}``{{{d{ALb}}{d{jAl}}}An}0{{{d{ALd}}{d{jAl}}}An}{{{d{AL`}}{d{jAl}}}An}{{{d{AKh}}{d{jAl}}}An}{{{d{AKj}}{d{jAl}}}An}{{{d{AKl}}{d{jAl}}}An}{cc{}}00000{ce{}{}}00000{{{d{AL`}}}H`}{H`AKl}`1{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}00000000000{{{d{c}}}Bl{}}00000666666`````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{jc}}}{{d{je}}}{}{}}00{{{d{ALf}}}ALf}{{{d{c}}{d{je}}}Ab{}{}}{{{d{ALf}}{d{jAl}}}An}0{{{d{AIn}}{d{jAl}}}An}0{{{d{AH`}}{d{jAl}}}An}0>{ALbAIn}{IdAIn}{cc{}}{NnAIn}{ALfAIn}{ALhAIn}3{ce{}{}}00{{{d{c}}}e{}{}}{{{d{c}}}Ml{}}00{c{{Af{e}}}{}{}}00000{{{d{c}}}Bl{}}00444``````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{ALj}}}{{Bd{Ml}}}}{{{d{ALj}}}Ml}{c{{Af{ALj}}}Ah}{{{d{AEh}}{d{Bn}}Aj}{{Af{ALj{d{Bn}}}}}}{{{d{ALj}}{d{jAl}}}An}0?{{{d{Bn}}}{{Af{ALjc}}}{}}<``{{{d{ALj}}c}AfBh};::9=````````````````````````````````````{{{d{jHl}}ALlAEj{AEn{AEl}}}{{Bd{{AEn{AEl}}}}}}``{{{d{Hl}}{d{{Gd{I`}}}}}Kn}`::::::::99999999{{Kn{d{{C`{Df}}}}{d{{Gd{I`}}}}}Hl}{{{d{ALl}}}ALl}{{{d{ALn}}}ALn}{{{d{{AM`{c}}}}}{{AM`{c}}}{G`AMbABjG`}}{{{d{AEj}}}AEj}{{{d{Hl}}}Hl}{{{d{AHj}}}AHj}{{{d{AMd}}}AMd}{{{d{c}}{d{je}}}Ab{}{}}000000{{{d{ALl}}{d{ALl}}}Ad}{{{d{AEj}}{d{AEj}}}Ad}{{}AEj}{{}Hl}{{}AHj}{{}AMd}{{{d{{AM`{c}}}}}{{d{e}}}{AMbABjG`}{}}{{{d{AMf}}}{{Bd{Ln}}}}{{{d{{AM`{AMh}}}}}{{Bd{Ln}}}}{{{d{{AM`{{AMj{AC`}}}}}}}{{Bd{Ln}}}}{{{d{{AM`{{AMl{AC`}}}}}}}{{Bd{Ln}}}}{{{d{ALl}}{d{ALl}}}Aj}{{{d{ALn}}{d{ALn}}}Aj}{{{d{AEj}}{d{AEj}}}Aj}{{{d{AMd}}{d{AMd}}}Aj}{{{d{Hl}}ALl}{{Bd{{d{{AEn{AEl}}}}}}}}{{{d{ALl}}{d{jAl}}}An}{{{d{AHl}}{d{jAl}}}An}0{{{d{ALn}}{d{jAl}}}An}{{{d{{AM`{c}}}}{d{jAl}}}An{ABjAMbABjG`}}{{{d{AEj}}{d{jAl}}}An}{{{d{Hl}}{d{jAl}}}An}{{{d{AHj}}{d{jAl}}}An}{{{d{AMd}}{d{jAl}}}An}{ADlALl}{cc{}}{FhALl}1111111{{{d{ALl}}{d{jc}}}AbB`}{{{d{AMf}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMj{AC`}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{AMh}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMl{AC`}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{Hl}}}{{Dn{{d{ALl}}}}}}{ce{}{}}0000000{{cALn}{{AM`{c}}}{AMbABjG`}}{{}Hl}{{{d{ALl}}{d{ALl}}}{{Bd{Ad}}}}{{{d{AEj}}{d{AEj}}}{{Bd{Ad}}}}{{{d{jHl}}ALlAEj}{{Bd{{AEn{AEl}}}}}}{{{d{AMn}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMl{AC`}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMj{AC`}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{AMh}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{AEl}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{c}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}{}}`{{{d{Hl}}}{{Dn{{d{{AEn{AEl}}}}}}}}`{{{d{c}}}e{}{}}000000{{{d{c}}}Ml{}}``{c{{Af{e}}}{}{}}000000000000000{{{d{c}}}Bl{}}0000000{ce{}{}}0000000````````````````{{{d{j{AGn{c}}}}{d{e}}}{{d{j{AGn{c}}}}}{}{{ANb{AN`}}}}{{{d{j{AGn{c}}}}BbAIlLh}{{Af{{d{j{AGn{c}}}}ANd}}}{}}{{{d{j{AGn{c}}}}BbAIlLhBf}{{Af{{d{j{AGn{c}}}}ANd}}}{}}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}HbAEb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Bb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Bb}{{Af{{d{j{AGn{c}}}}ANf}}}{}}{{{d{j{AGn{c}}}}{d{{h{Bb}}}}}{{Af{{d{j{AGn{c}}}}ANf}}}{}}{{{d{j{AGn{c}}}}Aj}{{d{j{AGn{c}}}}}{}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{jc}}}{{d{je}}}{}{}}0000{{{d{j{AGn{c}}}}ANh}{{d{j{AGn{c}}}}}{}}{{{d{{AGn{c}}}}}{{AGn{c}}}G`}{{{d{ANj}}}ANj}{{{d{ANh}}}ANh}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{ANh}}{d{ANh}}}Ad}{{{AGn{c}}e}{{AGn{e}}}{}AKn}{{{d{j{AGn{c}}}}Dh}{{d{j{AGn{c}}}}}{}}{{}ANj}{{}ANh}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Hb}{{d{j{AGn{c}}}}}{}}11{{{d{j{AGn{c}}}}Bf}{{d{j{AGn{c}}}}}{}}{{{d{ANh}}{d{ANh}}}Aj}{{{d{j{AGn{c}}}}AEb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}AEd}{{d{j{AGn{c}}}}}{}}{{{AGn{c}}}{{Af{AHhAIn}}}AKn}{{{AGn{c}}{d{je}}}{{Af{AHhAIn}}}AKnADf}{{{d{{AGn{c}}}}{d{jAl}}}AnABj}{{{d{ANf}}{d{jAl}}}An}0{{{d{ANd}}{d{jAl}}}An}0{{{d{ANj}}{d{jAl}}}An}{{{d{ANh}}{d{jAl}}}An}{cc{}}0000{{{d{ANh}}{d{jc}}}AbB`}>{ce{}{}}0000?{{{d{j{AGn{c}}}}ANl}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}0{{{d{j{AGn{c}}}}ANj}{{d{j{AGn{c}}}}}{}}{{{d{ANh}}{d{ANh}}}{{Bd{Ad}}}}{{{d{j{AGn{c}}}}{M`{Ml{Dn{Kd}}}}b}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}{Dn{{Ij{HbAEb}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}AIj}{{d{j{AGn{c}}}}}{}}{{{d{ANj}}{d{jAFn}}}Ab}{{{d{ANj}}{d{jAFn}}{d{jc}}}AbADf}{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}0{c{{Af{e}}}{}{}}000000000{{{d{c}}}Bl{}}0000{{{d{j{AGn{c}}}}{Dn{Bb}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}ANn}{{d{j{AGn{c}}}}}{}}?????````","D":"FGb","p":[[6,"KeychainKind",0,1702],[1,"reference"],[1,"u8"],[1,"slice"],[0,"mut"],[5,"LocalOutput",0,1702],[5,"WeightedUtxo",0,1702],[6,"Utxo",0,1702],[1,"unit"],[6,"Ordering",1703],[6,"Result",1704],[10,"Deserializer",1705],[1,"bool"],[5,"Formatter",1706],[8,"Result",1706],[10,"Hasher",1707],[5,"OutPoint",1708],[6,"Option",1709],[5,"Sequence",1708],[10,"Serializer",1710],[5,"TxOut",1708],[5,"TypeId",1711],[1,"str"],[6,"Descriptor",100,1712],[6,"Network",1713],[5,"Address",1714],[6,"Error",1715],[10,"MiniscriptKey",1715],[10,"ToPublicKey",1715],[6,"ScriptContextEnum",693],[5,"Miniscript",100,1716],[6,"Terminal",1717],[10,"ScriptContext",693,1718],[6,"Tree",1719],[6,"DescriptorPublicKey",693,1720],[1,"u32"],[5,"DefiniteDescriptorKey",1720],[6,"ConversionError",1720],[5,"Vec",1721],[6,"Placeholder",1722],[5,"Satisfaction",1722],[10,"AssetProvider",1723],[17,"Key"],[6,"ScriptContextError",1718],[17,"Sha256"],[5,"Hash",1724],[17,"Hash256"],[5,"Hash",1725],[17,"Ripemd160"],[5,"Hash",1726],[17,"Hash160"],[5,"Hash",1727],[10,"ParseableKey",1717],[6,"Legacy",100,1718],[6,"Segwitv0",100,1718],[10,"Clone",1728],[10,"Ord",1703],[5,"Secp256k1",1729],[5,"PublicKey",1730],[10,"Verification",1731],[6,"DescriptorType",1712],[5,"DescriptorId",1732],[10,"FromStrKey",1733],[1,"u64"],[5,"ScriptBuf",1734],[10,"PartialEq",1703],[5,"ExtParams",1735],[6,"AnalysisError",1735],[10,"ExtractPolicy",100],[5,"SignersContainer",1407],[6,"BuildSatisfaction",386],[6,"All",1736],[5,"Policy",386],[6,"Error",354],[5,"Script",1737],[5,"Range",1738],[1,"tuple"],[5,"Error",1706],[17,"Output"],[10,"FnMut",1739],[5,"Bare",1740],[5,"Wsh",1741],[5,"Wpkh",1741],[5,"Sh",1742],[5,"Tr",1743],[5,"Pkh",1740],[5,"Type",1744],[5,"ExtData",1745],[5,"Tree",1746],[1,"usize"],[10,"Satisfier",1722],[10,"Hash",1707],[10,"IntoWalletDescriptor",100],[8,"ExtendedDescriptor",100],[8,"KeyMap",693,1712],[5,"Iter",1747],[5,"PkIter",1747],[6,"Policy",1748],[6,"LiftError",1749],[5,"Weight",1750],[6,"BareCtx",1718],[6,"TapTree",1743],[6,"DescriptorSecretKey",693,1720],[5,"BTreeMap",1751],[10,"Signing",1731],[10,"PartialOrd",1703],[5,"Plan",1723],[5,"TxIn",1708],[6,"SigType",1718],[5,"String",1752],[6,"TranslateErr",1715],[10,"Translator",1715],[1,"array"],[6,"ParsePublicKeyError",1730],[6,"KeyError",693],[6,"HexToBytesError",1753],[6,"Error",1754],[6,"Error",1755],[6,"PolicyError",386],[6,"PkOrF",386],[6,"SatisfiableItem",386],[6,"Satisfaction",386],[5,"Condition",386],[10,"DescriptorTemplate",557],[8,"DescriptorTemplateOut",557],[5,"P2Pkh",557],[10,"IntoDescriptorKey",693],[5,"P2Wpkh_P2Sh",557],[5,"P2Wpkh",557],[5,"P2TR",557],[6,"Tap",1718],[5,"Bip44",557],[10,"DerivableKey",693],[5,"Bip44Public",557],[5,"Bip49",557],[5,"Bip49Public",557],[5,"Bip84",557],[5,"Bip84Public",557],[5,"Bip86",557],[5,"Bip86Public",557],[8,"ValidNetworks",693],[5,"SortedMultiVec",693,1756],[5,"GeneratedKey",693],[5,"PrivateKeyGenerateOptions",693],[5,"SinglePub",693,1720],[5,"SinglePriv",693,1720],[6,"SinglePubKey",693,1720],[6,"DescriptorKey",693],[10,"Debug",1706],[5,"Xpub",1754],[6,"ExtendedKey",693],[5,"Xpriv",1754],[10,"FromStr",1757],[5,"DerivationPath",1754],[17,"Entropy"],[17,"Options"],[17,"Error"],[10,"GeneratableKey",693],[10,"AsMut",1758],[10,"Default",1759],[10,"GeneratableDefaultOptions",693],[10,"CryptoRng",1760],[10,"RngCore",1760],[5,"Assets",1723],[8,"KeySource",1754],[5,"Fingerprint",1754],[5,"DescriptorKeyParseError",1720],[10,"PsbtUtils",994],[5,"Amount",1761],[5,"FeeRate",1762],[5,"Balance",998,1763],[5,"Wallet",998],[5,"SignerOrdering",1407],[10,"TransactionSigner",1407],[5,"Arc",1764],[17,"Item"],[8,"Indexed",1765],[10,"Iterator",1766],[5,"Block",1767],[5,"CannotConnectError",1768],[5,"BlockId",1769],[6,"ApplyHeaderError",1768],[5,"Transaction",1708],[10,"IntoIterator",1770],[5,"Update",998],[10,"Into",1758],[5,"ConfirmationTimeHeightAnchor",1769],[5,"TxGraph",1771],[5,"Txid",1708],[8,"DefaultCoinSelectionAlgorithm",1208],[5,"TxBuilder",1585],[6,"BuildFeeBumpError",1307],[6,"CalculateFeeError",1771],[5,"CheckPointIter",1768],[5,"AddressInfo",998],[5,"Psbt",1772],[5,"SignOptions",1407],[6,"SignerError",1407],[6,"NewError",998],[6,"LoadError",998],[6,"NewOrLoadError",998],[6,"ApplyBlockError",998],[5,"FullScanResult",1773],[5,"SyncResult",1773],[5,"PsbtSighashType",1774],[5,"Input",1774],[6,"CreateTxError",1307],[5,"CanonicalTx",1771],[5,"AlterCheckPointError",1768],[10,"IsDust",998,1775],[5,"CheckPoint",1768],[10,"DoubleEndedIterator",1776],[8,"ChangeSet",998],[5,"LocalChain",1768],[5,"BlockHash",1767],[5,"KeychainTxOutIndex",1777],[5,"FullScanRequest",1773],[5,"SyncRequest",1773],[5,"TxNode",1771],[5,"LargestFirstCoinSelection",1208],[5,"OldestFirstCoinSelection",1208],[5,"BranchAndBoundCoinSelection",1208],[10,"CoinSelectionAlgorithm",1208],[5,"CoinSelectionResult",1208],[6,"Error",1208],[6,"Excess",1208],[6,"MiniscriptPsbtError",1307],[6,"Error",1778],[5,"FullyNodedExport",1384],[6,"SignerId",1407],[6,"SignerContext",1407],[5,"SignerWrapper",1407],[10,"Sized",1779],[6,"TapLeavesOptions",1407],[10,"SignerCommon",1407],[5,"PrivateKey",1730],[5,"DescriptorXKey",1720],[5,"DescriptorMultiXKey",1720],[10,"InputSigner",1407],[5,"PushBytes",1780],[10,"AsRef",1758],[6,"AddForeignUtxoError",1585],[6,"AddUtxoError",1585],[6,"ChangeSpendPolicy",1585],[6,"TxOrdering",1585],[6,"LockTime",1781],[1,"i32"],[15,"Foreign",97],[8,"DerivedDescriptor",100],[15,"PsbtTimelocks",533],[15,"Complete",536],[15,"Partial",536],[15,"PartialComplete",536],[15,"Sha256Preimage",547],[15,"Hash256Preimage",547],[15,"Ripemd160Preimage",547],[15,"Hash160Preimage",547],[15,"Thresh",547],[15,"Multisig",547],[15,"AbsoluteTimelock",547],[15,"RelativeTimelock",547],[10,"ExtScriptContext",693],[15,"UnexpectedConnectedToHash",1200],[15,"LoadedGenesisDoesNotMatch",1202],[15,"LoadedNetworkDoesNotMatch",1202],[15,"LoadedDescriptorDoesNotMatch",1202],[15,"InsufficientFunds",1300],[15,"Change",1302],[15,"NoChange",1302],[15,"RbfSequenceCsv",1378],[15,"LockTime",1378],[15,"FeeTooLow",1378],[15,"FeeRateTooLow",1378],[8,"WalletExport",1384],[15,"Tap",1584],[15,"InvalidTxid",1698],[15,"Custom",1700]],"r":[[2,100],[4,1702],[6,1702],[7,1407],[8,1585],[9,1702],[10,998],[11,1702],[70,998],[71,100],[104,1712],[106,1720],[113,1718],[114,1716],[119,386],[120,1718],[121,1718],[155,352],[696,1720],[697,1720],[712,1712],[722,1718],[727,1720],[728,1720],[729,1720],[730,1756],[1000,1763],[1006,1775]],"b":[[193,"impl-Descriptor%3CDefiniteDescriptorKey%3E"],[194,"impl-Descriptor%3CDescriptorPublicKey%3E"],[213,"impl-Debug-for-Descriptor%3CPk%3E"],[214,"impl-Display-for-Descriptor%3CPk%3E"],[217,"impl-Debug-for-Miniscript%3CPk,+Ctx%3E"],[218,"impl-Display-for-Miniscript%3CPk,+Ctx%3E"],[221,"impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[222,"impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[223,"impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[224,"impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[225,"impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[226,"impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[370,"impl-Display-for-Error"],[371,"impl-Debug-for-Error"],[372,"impl-From%3CParsePublicKeyError%3E-for-Error"],[373,"impl-From%3CKeyError%3E-for-Error"],[374,"impl-From%3CHexToBytesError%3E-for-Error"],[376,"impl-From%3CError%3E-for-Error"],[377,"impl-From%3CError%3E-for-Error"],[378,"impl-From%3CError%3E-for-Error"],[379,"impl-From%3CPolicyError%3E-for-Error"],[461,"impl-Display-for-PolicyError"],[462,"impl-Debug-for-PolicyError"],[811,"impl-Display-for-KeyError"],[812,"impl-Debug-for-KeyError"],[813,"impl-Display-for-SortedMultiVec%3CPk,+Ctx%3E"],[814,"impl-Debug-for-SortedMultiVec%3CPk,+Ctx%3E"],[815,"impl-Debug-for-DescriptorPublicKey"],[816,"impl-Display-for-DescriptorPublicKey"],[817,"impl-Debug-for-DescriptorSecretKey"],[818,"impl-Display-for-DescriptorSecretKey"],[824,"impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E"],[825,"impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E"],[830,"impl-From%3CError%3E-for-KeyError"],[832,"impl-From%3CError%3E-for-KeyError"],[874,"impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[875,"impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[1071,"impl-Debug-for-Balance"],[1072,"impl-Display-for-Balance"],[1075,"impl-Debug-for-AddressInfo"],[1076,"impl-Display-for-AddressInfo"],[1077,"impl-Display-for-NewError"],[1078,"impl-Debug-for-NewError"],[1079,"impl-Display-for-LoadError"],[1080,"impl-Debug-for-LoadError"],[1081,"impl-Debug-for-NewOrLoadError"],[1082,"impl-Display-for-NewOrLoadError"],[1083,"impl-Debug-for-ApplyBlockError"],[1084,"impl-Display-for-ApplyBlockError"],[1087,"impl-From%3CFullScanResult%3CKeychainKind%3E%3E-for-Update"],[1089,"impl-From%3CSyncResult%3E-for-Update"],[1249,"impl-Debug-for-Error"],[1250,"impl-Display-for-Error"],[1345,"impl-Debug-for-MiniscriptPsbtError"],[1346,"impl-Display-for-MiniscriptPsbtError"],[1347,"impl-Display-for-CreateTxError"],[1348,"impl-Debug-for-CreateTxError"],[1349,"impl-Display-for-BuildFeeBumpError"],[1350,"impl-Debug-for-BuildFeeBumpError"],[1352,"impl-From%3CError%3E-for-CreateTxError"],[1353,"impl-From%3CError%3E-for-CreateTxError"],[1355,"impl-From%3CPolicyError%3E-for-CreateTxError"],[1356,"impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError"],[1357,"impl-From%3CError%3E-for-CreateTxError"],[1394,"impl-Debug-for-FullyNodedExport"],[1395,"impl-Display-for-FullyNodedExport"],[1487,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1488,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1489,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1496,"impl-Debug-for-SignerError"],[1497,"impl-Display-for-SignerError"],[1504,"impl-From%3CFingerprint%3E-for-SignerId"],[1506,"impl-From%3CHash%3E-for-SignerId"],[1516,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1517,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1518,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1534,"impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1535,"impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1536,"impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E"],[1642,"impl-Debug-for-AddUtxoError"],[1643,"impl-Display-for-AddUtxoError"],[1644,"impl-Display-for-AddForeignUtxoError"],[1645,"impl-Debug-for-AddForeignUtxoError"]],"c":"OjAAAAEAAAAAAAUAEAAAAMEAAwEPAR8DeANqBQ==","e":"OzAAAAEAAG0DgAADAAAACAABAAsAAAAOABMAJgAJADUAAQA+AAAAQQAAAEUADwBXAAMAXQADAGoAAAB4AAAAjAABAI8AAACRAAcAnAAAAJ4AAQChAAAApAABAKcAAQCrAAEArgABALEAAQC0AAsAxQADAMoAAwDTAAEA1gANAOoAAAD3AAMAAgEAAAgBAQAMAQEAEwEBACkBAwAuAQEAPAEBAD8BAQBDAQUATgEHAFcBAwBcAQMAcQEGAHkBAwB+AQQApgEZAMIBDgDUAQAA1gEAANsBAQDqAQAA7QEEAPMBIgA8AhcAVQILAHkCPADkAhcABgMVAB0DAQAgAwAAIgMVADkDAQA/AwAAQQMAAEQDAABLAwEAWAMDAGgDAABrAwQAcQMBAIEDAQCGAwAAkAMAAJUDAwCeAwAAogMIAKwDAwCzAy8A/AMAAAQEAAAGBA8AHgQDACQEAgAqBAIAMAQNAEAEAABCBAAAdgQAAH4EBwCKBA8AnAQHAKgEBwDGBBEA2QQCAN0EAgDiBAYA+QQbADoFDQBJBQEATAUCAFMFDwBtBQEAcQUAAHMFAQB2BQAAegUFAKkFDwC6BRQA0AUGANgFCQDjBQAA6wUAAO0FAgD7BQEA/wUCAAMGAAAHBgcAEQYfAEoGCQBVBgYAXgYBAGUGAABqBgYAdgYAAIIGAACIBhMAngYEAA=="}],\ +["bdk_tmp_plan",{"t":"FKPPPPFFGGFFPPPGPPONNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNOONHNNNNOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOOOOOOOO","n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashP2wpkh","SigHashTaproot","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":[[0,"bdk_tmp_plan"],[151,"bdk_tmp_plan::PlanState"],[153,"bdk_tmp_plan::RequiredSignatures"],[159,"miniscript::descriptor::key"],[160,"bitcoin::bip32"],[161,"core::option"],[162,"bdk_tmp_plan::requirements"],[163,"core::clone"],[164,"bdk_tmp_plan::template"],[165,"core::fmt"],[166,"bitcoin::crypto::sighash"],[167,"miniscript::descriptor"],[168,"bitcoin::blockdata::locktime::absolute"],[169,"bitcoin::blockdata::transaction"],[170,"secp256k1"],[171,"core::result"],[172,"core::borrow"],[173,"secp256k1::context"],[174,"alloc::string"],[175,"core::any"],[176,"bitcoin::blockdata::script::witness_version"]],"i":[0,0,42,10,42,9,0,0,0,0,0,0,9,10,10,0,9,9,11,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,3,7,9,10,11,12,13,14,7,9,10,11,12,13,14,7,9,13,14,11,11,13,12,7,9,10,10,11,12,13,14,42,7,9,10,10,10,10,11,12,13,14,14,7,13,14,7,13,42,7,9,10,11,12,13,14,14,14,12,0,12,12,12,7,14,7,13,13,14,7,13,9,7,7,9,10,11,12,13,14,10,12,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,14,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,12,45,45,46,47,48,49,49,48],"f":"```````````````````{{{b{c}}}{{b{e}}}{}{}}0000000{{{b{dc}}}{{b{de}}}{}{}}0000000{{{b{f}}{b{h}}}{{l{j}}}}{{{b{{n{c}}}}}{{n{c}}}A`}{{{b{{Ab{c}}}}}{{Ab{c}}}A`}{{{b{Ad}}}Ad}{{{b{{Af{c}}}}}{{Af{c}}}A`}{{{b{{Ah{c}}}}}{{Ah{c}}}A`}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}A`}{{{b{c}}{b{de}}}An{}{}}000000{{}{{n{c}}}{}}{{}{{Ab{c}}}{}}{{}Aj}{{}{{Al{c}}}{}}```{{{b{{Ah{c}}}}}B`A`}{{{b{{n{c}}}}{b{dBb}}}BdBf}{{{b{{Ab{c}}}}{b{dBb}}}BdBf}{{{b{Ad}}{b{dBb}}}Bd}0{{{b{{Af{c}}}}{b{dBb}}}BdBf}{{{b{{Ah{c}}}}{b{dBb}}}BdBf}{{{b{Aj}}{b{dBb}}}Bd}{{{b{{Al{c}}}}{b{dBb}}}BdBf}{cc{}}000{BhAd}{BjAd}{BlAd}3333``````{ce{}{}}0000000``{{{b{{Ah{c}}}}}{{l{Bn}}}A`}{{{b{{C`{h}}}}{b{{Al{c}}}}}{{l{{Ah{c}}}}}{fA`}}{{{b{{Ah{c}}}}}{{l{Cb}}}A`}{{{b{{Ah{c}}}}}{{l{Cd}}}A`}{{{b{{Ah{c}}}}}{{n{c}}}A`}{{{b{{n{c}}}}}Cf{}}```````{{{b{{Ab{Ch}}}}B`{b{Cj}}{b{{Cl{c}}}}{l{Cn}}{l{D`}}{b{d{Db{e}}}}{b{dAj}}{b{{Dd{g}}}}}{{Df{CfAd}}}{{Dj{Dh}}}{{Dj{Dl}}}{DnE`}}`{{{b{c}}}e{}{}}000000{{{b{c}}}Eb{}}{{{b{{Ah{c}}}}{b{Aj}}}{{Ed{c}}}A`}{c{{Df{e}}}{}{}}000000000000000`{{{b{c}}}Ef{}}0000000<<<<<<<<{{{b{{Ah{c}}}}}{{l{Eh}}}A`}````````","D":"Fl","p":[[1,"reference"],[0,"mut"],[10,"CanDerive",0],[5,"DefiniteDescriptorKey",159],[5,"DerivationPath",160],[6,"Option",161],[5,"Requirements",0,162],[10,"Clone",163],[6,"RequiredSignatures",0,162],[6,"SigningError",0,162],[5,"PlanKey",0,164],[5,"Plan",0],[5,"SatisfactionMaterial",0],[5,"Assets",0],[1,"unit"],[1,"usize"],[5,"Formatter",165],[8,"Result",165],[10,"Debug",165],[6,"Error",160],[6,"TaprootError",166],[6,"P2wpkhError",166],[1,"u32"],[6,"Descriptor",167],[6,"LockTime",168],[5,"Sequence",169],[1,"bool"],[6,"DescriptorPublicKey",159],[8,"KeyMap",167],[6,"Prevouts",166],[6,"TapSighashType",166],[6,"EcdsaSighashType",166],[5,"SighashCache",166],[5,"Secp256k1",170],[6,"Result",171],[5,"TxOut",169],[10,"Borrow",172],[5,"Transaction",169],[10,"Signing",173],[10,"Verification",173],[5,"String",174],[6,"PlanState",0],[5,"TypeId",175],[6,"WitnessVersion",176],[15,"Complete",151],[15,"Legacy",153],[15,"Segwitv0",153],[15,"TapScript",153],[15,"TapKey",153]],"r":[[7,164],[9,162],[10,162],[15,162]],"b":[[60,"impl-Display-for-SigningError"],[61,"impl-Debug-for-SigningError"],[70,"impl-From%3CError%3E-for-SigningError"],[71,"impl-From%3CTaprootError%3E-for-SigningError"],[72,"impl-From%3CP2wpkhError%3E-for-SigningError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGkAEAABAAEABAABAA4AAgAUACIAOwAHAEcAAgBOAAAAUQAAAFwAAQBfAAAAYgAAAGQAAABoAAAAawAAAG0AKQCaAAEA"}],\ +["bdk_wallet",{"t":"PPEPGPFEEGEFNNDNNNNNNNNENNNNNNNNNOOCQNNNNNNNNNNQNNNNNNNNNNOOCDNONCONNNEENNNNNNNNNNNNNONNNNOHNNNNCOOOPPPIGEGIKTIKRGFPPPPEKGPPPPTIPPPPPPPPPPNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNMNNMNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNCNONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNONNNNNNNNNMNNNNCNNNNNNNNNNNMNNNCNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHHPPGPPPPPPPPPPPNNNNNNNNNNNNNNNNNNPPPGPFIPPIPPPPPPPPPPPGFGPPPPPGGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOFFFFFFFFKIFFFFNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPKGGGRRKGPKKFKPPPRGIPPPPPRPFPKGPPPFFGFPIPPPHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNOONHNMNNHNMNNOONNNNNNMNNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMMMFGFPIPPPKGPPPPPPGGPFFNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNCONNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNMNONONNNNNNNNONNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNCNNNNNNNNNNNNONNNNNNNNHOOOOOOOOPPFPKFIGGPFPFNNNNNNNNNNNNNNNNNNMNNNHNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOGPPGPPPPPPPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFIOONNNNNNNNNNNOONNNNNNPPPPPPPKPPPPPPPPPPPPPPPPFKGGGFFFPGKPNOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNMNONONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOGGPPGPPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOO","n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","miniscript","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","Bare","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","FALSE","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Pkh","Pkh","Policy","ScriptContext","Segwitv0","Sh","Sh","Sh","Single","TRUE","TapKeyOrigins","Tr","Tr","Tr","Wpkh","Wpkh","Wpkh","Wsh","Wsh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","ExternalAndInternalAreTheSame","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_default_with_aux_rand","generate_with_aux_rand","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","n","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","Descriptor","Descriptor","Descriptor","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone_into","clone_into","coin_selection","confirmed","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","is_dust","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load_from_changeset","local_chain","mark_used","network","network","new","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","take_staged","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unbroadcast_transactions","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","csv","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Psbt","Segwitv0","SighashTaproot","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","remove","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","Custom","InvalidOutpoint","InvalidTxid","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone_into","clone_into","clone_into","cmp","coin_selection","current_height","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","fee_absolute","fee_rate","finish","finish_with_aux_rand","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","policy_path","set_recipients","sighash","sort_tx","sort_tx_with_aux_rand","to_owned","to_owned","to_owned","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","unspendable","version","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid","input_sort","output_sort"],"q":[[0,"bdk_wallet"],[97,"bdk_wallet::Utxo"],[100,"bdk_wallet::descriptor"],[352,"bdk_wallet::descriptor::checksum"],[354,"bdk_wallet::descriptor::error"],[386,"bdk_wallet::descriptor::policy"],[533,"bdk_wallet::descriptor::policy::BuildSatisfaction"],[536,"bdk_wallet::descriptor::policy::Satisfaction"],[547,"bdk_wallet::descriptor::policy::SatisfiableItem"],[557,"bdk_wallet::descriptor::template"],[693,"bdk_wallet::keys"],[994,"bdk_wallet::psbt"],[998,"bdk_wallet::wallet"],[1200,"bdk_wallet::wallet::ApplyBlockError"],[1202,"bdk_wallet::wallet::NewOrLoadError"],[1208,"bdk_wallet::wallet::coin_selection"],[1300,"bdk_wallet::wallet::coin_selection::Error"],[1302,"bdk_wallet::wallet::coin_selection::Excess"],[1307,"bdk_wallet::wallet::error"],[1378,"bdk_wallet::wallet::error::CreateTxError"],[1384,"bdk_wallet::wallet::export"],[1407,"bdk_wallet::wallet::signer"],[1584,"bdk_wallet::wallet::signer::SignerContext"],[1585,"bdk_wallet::wallet::tx_builder"],[1698,"bdk_wallet::wallet::tx_builder::AddForeignUtxoError"],[1700,"bdk_wallet::wallet::tx_builder::TxOrdering"],[1702,"bdk_wallet::types"],[1703,"core::cmp"],[1704,"core::result"],[1705,"serde::de"],[1706,"core::fmt"],[1707,"core::hash"],[1708,"bitcoin::blockdata::transaction"],[1709,"core::option"],[1710,"serde::ser"],[1711,"core::any"],[1712,"miniscript::descriptor"],[1713,"bitcoin::network"],[1714,"bitcoin::address"],[1715,"miniscript"],[1716,"miniscript::miniscript"],[1717,"miniscript::miniscript::decode"],[1718,"miniscript::miniscript::context"],[1719,"miniscript::iter::tree"],[1720,"miniscript::descriptor::key"],[1721,"alloc::vec"],[1722,"miniscript::miniscript::satisfy"],[1723,"miniscript::plan"],[1724,"bitcoin_hashes::sha256"],[1725,"miniscript::miniscript::hash256"],[1726,"bitcoin_hashes::ripemd160"],[1727,"bitcoin_hashes::hash160"],[1728,"core::clone"],[1729,"secp256k1"],[1730,"bitcoin::crypto::key"],[1731,"secp256k1::context"],[1732,"bdk_chain::descriptor_ext"],[1733,"miniscript::blanket_traits"],[1734,"bitcoin::blockdata::script::owned"],[1735,"miniscript::miniscript::analyzable"],[1736,"secp256k1::context::alloc_only"],[1737,"bitcoin::blockdata::script::borrowed"],[1738,"core::ops::range"],[1739,"core::ops::function"],[1740,"miniscript::descriptor::bare"],[1741,"miniscript::descriptor::tr"],[1742,"miniscript::descriptor::segwitv0"],[1743,"miniscript::descriptor::sh"],[1744,"miniscript::miniscript::types"],[1745,"miniscript::miniscript::types::extra_props"],[1746,"miniscript::expression"],[1747,"miniscript::miniscript::iter"],[1748,"miniscript::policy::semantic"],[1749,"miniscript::policy"],[1750,"bitcoin_units::weight"],[1751,"alloc::collections::btree::map"],[1752,"alloc::string"],[1753,"hex_conservative::error"],[1754,"bitcoin::bip32"],[1755,"base58ck::error"],[1756,"miniscript::descriptor::sortedmulti"],[1757,"core::str::traits"],[1758,"core::convert"],[1759,"core::default"],[1760,"rand_core"],[1761,"bitcoin_units::amount"],[1762,"bitcoin_units::fee_rate"],[1763,"bdk_chain::balance"],[1764,"alloc::sync"],[1765,"bdk_chain"],[1766,"core::iter::traits::iterator"],[1767,"bitcoin::blockdata::block"],[1768,"bdk_chain::local_chain"],[1769,"bdk_chain::chain_data"],[1770,"core::iter::traits::collect"],[1771,"bdk_chain::tx_graph"],[1772,"bitcoin::psbt"],[1773,"bdk_chain::spk_client"],[1774,"bitcoin::psbt::map::input"],[1775,"bdk_wallet::wallet::utils"],[1776,"core::iter::traits::double_ended"],[1777,"bdk_chain::indexer::keychain_txout"],[1778,"bitcoin::psbt::error"],[1779,"core::marker"],[1780,"bitcoin::blockdata::script::push_bytes::primitive"],[1781,"bitcoin::blockdata::locktime::absolute"]],"i":[1,8,0,1,0,8,0,0,0,0,0,0,1,1,0,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,7,8,1,6,6,0,0,1,6,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,1,6,7,8,6,6,0,0,8,6,1,0,7,8,1,6,0,0,1,6,7,8,1,6,7,8,1,6,7,8,8,6,1,6,7,8,7,0,1,6,7,8,0,248,248,248,94,249,24,0,0,0,0,0,0,31,0,0,33,0,0,35,94,249,24,0,0,0,94,249,24,35,31,0,94,249,24,94,249,24,94,249,24,35,24,54,55,31,31,24,24,54,55,31,24,54,55,31,31,31,31,0,33,54,55,33,55,33,33,54,55,33,54,55,33,33,54,55,33,54,55,33,54,55,0,24,54,55,31,24,54,55,31,24,54,55,31,31,24,24,24,24,24,24,31,24,31,24,54,55,31,0,24,31,31,69,24,31,24,24,24,54,55,31,31,24,31,24,24,24,24,24,24,24,54,55,31,31,31,24,31,31,31,24,31,31,31,24,24,31,31,24,24,54,55,31,24,54,55,31,31,24,93,94,24,24,31,31,31,24,31,31,33,54,55,31,24,31,24,33,54,55,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,33,31,24,31,31,24,54,55,31,33,54,55,24,24,0,31,24,31,24,31,31,24,24,31,24,31,33,54,55,31,0,24,54,55,31,24,31,24,33,33,24,31,24,54,55,31,24,54,55,31,31,24,54,55,31,24,24,54,55,31,31,0,0,74,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,121,116,116,0,122,0,0,121,120,0,121,121,116,116,116,121,122,71,116,122,122,0,0,0,71,71,120,121,121,0,0,121,121,121,120,120,121,122,73,123,116,71,120,121,122,73,123,116,71,120,121,122,73,123,71,120,121,122,73,123,71,73,123,123,120,121,122,73,123,116,120,121,122,73,123,116,116,71,120,121,122,122,73,73,123,116,71,73,120,123,121,73,120,121,122,73,123,116,71,121,122,123,73,123,73,73,120,121,122,73,123,123,120,121,122,73,123,71,116,120,121,122,73,123,116,71,120,121,122,73,123,116,71,120,121,122,73,123,116,71,120,121,122,73,123,116,71,250,250,250,251,252,253,252,253,252,253,252,253,252,253,254,255,256,257,258,259,259,258,260,261,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,124,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,125,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,117,0,0,0,0,158,158,0,0,147,0,0,0,0,117,117,117,33,0,0,30,117,117,103,35,158,151,0,151,0,0,30,35,103,0,0,0,0,30,0,147,103,35,0,262,35,151,143,148,30,144,117,142,35,103,145,146,147,151,143,148,30,144,117,142,35,103,145,146,147,142,33,33,33,33,33,33,33,33,33,143,30,144,142,35,103,145,146,147,143,30,144,142,35,103,145,146,147,142,35,145,147,144,144,143,35,35,142,30,142,35,103,145,146,147,148,30,144,117,117,142,142,35,35,103,103,145,146,147,142,151,151,151,143,148,30,144,117,117,117,142,35,35,103,145,146,147,148,148,35,103,142,35,35,158,161,161,158,158,161,151,35,142,35,145,147,151,143,148,30,144,117,142,35,103,145,146,147,35,127,133,143,143,148,35,103,133,151,143,143,35,103,151,151,35,262,30,35,103,262,30,262,30,35,35,142,145,146,142,0,35,33,142,142,0,142,33,142,35,145,146,33,148,142,35,145,147,33,142,142,142,142,35,33,142,0,143,30,144,142,35,103,145,146,147,103,117,142,35,103,33,33,142,151,143,148,30,144,117,142,35,103,145,146,147,151,143,148,30,144,117,142,35,103,145,146,147,151,143,148,30,144,117,142,35,103,145,146,147,151,143,148,30,144,117,142,35,103,145,146,147,0,168,168,168,0,0,0,202,0,199,200,201,0,0,201,201,201,200,200,200,0,0,202,0,0,171,172,195,172,172,172,172,172,172,172,171,172,185,195,199,200,201,202,171,172,185,195,199,200,201,202,172,172,172,172,172,213,185,172,171,185,171,185,0,171,171,185,195,172,172,172,171,171,195,0,0,172,171,171,172,185,195,195,199,199,200,200,201,201,202,202,171,172,185,185,185,195,199,200,201,202,172,172,172,172,185,171,195,213,172,172,172,171,172,185,195,199,200,201,202,210,172,195,172,185,172,172,172,172,172,172,172,172,213,172,172,172,172,172,172,172,172,172,172,172,172,172,171,172,0,172,172,172,172,172,171,185,171,195,199,200,201,202,171,172,171,171,171,172,185,195,199,200,201,202,171,172,185,195,199,200,201,202,0,172,171,172,185,195,199,200,201,202,172,172,172,171,171,172,185,195,199,200,201,202,0,263,263,264,265,264,265,266,266,225,225,0,226,0,0,0,0,0,225,0,226,0,225,226,224,220,221,222,225,226,224,220,221,222,220,221,222,220,221,222,223,220,221,222,0,220,221,222,224,224,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,224,222,224,224,220,221,222,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,267,267,268,269,269,268,269,0,207,227,0,207,207,192,207,192,207,207,0,207,207,207,207,207,227,207,207,207,207,207,192,192,207,192,227,207,207,227,207,192,227,207,192,227,227,227,227,207,207,192,192,227,207,207,207,207,207,207,192,227,207,192,227,227,207,192,227,207,192,227,207,192,227,207,192,227,207,192,270,270,271,271,272,273,0,0,274,229,229,229,229,229,229,229,229,229,229,229,229,274,229,229,229,229,229,229,229,234,230,234,198,230,234,198,0,198,198,198,231,198,198,198,198,198,198,198,234,230,198,231,198,0,0,0,0,0,0,0,0,231,0,0,198,70,197,197,70,197,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,70,230,231,232,173,70,197,234,230,231,232,173,70,197,234,230,173,173,70,197,234,232,235,232,232,232,230,231,173,234,70,230,198,198,231,232,173,70,197,234,230,230,230,198,231,232,173,70,197,234,230,235,232,232,232,70,230,198,231,232,173,70,197,234,232,70,230,173,70,239,232,232,232,174,232,197,70,197,230,231,232,173,70,197,234,198,197,197,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,230,198,231,232,173,70,197,234,275,0,0,244,244,0,245,242,242,242,244,245,0,0,243,245,191,191,191,191,191,191,191,191,191,191,243,242,245,244,191,243,242,245,244,191,191,245,244,191,245,244,244,191,191,245,244,191,191,191,191,191,244,191,191,191,191,191,243,243,242,242,245,244,191,243,242,245,244,244,191,191,243,242,245,244,191,191,191,191,191,244,191,191,191,245,245,191,245,244,243,242,191,243,242,245,244,191,243,242,245,244,191,243,242,245,244,191,191,191,243,242,245,244,276,276,277,277],"f":"````````````{{{d{b}}}f}{{{d{b}}}{{d{{h{f}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000`{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{{d{A`}}}A`}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{b}}{d{b}}}Ad}````{c{{Af{b}}}Ah}{c{{Af{l}}}Ah}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{A`}}{d{A`}}}Aj}{{{d{b}}{d{jAl}}}An}{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}{{{d{A`}}{d{jAl}}}An}`{cc{}}000{{{d{b}}{d{jc}}}AbB`}{{{d{l}}{d{jc}}}AbB`}{ce{}{}}000````{{{d{A`}}}Bb}`{{{d{b}}{d{b}}}{{Bd{Ad}}}}``{{{d{A`}}}{{Bd{Bf}}}}{{{d{b}}c}AfBh}{{{d{l}}c}AfBh}``{{{d{c}}}e{}{}}000{c{{Af{e}}}{}{}}0000000{{{d{A`}}}{{d{Bj}}}}`{{{d{c}}}Bl{}}000`{{}{{d{Bn}}}}::::``````````````````````````````````````````{{{d{{C`{c}}}}Cb}{{Af{CdCf}}}{ChCj}}{{}Cl}0{{{d{{Cn{ce}}}}}{{d{{D`{ce}}}}}ChDb}{{{d{{d{{Cn{ce}}}}}}}{{Dd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000{{{d{{Cn{ce}}}}}{{Dn{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}0`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{Cn{cFn}}}}}{{Af{AbEh}}}Ch}2022102102{{{d{c}}}{{Af{AbEh}}}Ch}00{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{D`{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{D`{cFn}}}}}{{Af{AbEh}}}Ch}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}00`{{{d{{C`{c}}}}}{{C`{c}}}{G`Ch}}{{{d{Fl}}}Fl}{{{d{Fn}}}Fn}{{{d{{Cn{ce}}}}}{{Cn{ce}}}{G`Ch}{G`Db}}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{{C`{c}}}}{d{{C`{c}}}}}Ad{GbCh}}{{{d{Fl}}{d{Fl}}}Ad}{{{d{Fn}}{d{Fn}}}Ad}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AdChDb}{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{{C`{Dj}}}}{d{{Gd{c}}}}}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{Df}}}}{d{{Gd{c}}}}Dh}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{c}}}}}GjCh}{{{d{{C`{Df}}}}}Gl}{c{{Af{{C`{e}}}}}AhGn}{c{{Af{{Cn{eg}}}}}AhGnDb}{{{d{{C`{Df}}}}}H`}{{{d{{Cn{ce}}}}}Hb{CjCh}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}Aj{HdCh}}{{{d{Fl}}{d{Fl}}}Aj}{{{d{Fn}}{d{Fn}}}Aj}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AjChDb}`{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}`{{{d{{Cn{ce}}}}{d{Hf}}}{{Af{AbHh}}}ChDb}{{{d{Hj}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{C`{Df}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{Cn{Dfc}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}Db}{{{d{{C`{Df}}}}{d{{Gd{c}}}}{d{If}}{Ih{Dh}}}{{Af{{Bd{{Ij{Dh{C`{Gf}}}}}}Dl}}}Gh}{{{d{{C`{c}}}}{d{jAl}}}{{Af{AbIl}}}Ch}0{{{d{Fl}}{d{jAl}}}{{Af{AbIl}}}}{{{d{Fn}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{Cn{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{{C`{c}}}}e}AjCh{{J`{{d{c}}}{{In{Aj}}}}}}{{{d{{Cn{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{{{Jb{c}}}{{C`{c}}}Ch}{cc{}}{{{Jd{c}}}{{C`{c}}}Ch}{{{Jf{c}}}{{C`{c}}}Ch}{{{Jh{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}{{{Jl{c}}}{{C`{c}}}Ch}555{{{D`{ce}}}{{Af{{Cn{ce}}Cf}}}ChDb}{{{D`{ce}}JnK`}{{Cn{ce}}}ChDb}{{{d{Bn}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Bn}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{Bn}}{d{Hf}}}{{Af{{Cn{ce}}Cf}}}GnDb}1{{{d{Kb}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Kb}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{{Cn{ce}}}}Kd}{{Bd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}Kd}{{Bd{c}}}ChDb}{{{d{{C`{c}}}}e}{{Af{{Ij{{Dn{{Dn{f}}}}Hb}}Cf}}}{ChCj}{{Kf{c}}}}0{{{d{{Cn{ce}}}}}AjChDb}0{{{d{{C`{Df}}}}}Aj}{{{d{{C`{c}}}}{d{je}}}Ab{KhCh}B`}{{{d{Fl}}{d{jc}}}AbB`}{{{d{Fn}}{d{jc}}}AbB`}{{{d{{Cn{ce}}}}{d{jg}}}AbChDbB`}{ce{}{}}000{{{Cn{ce}}}{{D`{ce}}}ChDb}{{{C`{Df}}}{{Af{{Dn{{C`{Df}}}}Cf}}}}{{Kj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{Kl{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}99:{{{d{{Cn{ce}}}}}{{L`{ce}}}ChDb}{{{d{{Cn{ce}}}}}{{Lb{ce}}}ChDb}{{{d{{C`{c}}}}}{{Af{{Ld{c}}Cf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{{d{{Cn{ce}}}}}{{Af{AbLf}}}ChDb}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{cFn}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{ce}}}}}{{Af{KdCf}}}ChDb}{{{d{{C`{c}}}}}{{Af{KdCf}}}Ch}1{{{d{{C`{c}}}}}{{Af{LhCf}}}Ch}{{}{{d{Bn}}}}00{{{Cn{cLj}}}{{Af{{C`{c}}Cf}}}Ch}{c{{C`{c}}}Ch}{c{{Af{{C`{c}}Cf}}}Ch}{{{Cn{cFl}}}{{Af{{C`{c}}Cf}}}Ch}{{Kd{Dn{c}}}{{Af{{C`{c}}Cf}}}Ch}{{{Jh{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}4{{{Cn{cFn}}}{{Af{{C`{c}}Cf}}}Ch}3{{c{Bd{{Ll{c}}}}}{{Af{{C`{c}}Cf}}}Ch}614`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{If}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{Gd{c}}}}{d{Bn}}}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Cf}}}Mb}1{{{d{If}}{d{Hf}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}{{Bd{Ad}}}{MdCh}}{{{d{Fl}}{d{Fl}}}{{Bd{Ad}}}}{{{d{Fn}}{d{Fn}}}{{Bd{Ad}}}}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}{{Bd{Ad}}}ChDb}{{{d{c}}}KdCh}00{{{C`{Dj}}{d{c}}}{{Af{Mf{C`{Dj}}}}}{{Ed{Dj}}}}0`{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{c}}}}}{{Af{AbCf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{AbHh}}}ChDb}{{{d{{C`{c}}}}{d{jMh}}e}{{Af{AbCf}}}{ChCj}{{Kf{c}}}}{{{d{{Cn{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}0{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}{{{d{{C`{c}}}}}Hb{ChCj}}{{{d{{Cn{ce}}}}}KdChDb}{{{d{{C`{c}}}}e}AfChBh}{{{d{{Cn{ce}}}}g}AfChDbBh}{{}Mj}00{{{d{{Cn{ce}}}}{d{{M`{Fhc}}}}}{{Cn{ce}}}ChDb}`{{{d{c}}}e{}{}}000{{{d{c}}}Ml{}}0{{{d{{C`{Df}}}}{d{{M`{DfLn}}}}}Ml}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{C`{c}}}}{d{ji}}}{{Af{{Mn{g}}}}}ChCh{}{{N`{ceg}}}}{{{d{{Cn{ce}}}}{d{jk}}}{{Af{{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}0000000`{{{d{c}}}Bl{}}000={ce{}{}}000{{{d{{Cn{ce}}}}}AjChDb}{{{d{Bn}}}{{Af{MlId}}}}{{{d{Bn}}}{{Af{{Nb{f}}Id}}}}``````````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{Id}}{d{jAl}}}An}0{NdId}{CfId}{NfId}{NhId}{NjId}{cc{}}{NlId}{NnId}>{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0{{{d{c}}}Bl{}}{ce{}{}}```````````````````````````````````>>>>>>>======={{{d{O`}}}O`}{{{d{Ob}}}Ob}{{{d{Od}}}Od}{{{d{Ib}}}Ib}{{{d{Of}}}Of}{{{d{Hn}}}Hn}{{{d{c}}{d{je}}}Ab{}{}}00000``{{}Of}{{{d{O`}}{d{O`}}}Aj}{{{d{Ob}}{d{Ob}}}Aj}{{{d{Od}}{d{Od}}}Aj}{{{d{Ib}}{d{Ib}}}Aj}{{{d{Of}}{d{Of}}}Aj}{{{d{Nh}}{d{Nh}}}Aj}{{{d{O`}}{d{jAl}}}An}{{{d{Ob}}{d{jAl}}}An}{{{d{Od}}{d{jAl}}}An}{{{d{Ib}}{d{jAl}}}An}{{{d{Of}}{d{jAl}}}An}{{{d{Nh}}{d{jAl}}}An}0{{{d{Hn}}{d{jAl}}}An}{cc{}}00{AjOd}1{ObIb}222{{{d{Ib}}{d{{M`{Ml{Dn{Kd}}}}}}}{{Af{OfNh}}}}{{{d{O`}}{d{jc}}}AbB`}{{{d{Of}}{d{jc}}}AbB`}{{{d{Ob}}}Ml}`{ce{}{}}000000{{{d{Ob}}}Aj}{{{d{Od}}}Aj}{{{d{Of}}}Aj}`{{{d{Of}}{d{Of}}}{{Bd{Ad}}}}{{{d{Ib}}}Aj}`{{{d{O`}}c}AfBh}{{{d{Ob}}c}AfBh}{{{d{Od}}c}AfBh}{{{d{Ib}}c}AfBh}{{{d{Of}}c}AfBh}`{{{d{c}}}e{}{}}00000{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0000000000000{{{d{c}}}Bl{}}000000>>>>>>>``````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{OhCb}{{Af{OjId}}}}{{{Ol{c}}Cb}{{Af{OjId}}}{{On{Fl}}}}{{{A@`{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@b{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@d{c}}Cb}{{Af{OjId}}}{{On{A@f}}}}{{{A@h{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@l{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@n{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AA`{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAb{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAd{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAf{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{{{AAh{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{cc{}}00000000000{ce{}{}}00000000000{{Oj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{c{d{{Gd{I`}}}}Cb}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Id}}}{}}00000000000{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000444444444444```````````````````````````````````````````{{}AAj}{{}Cl}{{DfDh}{{Af{DjDl}}}}{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{{d{{AAl{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}00000{{{d{c}}}{{Af{AbEh}}}Ch}{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}{{{d{{AAn{ce}}}}}{{AAn{ce}}}G`Db}{{{d{Cl}}}Cl}{{{d{AB`}}}AB`}{{{d{{AAl{ce}}}}}{{AAl{ce}}}{G`Ch}{G`Db}}{{{d{Df}}}Df}{{{d{Ln}}}Ln}{{{d{ABb}}}ABb}{{{d{ABd}}}ABd}{{{d{ABf}}}ABf}{{{d{c}}{d{je}}}Ab{}{}}00000000{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Ad{GbCh}{GbDb}}{{{d{Df}}{d{Df}}}Ad}{{{d{ABb}}{d{ABb}}}Ad}{{{d{ABf}}{d{ABf}}}Ad}`{{}AB`}{{{d{{AAn{ce}}}}}{{d{g}}}{}Db{}}{{DfDh}{{Af{DjDl}}}}{c{{Af{Df}}}Ah}{{{d{{AAl{ce}}}}}Hb{CjCh}Db}{{{d{Cl}}{d{Cl}}}Aj}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Aj{HdCh}{HdDb}}{{{d{Df}}{d{Df}}}Aj}{{{d{Ln}}{d{Ln}}}Aj}{{{d{ABb}}{d{ABb}}}Aj}{{{d{ABd}}{d{ABd}}}Aj}{{{d{ABf}}{d{ABf}}}Aj}{{{d{{ABh{c}}}}{d{jAl}}}An{ABjDb}}{{{d{Cl}}{d{jAl}}}An}{{{d{AB`}}{d{jAl}}}An}{{{d{Nj}}{d{jAl}}}An}0{{{d{{AAl{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{Df}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{Ln}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{ABb}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABd}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABf}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{AAl{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{ABl{{ABn{c}}}Db}{cc{}}{AC`{{ABn{c}}}Db}1111{CfNj}{NlNj}333{DjDf}4444{{DfAAj}{{ABh{c}}}Db}{{LnAAj}{{ABh{c}}}Db}{{{d{Bn}}}{{Af{Df}}}}{{{d{Bn}}}{{Af{Ln}}}}{{{d{Kb}}}{{Af{{AAl{ce}}Cf}}}{ACbCh}Db}{{{d{Df}}}{{Bd{ACd}}}}{{{d{Df}}}{{Dn{ACd}}}}{c{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{{}{{Af{{AAn{ADbc}}e}}}Db{}}{{{d{jc}}}{{Af{{AAn{ADbe}}g}}}{ADdADf}Db{}}{{c{d{je}}}{{Af{{AAn{{ACl{}{{ACf{g}}{ACh{c}}{ACj{i}}}}k}}i}}}{}{ADdADf}{{ACn{{h{f}}}}AD`}ABjDb}{{ce}{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{c{{Af{{AAn{ADbe}}g}}}{}Db{}}{{{d{{ABn{c}}}}}AjDb}{{{d{Df}}}Aj}{{{d{{AAl{ce}}}}{d{jg}}}Ab{KhCh}{KhDb}B`}{{{d{Df}}{d{jc}}}AbB`}{{{d{ABb}}{d{jc}}}AbB`}{{{d{ABf}}{d{jc}}}AbB`}{ce{}{}}00000000000{DfADh}{On{{Af{{ABh{c}}Nj}}}Db}{{A@j{Bd{ADj}}ACd}{{Af{{ABh{c}}Nj}}}Db}{{{AAn{ec}}{Bd{ADj}}ACd}{{Af{{ABh{c}}Nj}}}Db{{A@j{c}}}}{{{AAn{ec}}}{{Af{{ABh{c}}Nj}}}Db{{On{c}}}}{{{ABh{c}}}{{Af{{ABh{c}}Nj}}}Db}{Df{{Af{{ABh{c}}Nj}}}Db}{Ln{{Af{{ABh{c}}Nj}}}Db}{A@j{{Af{{ABn{c}}Nj}}}Db}{{{ABn{c}}}{{Af{{ABn{c}}Nj}}}Db}{{{AAn{ec}}}{{Af{{ABn{c}}Nj}}}Db{{A@j{c}}}}{{{AAn{ce}}}c{}Db}{Df{{Dn{Df}}}}{Ln{{Dn{Ln}}}}{{{ABn{c}}Cb}{{Bd{AC`}}}Db}{{{ABn{c}}Cb{d{{Gd{e}}}}}ABlDbMb}{{{d{Df}}}Aj}{{}Aj}{{{d{Cl}}}Aj}2{{{d{Ln}}}Aj}212133{{{d{{AAl{ce}}}}}KdChDb}``{{{d{{AAl{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{}AAj}{{{d{Df}}}ADl}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}44{{{d{AAj}}{d{AAj}}}AAj}5{{}{{d{Bn}}}}{{Kd{Dn{c}}}{{Af{{AAl{ce}}Cf}}}ChDb}{{{d{Df}}}Kd}``{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{ABh{c}}AAj}{{ABh{c}}}Db}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}{{Bd{Ad}}}{MdCh}{MdDb}}{{{d{Df}}{d{Df}}}{{Bd{Ad}}}}{{{d{ABb}}{d{ABb}}}{{Bd{Ad}}}}{{{d{ABf}}{d{ABf}}}{{Bd{Ad}}}}{{{d{c}}}KdCh}{{{d{{AAl{ce}}}}}{{d{{h{c}}}}}ChDb}{{{d{{AAl{ce}}}}}{{Af{AbCf}}}ChDb}{{{d{{AAl{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}{{{d{{AAl{ce}}}}}KdChDb}{{{d{Df}}c}AfBh}{{}Mj}{{{d{{AAl{ce}}}}}{{D`{ce}}}{CjCh}Db}{{}AAj}{{{d{c}}}e{}{}}00000000{{{d{Ln}}{d{{Gd{c}}}}}{{Af{DfADn}}}Mb}{{{d{c}}}Ml{}}000{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{AAl{ce}}}}{d{jk}}}{{Af{{AAl{ge}}{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000{ce{}{}}00000000000`{{{d{AE`}}}{{Bd{AEb}}}}{{{d{AE`}}}{{Bd{AEd}}}}{{{d{AE`}}Kd}{{Bd{Bj}}}}`````````````````````{{AEfAEf}AEf}{{{d{jAEh}}bAEj{AEn{AEl}}}Ab}`{{{d{AEh}}}{{M`{b{`{{AFd{}{{AF`{{AFb{Hb}}}}}}G`}}}}}}{{{d{jAEh}}{d{AFf}}Dh}{{Af{AbAFh}}}}{{{d{jAEh}}{d{AFf}}DhAFj}{{Af{AbAFl}}}}{{{d{jAEh}}c}Ab{{AG`{}{{AF`{{Ij{{d{AFn}}H`}}}}}}}}{{{d{jAEh}}c}{{Af{AbAFh}}}{{AGd{AGb}}}}{{{d{AEh}}}{{d{{AGh{AGf}}}}}}{{{d{AEh}}}AEf}{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{jc}}}{{d{je}}}{}{}}0000000{{{d{jAEh}}AGj}{{Af{{AGn{AGl}}AH`}}}}{{{d{jAEh}}}{{AGn{AGl}}}}{{{d{AEh}}{d{AFn}}}{{Af{AEbAHb}}}}{{{d{AEh}}{d{AFn}}}{{Af{AEdAHb}}}}{{{d{jAEh}}{d{AFn}}}Ab}``{{{d{AEh}}}AHd}{{{d{AEf}}}AEf}{{{d{AGb}}}AGb}{{{d{c}}{d{je}}}Ab{}{}}0``{{}AEf}{{}AGb}{{{d{AHf}}}{{d{c}}}{}}{{{d{AEh}}b}{{Bd{Dh}}}}{{{d{AEh}}{d{If}}}{{Bd{{Ij{bDh}}}}}}{{{d{AEh}}b}Ml}{c{{Af{AEf}}}Ah}{{{d{AEf}}{d{AEf}}}Aj}{{{d{AHf}}{d{AHf}}}Aj}``{{{d{AEh}}{d{jAHh}}AHj}{{Af{AjAHl}}}}{{{d{AEf}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{AEh}}{d{jAl}}}An}{{{d{AGb}}{d{jAl}}}An}{{{d{AHf}}{d{jAl}}}An}0{{{d{AHn}}{d{jAl}}}An}0{{{d{AI`}}{d{jAl}}}An}0{{{d{AIb}}{d{jAl}}}An}0{{{d{AId}}{d{jAl}}}An}0{cc{}}00{AIfAGb}{{{AIh{b}}}AGb}22222{{{d{AEh}}l{Bd{AIj}}Aj}{{Af{AIlAIn}}}}{{{d{AEh}}b}{{AEn{Hl}}}}{{{d{AEh}}AGj}{{Bd{{AJ`{{AEn{AFn}}AGf}}}}}}{{{d{AEh}}Bb}{{Bd{l}}}}````{{{d{jAEh}}AFj}{{Af{AjAJb}}}}{{{d{jAEh}}AFn}Aj}{{{d{jAEh}}BbBj}Ab}{ce{}{}}0000000{{{d{AJd}}{d{If}}}Aj}{{{d{AEh}}{d{If}}}Aj}`{{{d{AEh}}}{{`{{AFd{}{{AF`{{Ij{{d{b}}{d{Kl}}}}}}}}}}}}`{{{d{AEh}}}AJf}{{{d{AEh}}}{{`{{AFd{}{{AF`{l}}}}}}}}0{{{d{AEh}}b}{{`{{AJh{}{{AF`{AHf}}}}}}}}{AJj{{Af{AEhAI`}}}}{{{d{AEh}}}{{d{AJl}}}}{{{d{jAEh}}bDh}Aj}{{{d{AEh}}}Cb}`{{ccCb}{{Af{AEhAHn}}}Kj}{{cc{Bd{AJj}}Cb}{{Af{AEhAIb}}}Kj}{{cc{Bd{AJj}}CbAJn}{{Af{AEhAIb}}}Kj}{{ccCbAJn}{{Af{AEhAHn}}}Kj}{{{d{AEh}}b}Dh}{{{d{jAEh}}b}AHf}{{{d{AEh}}bDh}AHf}{{{d{AEh}}b}{{Af{{Bd{Ib}}Id}}}}{{{d{AEh}}b}{{d{Kl}}}}{{{d{jAEh}}bDh}{{`{{AFd{}{{AF`{AHf}}}}}}}}4{{{d{AEh}}}{{d{{Gd{I`}}}}}}{{{d{AEh}}{d{AFn}}}{{Ij{AEbAEb}}}}{{{d{AEf}}c}AfBh}{{{d{AEh}}{d{jAHh}}AHj}{{Af{AjAHl}}}}`{{{d{AEh}}}{{d{{AK`{b}}}}}}{{{d{AEh}}}{{Bd{{d{AJj}}}}}}{{{d{AEh}}}{{AKb{b}}}}{{{d{AEh}}}AKd}{{{d{jAEh}}}{{Bd{AJj}}}}{{{d{c}}}e{}{}}0{{{d{c}}}Ml{}}00000{{{d{AEf}}}AEb}{{{d{AEh}}}{{`{{AFd{}{{AF`{{AJ`{{AEn{AFn}}AGf}}}}}}}}}}`1{c{{Af{e}}}{}{}}000000000000000`{{{d{AEh}}}{{d{{AGh{AGf}}}}}}{{{d{c}}}Bl{}}0000000{{{d{AEh}}b}{{`{{AFd{}{{AF`{{AFb{Hb}}}}}}G`}}}}{{{d{AEh}}}{{`{{AFd{}{{AF`{{AKf{{AEn{AFn}}AGf}}}}}}}}}}{{{d{jAEh}}bDh}Aj}`{ce{}{}}0000000{{c{Bd{c}}Cb{d{{Gd{I`}}}}}{{Af{MlId}}}Kj}`````````````````````{{{d{c}}}{{d{e}}}{}{}}00000{{{d{jc}}}{{d{je}}}{}{}}00000{{{d{AKh}}}AKh}{{{d{AKj}}}AKj}{{{d{AKl}}}AKl}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{AKn}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKh}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKj}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKl}}{Dn{n}}{Dn{n}}AEdH`{d{If}}}{{Af{AL`ALb}}}}{{H`AEd{d{If}}}ALd}{{}AKh}{{}AKj}{{}AKl}``{{{d{ALb}}{d{jAl}}}An}0{{{d{ALd}}{d{jAl}}}An}{{{d{AL`}}{d{jAl}}}An}{{{d{AKh}}{d{jAl}}}An}{{{d{AKj}}{d{jAl}}}An}{{{d{AKl}}{d{jAl}}}An}{cc{}}00000{ce{}{}}00000{{{d{AL`}}}H`}{H`AKl}`1{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}00000000000{{{d{c}}}Bl{}}00000666666`````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{jc}}}{{d{je}}}{}{}}00{{{d{ALf}}}ALf}{{{d{c}}{d{je}}}Ab{}{}}{{{d{ALf}}{d{jAl}}}An}0{{{d{AIn}}{d{jAl}}}An}0{{{d{AH`}}{d{jAl}}}An}0>{ALbAIn}{ALhAIn}{cc{}}{IdAIn}{NhAIn}{ALfAIn}3{ce{}{}}00{{{d{c}}}e{}{}}{{{d{c}}}Ml{}}00{c{{Af{e}}}{}{}}00000{{{d{c}}}Bl{}}00444``````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{ALj}}}{{Bd{Ml}}}}{{{d{ALj}}}Ml}{c{{Af{ALj}}}Ah}{{{d{AEh}}{d{Bn}}Aj}{{Af{ALj{d{Bn}}}}}}{{{d{ALj}}{d{jAl}}}An}0?{{{d{Bn}}}{{Af{ALjc}}}{}}<``{{{d{ALj}}c}AfBh};::9=````````````````````````````````````{{{d{jHl}}ALlAEj{AEn{AEl}}}{{Bd{{AEn{AEl}}}}}}``{{{d{Hl}}{d{{Gd{I`}}}}}Kn}`::::::::99999999{{Kn{d{{C`{Df}}}}{d{{Gd{I`}}}}}Hl}{{{d{ALl}}}ALl}{{{d{ALn}}}ALn}{{{d{{AM`{c}}}}}{{AM`{c}}}{G`AMbABjG`}}{{{d{AEj}}}AEj}{{{d{Hl}}}Hl}{{{d{AHj}}}AHj}{{{d{AMd}}}AMd}{{{d{c}}{d{je}}}Ab{}{}}000000{{{d{ALl}}{d{ALl}}}Ad}{{{d{AEj}}{d{AEj}}}Ad}{{}AEj}{{}Hl}{{}AHj}{{}AMd}{{{d{{AM`{c}}}}}{{d{e}}}{AMbABjG`}{}}{{{d{AMf}}}{{Bd{Ln}}}}{{{d{{AM`{{AMh{AC`}}}}}}}{{Bd{Ln}}}}{{{d{{AM`{{AMj{AC`}}}}}}}{{Bd{Ln}}}}{{{d{{AM`{AMl}}}}}{{Bd{Ln}}}}{{{d{ALl}}{d{ALl}}}Aj}{{{d{ALn}}{d{ALn}}}Aj}{{{d{AEj}}{d{AEj}}}Aj}{{{d{AMd}}{d{AMd}}}Aj}{{{d{Hl}}ALl}{{Bd{{d{{AEn{AEl}}}}}}}}{{{d{ALl}}{d{jAl}}}An}{{{d{AHl}}{d{jAl}}}An}0{{{d{ALn}}{d{jAl}}}An}{{{d{{AM`{c}}}}{d{jAl}}}An{ABjAMbABjG`}}{{{d{AEj}}{d{jAl}}}An}{{{d{Hl}}{d{jAl}}}An}{{{d{AHj}}{d{jAl}}}An}{{{d{AMd}}{d{jAl}}}An}{FhALl}{ADlALl}{cc{}}0000000{{{d{ALl}}{d{jc}}}AbB`}{{{d{AMf}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMh{AC`}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMj{AC`}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{AMl}}}}{d{{Gd{I`}}}}}ALl}{{{d{Hl}}}{{Dn{{d{ALl}}}}}}{ce{}{}}0000000{{cALn}{{AM`{c}}}{AMbABjG`}}{{}Hl}{{{d{ALl}}{d{ALl}}}{{Bd{Ad}}}}{{{d{AEj}}{d{AEj}}}{{Bd{Ad}}}}{{{d{jHl}}ALlAEj}{{Bd{{AEn{AEl}}}}}}{{{d{AMn}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMh{AC`}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMj{AC`}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{AMl}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{AEl}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{c}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}{}}`{{{d{Hl}}}{{Dn{{d{{AEn{AEl}}}}}}}}`{{{d{c}}}e{}{}}000000{{{d{c}}}Ml{}}``{c{{Af{e}}}{}{}}000000000000000{{{d{c}}}Bl{}}0000000{ce{}{}}0000000````````````````{{{d{j{AGn{c}}}}{d{e}}}{{d{j{AGn{c}}}}}{}{{ANb{AN`}}}}{{{d{j{AGn{c}}}}BbAIlLh}{{Af{{d{j{AGn{c}}}}ANd}}}{}}{{{d{j{AGn{c}}}}BbAIlLhBf}{{Af{{d{j{AGn{c}}}}ANd}}}{}}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}HbAEb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Bb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Bb}{{Af{{d{j{AGn{c}}}}ANf}}}{}}{{{d{j{AGn{c}}}}{d{{h{Bb}}}}}{{Af{{d{j{AGn{c}}}}ANf}}}{}}{{{d{j{AGn{c}}}}Aj}{{d{j{AGn{c}}}}}{}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{jc}}}{{d{je}}}{}{}}0000{{{d{j{AGn{c}}}}ANh}{{d{j{AGn{c}}}}}{}}{{{d{{AGn{c}}}}}{{AGn{c}}}G`}{{{d{ANj}}}ANj}{{{d{ANh}}}ANh}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{ANh}}{d{ANh}}}Ad}{{{AGn{c}}e}{{AGn{e}}}{}AKn}{{{d{j{AGn{c}}}}Dh}{{d{j{AGn{c}}}}}{}}{{}ANj}{{}ANh}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}Hb}{{d{j{AGn{c}}}}}{}}11{{{d{j{AGn{c}}}}Bf}{{d{j{AGn{c}}}}}{}}{{{d{ANh}}{d{ANh}}}Aj}{{{d{j{AGn{c}}}}AEb}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}AEd}{{d{j{AGn{c}}}}}{}}{{{AGn{c}}}{{Af{AHhAIn}}}AKn}{{{AGn{c}}{d{je}}}{{Af{AHhAIn}}}AKnADf}{{{d{{AGn{c}}}}{d{jAl}}}AnABj}{{{d{ANf}}{d{jAl}}}An}0{{{d{ANd}}{d{jAl}}}An}0{{{d{ANj}}{d{jAl}}}An}{{{d{ANh}}{d{jAl}}}An}{cc{}}0000{{{d{ANh}}{d{jc}}}AbB`}>{ce{}{}}0000?{{{d{j{AGn{c}}}}ANl}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}}{{d{j{AGn{c}}}}}{}}0{{{d{j{AGn{c}}}}ANj}{{d{j{AGn{c}}}}}{}}{{{d{ANh}}{d{ANh}}}{{Bd{Ad}}}}{{{d{j{AGn{c}}}}{M`{Ml{Dn{Kd}}}}b}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}{Dn{{Ij{HbAEb}}}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}AIj}{{d{j{AGn{c}}}}}{}}{{{d{ANj}}{d{jAFn}}}Ab}{{{d{ANj}}{d{jAFn}}{d{jc}}}AbADf}{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}0{c{{Af{e}}}{}{}}000000000{{{d{c}}}Bl{}}0000{{{d{j{AGn{c}}}}{Dn{Bb}}}{{d{j{AGn{c}}}}}{}}{{{d{j{AGn{c}}}}ANn}{{d{j{AGn{c}}}}}{}}?????````","D":"FGb","p":[[6,"KeychainKind",0,1702],[1,"reference"],[1,"u8"],[1,"slice"],[0,"mut"],[5,"LocalOutput",0,1702],[5,"WeightedUtxo",0,1702],[6,"Utxo",0,1702],[1,"unit"],[6,"Ordering",1703],[6,"Result",1704],[10,"Deserializer",1705],[1,"bool"],[5,"Formatter",1706],[8,"Result",1706],[10,"Hasher",1707],[5,"OutPoint",1708],[6,"Option",1709],[5,"Sequence",1708],[10,"Serializer",1710],[5,"TxOut",1708],[5,"TypeId",1711],[1,"str"],[6,"Descriptor",100,1712],[6,"Network",1713],[5,"Address",1714],[6,"Error",1715],[10,"MiniscriptKey",1715],[10,"ToPublicKey",1715],[6,"ScriptContextEnum",693],[5,"Miniscript",100,1716],[6,"Terminal",1717],[10,"ScriptContext",693,1718],[6,"Tree",1719],[6,"DescriptorPublicKey",693,1720],[1,"u32"],[5,"DefiniteDescriptorKey",1720],[6,"ConversionError",1720],[5,"Vec",1721],[6,"Placeholder",1722],[5,"Satisfaction",1722],[10,"AssetProvider",1723],[17,"Key"],[6,"ScriptContextError",1718],[17,"Sha256"],[5,"Hash",1724],[17,"Hash256"],[5,"Hash",1725],[17,"Ripemd160"],[5,"Hash",1726],[17,"Hash160"],[5,"Hash",1727],[10,"ParseableKey",1717],[6,"Legacy",100,1718],[6,"Segwitv0",100,1718],[10,"Clone",1728],[10,"Ord",1703],[5,"Secp256k1",1729],[5,"PublicKey",1730],[10,"Verification",1731],[6,"DescriptorType",1712],[5,"DescriptorId",1732],[10,"FromStrKey",1733],[1,"u64"],[5,"ScriptBuf",1734],[10,"PartialEq",1703],[5,"ExtParams",1735],[6,"AnalysisError",1735],[10,"ExtractPolicy",100],[5,"SignersContainer",1407],[6,"BuildSatisfaction",386],[6,"All",1736],[5,"Policy",386],[6,"Error",354],[5,"Script",1737],[5,"Range",1738],[1,"tuple"],[5,"Error",1706],[17,"Output"],[10,"FnMut",1739],[5,"Bare",1740],[5,"Tr",1741],[5,"Pkh",1740],[5,"Wpkh",1742],[5,"Wsh",1742],[5,"Sh",1743],[5,"Type",1744],[5,"ExtData",1745],[5,"Tree",1746],[1,"usize"],[10,"Satisfier",1722],[10,"Hash",1707],[10,"IntoWalletDescriptor",100],[8,"ExtendedDescriptor",100],[8,"KeyMap",693,1712],[5,"Iter",1747],[5,"PkIter",1747],[6,"Policy",1748],[6,"LiftError",1749],[5,"Weight",1750],[6,"BareCtx",1718],[6,"TapTree",1741],[6,"DescriptorSecretKey",693,1720],[5,"BTreeMap",1751],[10,"Signing",1731],[10,"PartialOrd",1703],[5,"Plan",1723],[5,"TxIn",1708],[6,"SigType",1718],[5,"String",1752],[6,"TranslateErr",1715],[10,"Translator",1715],[1,"array"],[6,"ParsePublicKeyError",1730],[6,"HexToBytesError",1753],[6,"PolicyError",386],[6,"KeyError",693],[6,"Error",1754],[6,"Error",1755],[6,"PkOrF",386],[6,"SatisfiableItem",386],[6,"Satisfaction",386],[5,"Condition",386],[10,"DescriptorTemplate",557],[8,"DescriptorTemplateOut",557],[5,"P2Pkh",557],[10,"IntoDescriptorKey",693],[5,"P2Wpkh_P2Sh",557],[5,"P2Wpkh",557],[5,"P2TR",557],[6,"Tap",1718],[5,"Bip44",557],[10,"DerivableKey",693],[5,"Bip44Public",557],[5,"Bip49",557],[5,"Bip49Public",557],[5,"Bip84",557],[5,"Bip84Public",557],[5,"Bip86",557],[5,"Bip86Public",557],[8,"ValidNetworks",693],[5,"SortedMultiVec",693,1756],[5,"GeneratedKey",693],[5,"PrivateKeyGenerateOptions",693],[5,"SinglePub",693,1720],[5,"SinglePriv",693,1720],[6,"SinglePubKey",693,1720],[6,"DescriptorKey",693],[10,"Debug",1706],[5,"Xpub",1754],[6,"ExtendedKey",693],[5,"Xpriv",1754],[10,"FromStr",1757],[5,"DerivationPath",1754],[17,"Entropy"],[17,"Options"],[17,"Error"],[10,"GeneratableKey",693],[10,"AsMut",1758],[10,"Default",1759],[10,"GeneratableDefaultOptions",693],[10,"CryptoRng",1760],[10,"RngCore",1760],[5,"Assets",1723],[8,"KeySource",1754],[5,"Fingerprint",1754],[5,"DescriptorKeyParseError",1720],[10,"PsbtUtils",994],[5,"Amount",1761],[5,"FeeRate",1762],[5,"Balance",998,1763],[5,"Wallet",998],[5,"SignerOrdering",1407],[10,"TransactionSigner",1407],[5,"Arc",1764],[17,"Item"],[8,"Indexed",1765],[10,"Iterator",1766],[5,"Block",1767],[5,"CannotConnectError",1768],[5,"BlockId",1769],[6,"ApplyHeaderError",1768],[5,"Transaction",1708],[10,"IntoIterator",1770],[5,"Update",998],[10,"Into",1758],[5,"ConfirmationBlockTime",1769],[5,"TxGraph",1771],[5,"Txid",1708],[8,"DefaultCoinSelectionAlgorithm",1208],[5,"TxBuilder",1585],[6,"BuildFeeBumpError",1307],[6,"CalculateFeeError",1771],[5,"CheckPointIter",1768],[5,"AddressInfo",998],[5,"Psbt",1772],[5,"SignOptions",1407],[6,"SignerError",1407],[6,"NewError",998],[6,"LoadError",998],[6,"NewOrLoadError",998],[6,"ApplyBlockError",998],[5,"SyncResult",1773],[5,"FullScanResult",1773],[5,"PsbtSighashType",1774],[5,"Input",1774],[6,"CreateTxError",1307],[5,"CanonicalTx",1771],[5,"AlterCheckPointError",1768],[10,"IsDust",998,1775],[5,"CheckPoint",1768],[10,"DoubleEndedIterator",1776],[8,"ChangeSet",998],[5,"LocalChain",1768],[5,"BlockHash",1767],[5,"KeychainTxOutIndex",1777],[5,"FullScanRequest",1773],[5,"SyncRequest",1773],[5,"TxNode",1771],[5,"LargestFirstCoinSelection",1208],[5,"OldestFirstCoinSelection",1208],[5,"BranchAndBoundCoinSelection",1208],[10,"CoinSelectionAlgorithm",1208],[5,"CoinSelectionResult",1208],[6,"Error",1208],[6,"Excess",1208],[6,"MiniscriptPsbtError",1307],[6,"Error",1778],[5,"FullyNodedExport",1384],[6,"SignerId",1407],[6,"SignerContext",1407],[5,"SignerWrapper",1407],[10,"Sized",1779],[6,"TapLeavesOptions",1407],[10,"SignerCommon",1407],[5,"DescriptorXKey",1720],[5,"DescriptorMultiXKey",1720],[5,"PrivateKey",1730],[10,"InputSigner",1407],[5,"PushBytes",1780],[10,"AsRef",1758],[6,"AddForeignUtxoError",1585],[6,"AddUtxoError",1585],[6,"ChangeSpendPolicy",1585],[6,"TxOrdering",1585],[6,"LockTime",1781],[1,"i32"],[15,"Foreign",97],[8,"DerivedDescriptor",100],[15,"PsbtTimelocks",533],[15,"Complete",536],[15,"Partial",536],[15,"PartialComplete",536],[15,"Sha256Preimage",547],[15,"Hash256Preimage",547],[15,"Ripemd160Preimage",547],[15,"Hash160Preimage",547],[15,"Thresh",547],[15,"Multisig",547],[15,"AbsoluteTimelock",547],[15,"RelativeTimelock",547],[10,"ExtScriptContext",693],[15,"UnexpectedConnectedToHash",1200],[15,"LoadedGenesisDoesNotMatch",1202],[15,"LoadedNetworkDoesNotMatch",1202],[15,"LoadedDescriptorDoesNotMatch",1202],[15,"InsufficientFunds",1300],[15,"Change",1302],[15,"NoChange",1302],[15,"RbfSequenceCsv",1378],[15,"LockTime",1378],[15,"FeeTooLow",1378],[15,"FeeRateTooLow",1378],[8,"WalletExport",1384],[15,"Tap",1584],[15,"InvalidTxid",1698],[15,"Custom",1700]],"r":[[2,100],[4,1702],[6,1702],[7,1407],[8,1585],[9,1702],[10,998],[11,1702],[70,998],[71,100],[104,1712],[106,1720],[113,1718],[114,1716],[119,386],[120,1718],[121,1718],[155,352],[696,1720],[697,1720],[712,1712],[722,1718],[727,1720],[728,1720],[729,1720],[730,1756],[1000,1763],[1006,1775]],"b":[[193,"impl-Descriptor%3CDefiniteDescriptorKey%3E"],[194,"impl-Descriptor%3CDescriptorPublicKey%3E"],[213,"impl-Debug-for-Descriptor%3CPk%3E"],[214,"impl-Display-for-Descriptor%3CPk%3E"],[217,"impl-Display-for-Miniscript%3CPk,+Ctx%3E"],[218,"impl-Debug-for-Miniscript%3CPk,+Ctx%3E"],[221,"impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[223,"impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[224,"impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[225,"impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[226,"impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[227,"impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[370,"impl-Display-for-Error"],[371,"impl-Debug-for-Error"],[372,"impl-From%3CParsePublicKeyError%3E-for-Error"],[373,"impl-From%3CError%3E-for-Error"],[374,"impl-From%3CHexToBytesError%3E-for-Error"],[375,"impl-From%3CPolicyError%3E-for-Error"],[376,"impl-From%3CKeyError%3E-for-Error"],[378,"impl-From%3CError%3E-for-Error"],[379,"impl-From%3CError%3E-for-Error"],[461,"impl-Display-for-PolicyError"],[462,"impl-Debug-for-PolicyError"],[811,"impl-Debug-for-KeyError"],[812,"impl-Display-for-KeyError"],[813,"impl-Debug-for-SortedMultiVec%3CPk,+Ctx%3E"],[814,"impl-Display-for-SortedMultiVec%3CPk,+Ctx%3E"],[815,"impl-Display-for-DescriptorPublicKey"],[816,"impl-Debug-for-DescriptorPublicKey"],[817,"impl-Display-for-DescriptorSecretKey"],[818,"impl-Debug-for-DescriptorSecretKey"],[823,"impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E"],[825,"impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E"],[830,"impl-From%3CError%3E-for-KeyError"],[831,"impl-From%3CError%3E-for-KeyError"],[874,"impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[875,"impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[1071,"impl-Debug-for-Balance"],[1072,"impl-Display-for-Balance"],[1075,"impl-Display-for-AddressInfo"],[1076,"impl-Debug-for-AddressInfo"],[1077,"impl-Debug-for-NewError"],[1078,"impl-Display-for-NewError"],[1079,"impl-Display-for-LoadError"],[1080,"impl-Debug-for-LoadError"],[1081,"impl-Display-for-NewOrLoadError"],[1082,"impl-Debug-for-NewOrLoadError"],[1083,"impl-Display-for-ApplyBlockError"],[1084,"impl-Debug-for-ApplyBlockError"],[1088,"impl-From%3CSyncResult%3E-for-Update"],[1089,"impl-From%3CFullScanResult%3CKeychainKind%3E%3E-for-Update"],[1249,"impl-Display-for-Error"],[1250,"impl-Debug-for-Error"],[1345,"impl-Debug-for-MiniscriptPsbtError"],[1346,"impl-Display-for-MiniscriptPsbtError"],[1347,"impl-Debug-for-CreateTxError"],[1348,"impl-Display-for-CreateTxError"],[1349,"impl-Display-for-BuildFeeBumpError"],[1350,"impl-Debug-for-BuildFeeBumpError"],[1352,"impl-From%3CError%3E-for-CreateTxError"],[1353,"impl-From%3CError%3E-for-CreateTxError"],[1355,"impl-From%3CError%3E-for-CreateTxError"],[1356,"impl-From%3CPolicyError%3E-for-CreateTxError"],[1357,"impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError"],[1394,"impl-Display-for-FullyNodedExport"],[1395,"impl-Debug-for-FullyNodedExport"],[1487,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1488,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1489,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1496,"impl-Display-for-SignerError"],[1497,"impl-Debug-for-SignerError"],[1504,"impl-From%3CHash%3E-for-SignerId"],[1505,"impl-From%3CFingerprint%3E-for-SignerId"],[1516,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1517,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1518,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1534,"impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1535,"impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1536,"impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E"],[1642,"impl-Display-for-AddUtxoError"],[1643,"impl-Debug-for-AddUtxoError"],[1644,"impl-Display-for-AddForeignUtxoError"],[1645,"impl-Debug-for-AddForeignUtxoError"]],"c":"OjAAAAEAAAAAAAUAEAAAAMEAAwEPAR8DeANqBQ==","e":"OzAAAAEAAG0DfgADAAAACAABAAsAAAAOABMAJgAJADUAAQA+AAAAQQAAAEUADwBXAAMAXQADAGoAAAB4AAAAjAABAI8AAACRAAcAnAAAAJ4AAQChAAAApAABAKcAAQCrAAEArgABALEAAQC0AAsAxQADAMoAAwDTAAEA1gAIAOAABADqAAAA9wADAAIBAAAIAQEADAEBABMBAQApAQMALgEBADwBAQA/AQEAQwEFAE4BBwBXAQMAXAEDAHEBCAB7AQEAfgEEAKYBGQDCAQ4A1AEAANYBAADbAQEA6gEAAO0BBADzASIAPAIXAFUCCwB5AjwA5AIXAAYDFQAdAwEAIAMAACIDFgA6AwAAPwMBAEQDAABLAwEAWAMDAGgDAABrAwQAcQMBAIEDAQCGAwAAkAMAAJUDAwCeAwAAogMIAKwDAwCzAy8A/AMAAAQEAAAGBA8AHgQDACQEAgAqBAIAMAQNAEEEAQB2BAAAfgQHAIoEDwCcBAcAqAQHAMYEEQDZBAIA3QQCAOIEBgD5BBsAOgUNAEkFAQBMBQIAUwUPAG0FAQBxBQAAcwUBAHYFAAB6BQUAqQUPALoFFADQBQYA2AUKAOsFAADtBQIA+wUBAP8FAgADBgAABwYHABEGHwBKBgkAVQYGAF4GAQBlBgAAagYGAHYGAACCBgAAiAYTAJ4GBAA="}],\ ["example_bitcoind_rpc_polling",{"t":"PSISSSGPSPFGSPPNNNNHNNNNNNNNNNONNNNNNNNNNNNNNHNOOOHNNNNNNNNNNNNNNNONNNOO","n":["Block","CHANNEL_BOUND","ChangeSet","DB_COMMIT_DELAY","DB_MAGIC","DB_PATH","Emission","Live","MEMPOOL_EMIT_DELAY","Mempool","RpcArgs","RpcCommands","STDOUT_PRINT_DELAY","Sync","Tip","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","await_flag","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fallback_height","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","main","new_client","rpc_cookie","rpc_password","rpc_user","start_ctrlc_handler","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","url","vzip","vzip","vzip","rpc_args","rpc_args"],"q":[[0,"example_bitcoind_rpc_polling"],[70,"example_bitcoind_rpc_polling::RpcCommands"],[72,"clap::builder::command"],[73,"core::sync::atomic"],[74,"core::time"],[75,"core::fmt"],[76,"clap::parser::matches::arg_matches"],[77,"clap::error"],[78,"core::result"],[79,"anyhow"],[80,"bitcoincore_rpc::client"],[81,"alloc::sync"],[82,"core::any"]],"i":[10,0,0,0,0,0,0,8,0,10,0,0,0,8,10,7,7,8,8,0,10,7,8,10,7,8,7,8,7,8,7,10,7,8,10,7,8,7,8,7,8,8,10,7,8,0,7,7,7,7,0,7,8,10,7,8,10,7,8,10,7,8,7,8,7,8,7,10,7,8,21,22],"f":"```````````````{bb}000{{{f{d}}h}j}{{{f{c}}}{{f{e}}}{}{}}00{{{f{lc}}}{{f{le}}}{}{}}00{{{f{n}}}n}{{{f{A`}}}A`}{{{f{c}}{f{le}}}Ab{}{}}0`{{{f{Ad}}{f{lAf}}}Ah}{{{f{n}}{f{lAf}}}Ah}{{{f{A`}}{f{lAf}}}Ah}{cc{}}00{{{f{Aj}}}{{An{nAl}}}}{{{f{Aj}}}{{An{A`Al}}}}{{{f{lAj}}}{{An{nAl}}}}{{{f{lAj}}}{{An{A`Al}}}}{{{f{B`}}}j}{ce{}{}}00{{}{{Bb{Ab}}}}{{{f{n}}}{{Bb{Bd}}}}```{{}{{Bf{d}}}}{{{f{c}}}e{}{}}0{c{{An{e}}}{}{}}00000{{{f{c}}}Bh{}}00{{{f{ln}}{f{Aj}}}{{An{AbAl}}}}{{{f{lA`}}{f{Aj}}}{{An{AbAl}}}}{{{f{ln}}{f{lAj}}}{{An{AbAl}}}}{{{f{lA`}}{f{lAj}}}{{An{AbAl}}}}`:::``","D":"Bb","p":[[8,"Command",72],[5,"AtomicBool",73],[1,"reference"],[5,"Duration",74],[1,"bool"],[0,"mut"],[5,"RpcArgs",0],[6,"RpcCommands",0],[1,"unit"],[6,"Emission",0],[5,"Formatter",75],[8,"Result",75],[5,"ArgMatches",76],[5,"Error",77],[6,"Result",78],[1,"str"],[8,"Result",79],[5,"Client",80],[5,"Arc",81],[5,"TypeId",82],[15,"Sync",70],[15,"Live",70]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADcACgAAAAEAAwAAAAUAAgAKAAIADwAPACAAAgAmAAQALgABADMADwBEAAQA"}],\ -["example_cli",{"t":"PGFPPPGGFPPFPGIIPPPPPPPIPPPGEONNNNNNNNENNNNNNNNNNNNNNNNOOENNNNNNNNNNNOOHOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOOOOHONNNNNNNNNNOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOO","n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","External","Index","Init","Internal","Keychain","KeychainChangeSet","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","PlannedUtxo","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","args","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands","augment_subcommands","augment_subcommands_for_update","augment_subcommands_for_update","augment_subcommands_for_update","bdk_file_store","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","change_keychain","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db","db_path","default","descriptor","deserialize","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","index","index","index","index_changeset","init","init_changeset","into","into","into","into","into","into","into","into","into_app","into_app_for_update","keymap","network","partial_cmp","planned_utxos","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","change","addr_cmd","address","chain_specific","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":[[0,"example_cli"],[176,"example_cli::AddressCmd"],[177,"example_cli::Commands"],[183,"example_cli::TxOutCmd"],[187,"clap::builder::command"],[188,"core::clone"],[189,"clap::derive"],[190,"core::cmp"],[191,"miniscript::descriptor::key"],[192,"alloc::collections::btree::map"],[193,"bitcoin::address"],[194,"bitcoin::blockdata::transaction"],[195,"core::option"],[196,"anyhow"],[197,"bdk_chain::tx_data_traits"],[198,"bdk_chain::chain_oracle"],[199,"core::result"],[200,"serde::de"],[201,"core::fmt"],[202,"clap::parser::matches::arg_matches"],[203,"clap::error"],[204,"std::sync::mutex"],[205,"bdk_file_store::store"],[206,"bitcoin::network"],[207,"core::default"],[208,"serde::ser"],[209,"core::convert"],[210,"core::marker"],[211,"core::ops::function"],[212,"bdk_tmp_plan"],[213,"alloc::vec"],[214,"alloc::string"],[215,"core::any"]],"i":[4,0,0,4,8,4,0,0,0,11,9,0,11,0,0,0,8,9,10,9,8,9,8,0,4,8,4,0,0,52,34,34,4,9,10,4,9,10,0,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,21,0,4,8,9,10,11,4,8,9,10,11,11,34,34,0,52,34,8,34,11,11,11,11,4,8,8,9,10,11,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,8,0,4,9,10,14,21,52,21,0,52,21,52,34,4,8,9,10,11,34,34,52,34,11,0,11,4,8,9,10,11,8,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,21,52,34,4,8,9,10,11,60,61,62,62,62,63,62,64,64,64,64],"f":"``````````````````````````````{bb}0000000`{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{fc}}}{{d{fe}}}{}{}}0000000```{{{d{{h{ce}}}}}{{h{ce}}}{jl}{jn}}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{c}}{d{fe}}}Ah{}{}}0000{{{d{Af}}{d{Af}}}Aj}``{{{d{f{Al{c}}}}{d{e}}{d{{Bb{AnB`}}}}A`BdBf}{{C`{{Bn{Bh{Bl{Bj}}}}}}}CbCd}``{{}A`}`{c{{Cf{Af}}}Ch}{{{d{Af}}{d{Af}}}Cj}{{{d{c}}{d{e}}}Cj{}{}}0{{{d{{h{ce}}}}{d{fCl}}}Cn{D`l}{D`n}}{{{d{A`}}{d{fCl}}}Cn}0{{{d{Ab}}{d{fCl}}}Cn}{{{d{Ad}}{d{fCl}}}Cn}{{{d{Af}}{d{fCl}}}Cn}0{cc{}}0000000{{{d{Db}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{Db}}}{{Cf{{h{ce}}Df}}}ln}{{{d{Db}}}{{Cf{AbDf}}}}{{{d{Db}}}{{Cf{AdDf}}}}{{{d{fDb}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{{h{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{AbDf}}}}{{{d{fDb}}}{{Cf{AdDf}}}}{{{d{Dh}}}{{Cf{A`c}}}{}}{{{d{{Dj{{Al{c}}}}}}{d{{Dj{{Dl{e}}}}}}{d{{Dj{g}}}}{d{{Bb{AnB`}}}}Dnk{h{mi}}}{{C`{Ah}}}Cb{E`EbEdEf{Ej{{Eh{c}}}}ElEnD`}Cdn{{Fb{i{d{Bh}}}{{F`{{C`{Ah}}}}}}}l}{{{d{Dh}}}Cj}00````{{{d{{Ff{Fd}}}}{d{Dh}}}{{C`{{Fh{ceg}}}}}ln{E`EbEfEdD`ElEn}}`{ce{}{}}0000000{{}b}0``{{{d{Af}}{d{Af}}}{{Bl{Aj}}}}{{{d{{Al{c}}}}{d{e}}{d{{Fj{g}}}}}{{Cf{{Fn{{Fl{gc}}}}}}}CbCd{jG`}}{{{d{Af}}c}CfGb}{{{d{c}}}e{}{}}0000{{{d{c}}}Gd{}}0{c{{Cf{e}}}{}{}}000000000000000{{{d{c}}}Gf{}}0000000{{{d{f{Dd{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{Db}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{Db}}}{{Cf{AhDf}}}}{{{d{f{Dd{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{fDb}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{fDb}}}{{Cf{AhDf}}}}{ce{}{}}0000000```````````","D":"E`","p":[[8,"Command",187],[1,"reference"],[0,"mut"],[6,"Commands",0],[10,"Clone",188],[10,"Subcommand",189],[10,"Args",189],[6,"CoinSelectionAlgo",0],[6,"AddressCmd",0],[6,"TxOutCmd",0],[6,"Keychain",0],[1,"unit"],[6,"Ordering",190],[8,"KeychainTxGraph",0],[6,"DescriptorPublicKey",191],[6,"DescriptorSecretKey",191],[5,"BTreeMap",192],[5,"Address",193],[1,"u64"],[5,"Transaction",194],[5,"CreateTxChange",0],[6,"Option",195],[1,"tuple"],[8,"Result",196],[10,"Anchor",197],[10,"ChainOracle",198],[6,"Result",199],[10,"Deserializer",200],[1,"bool"],[5,"Formatter",201],[8,"Result",201],[10,"Debug",201],[5,"ArgMatches",202],[5,"Args",0],[5,"Error",203],[1,"str"],[5,"Mutex",204],[5,"Store",205],[6,"Network",206],[10,"Default",207],[10,"Merge",197],[10,"DeserializeOwned",200],[10,"Serialize",208],[8,"KeychainChangeSet",0],[10,"From",209],[10,"Send",210],[10,"Sync",210],[17,"Output"],[10,"FnOnce",211],[1,"u8"],[1,"slice"],[5,"Init",0],[5,"Assets",212],[8,"PlannedUtxo",0],[5,"Vec",213],[10,"CanDerive",212],[10,"Serializer",208],[5,"String",214],[5,"TypeId",215],[15,"List",176],[15,"Address",177],[15,"Send",177],[15,"TxOut",177],[15,"List",183]],"r":[],"b":[[81,"impl-Display-for-CoinSelectionAlgo"],[82,"impl-Debug-for-CoinSelectionAlgo"],[85,"impl-Debug-for-Keychain"],[86,"impl-Display-for-Keychain"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJMAEQAAAAAAAgABAAUABQANAAQAFQAAABcAAQAaAAAAHAABAB8AKQBKAA0AYAAMAG4AAABwAAAAewABAH4AMgCyAAAAtAACAA=="}],\ +["example_cli",{"t":"PGFPPPGGFPPFPGIIPPPPPPPIPPPGEONNNNNNNNENNNNNNNNNNNNNNNNOOENNNNNNNNNNNOOHOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOOOOHONNNNNNNNNNOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOO","n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","External","Index","Init","Internal","Keychain","KeychainChangeSet","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","PlannedUtxo","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","args","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands","augment_subcommands","augment_subcommands_for_update","augment_subcommands_for_update","augment_subcommands_for_update","bdk_file_store","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","change_keychain","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db","db_path","default","descriptor","deserialize","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","index","index","index","index_changeset","init","init_changeset","into","into","into","into","into","into","into","into","into_app","into_app_for_update","keymap","network","partial_cmp","planned_utxos","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","change","addr_cmd","address","chain_specific","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":[[0,"example_cli"],[176,"example_cli::AddressCmd"],[177,"example_cli::Commands"],[183,"example_cli::TxOutCmd"],[187,"clap::builder::command"],[188,"core::clone"],[189,"clap::derive"],[190,"core::cmp"],[191,"miniscript::descriptor::key"],[192,"alloc::collections::btree::map"],[193,"bitcoin::address"],[194,"bitcoin::blockdata::transaction"],[195,"core::option"],[196,"anyhow"],[197,"bdk_chain::tx_data_traits"],[198,"bdk_chain::chain_oracle"],[199,"core::result"],[200,"serde::de"],[201,"core::fmt"],[202,"clap::parser::matches::arg_matches"],[203,"clap::error"],[204,"std::sync::mutex"],[205,"bdk_file_store::store"],[206,"bitcoin::network"],[207,"core::default"],[208,"serde::ser"],[209,"core::convert"],[210,"core::marker"],[211,"core::ops::function"],[212,"bdk_tmp_plan"],[213,"alloc::vec"],[214,"alloc::string"],[215,"core::any"]],"i":[4,0,0,4,8,4,0,0,0,11,9,0,11,0,0,0,8,9,10,9,8,9,8,0,4,8,4,0,0,52,34,34,4,9,10,4,9,10,0,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,21,0,4,8,9,10,11,4,8,9,10,11,11,34,34,0,52,34,8,34,11,11,11,11,4,8,8,9,10,11,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,8,0,4,9,10,14,21,52,21,0,52,21,52,34,4,8,9,10,11,34,34,52,34,11,0,11,4,8,9,10,11,8,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,21,52,34,4,8,9,10,11,60,61,62,62,62,63,62,64,64,64,64],"f":"``````````````````````````````{bb}0000000`{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{fc}}}{{d{fe}}}{}{}}0000000```{{{d{{h{ce}}}}}{{h{ce}}}{jl}{jn}}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{c}}{d{fe}}}Ah{}{}}0000{{{d{Af}}{d{Af}}}Aj}``{{{d{f{Al{c}}}}{d{e}}{d{{Bb{AnB`}}}}A`BdBf}{{C`{{Bn{Bh{Bl{Bj}}}}}}}CbCd}``{{}A`}`{c{{Cf{Af}}}Ch}{{{d{Af}}{d{Af}}}Cj}{{{d{c}}{d{e}}}Cj{}{}}0{{{d{{h{ce}}}}{d{fCl}}}Cn{D`l}{D`n}}{{{d{A`}}{d{fCl}}}Cn}0{{{d{Ab}}{d{fCl}}}Cn}{{{d{Ad}}{d{fCl}}}Cn}{{{d{Af}}{d{fCl}}}Cn}0{cc{}}0000000{{{d{Db}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{Db}}}{{Cf{{h{ce}}Df}}}ln}{{{d{Db}}}{{Cf{AbDf}}}}{{{d{Db}}}{{Cf{AdDf}}}}{{{d{fDb}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{{h{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{AbDf}}}}{{{d{fDb}}}{{Cf{AdDf}}}}{{{d{Dh}}}{{Cf{A`c}}}{}}{{{d{{Dj{{Al{c}}}}}}{d{{Dj{{Dl{e}}}}}}{d{{Dj{g}}}}{d{{Bb{AnB`}}}}Dnk{h{mi}}}{{C`{Ah}}}Cb{E`EbEdEf{Ej{{Eh{c}}}}ElEnD`}Cdn{{Fb{i{d{Bh}}}{{F`{{C`{Ah}}}}}}}l}{{{d{Dh}}}Cj}00````{{{d{{Ff{Fd}}}}{d{Dh}}}{{C`{{Fh{ceg}}}}}ln{E`EbEfEdD`ElEn}}`{ce{}{}}0000000{{}b}0``{{{d{Af}}{d{Af}}}{{Bl{Aj}}}}{{{d{{Al{c}}}}{d{e}}{d{{Fj{g}}}}}{{Cf{{Fn{{Fl{gc}}}}}}}CbCd{jG`}}{{{d{Af}}c}CfGb}{{{d{c}}}e{}{}}0000{{{d{c}}}Gd{}}0{c{{Cf{e}}}{}{}}000000000000000{{{d{c}}}Gf{}}0000000{{{d{f{Dd{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{Db}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{Db}}}{{Cf{AhDf}}}}{{{d{f{Dd{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{fDb}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{fDb}}}{{Cf{AhDf}}}}{ce{}{}}0000000```````````","D":"E`","p":[[8,"Command",187],[1,"reference"],[0,"mut"],[6,"Commands",0],[10,"Clone",188],[10,"Subcommand",189],[10,"Args",189],[6,"CoinSelectionAlgo",0],[6,"AddressCmd",0],[6,"TxOutCmd",0],[6,"Keychain",0],[1,"unit"],[6,"Ordering",190],[8,"KeychainTxGraph",0],[6,"DescriptorPublicKey",191],[6,"DescriptorSecretKey",191],[5,"BTreeMap",192],[5,"Address",193],[1,"u64"],[5,"Transaction",194],[5,"CreateTxChange",0],[6,"Option",195],[1,"tuple"],[8,"Result",196],[10,"Anchor",197],[10,"ChainOracle",198],[6,"Result",199],[10,"Deserializer",200],[1,"bool"],[5,"Formatter",201],[8,"Result",201],[10,"Debug",201],[5,"ArgMatches",202],[5,"Args",0],[5,"Error",203],[1,"str"],[5,"Mutex",204],[5,"Store",205],[6,"Network",206],[10,"Default",207],[10,"Merge",197],[10,"DeserializeOwned",200],[10,"Serialize",208],[8,"KeychainChangeSet",0],[10,"From",209],[10,"Send",210],[10,"Sync",210],[17,"Output"],[10,"FnOnce",211],[1,"u8"],[1,"slice"],[5,"Init",0],[5,"Assets",212],[8,"PlannedUtxo",0],[5,"Vec",213],[10,"CanDerive",212],[10,"Serializer",208],[5,"String",214],[5,"TypeId",215],[15,"List",176],[15,"Address",177],[15,"Send",177],[15,"TxOut",177],[15,"List",183]],"r":[],"b":[[81,"impl-Display-for-CoinSelectionAlgo"],[82,"impl-Debug-for-CoinSelectionAlgo"],[85,"impl-Display-for-Keychain"],[86,"impl-Debug-for-Keychain"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJMAEQAAAAAAAgABAAUABQANAAQAFQAAABcAAQAaAAAAHAABAB8AKQBKAA0AYAAMAG4AAABwAAAAewABAH4AMgCyAAAAtAACAA=="}],\ ["example_electrum",{"t":"ISSFGPFPNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["ChangeSet","DB_MAGIC","DB_PATH","ElectrumArgs","ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","client","clone","clone","clone","clone_into","clone_into","clone_into","electrum_args","electrum_url","eq","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","into_app","into_app_for_update","main","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","all_spks","electrum_args","electrum_args","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":[[0,"example_electrum"],[71,"example_electrum::ElectrumCommands"],[80,"clap::builder::command"],[81,"bitcoin::network"],[82,"electrum_client::client"],[83,"anyhow"],[84,"core::fmt"],[85,"clap::parser::matches::arg_matches"],[86,"clap::error"],[87,"core::result"],[88,"core::any"]],"i":[0,0,0,0,0,8,0,8,4,9,4,9,8,8,9,8,4,9,8,4,9,4,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,8,4,9,9,9,0,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,19,20,19,20,19,20,19,19,19],"f":"````````{bb}00000`{{{d{c}}}{{d{e}}}{}{}}00{{{d{fc}}}{{d{fe}}}{}{}}00{{{d{h}}j}{{n{l}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{Ab}}}Ab}{{{d{c}}{d{fe}}}Ad{}{}}00{{{d{A`}}}h}`{{{d{Ab}}{d{Ab}}}Af}{{{d{A`}}{d{fAh}}}Aj}{{{d{h}}{d{fAh}}}Aj}{{{d{Ab}}{d{fAh}}}Aj}{cc{}}00{{{d{Al}}}{{B`{A`An}}}}{{{d{Al}}}{{B`{hAn}}}}{{{d{Al}}}{{B`{AbAn}}}}{{{d{fAl}}}{{B`{A`An}}}}{{{d{fAl}}}{{B`{hAn}}}}{{{d{fAl}}}{{B`{AbAn}}}}{{{d{Bb}}}Af}{ce{}{}}00{{}b}0{{}{{n{Ad}}}}{{{d{c}}}e{}{}}00{c{{B`{e}}}{}{}}00000{{{d{c}}}Bd{}}00{{{d{fA`}}{d{Al}}}{{B`{AdAn}}}}{{{d{fh}}{d{Al}}}{{B`{AdAn}}}}{{{d{fAb}}{d{Al}}}{{B`{AdAn}}}}{{{d{fA`}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fh}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fAb}}{d{fAl}}}{{B`{AdAn}}}};;;`````````","D":"An","p":[[8,"Command",80],[1,"reference"],[0,"mut"],[5,"ElectrumArgs",0],[6,"Network",81],[5,"Client",82],[8,"Result",83],[6,"ElectrumCommands",0],[5,"ScanOptions",0],[1,"unit"],[1,"bool"],[5,"Formatter",84],[8,"Result",84],[5,"ArgMatches",85],[5,"Error",86],[6,"Result",87],[1,"str"],[5,"TypeId",88],[15,"Sync",71],[15,"Scan",71]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEEACAAAAAUABwAAAAkABQAQAA0AHwADACYABgAwABcASQADAA=="}],\ ["example_esplora",{"t":"ISSFGPFPNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["ChangeSet","DB_MAGIC","DB_PATH","EsploraArgs","EsploraCommands","Scan","ScanOptions","Sync","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","client","clone","clone","clone","clone_into","clone_into","clone_into","eq","esplora_args","esplora_url","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","into_app","into_app_for_update","main","parallel_requests","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","all_spks","esplora_args","esplora_args","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":[[0,"example_esplora"],[71,"example_esplora::EsploraCommands"],[80,"clap::builder::command"],[81,"bitcoin::network"],[82,"esplora_client::blocking"],[83,"anyhow"],[84,"core::fmt"],[85,"clap::parser::matches::arg_matches"],[86,"clap::error"],[87,"core::result"],[88,"core::any"]],"i":[0,0,0,0,0,8,0,8,4,9,4,9,8,8,8,4,9,8,4,9,4,8,4,9,8,4,9,9,8,4,8,4,9,8,4,9,8,4,9,8,4,9,8,8,4,9,9,9,0,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,19,20,19,20,19,20,19,19,19],"f":"````````{bb}00000{{{d{c}}}{{d{e}}}{}{}}00{{{d{fc}}}{{d{fe}}}{}{}}00{{{d{h}}j}{{n{l}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{Ab}}}Ab}{{{d{c}}{d{fe}}}Ad{}{}}00{{{d{Ab}}{d{Ab}}}Af}{{{d{A`}}}h}`{{{d{A`}}{d{fAh}}}Aj}{{{d{h}}{d{fAh}}}Aj}{{{d{Ab}}{d{fAh}}}Aj}{cc{}}00{{{d{Al}}}{{B`{A`An}}}}{{{d{Al}}}{{B`{hAn}}}}{{{d{Al}}}{{B`{AbAn}}}}{{{d{fAl}}}{{B`{A`An}}}}{{{d{fAl}}}{{B`{hAn}}}}{{{d{fAl}}}{{B`{AbAn}}}}{{{d{Bb}}}Af}{ce{}{}}00{{}b}0{{}{{n{Ad}}}}`{{{d{c}}}e{}{}}00{c{{B`{e}}}{}{}}00000{{{d{c}}}Bd{}}00{{{d{fA`}}{d{Al}}}{{B`{AdAn}}}}{{{d{fh}}{d{Al}}}{{B`{AdAn}}}}{{{d{fAb}}{d{Al}}}{{B`{AdAn}}}}{{{d{fA`}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fh}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fAb}}{d{fAl}}}{{B`{AdAn}}}};;;`````````","D":"An","p":[[8,"Command",80],[1,"reference"],[0,"mut"],[5,"EsploraArgs",0],[6,"Network",81],[5,"BlockingClient",82],[8,"Result",83],[6,"EsploraCommands",0],[5,"ScanOptions",0],[1,"unit"],[1,"bool"],[5,"Formatter",84],[8,"Result",84],[5,"ArgMatches",85],[5,"Error",86],[6,"Result",87],[1,"str"],[5,"TypeId",88],[15,"Sync",71],[15,"Scan",71]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEEACAAAAAUABwAAAAkAFAAfAAIAJQAGAC8AAgAzABQASQADAA=="}],\ ["wallet_electrum_example",{"t":"SSSSH","n":["BATCH_SIZE","DB_MAGIC","SEND_AMOUNT","STOP_GAP","main"],"q":[[0,"wallet_electrum_example"],[5,"anyhow"],[6,"core::result"]],"i":[0,0,0,0,0],"f":"````{{}{{f{bd}}}}","D":"`","p":[[1,"unit"],[5,"Error",5],[6,"Result",6]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQAAAAUA"}],\ diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js index 618f4b4496..dcaedb30e8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("bdk_chain", 0, "This crate is a collection of core structures for Bitcoin …\nTrait that “anchors” blockchain data to a specific …\nAn Anchor that can be constructed from a given block, …\nMaximum BIP32 derivation index.\nBalance, differentiated into various categories.\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.\nA changeset containing crate structures typically …\nAn Anchor implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nAn Anchor implementation that also records the exact …\nThe chain data is seen as confirmed, and in anchored by A.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the unique ID of a descriptor.\nError type.\nA TxOut with as much data as we can retrieve about it\nA tuple of keychain index and T representing the indexed …\nA tuple of keychain K, derivation index (u32) and a T …\nTrait that makes an object mergeable.\nAn iterator for derived script pubkeys.\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nReturns the BlockId that the associated blockchain data is …\nThe anchor block.\nThe anchor block.\nReturns a reference to the inner hash (sha256, sh256d …\nChanges to the LocalChain.\nThe position of the transaction in outpoint in the overall …\nMaps a ChainPosition<&A> into a ChainPosition<A> 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.\nConfirmed and immediately spendable balance\nGet a reference to the internal descriptor.\nReturns the descriptor ID, calculated as the sha256 hash …\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.\nReturns the argument unchanged.\nConstruct the anchor from a given block, 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.\nAll coinbase outputs not yet matured\nContains the IndexedTxGraph and associated types. Refer to …\nChanges to IndexedTxGraph.\nIndexer provides utilities for indexing transaction data.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether block of BlockId exists as an ancestor …\nReturns whether ChainPosition is confirmed or not.\nReturns whether ConfirmationTime is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain tip.\nReturns whether the structure is considered empty.\nWhether the txout is considered mature.\nWhether this output is on a coinbase transaction.\nThe LocalChain is a local implementation of ChainOracle.\nMerge another object of the same type onto self.\nStores the network type of the transaction data.\nCreate a new script pubkey iterator from descriptor.\nCreate a new script pubkey iterator from descriptor and a …\nThe location of the TxOut.\nThe txid and chain position of the transaction (if any) …\nHelper types for spk-based blockchain clients.\nTake the value, replacing it with the default value.\nTake the value, replacing it with the default value.\nReturns the inner hash (sha256, sh256d etc.).\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nModule for structures that store and traverse transactions.\nThe TxOut.\nConstruct an unconfirmed variant using the given last_seen …\nUnconfirmed UTXOs received from an external wallet\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an IndexedTxGraph.\nThe IndexedTxGraph combines a TxGraph and an Indexer …\nBatch insert all transactions of the given block of height.\nBatch insert all transactions of the given block of height…\nApplies the ChangeSet to the IndexedTxGraph.\nApply an update 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.\nTxGraph changeset.\nTransaction index.\nIndexer changeset.\nDetermines the ChangeSet between self and an empty …\nInsert an anchor 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 txout of given outpoint.\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new IndexedTxGraph with a given index.\nThe resultant “changeset” when new transaction data is …\nUtilities for indexing transaction data.\nApply changeset to itself.\nScans a transaction for relevant outpoints, which are …\nScan and index the given outpoint and txout.\nDetermines the ChangeSet between self and an empty Indexer.\nDetermines whether the transaction should be included in …\nKeychainTxOutIndex controls how script pubkeys are …\nSpkTxOutIndex is an index storing TxOuts that have a …\nRepresents updates to the derivation index of a …\nThe default lookahead for a KeychainTxOutIndex\nThe descriptor has already been assigned to a keychain so …\nError returned from KeychainTxOutIndex::insert_descriptor\nThe keychain is already assigned to a descriptor so you can…\nKeychainTxOutIndex controls how script pubkeys are …\nThe keychain doesn’t exist. Most likley hasn’t been …\nGet unbounded spk iterators for all keychains.\nApplies the ChangeSet<K> to the KeychainTxOutIndex<K>\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal SpkTxOutIndex.\nInsert a descriptor with a keychain associated to it.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the changeset are empty.\nReturns whether the spk under the keychain’s index has …\nIterate over all OutPoints that have TxOuts with script …\nIterate over OutPoints that have script pubkeys derived …\nReturn all keychains and their corresponding 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 keychain. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the keychain where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until target_index (inclusive).\nMarks the script pubkey at index as used even though the …\nMerge another ChangeSet<K> into self.\nComputes the net value that this transaction gives to the …\nConstruct a KeychainTxOutIndex with the given lookahead.\nGet the next derivation index for keychain. 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 keychain.\nReveals script pubkeys of the keychain’s descriptor up …\nConvenience method to call Self::reveal_to_target on …\nIterate over revealed spks of the given keychain with …\nIterate over revealed spks of keychains in range\nComputes the total value transfer effect tx has on the …\nReturn the script that exists under the given keychain’s …\nReturn the TxOut of outpoint 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 keychain. …\nUndoes the effect of mark_used. Returns whether the index …\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nThe descriptor you have attempted to reassign\nThe keychain that the descriptor is already assigned to\nThe descriptor that the keychain is already assigned to\nThe keychain that you have attempted to reassign\nAn index storing TxOuts that have a script pubkey that …\nThe script pubkeys that are being tracked by the index.\nReturns the argument unchanged.\nReturns the index associated with the script pubkey.\nAdds a script pubkey to scan for. Returns false and does …\nCalls U::from(self).\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at index has been used …\nMarks the script pubkey at index as used even though it …\nComputes the net value transfer effect of tx on the script …\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 TxOut for a matching script pubkey and …\nComputes the total value transfer effect tx has on the …\nReturns the script that has been inserted at the index.\nReturns the txout and script pubkey index of the TxOut at …\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nUndoes the effect of mark_used. Returns whether the index …\nIterates over all unused script pubkeys in an index range.\nRepresents a failure when trying to insert/remove a …\nThe error type for LocalChain::apply_header_connected_to.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe ChangeSet represents changes to LocalChain.\nA LocalChain checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when connected_to block conflicts with either the …\nThis is a local implementation of ChainOracle.\nAn error which occurs when a LocalChain is constructed …\nApply the given changeset.\nUpdate the chain with a given Header connecting it with …\nUpdate the chain with a given Header at height which you …\nApplies the given update to the chain.\nGet the BlockId of the checkpoint.\nRemoves blocks from (and inclusive of) the given block_id.\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 BlockIds in …\nConstructs a LocalChain from a BTreeMap of height to …\nConstruct a LocalChain from an initial changeset.\nConstruct LocalChain from genesis hash.\nConstruct a checkpoint from the given header and block …\nConstruct a LocalChain from a given checkpoint tip.\nGet the genesis hash.\nGet checkpoint at height.\nGet checkpoint at given height (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial ChangeSet, meaning that it can be …\nInserts block_id at its height within the chain.\nInsert a BlockId.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\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 original_block 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 OutPoints that will be synced against.\nChain on additional Scripts that will be synced against.\nChain on additional Scripts that will be synced against.\nA checkpoint for the current chain LocalChain::tip. The …\nA checkpoint for the current LocalChain::tip. The full …\nChain on additional Txids that will be synced against.\nThe update to apply to the receiving LocalChain.\nThe update to apply to the receiving TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new SyncRequest from a given cp tip.\nConstruct a new FullScanRequest from a given chain_tip.\nConstruct a new FullScanRequest from a given chain_tip and …\nThe update to apply to the receiving TxGraph.\nThe update to apply to the receiving LocalChain.\nAdd a closure that will be called for OutPoints previously …\nAdd a closure that will be called for Scripts previously …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for Txids previously …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLast active indices for the corresponding keychains (K).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the OutPoints that will be synced against.\nSet the Scripts that will be synced against.\nSet the Scripts for a given keychain.\nSet the Txids 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 TxGraph::calculate_fee.\nA transaction that is included in the chain, or is still …\nThe ChangeSet represents changes to a TxGraph.\nMissing TxOut 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 TxGraph.\nGet all transaction anchors known by TxGraph.\nIterate over all tx outputs known by TxGraph.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies ChangeSet to TxGraph.\nExtends this graph with another so that self becomes the …\nGet the total balance of outpoints that are in chain 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 outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by TxGraph.\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 chain with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns Some for full …\nGet a transaction node by txid. This only returns Some for …\nObtains a single tx output (if any) at the specified …\nDetermines the ChangeSet between self and an empty TxGraph.\nInserts the given anchor into TxGraph.\nInserts the given seen_at for txid into TxGraph.\nInserts the given transaction into TxGraph.\nInserts the given TxOut at OutPoint.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\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 chain with chain_tip.\nTransform the TxGraph to have Anchors of another type.\nTransform the ChangeSet to have Anchors of another type.\nConstruct a new TxGraph from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of outpoints that are in chain of …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in chain with chain_tip.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given txid.\nIterates over the transactions spending from txid.\nTxid of the transaction.\nIterates over all outpoints contained within ChangeSet.\nAdded txouts.\nAdded transactions.\nIterate over graph transactions with no anchors or …\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 Anchor that can be constructed from a given block, …\nMaximum BIP32 derivation index.\nBalance, differentiated into various categories.\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.\nA changeset containing crate structures typically …\nAn Anchor implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nThe chain data is seen as confirmed, and in anchored by A.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the unique ID of a descriptor.\nError type.\nA TxOut with as much data as we can retrieve about it\nA tuple of keychain index and T representing the indexed …\nA tuple of keychain K, derivation index (u32) and a T …\nTrait that makes an object mergeable.\nAn iterator for derived script pubkeys.\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nReturns the BlockId that the associated blockchain data is …\nReturns a reference to the inner hash (sha256, sh256d …\nThe anchor block.\nChanges to the LocalChain.\nThe position of the transaction in outpoint in the overall …\nMaps a ChainPosition<&A> into a ChainPosition<A> by …\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.\nConfirmed and immediately spendable balance\nGet a reference to the internal descriptor.\nReturns the descriptor ID, calculated as the sha256 hash …\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 block, 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.\nAll coinbase outputs not yet matured\nContains the IndexedTxGraph and associated types. Refer to …\nChanges to IndexedTxGraph.\nIndexer provides utilities for indexing transaction data.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether block of BlockId exists as an ancestor …\nReturns whether ChainPosition is confirmed or not.\nReturns whether ConfirmationTime is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain tip.\nReturns whether the structure is considered empty.\nWhether the txout is considered mature.\nWhether this output is on a coinbase transaction.\nThe LocalChain is a local implementation of ChainOracle.\nMerge another object of the same type onto self.\nStores the network type of the transaction data.\nCreate a new script pubkey iterator from descriptor.\nCreate a new script pubkey iterator from descriptor and a …\nThe location of the TxOut.\nThe txid and chain position of the transaction (if any) …\nHelper types for spk-based blockchain clients.\nTake the value, replacing it with the default value.\nTake the value, replacing it with the default value.\nReturns the inner hash (sha256, sh256d etc.).\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nModule for structures that store and traverse transactions.\nThe TxOut.\nConstruct an unconfirmed variant using the given last_seen …\nUnconfirmed UTXOs received from an external wallet\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an IndexedTxGraph.\nThe IndexedTxGraph combines a TxGraph and an Indexer …\nBatch insert all transactions of the given block of height.\nBatch insert all transactions of the given block of height…\nApplies the ChangeSet to the IndexedTxGraph.\nApply an update 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.\nTxGraph changeset.\nTransaction index.\nIndexer changeset.\nDetermines the ChangeSet between self and an empty …\nInsert an anchor 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 txout of given outpoint.\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new IndexedTxGraph with a given index.\nThe resultant “changeset” when new transaction data is …\nUtilities for indexing transaction data.\nApply changeset to itself.\nScans a transaction for relevant outpoints, which are …\nScan and index the given outpoint and txout.\nDetermines the ChangeSet between self and an empty Indexer.\nDetermines whether the transaction should be included in …\nKeychainTxOutIndex controls how script pubkeys are …\nSpkTxOutIndex is an index storing TxOuts that have a …\nRepresents updates to the derivation index of a …\nThe default lookahead for a KeychainTxOutIndex\nThe descriptor has already been assigned to a keychain so …\nError returned from KeychainTxOutIndex::insert_descriptor\nThe keychain is already assigned to a descriptor so you can…\nKeychainTxOutIndex controls how script pubkeys are …\nThe keychain doesn’t exist. Most likley hasn’t been …\nGet unbounded spk iterators for all keychains.\nApplies the ChangeSet<K> to the KeychainTxOutIndex<K>\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal SpkTxOutIndex.\nInsert a descriptor with a keychain associated to it.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the changeset are empty.\nReturns whether the spk under the keychain’s index has …\nIterate over all OutPoints that have TxOuts with script …\nIterate over OutPoints that have script pubkeys derived …\nReturn all keychains and their corresponding 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 keychain. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the keychain where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until target_index (inclusive).\nMarks the script pubkey at index as used even though the …\nMerge another ChangeSet<K> into self.\nComputes the net value that this transaction gives to the …\nConstruct a KeychainTxOutIndex with the given lookahead.\nGet the next derivation index for keychain. 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 keychain.\nReveals script pubkeys of the keychain’s descriptor up …\nConvenience method to call Self::reveal_to_target on …\nIterate over revealed spks of the given keychain with …\nIterate over revealed spks of keychains in range\nComputes the total value transfer effect tx has on the …\nReturn the script that exists under the given keychain’s …\nReturn the TxOut of outpoint 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 keychain. …\nUndoes the effect of mark_used. Returns whether the index …\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nThe descriptor you have attempted to reassign\nThe keychain that the descriptor is already assigned to\nThe descriptor that the keychain is already assigned to\nThe keychain that you have attempted to reassign\nAn index storing TxOuts that have a script pubkey that …\nThe script pubkeys that are being tracked by the index.\nReturns the argument unchanged.\nReturns the index associated with the script pubkey.\nAdds a script pubkey to scan for. Returns false and does …\nCalls U::from(self).\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at index has been used …\nMarks the script pubkey at index as used even though it …\nComputes the net value transfer effect of tx on the script …\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 TxOut for a matching script pubkey and …\nComputes the total value transfer effect tx has on the …\nReturns the script that has been inserted at the index.\nReturns the txout and script pubkey index of the TxOut at …\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nUndoes the effect of mark_used. Returns whether the index …\nIterates over all unused script pubkeys in an index range.\nRepresents a failure when trying to insert/remove a …\nThe error type for LocalChain::apply_header_connected_to.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe ChangeSet represents changes to LocalChain.\nA LocalChain checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when connected_to block conflicts with either the …\nThis is a local implementation of ChainOracle.\nAn error which occurs when a LocalChain is constructed …\nApply the given changeset.\nUpdate the chain with a given Header connecting it with …\nUpdate the chain with a given Header at height which you …\nApplies the given update to the chain.\nGet the BlockId of the checkpoint.\nRemoves blocks from (and inclusive of) the given block_id.\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 BlockIds in …\nConstructs a LocalChain from a BTreeMap of height to …\nConstruct a LocalChain from an initial changeset.\nConstruct LocalChain from genesis hash.\nConstruct a checkpoint from the given header and block …\nConstruct a LocalChain from a given checkpoint tip.\nGet the genesis hash.\nGet checkpoint at height.\nGet checkpoint at given height (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial ChangeSet, meaning that it can be …\nInserts block_id at its height within the chain.\nInsert a BlockId.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\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 original_block 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 OutPoints that will be synced against.\nChain on additional Scripts that will be synced against.\nChain on additional Scripts that will be synced against.\nA checkpoint for the current chain LocalChain::tip. The …\nA checkpoint for the current LocalChain::tip. The full …\nChain on additional Txids that will be synced against.\nThe update to apply to the receiving LocalChain.\nThe update to apply to the receiving TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new SyncRequest from a given cp tip.\nConstruct a new FullScanRequest from a given chain_tip.\nConstruct a new FullScanRequest from a given chain_tip and …\nThe update to apply to the receiving TxGraph.\nThe update to apply to the receiving LocalChain.\nAdd a closure that will be called for OutPoints previously …\nAdd a closure that will be called for Scripts previously …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for Txids previously …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLast active indices for the corresponding keychains (K).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the OutPoints that will be synced against.\nSet the Scripts that will be synced against.\nSet the Scripts for a given keychain.\nSet the Txids 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 TxGraph::calculate_fee.\nA transaction that is included in the chain, or is still …\nThe ChangeSet represents changes to a TxGraph.\nMissing TxOut 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 TxGraph.\nGet all transaction anchors known by TxGraph.\nIterate over all tx outputs known by TxGraph.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies ChangeSet to TxGraph.\nExtends this graph with another so that self becomes the …\nGet the total balance of outpoints that are in chain 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 outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by TxGraph.\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 chain with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns Some for full …\nGet a transaction node by txid. This only returns Some for …\nObtains a single tx output (if any) at the specified …\nDetermines the ChangeSet between self and an empty TxGraph.\nInserts the given anchor into TxGraph.\nInserts the given seen_at for txid into TxGraph.\nInserts the given transaction into TxGraph.\nInserts the given TxOut at OutPoint.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\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 chain with chain_tip.\nTransform the TxGraph to have Anchors of another type.\nTransform the ChangeSet to have Anchors of another type.\nConstruct a new TxGraph from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of outpoints that are in chain of …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in chain with chain_tip.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given txid.\nIterates over the transactions spending from txid.\nTxid of the transaction.\nIterates over all outpoints contained within ChangeSet.\nAdded txouts.\nAdded transactions.\nIterate over graph transactions with no anchors or …\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 diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_electrum/bdk_electrum-desc-0-.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_electrum/bdk_electrum-desc-0-.js index 014b565309..d2a8e56f9e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_electrum/bdk_electrum-desc-0-.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_electrum/bdk_electrum-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("bdk_electrum", 0, "This crate is used for updating structures of bdk_chain …\nWrapper around an electrum_client::ElectrumApi which …\nThe result of BdkElectrumClient::full_scan.\nThe result of BdkElectrumClient::sync.\nFetch transaction of given txid.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFull scan the keychain scripts specified with the …\nThe internal electrum_client::ElectrumApi\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\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 FullScanResult with ConfirmationHeightAnchor.\nReturn SyncResult with ConfirmationHeightAnchor.\nReturn FullScanResult with ConfirmationTimeHeightAnchor.\nReturn SyncResult with ConfirmationTimeHeightAnchor.") \ No newline at end of file +searchState.loadedDescShard("bdk_electrum", 0, "This crate is used for updating structures of bdk_chain …\nWrapper around an electrum_client::ElectrumApi which …\nFetch transaction of given txid.\nReturns the argument unchanged.\nFull scan the keychain scripts specified with the …\nThe internal electrum_client::ElectrumApi\nCalls U::from(self).\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.") \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html index d75e264032..8b93b7ff46 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html @@ -1 +1 @@ -Settings

Rustdoc settings

Back
\ No newline at end of file +Settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html index d915cb20a2..8edaa7a60b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html @@ -285,51 +285,6 @@ 285 286 287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332
use bitcoin::{hashes::Hash, BlockHash, OutPoint, TxOut, Txid};
 
 use crate::{Anchor, AnchorFromBlockPosition, COINBASE_MATURITY};
@@ -406,11 +361,11 @@
     }
 }
 
-impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime {
-    fn from(observed_as: ChainPosition<ConfirmationTimeHeightAnchor>) -> Self {
+impl From<ChainPosition<ConfirmationBlockTime>> for ConfirmationTime {
+    fn from(observed_as: ChainPosition<ConfirmationBlockTime>) -> Self {
         match observed_as {
             ChainPosition::Confirmed(a) => Self::Confirmed {
-                height: a.confirmation_height,
+                height: a.block_id.height,
                 time: a.confirmation_time,
             },
             ChainPosition::Unconfirmed(last_seen) => Self::Unconfirmed { last_seen },
@@ -477,9 +432,7 @@
     }
 }
 
-/// An [`Anchor`] implementation that also records the exact confirmation height of the transaction.
-///
-/// Note that the confirmation block and the anchor block can be different here.
+/// An [`Anchor`] implementation that also records the exact confirmation time of the transaction.
 ///
 /// Refer to [`Anchor`] for more details.
 #[derive(Debug, Default, Clone, PartialEq, Eq, Copy, PartialOrd, Ord, core::hash::Hash)]
@@ -488,70 +441,27 @@
     derive(serde::Deserialize, serde::Serialize),
     serde(crate = "serde_crate")
 )]
-pub struct ConfirmationHeightAnchor {
-    /// The exact confirmation height of the transaction.
-    ///
-    /// It is assumed that this value is never larger than the height of the anchor block.
-    pub confirmation_height: u32,
+pub struct ConfirmationBlockTime {
     /// The anchor block.
-    pub anchor_block: BlockId,
-}
-
-impl Anchor for ConfirmationHeightAnchor {
-    fn anchor_block(&self) -> BlockId {
-        self.anchor_block
-    }
-
-    fn confirmation_height_upper_bound(&self) -> u32 {
-        self.confirmation_height
-    }
-}
-
-impl AnchorFromBlockPosition for ConfirmationHeightAnchor {
-    fn from_block_position(_block: &bitcoin::Block, block_id: BlockId, _tx_pos: usize) -> Self {
-        Self {
-            anchor_block: block_id,
-            confirmation_height: block_id.height,
-        }
-    }
-}
-
-/// An [`Anchor`] implementation that also records the exact confirmation time and height of the
-/// transaction.
-///
-/// Note that the confirmation block and the anchor block can be different here.
-///
-/// Refer to [`Anchor`] for more details.
-#[derive(Debug, Default, Clone, PartialEq, Eq, Copy, PartialOrd, Ord, core::hash::Hash)]
-#[cfg_attr(
-    feature = "serde",
-    derive(serde::Deserialize, serde::Serialize),
-    serde(crate = "serde_crate")
-)]
-pub struct ConfirmationTimeHeightAnchor {
-    /// The confirmation height of the transaction being anchored.
-    pub confirmation_height: u32,
+    pub block_id: BlockId,
     /// The confirmation time of the transaction being anchored.
     pub confirmation_time: u64,
-    /// The anchor block.
-    pub anchor_block: BlockId,
 }
 
-impl Anchor for ConfirmationTimeHeightAnchor {
+impl Anchor for ConfirmationBlockTime {
     fn anchor_block(&self) -> BlockId {
-        self.anchor_block
+        self.block_id
     }
 
     fn confirmation_height_upper_bound(&self) -> u32 {
-        self.confirmation_height
+        self.block_id.height
     }
 }
 
-impl AnchorFromBlockPosition for ConfirmationTimeHeightAnchor {
+impl AnchorFromBlockPosition for ConfirmationBlockTime {
     fn from_block_position(block: &bitcoin::Block, block_id: BlockId, _tx_pos: usize) -> Self {
         Self {
-            anchor_block: block_id,
-            confirmation_height: block_id.height,
+            block_id,
             confirmation_time: block.header.time as _,
         }
     }
@@ -637,19 +547,19 @@
 
     #[test]
     fn chain_position_ord() {
-        let unconf1 = ChainPosition::<ConfirmationHeightAnchor>::Unconfirmed(10);
-        let unconf2 = ChainPosition::<ConfirmationHeightAnchor>::Unconfirmed(20);
-        let conf1 = ChainPosition::Confirmed(ConfirmationHeightAnchor {
-            confirmation_height: 9,
-            anchor_block: BlockId {
-                height: 20,
+        let unconf1 = ChainPosition::<ConfirmationBlockTime>::Unconfirmed(10);
+        let unconf2 = ChainPosition::<ConfirmationBlockTime>::Unconfirmed(20);
+        let conf1 = ChainPosition::Confirmed(ConfirmationBlockTime {
+            confirmation_time: 20,
+            block_id: BlockId {
+                height: 9,
                 ..Default::default()
             },
         });
-        let conf2 = ChainPosition::Confirmed(ConfirmationHeightAnchor {
-            confirmation_height: 12,
-            anchor_block: BlockId {
-                height: 15,
+        let conf2 = ChainPosition::Confirmed(ConfirmationBlockTime {
+            confirmation_time: 15,
+            block_id: BlockId {
+                height: 12,
                 ..Default::default()
             },
         });
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html
index a5dd85f58e..d7527a21b2 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html
@@ -389,7 +389,7 @@
 
//! Helper types for spk-based blockchain clients.
 
 use crate::{
-    collections::BTreeMap, local_chain::CheckPoint, ConfirmationTimeHeightAnchor, Indexed, TxGraph,
+    collections::BTreeMap, local_chain::CheckPoint, ConfirmationBlockTime, Indexed, TxGraph,
 };
 use alloc::boxed::Box;
 use bitcoin::{OutPoint, Script, ScriptBuf, Txid};
@@ -564,7 +564,7 @@
 /// Data returned from a spk-based blockchain client sync.
 ///
 /// See also [`SyncRequest`].
-pub struct SyncResult<A = ConfirmationTimeHeightAnchor> {
+pub struct SyncResult<A = ConfirmationBlockTime> {
     /// The update to apply to the receiving [`TxGraph`].
     pub graph_update: TxGraph<A>,
     /// The update to apply to the receiving [`LocalChain`](crate::local_chain::LocalChain).
@@ -705,7 +705,7 @@
 /// Data returned from a spk-based blockchain client full scan.
 ///
 /// See also [`FullScanRequest`].
-pub struct FullScanResult<K, A = ConfirmationTimeHeightAnchor> {
+pub struct FullScanResult<K, A = ConfirmationBlockTime> {
     /// The update to apply to the receiving [`LocalChain`](crate::local_chain::LocalChain).
     pub graph_update: TxGraph<A>,
     /// The update to apply to the receiving [`TxGraph`].
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_data_traits.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_data_traits.rs.html
index 81570fbecb..26c06034d5 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_data_traits.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_data_traits.rs.html
@@ -171,27 +171,6 @@
 171
 172
 173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
 
use crate::collections::BTreeMap;
 use crate::collections::BTreeSet;
 use crate::BlockId;
@@ -214,8 +193,7 @@
 /// # use bdk_chain::local_chain::LocalChain;
 /// # use bdk_chain::tx_graph::TxGraph;
 /// # use bdk_chain::BlockId;
-/// # use bdk_chain::ConfirmationHeightAnchor;
-/// # use bdk_chain::ConfirmationTimeHeightAnchor;
+/// # use bdk_chain::ConfirmationBlockTime;
 /// # use bdk_chain::example_utils::*;
 /// # use bitcoin::hashes::Hash;
 /// // Initialize the local chain with two blocks.
@@ -244,39 +222,19 @@
 ///     },
 /// );
 ///
-/// // Insert `tx` into a `TxGraph` that uses `ConfirmationHeightAnchor` as the anchor type.
-/// // This anchor records the anchor block and the confirmation height of the transaction.
-/// // When a transaction is anchored with `ConfirmationHeightAnchor`, the anchor block and
-/// // confirmation block can be different. However, the confirmation block cannot be higher than
-/// // the anchor block and both blocks must be in the same chain for the anchor to be valid.
-/// let mut graph_b = TxGraph::<ConfirmationHeightAnchor>::default();
-/// let _ = graph_b.insert_tx(tx.clone());
-/// graph_b.insert_anchor(
-///     tx.compute_txid(),
-///     ConfirmationHeightAnchor {
-///         anchor_block: BlockId {
-///             height: 2,
-///             hash: Hash::hash("second".as_bytes()),
-///         },
-///         confirmation_height: 1,
-///     },
-/// );
-///
-/// // Insert `tx` into a `TxGraph` that uses `ConfirmationTimeHeightAnchor` as the anchor type.
-/// // This anchor records the anchor block, the confirmation height and time of the transaction.
-/// // When a transaction is anchored with `ConfirmationTimeHeightAnchor`, the anchor block and
-/// // confirmation block can be different. However, the confirmation block cannot be higher than
-/// // the anchor block and both blocks must be in the same chain for the anchor to be valid.
-/// let mut graph_c = TxGraph::<ConfirmationTimeHeightAnchor>::default();
+/// // Insert `tx` into a `TxGraph` that uses `ConfirmationBlockTime` as the anchor type.
+/// // This anchor records the anchor block and the confirmation time of the transaction. When a
+/// // transaction is anchored with `ConfirmationBlockTime`, the anchor block and confirmation block
+/// // of the transaction is the same block.
+/// let mut graph_c = TxGraph::<ConfirmationBlockTime>::default();
 /// let _ = graph_c.insert_tx(tx.clone());
 /// graph_c.insert_anchor(
 ///     tx.compute_txid(),
-///     ConfirmationTimeHeightAnchor {
-///         anchor_block: BlockId {
+///     ConfirmationBlockTime {
+///         block_id: BlockId {
 ///             height: 2,
 ///             hash: Hash::hash("third".as_bytes()),
 ///         },
-///         confirmation_height: 1,
 ///         confirmation_time: 123,
 ///     },
 /// );
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/bdk_electrum_client.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/bdk_electrum_client.rs.html
index c36d809e95..56d6da5243 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/bdk_electrum_client.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/bdk_electrum_client.rs.html
@@ -489,115 +489,19 @@
 489
 490
 491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
 
use bdk_chain::{
-    bitcoin::{OutPoint, ScriptBuf, Transaction, Txid},
-    collections::{BTreeMap, HashMap, HashSet},
+    bitcoin::{block::Header, BlockHash, OutPoint, ScriptBuf, Transaction, Txid},
+    collections::{BTreeMap, HashMap},
     local_chain::CheckPoint,
     spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
     tx_graph::TxGraph,
-    BlockId, ConfirmationHeightAnchor, ConfirmationTimeHeightAnchor,
+    Anchor, BlockId, ConfirmationBlockTime,
 };
-use core::str::FromStr;
 use electrum_client::{ElectrumApi, Error, HeaderNotification};
-use std::sync::{Arc, Mutex};
+use std::{
+    collections::BTreeSet,
+    sync::{Arc, Mutex},
+};
 
 /// We include a chain suffix of a certain length for the purpose of robustness.
 const CHAIN_SUFFIX_LENGTH: u32 = 8;
@@ -610,6 +514,8 @@
     pub inner: E,
     /// The transaction cache
     tx_cache: Mutex<HashMap<Txid, Arc<Transaction>>>,
+    /// The header cache
+    block_header_cache: Mutex<HashMap<u32, Header>>,
 }
 
 impl<E: ElectrumApi> BdkElectrumClient<E> {
@@ -618,6 +524,7 @@
         Self {
             inner: client,
             tx_cache: Default::default(),
+            block_header_cache: Default::default(),
         }
     }
 
@@ -654,6 +561,33 @@
         Ok(tx)
     }
 
+    /// Fetch block header of given `height`.
+    ///
+    /// If it hits the cache it will return the cached version and avoid making the request.
+    fn fetch_header(&self, height: u32) -> Result<Header, Error> {
+        let block_header_cache = self.block_header_cache.lock().unwrap();
+
+        if let Some(header) = block_header_cache.get(&height) {
+            return Ok(*header);
+        }
+
+        drop(block_header_cache);
+
+        self.update_header(height)
+    }
+
+    /// Update a block header at given `height`. Returns the updated header.
+    fn update_header(&self, height: u32) -> Result<Header, Error> {
+        let header = self.inner.block_header(height as usize)?;
+
+        self.block_header_cache
+            .lock()
+            .unwrap()
+            .insert(height, header);
+
+        Ok(header)
+    }
+
     /// Broadcasts a transaction to the network.
     ///
     /// This is a re-export of [`ElectrumApi::transaction_broadcast`].
@@ -677,87 +611,32 @@
         stop_gap: usize,
         batch_size: usize,
         fetch_prev_txouts: bool,
-    ) -> Result<ElectrumFullScanResult<K>, Error> {
-        let mut request_spks = request.spks_by_keychain;
-
-        // 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).
-        let mut scanned_spks = BTreeMap::<(K, u32), (ScriptBuf, bool)>::new();
-
-        let update = loop {
-            let (tip, _) = construct_update_tip(&self.inner, request.chain_tip.clone())?;
-            let mut graph_update = TxGraph::<ConfirmationHeightAnchor>::default();
-            let cps = tip
-                .iter()
-                .take(10)
-                .map(|cp| (cp.height(), cp))
-                .collect::<BTreeMap<u32, CheckPoint>>();
-
-            if !request_spks.is_empty() {
-                if !scanned_spks.is_empty() {
-                    scanned_spks.append(
-                        &mut self.populate_with_spks(
-                            &cps,
-                            &mut graph_update,
-                            &mut scanned_spks
-                                .iter()
-                                .map(|(i, (spk, _))| (i.clone(), spk.clone())),
-                            stop_gap,
-                            batch_size,
-                        )?,
-                    );
-                }
-                for (keychain, keychain_spks) in &mut request_spks {
-                    scanned_spks.extend(
-                        self.populate_with_spks(
-                            &cps,
-                            &mut graph_update,
-                            keychain_spks,
-                            stop_gap,
-                            batch_size,
-                        )?
-                        .into_iter()
-                        .map(|(spk_i, spk)| ((keychain.clone(), spk_i), spk)),
-                    );
-                }
-            }
-
-            // check for reorgs during scan process
-            let server_blockhash = self.inner.block_header(tip.height() as usize)?.block_hash();
-            if tip.hash() != server_blockhash {
-                continue; // reorg
-            }
-
-            // Fetch previous `TxOut`s for fee calculation if flag is enabled.
-            if fetch_prev_txouts {
-                self.fetch_prev_txout(&mut graph_update)?;
+    ) -> Result<FullScanResult<K>, Error> {
+        let (tip, latest_blocks) =
+            fetch_tip_and_latest_blocks(&self.inner, request.chain_tip.clone())?;
+        let mut graph_update = TxGraph::<ConfirmationBlockTime>::default();
+        let mut last_active_indices = BTreeMap::<K, u32>::new();
+
+        for (keychain, spks) in request.spks_by_keychain {
+            if let Some(last_active_index) =
+                self.populate_with_spks(&mut graph_update, spks, stop_gap, batch_size)?
+            {
+                last_active_indices.insert(keychain, last_active_index);
             }
+        }
 
-            let chain_update = tip;
-
-            let keychain_update = request_spks
-                .into_keys()
-                .filter_map(|k| {
-                    scanned_spks
-                        .range((k.clone(), u32::MIN)..=(k.clone(), u32::MAX))
-                        .rev()
-                        .find(|(_, (_, active))| *active)
-                        .map(|((_, i), _)| (k, *i))
-                })
-                .collect::<BTreeMap<_, _>>();
+        let chain_update = chain_update(tip, &latest_blocks, graph_update.all_anchors())?;
 
-            break FullScanResult {
-                graph_update,
-                chain_update,
-                last_active_indices: keychain_update,
-            };
-        };
+        // Fetch previous `TxOut`s for fee calculation if flag is enabled.
+        if fetch_prev_txouts {
+            self.fetch_prev_txout(&mut graph_update)?;
+        }
 
-        Ok(ElectrumFullScanResult(update))
+        Ok(FullScanResult {
+            graph_update,
+            chain_update,
+            last_active_indices,
+        })
     }
 
     /// Sync a set of scripts with the blockchain (via an Electrum client) for the data specified
@@ -779,32 +658,31 @@
         request: SyncRequest,
         batch_size: usize,
         fetch_prev_txouts: bool,
-    ) -> Result<ElectrumSyncResult, Error> {
+    ) -> Result<SyncResult, Error> {
         let full_scan_req = FullScanRequest::from_chain_tip(request.chain_tip.clone())
             .set_spks_for_keychain((), request.spks.enumerate().map(|(i, spk)| (i as u32, spk)));
-        let mut full_scan_res = self
-            .full_scan(full_scan_req, usize::MAX, batch_size, false)?
-            .with_confirmation_height_anchor();
+        let mut full_scan_res = self.full_scan(full_scan_req, usize::MAX, batch_size, false)?;
+        let (tip, latest_blocks) =
+            fetch_tip_and_latest_blocks(&self.inner, request.chain_tip.clone())?;
 
-        let (tip, _) = construct_update_tip(&self.inner, request.chain_tip)?;
-        let cps = tip
-            .iter()
-            .take(10)
-            .map(|cp| (cp.height(), cp))
-            .collect::<BTreeMap<u32, CheckPoint>>();
+        self.populate_with_txids(&mut full_scan_res.graph_update, request.txids)?;
+        self.populate_with_outpoints(&mut full_scan_res.graph_update, request.outpoints)?;
 
-        self.populate_with_txids(&cps, &mut full_scan_res.graph_update, request.txids)?;
-        self.populate_with_outpoints(&cps, &mut full_scan_res.graph_update, request.outpoints)?;
+        let chain_update = chain_update(
+            tip,
+            &latest_blocks,
+            full_scan_res.graph_update.all_anchors(),
+        )?;
 
         // Fetch previous `TxOut`s for fee calculation if flag is enabled.
         if fetch_prev_txouts {
             self.fetch_prev_txout(&mut full_scan_res.graph_update)?;
         }
 
-        Ok(ElectrumSyncResult(SyncResult {
-            chain_update: full_scan_res.chain_update,
+        Ok(SyncResult {
+            chain_update,
             graph_update: full_scan_res.graph_update,
-        }))
+        })
     }
 
     /// Populate the `graph_update` with transactions/anchors associated with the given `spks`.
@@ -812,84 +690,55 @@
     /// 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.
-    fn populate_with_spks<I: Ord + Clone>(
+    fn populate_with_spks(
         &self,
-        cps: &BTreeMap<u32, CheckPoint>,
-        graph_update: &mut TxGraph<ConfirmationHeightAnchor>,
-        spks: &mut impl Iterator<Item = (I, ScriptBuf)>,
+        graph_update: &mut TxGraph<ConfirmationBlockTime>,
+        mut spks: impl Iterator<Item = (u32, ScriptBuf)>,
         stop_gap: usize,
         batch_size: usize,
-    ) -> Result<BTreeMap<I, (ScriptBuf, bool)>, Error> {
+    ) -> Result<Option<u32>, Error> {
         let mut unused_spk_count = 0_usize;
-        let mut scanned_spks = BTreeMap::new();
+        let mut last_active_index = Option::<u32>::None;
 
         loop {
             let spks = (0..batch_size)
                 .map_while(|_| spks.next())
                 .collect::<Vec<_>>();
             if spks.is_empty() {
-                return Ok(scanned_spks);
+                return Ok(last_active_index);
             }
 
             let spk_histories = self
                 .inner
                 .batch_script_get_history(spks.iter().map(|(_, s)| s.as_script()))?;
 
-            for ((spk_index, spk), spk_history) in spks.into_iter().zip(spk_histories) {
+            for ((spk_index, _spk), spk_history) in spks.into_iter().zip(spk_histories) {
                 if spk_history.is_empty() {
-                    scanned_spks.insert(spk_index, (spk, false));
-                    unused_spk_count += 1;
-                    if unused_spk_count > stop_gap {
-                        return Ok(scanned_spks);
+                    unused_spk_count = unused_spk_count.saturating_add(1);
+                    if unused_spk_count >= stop_gap {
+                        return Ok(last_active_index);
                     }
                     continue;
                 } else {
-                    scanned_spks.insert(spk_index, (spk, true));
+                    last_active_index = Some(spk_index);
                     unused_spk_count = 0;
                 }
 
                 for tx_res in spk_history {
                     let _ = graph_update.insert_tx(self.fetch_tx(tx_res.tx_hash)?);
-                    if let Some(anchor) = determine_tx_anchor(cps, tx_res.height, tx_res.tx_hash) {
-                        let _ = graph_update.insert_anchor(tx_res.tx_hash, anchor);
-                    }
+                    self.validate_merkle_for_anchor(graph_update, tx_res.tx_hash, tx_res.height)?;
                 }
             }
         }
     }
 
-    // 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.
-    fn fetch_prev_txout(
-        &self,
-        graph_update: &mut TxGraph<ConfirmationHeightAnchor>,
-    ) -> Result<(), Error> {
-        let full_txs: Vec<Arc<Transaction>> =
-            graph_update.full_txs().map(|tx_node| tx_node.tx).collect();
-        for tx in full_txs {
-            for vin in &tx.input {
-                let outpoint = vin.previous_output;
-                let vout = outpoint.vout;
-                let prev_tx = self.fetch_tx(outpoint.txid)?;
-                let txout = prev_tx.output[vout as usize].clone();
-                let _ = graph_update.insert_txout(outpoint, txout);
-            }
-        }
-        Ok(())
-    }
-
     /// 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.
     fn populate_with_outpoints(
         &self,
-        cps: &BTreeMap<u32, CheckPoint>,
-        graph_update: &mut TxGraph<ConfirmationHeightAnchor>,
+        graph_update: &mut TxGraph<ConfirmationBlockTime>,
         outpoints: impl IntoIterator<Item = OutPoint>,
     ) -> Result<(), Error> {
         for outpoint in outpoints {
@@ -913,9 +762,7 @@
                 if !has_residing && res.tx_hash == op_txid {
                     has_residing = true;
                     let _ = graph_update.insert_tx(Arc::clone(&op_tx));
-                    if let Some(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
-                        let _ = graph_update.insert_anchor(res.tx_hash, anchor);
-                    }
+                    self.validate_merkle_for_anchor(graph_update, res.tx_hash, res.height)?;
                 }
 
                 if !has_spending && res.tx_hash != op_txid {
@@ -929,9 +776,7 @@
                         continue;
                     }
                     let _ = graph_update.insert_tx(Arc::clone(&res_tx));
-                    if let Some(anchor) = determine_tx_anchor(cps, res.height, res.tx_hash) {
-                        let _ = graph_update.insert_anchor(res.tx_hash, anchor);
-                    }
+                    self.validate_merkle_for_anchor(graph_update, res.tx_hash, res.height)?;
                 }
             }
         }
@@ -941,8 +786,7 @@
     /// Populate the `graph_update` with transactions/anchors of the provided `txids`.
     fn populate_with_txids(
         &self,
-        cps: &BTreeMap<u32, CheckPoint>,
-        graph_update: &mut TxGraph<ConfirmationHeightAnchor>,
+        graph_update: &mut TxGraph<ConfirmationBlockTime>,
         txids: impl IntoIterator<Item = Txid>,
     ) -> Result<(), Error> {
         for txid in txids {
@@ -960,120 +804,100 @@
 
             // because of restrictions of the Electrum API, we have to use the `script_get_history`
             // call to get confirmation status of our transaction
-            let anchor = match self
+            if let Some(r) = self
                 .inner
                 .script_get_history(spk)?
                 .into_iter()
                 .find(|r| r.tx_hash == txid)
             {
-                Some(r) => determine_tx_anchor(cps, r.height, txid),
-                None => continue,
-            };
+                self.validate_merkle_for_anchor(graph_update, txid, r.height)?;
+            }
 
             let _ = graph_update.insert_tx(tx);
-            if let Some(anchor) = anchor {
-                let _ = graph_update.insert_anchor(txid, anchor);
-            }
         }
         Ok(())
     }
-}
 
-/// The result of [`BdkElectrumClient::full_scan`].
-///
-/// This can be transformed into a [`FullScanResult`] with either [`ConfirmationHeightAnchor`] or
-/// [`ConfirmationTimeHeightAnchor`] anchor types.
-pub struct ElectrumFullScanResult<K>(FullScanResult<K, ConfirmationHeightAnchor>);
-
-impl<K> ElectrumFullScanResult<K> {
-    /// Return [`FullScanResult`] with [`ConfirmationHeightAnchor`].
-    pub fn with_confirmation_height_anchor(self) -> FullScanResult<K, ConfirmationHeightAnchor> {
-        self.0
-    }
+    // Helper function which checks if a transaction is confirmed by validating the merkle proof.
+    // An anchor is inserted if the transaction is validated to be in a confirmed block.
+    fn validate_merkle_for_anchor(
+        &self,
+        graph_update: &mut TxGraph<ConfirmationBlockTime>,
+        txid: Txid,
+        confirmation_height: i32,
+    ) -> Result<(), Error> {
+        if let Ok(merkle_res) = self
+            .inner
+            .transaction_get_merkle(&txid, confirmation_height as usize)
+        {
+            let mut header = self.fetch_header(merkle_res.block_height as u32)?;
+            let mut is_confirmed_tx = electrum_client::utils::validate_merkle_proof(
+                &txid,
+                &header.merkle_root,
+                &merkle_res,
+            );
+
+            // Merkle validation will fail if the header in `block_header_cache` is outdated, so we
+            // want to check if there is a new header and validate against the new one.
+            if !is_confirmed_tx {
+                header = self.update_header(merkle_res.block_height as u32)?;
+                is_confirmed_tx = electrum_client::utils::validate_merkle_proof(
+                    &txid,
+                    &header.merkle_root,
+                    &merkle_res,
+                );
+            }
 
-    /// Return [`FullScanResult`] with [`ConfirmationTimeHeightAnchor`].
-    ///
-    /// This requires additional calls to the Electrum server.
-    pub fn with_confirmation_time_height_anchor(
-        self,
-        client: &BdkElectrumClient<impl ElectrumApi>,
-    ) -> Result<FullScanResult<K, ConfirmationTimeHeightAnchor>, Error> {
-        let res = self.0;
-        Ok(FullScanResult {
-            graph_update: try_into_confirmation_time_result(res.graph_update, &client.inner)?,
-            chain_update: res.chain_update,
-            last_active_indices: res.last_active_indices,
-        })
+            if is_confirmed_tx {
+                let _ = graph_update.insert_anchor(
+                    txid,
+                    ConfirmationBlockTime {
+                        confirmation_time: header.time as u64,
+                        block_id: BlockId {
+                            height: merkle_res.block_height as u32,
+                            hash: header.block_hash(),
+                        },
+                    },
+                );
+            }
+        }
+        Ok(())
     }
-}
 
-/// The result of [`BdkElectrumClient::sync`].
-///
-/// This can be transformed into a [`SyncResult`] with either [`ConfirmationHeightAnchor`] or
-/// [`ConfirmationTimeHeightAnchor`] anchor types.
-pub struct ElectrumSyncResult(SyncResult<ConfirmationHeightAnchor>);
-
-impl ElectrumSyncResult {
-    /// Return [`SyncResult`] with [`ConfirmationHeightAnchor`].
-    pub fn with_confirmation_height_anchor(self) -> SyncResult<ConfirmationHeightAnchor> {
-        self.0
-    }
-
-    /// Return [`SyncResult`] with [`ConfirmationTimeHeightAnchor`].
-    ///
-    /// This requires additional calls to the Electrum server.
-    pub fn with_confirmation_time_height_anchor(
-        self,
-        client: &BdkElectrumClient<impl ElectrumApi>,
-    ) -> Result<SyncResult<ConfirmationTimeHeightAnchor>, Error> {
-        let res = self.0;
-        Ok(SyncResult {
-            graph_update: try_into_confirmation_time_result(res.graph_update, &client.inner)?,
-            chain_update: res.chain_update,
-        })
+    // 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.
+    fn fetch_prev_txout(
+        &self,
+        graph_update: &mut TxGraph<ConfirmationBlockTime>,
+    ) -> Result<(), Error> {
+        let full_txs: Vec<Arc<Transaction>> =
+            graph_update.full_txs().map(|tx_node| tx_node.tx).collect();
+        for tx in full_txs {
+            for vin in &tx.input {
+                let outpoint = vin.previous_output;
+                let vout = outpoint.vout;
+                let prev_tx = self.fetch_tx(outpoint.txid)?;
+                let txout = prev_tx.output[vout as usize].clone();
+                let _ = graph_update.insert_txout(outpoint, txout);
+            }
+        }
+        Ok(())
     }
 }
 
-fn try_into_confirmation_time_result(
-    graph_update: TxGraph<ConfirmationHeightAnchor>,
-    client: &impl ElectrumApi,
-) -> Result<TxGraph<ConfirmationTimeHeightAnchor>, Error> {
-    let relevant_heights = graph_update
-        .all_anchors()
-        .iter()
-        .map(|(a, _)| a.confirmation_height)
-        .collect::<HashSet<_>>();
-
-    let height_to_time = relevant_heights
-        .clone()
-        .into_iter()
-        .zip(
-            client
-                .batch_block_header(relevant_heights)?
-                .into_iter()
-                .map(|bh| bh.time as u64),
-        )
-        .collect::<HashMap<u32, u64>>();
-
-    Ok(graph_update.map_anchors(|a| ConfirmationTimeHeightAnchor {
-        anchor_block: a.anchor_block,
-        confirmation_height: a.confirmation_height,
-        confirmation_time: height_to_time[&a.confirmation_height],
-    }))
-}
-
-/// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`.
-fn construct_update_tip(
+/// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`. The latest blocks are
+/// fetched to construct checkpoint updates with the proper [`BlockHash`] in case of re-org.
+fn fetch_tip_and_latest_blocks(
     client: &impl ElectrumApi,
     prev_tip: CheckPoint,
-) -> Result<(CheckPoint, Option<u32>), Error> {
+) -> Result<(CheckPoint, BTreeMap<u32, BlockHash>), Error> {
     let HeaderNotification { height, .. } = client.block_headers_subscribe()?;
     let new_tip_height = height as u32;
 
     // 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.
     if new_tip_height < prev_tip.height() {
-        return Ok((prev_tip.clone(), Some(prev_tip.height())));
+        return Ok((prev_tip, BTreeMap::new()));
     }
 
     // Atomically fetch the latest `CHAIN_SUFFIX_LENGTH` count of blocks from Electrum. We use this
@@ -1116,10 +940,13 @@
     let agreement_height = agreement_cp.as_ref().map(CheckPoint::height);
 
     let new_tip = new_blocks
-        .into_iter()
+        .iter()
         // Prune `new_blocks` to only include blocks that are actually new.
-        .filter(|(height, _)| Some(*height) > agreement_height)
-        .map(|(height, hash)| BlockId { height, hash })
+        .filter(|(height, _)| Some(*<&u32>::clone(height)) > agreement_height)
+        .map(|(height, hash)| BlockId {
+            height: *height,
+            hash: *hash,
+        })
         .fold(agreement_cp, |prev_cp, block| {
             Some(match prev_cp {
                 Some(cp) => cp.push(block).expect("must extend checkpoint"),
@@ -1128,52 +955,29 @@
         })
         .expect("must have at least one checkpoint");
 
-    Ok((new_tip, agreement_height))
+    Ok((new_tip, new_blocks))
 }
 
-/// 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)
-fn determine_tx_anchor(
-    cps: &BTreeMap<u32, CheckPoint>,
-    raw_height: i32,
-    txid: Txid,
-) -> Option<ConfirmationHeightAnchor> {
-    // 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.
-    if txid
-        == Txid::from_str("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")
-            .expect("must deserialize genesis coinbase txid")
-    {
-        let anchor_block = cps.values().next()?.block_id();
-        return Some(ConfirmationHeightAnchor {
-            anchor_block,
-            confirmation_height: 0,
-        });
-    }
-    match raw_height {
-        h if h <= 0 => {
-            debug_assert!(h == 0 || h == -1, "unexpected height ({}) from electrum", h);
-            None
-        }
-        h => {
-            let h = h as u32;
-            let anchor_block = cps.range(h..).next().map(|(_, cp)| cp.block_id())?;
-            if h > anchor_block.height {
-                None
-            } else {
-                Some(ConfirmationHeightAnchor {
-                    anchor_block,
-                    confirmation_height: h,
-                })
-            }
+// Add a corresponding checkpoint per anchor height if it does not yet exist. Checkpoints should not
+// surpass `latest_blocks`.
+fn chain_update<A: Anchor>(
+    mut tip: CheckPoint,
+    latest_blocks: &BTreeMap<u32, BlockHash>,
+    anchors: &BTreeSet<(A, Txid)>,
+) -> Result<CheckPoint, Error> {
+    for anchor in anchors {
+        let height = anchor.0.anchor_block().height;
+
+        // Checkpoint uses the `BlockHash` from `latest_blocks` so that the hash will be consistent
+        // in case of a re-org.
+        if tip.get(height).is_none() && height <= tip.height() {
+            let hash = match latest_blocks.get(&height) {
+                Some(&hash) => hash,
+                None => anchor.0.anchor_block().hash,
+            };
+            tip = tip.insert(BlockId { hash, height });
         }
     }
+    Ok(tip)
 }
 

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html index a9c2b55db3..1b36c951b9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html @@ -596,7 +596,7 @@ bitcoin::{BlockHash, OutPoint, ScriptBuf, TxOut, Txid}, collections::BTreeMap, local_chain::CheckPoint, - BlockId, ConfirmationTimeHeightAnchor, TxGraph, + BlockId, ConfirmationBlockTime, TxGraph, }; use bdk_chain::{Anchor, Indexed}; use esplora_client::{Amount, TxStatus}; @@ -830,10 +830,10 @@ >, stop_gap: usize, parallel_requests: usize, -) -> Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Error> { +) -> Result<(TxGraph<ConfirmationBlockTime>, BTreeMap<K, u32>), Error> { type TxsOfSpkIndex = (u32, Vec<esplora_client::Tx>); let parallel_requests = Ord::max(parallel_requests, 1); - let mut graph = TxGraph::<ConfirmationTimeHeightAnchor>::default(); + let mut graph = TxGraph::<ConfirmationBlockTime>::default(); let mut last_active_indexes = BTreeMap::<K, u32>::new(); for (keychain, spks) in keychain_spks { @@ -923,7 +923,7 @@ txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send, outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send, parallel_requests: usize, -) -> Result<TxGraph<ConfirmationTimeHeightAnchor>, Error> { +) -> Result<TxGraph<ConfirmationBlockTime>, Error> { let mut graph = full_scan_for_index_and_graph( client, [( diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html index 20a754e6f8..68f7afd1ba 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html @@ -791,7 +791,7 @@ use bdk_chain::{ bitcoin::{Amount, BlockHash, OutPoint, ScriptBuf, TxOut, Txid}, local_chain::CheckPoint, - BlockId, ConfirmationTimeHeightAnchor, TxGraph, + BlockId, ConfirmationBlockTime, TxGraph, }; use bdk_chain::{Anchor, Indexed}; use esplora_client::TxStatus; @@ -1004,10 +1004,10 @@ keychain_spks: BTreeMap<K, impl IntoIterator<Item = Indexed<ScriptBuf>>>, stop_gap: usize, parallel_requests: usize, -) -> Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Error> { +) -> Result<(TxGraph<ConfirmationBlockTime>, BTreeMap<K, u32>), Error> { type TxsOfSpkIndex = (u32, Vec<esplora_client::Tx>); let parallel_requests = Ord::max(parallel_requests, 1); - let mut tx_graph = TxGraph::<ConfirmationTimeHeightAnchor>::default(); + let mut tx_graph = TxGraph::<ConfirmationBlockTime>::default(); let mut last_active_indices = BTreeMap::<K, u32>::new(); for (keychain, spks) in keychain_spks { @@ -1100,7 +1100,7 @@ txids: impl IntoIterator<Item = Txid>, outpoints: impl IntoIterator<Item = OutPoint>, parallel_requests: usize, -) -> Result<TxGraph<ConfirmationTimeHeightAnchor>, Error> { +) -> Result<TxGraph<ConfirmationBlockTime>, Error> { let (mut tx_graph, _) = full_scan_for_index_and_graph_blocking( client, { diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html index 7b5db55c91..657a4bb938 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html @@ -47,7 +47,6 @@ 47 48 49 -50
#![doc = include_str!("../README.md")]
 
 //! This crate is used for updating structures of [`bdk_chain`] with data from an Esplora server.
@@ -66,7 +65,7 @@
 //! [`TxGraph`]: bdk_chain::tx_graph::TxGraph
 //! [`example_esplora`]: https://github.com/bitcoindevkit/bdk/tree/master/example-crates/example_esplora
 
-use bdk_chain::{BlockId, ConfirmationTimeHeightAnchor};
+use bdk_chain::{BlockId, ConfirmationBlockTime};
 use esplora_client::TxStatus;
 
 pub use esplora_client;
@@ -81,7 +80,7 @@
 #[cfg(feature = "async")]
 pub use async_ext::*;
 
-fn anchor_from_status(status: &TxStatus) -> Option<ConfirmationTimeHeightAnchor> {
+fn anchor_from_status(status: &TxStatus) -> Option<ConfirmationBlockTime> {
     if let TxStatus {
         block_height: Some(height),
         block_hash: Some(hash),
@@ -89,9 +88,8 @@
         ..
     } = status.clone()
     {
-        Some(ConfirmationTimeHeightAnchor {
-            anchor_block: BlockId { height, hash },
-            confirmation_height: height,
+        Some(ConfirmationBlockTime {
+            block_id: BlockId { height, hash },
             confirmation_time: time,
         })
     } else {
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html
index eef3982456..6b6299f912 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html
@@ -732,31 +732,6 @@
 732
 733
 734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
 
use bdk_chain::bitcoin::consensus::{deserialize, serialize};
 use bdk_chain::bitcoin::hashes::Hash;
 use bdk_chain::bitcoin::{Amount, Network, OutPoint, ScriptBuf, Transaction, TxOut};
@@ -1306,10 +1281,7 @@
     use bdk_chain::bitcoin::{secp256k1, BlockHash, OutPoint};
     use bdk_chain::miniscript::Descriptor;
     use bdk_chain::CombinedChangeSet;
-    use bdk_chain::{
-        indexed_tx_graph, tx_graph, BlockId, ConfirmationHeightAnchor,
-        ConfirmationTimeHeightAnchor, DescriptorExt,
-    };
+    use bdk_chain::{indexed_tx_graph, tx_graph, BlockId, ConfirmationBlockTime, DescriptorExt};
     use std::str::FromStr;
     use std::sync::Arc;
 
@@ -1320,37 +1292,15 @@
     }
 
     #[test]
-    fn insert_and_load_aggregate_changesets_with_confirmation_time_height_anchor() {
+    fn insert_and_load_aggregate_changesets_with_confirmation_block_time_anchor() {
         let (test_changesets, agg_test_changesets) =
-            create_test_changesets(&|height, time, hash| ConfirmationTimeHeightAnchor {
-                confirmation_height: height,
+            create_test_changesets(&|height, time, hash| ConfirmationBlockTime {
                 confirmation_time: time,
-                anchor_block: (height, hash).into(),
+                block_id: (height, hash).into(),
             });
 
         let conn = Connection::open_in_memory().expect("in memory connection");
-        let mut store = Store::<Keychain, ConfirmationTimeHeightAnchor>::new(conn)
-            .expect("create new memory db store");
-
-        test_changesets.iter().for_each(|changeset| {
-            store.write(changeset).expect("write changeset");
-        });
-
-        let agg_changeset = store.read().expect("aggregated changeset");
-
-        assert_eq!(agg_changeset, Some(agg_test_changesets));
-    }
-
-    #[test]
-    fn insert_and_load_aggregate_changesets_with_confirmation_height_anchor() {
-        let (test_changesets, agg_test_changesets) =
-            create_test_changesets(&|height, _time, hash| ConfirmationHeightAnchor {
-                confirmation_height: height,
-                anchor_block: (height, hash).into(),
-            });
-
-        let conn = Connection::open_in_memory().expect("in memory connection");
-        let mut store = Store::<Keychain, ConfirmationHeightAnchor>::new(conn)
+        let mut store = Store::<Keychain, ConfirmationBlockTime>::new(conn)
             .expect("create new memory db store");
 
         test_changesets.iter().for_each(|changeset| {
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
index 7f282aed67..74cfd175e9 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
@@ -354,6 +354,11 @@
 354
 355
 356
+357
+358
+359
+360
+361
 
// Bitcoin Dev Kit
 // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
 //
@@ -484,7 +489,7 @@
         let blockheight = if include_blockheight {
             wallet.transactions().next().map_or(0, |canonical_tx| {
                 match canonical_tx.chain_position {
-                    bdk_chain::ChainPosition::Confirmed(a) => a.confirmation_height,
+                    bdk_chain::ChainPosition::Confirmed(a) => a.block_id.height,
                     bdk_chain::ChainPosition::Unconfirmed(_) => 0,
                 }
             })
@@ -570,7 +575,7 @@
     use core::str::FromStr;
 
     use crate::std::string::ToString;
-    use bdk_chain::{BlockId, ConfirmationTimeHeightAnchor};
+    use bdk_chain::{BlockId, ConfirmationBlockTime};
     use bitcoin::hashes::Hash;
     use bitcoin::{transaction, BlockHash, Network, Transaction};
 
@@ -589,15 +594,20 @@
         };
         let txid = transaction.compute_txid();
         let block_id = BlockId {
-            height: 5001,
+            height: 5000,
             hash: BlockHash::all_zeros(),
         };
         wallet.insert_checkpoint(block_id).unwrap();
+        wallet
+            .insert_checkpoint(BlockId {
+                height: 5001,
+                hash: BlockHash::all_zeros(),
+            })
+            .unwrap();
         wallet.insert_tx(transaction);
-        let anchor = ConfirmationTimeHeightAnchor {
-            confirmation_height: 5000,
+        let anchor = ConfirmationBlockTime {
             confirmation_time: 0,
-            anchor_block: block_id,
+            block_id,
         };
         let mut graph = TxGraph::default();
         let _ = graph.insert_anchor(txid, anchor);
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
index 5b54cd7222..dd44e37940 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
@@ -2513,7 +2513,6 @@
 2513
 2514
 2515
-2516
 
// Bitcoin Dev Kit
 // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
 //
@@ -2544,7 +2543,7 @@
     },
     spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
     tx_graph::{CanonicalTx, TxGraph, TxNode},
-    BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut, Indexed,
+    BlockId, ChainPosition, ConfirmationBlockTime, ConfirmationTime, FullTxOut, Indexed,
     IndexedTxGraph, Merge,
 };
 use bitcoin::sighash::{EcdsaSighashType, TapSighashType};
@@ -2620,7 +2619,7 @@
     signers: Arc<SignersContainer>,
     change_signers: Arc<SignersContainer>,
     chain: LocalChain,
-    indexed_graph: IndexedTxGraph<ConfirmationTimeHeightAnchor, KeychainTxOutIndex<KeychainKind>>,
+    indexed_graph: IndexedTxGraph<ConfirmationBlockTime, KeychainTxOutIndex<KeychainKind>>,
     stage: ChangeSet,
     network: Network,
     secp: SecpCtx,
@@ -2636,7 +2635,7 @@
     pub last_active_indices: BTreeMap<KeychainKind, u32>,
 
     /// Update for the wallet's internal [`TxGraph`].
-    pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
+    pub graph: TxGraph<ConfirmationBlockTime>,
 
     /// Update for the wallet's internal [`LocalChain`].
     ///
@@ -2665,7 +2664,7 @@
 }
 
 /// The changes made to a wallet by applying an [`Update`].
-pub type ChangeSet = bdk_chain::CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
+pub type ChangeSet = bdk_chain::CombinedChangeSet<KeychainKind, ConfirmationBlockTime>;
 
 /// A derived address and the index it was found at.
 /// For convenience this automatically derefs to `Address`
@@ -3523,7 +3522,7 @@
     /// match canonical_tx.chain_position {
     ///     ChainPosition::Confirmed(anchor) => println!(
     ///         "tx is confirmed at height {}, we know this since {}:{} is in the best chain",
-    ///         anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash,
+    ///         anchor.block_id.height, anchor.block_id.height, anchor.block_id.hash,
     ///     ),
     ///     ChainPosition::Unconfirmed(last_seen) => println!(
     ///         "tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain",
@@ -3536,7 +3535,7 @@
     pub fn get_tx(
         &self,
         txid: Txid,
-    ) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> {
+    ) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationBlockTime>> {
         let graph = self.indexed_graph.graph();
 
         Some(CanonicalTx {
@@ -3592,8 +3591,7 @@
     /// Iterate over the transactions in the wallet.
     pub fn transactions(
         &self,
-    ) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_
-    {
+    ) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationBlockTime>> + '_ {
         self.indexed_graph
             .graph()
             .list_canonical_txs(&self.chain, self.chain.tip().block_id())
@@ -4323,7 +4321,7 @@
                 .graph()
                 .get_chain_position(&self.chain, chain_tip, input.previous_output.txid)
                 .map(|chain_position| match chain_position {
-                    ChainPosition::Confirmed(a) => a.confirmation_height,
+                    ChainPosition::Confirmed(a) => a.block_id.height,
                     ChainPosition::Unconfirmed(_) => u32::MAX,
                 });
             let current_height = sign_options
@@ -4761,7 +4759,7 @@
     }
 
     /// Get a reference to the inner [`TxGraph`].
-    pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor> {
+    pub fn tx_graph(&self) -> &TxGraph<ConfirmationBlockTime> {
         self.indexed_graph.graph()
     }
 
@@ -4769,7 +4767,7 @@
     /// because they haven't been broadcast.
     pub fn unbroadcast_transactions(
         &self,
-    ) -> impl Iterator<Item = TxNode<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> {
+    ) -> impl Iterator<Item = TxNode<'_, Arc<Transaction>, ConfirmationBlockTime>> {
         self.tx_graph().txs_with_no_anchor_or_last_seen()
     }
 
@@ -4889,8 +4887,8 @@
     }
 }
 
-impl AsRef<bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor>> for Wallet {
-    fn as_ref(&self) -> &bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor> {
+impl AsRef<bdk_chain::tx_graph::TxGraph<ConfirmationBlockTime>> for Wallet {
+    fn as_ref(&self) -> &bdk_chain::tx_graph::TxGraph<ConfirmationBlockTime> {
         self.indexed_graph.graph()
     }
 }
@@ -4929,7 +4927,7 @@
 fn new_local_utxo(
     keychain: KeychainKind,
     derivation_index: u32,
-    full_txo: FullTxOut<ConfirmationTimeHeightAnchor>,
+    full_txo: FullTxOut<ConfirmationBlockTime>,
 ) -> LocalOutput {
     LocalOutput {
         outpoint: full_txo.outpoint,
@@ -4992,7 +4990,7 @@
 macro_rules! doctest_wallet {
     () => {{
         use $crate::bitcoin::{BlockHash, Transaction, absolute, TxOut, Network, hashes::Hash};
-        use $crate::chain::{ConfirmationTimeHeightAnchor, BlockId, TxGraph};
+        use $crate::chain::{ConfirmationBlockTime, BlockId, TxGraph};
         use $crate::wallet::{Update, Wallet};
         use $crate::KeychainKind;
         let descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)";
@@ -5015,13 +5013,13 @@
             }],
         };
         let txid = tx.txid();
-        let block = BlockId { height: 1_000, hash: BlockHash::all_zeros() };
-        let _ = wallet.insert_checkpoint(block);
+        let block_id = BlockId { height: 500, hash: BlockHash::all_zeros() };
+        let _ = wallet.insert_checkpoint(block_id);
+        let _ = wallet.insert_checkpoint(BlockId { height: 1_000, hash: BlockHash::all_zeros() });
         let _ = wallet.insert_tx(tx);
-        let anchor = ConfirmationTimeHeightAnchor {
-            confirmation_height: 500,
+        let anchor = ConfirmationBlockTime {
             confirmation_time: 50_000,
-            anchor_block: block,
+            block_id,
         };
         let mut graph = TxGraph::default();
         let _ = graph.insert_anchor(txid, anchor);
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
index af617d3d8e..6467394617 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
@@ -406,7 +406,7 @@
     indexed_tx_graph,
     indexer::keychain_txout,
     local_chain::{self, LocalChain},
-    ConfirmationTimeHeightAnchor, IndexedTxGraph, Merge,
+    ConfirmationBlockTime, IndexedTxGraph, Merge,
 };
 use example_cli::{
     anyhow,
@@ -428,7 +428,7 @@
 
 type ChangeSet = (
     local_chain::ChangeSet,
-    indexed_tx_graph::ChangeSet<ConfirmationTimeHeightAnchor, keychain_txout::ChangeSet<Keychain>>,
+    indexed_tx_graph::ChangeSet<ConfirmationBlockTime, keychain_txout::ChangeSet<Keychain>>,
 );
 
 #[derive(Debug)]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
index c5a0c8e449..46ec1584fe 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
@@ -352,8 +352,6 @@
 352
 353
 354
-355
-356
 
use std::{
     io::{self, Write},
     sync::Mutex,
@@ -366,7 +364,7 @@
     indexer::keychain_txout,
     local_chain::{self, LocalChain},
     spk_client::{FullScanRequest, SyncRequest},
-    ConfirmationHeightAnchor, Merge,
+    ConfirmationBlockTime, Merge,
 };
 use bdk_electrum::{
     electrum_client::{self, Client, ElectrumApi},
@@ -456,7 +454,7 @@
 
 type ChangeSet = (
     local_chain::ChangeSet,
-    indexed_tx_graph::ChangeSet<ConfirmationHeightAnchor, keychain_txout::ChangeSet<Keychain>>,
+    indexed_tx_graph::ChangeSet<ConfirmationBlockTime, keychain_txout::ChangeSet<Keychain>>,
 );
 
 fn main() -> anyhow::Result<()> {
@@ -549,8 +547,7 @@
 
             let res = client
                 .full_scan::<_>(request, stop_gap, scan_options.batch_size, false)
-                .context("scanning the blockchain")?
-                .with_confirmation_height_anchor();
+                .context("scanning the blockchain")?;
             (
                 res.chain_update,
                 res.graph_update,
@@ -673,8 +670,7 @@
 
             let res = client
                 .sync(request, scan_options.batch_size, false)
-                .context("scanning the blockchain")?
-                .with_confirmation_height_anchor();
+                .context("scanning the blockchain")?;
 
             // drop lock on graph and chain
             drop((graph, chain));
@@ -696,7 +692,7 @@
         let chain_changeset = chain.apply_update(chain_update)?;
 
         let mut indexed_tx_graph_changeset =
-            indexed_tx_graph::ChangeSet::<ConfirmationHeightAnchor, _>::default();
+            indexed_tx_graph::ChangeSet::<ConfirmationBlockTime, _>::default();
         if let Some(keychain_update) = keychain_update {
             let keychain_changeset = graph.index.reveal_to_target_multi(&keychain_update);
             indexed_tx_graph_changeset.merge(keychain_changeset.into());
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
index e3fb2c3b9b..869bc679a7 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
@@ -376,7 +376,7 @@
     indexer::keychain_txout,
     local_chain::{self, LocalChain},
     spk_client::{FullScanRequest, SyncRequest},
-    ConfirmationTimeHeightAnchor, Merge,
+    ConfirmationBlockTime, Merge,
 };
 
 use bdk_esplora::{esplora_client, EsploraExt};
@@ -392,7 +392,7 @@
 
 type ChangeSet = (
     local_chain::ChangeSet,
-    indexed_tx_graph::ChangeSet<ConfirmationTimeHeightAnchor, keychain_txout::ChangeSet<Keychain>>,
+    indexed_tx_graph::ChangeSet<ConfirmationBlockTime, keychain_txout::ChangeSet<Keychain>>,
 );
 
 #[derive(Subcommand, Debug, Clone)]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html
index cd40f59f80..ed403a4684 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html
@@ -104,8 +104,6 @@
 104
 105
 106
-107
-108
 
const DB_MAGIC: &str = "bdk_wallet_electrum_example";
 const SEND_AMOUNT: Amount = Amount::from_sat(5000);
 const STOP_GAP: usize = 50;
@@ -171,9 +169,7 @@
         })
         .inspect_spks_for_all_keychains(|_, _, _| std::io::stdout().flush().expect("must flush"));
 
-    let mut update = client
-        .full_scan(request, STOP_GAP, BATCH_SIZE, false)?
-        .with_confirmation_time_height_anchor(&client)?;
+    let mut update = client.full_scan(request, STOP_GAP, BATCH_SIZE, false)?;
 
     let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
     let _ = update.graph_update.update_last_seen_unconfirmed(now);
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js
index 59a08da91b..5b6bb4d4d9 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl Clone for ConfirmationTime"],["impl Clone for ApplyHeaderError"],["impl Clone for AlterCheckPointError"],["impl Clone for CannotConnectError"],["impl Clone for CheckPoint"],["impl Clone for LocalChain"],["impl Clone for MissingGenesisError"],["impl Clone for Balance"],["impl Clone for BlockId"],["impl Clone for ConfirmationHeightAnchor"],["impl Clone for ConfirmationTimeHeightAnchor"],["impl Clone for DescriptorId"],["impl<'a, T: Clone, A: Clone> Clone for CanonicalTx<'a, T, A>"],["impl<'a, T: Clone, A: Clone> Clone for TxNode<'a, T, A>"],["impl<A: Clone> Clone for ChainPosition<A>"],["impl<A: Clone> Clone for FullTxOut<A>"],["impl<A: Clone> Clone for ChangeSet<A>"],["impl<A: Clone> Clone for TxGraph<A>"],["impl<A: Clone, IA: Clone> Clone for ChangeSet<A, IA>"],["impl<D: Clone> Clone for SpkIterator<D>"],["impl<I: Clone> Clone for SpkTxOutIndex<I>"],["impl<K: Clone> Clone for InsertDescriptorError<K>"],["impl<K: Clone> Clone for ChangeSet<K>"],["impl<K: Clone> Clone for KeychainTxOutIndex<K>"],["impl<K: Clone> Clone for NoSuchKeychain<K>"],["impl<K: Clone, A: Clone> Clone for CombinedChangeSet<K, A>"]],
+"bdk_chain":[["impl Clone for ConfirmationTime"],["impl Clone for ApplyHeaderError"],["impl Clone for AlterCheckPointError"],["impl Clone for CannotConnectError"],["impl Clone for CheckPoint"],["impl Clone for LocalChain"],["impl Clone for MissingGenesisError"],["impl Clone for Balance"],["impl Clone for BlockId"],["impl Clone for ConfirmationBlockTime"],["impl Clone for DescriptorId"],["impl<'a, T: Clone, A: Clone> Clone for CanonicalTx<'a, T, A>"],["impl<'a, T: Clone, A: Clone> Clone for TxNode<'a, T, A>"],["impl<A: Clone> Clone for ChainPosition<A>"],["impl<A: Clone> Clone for FullTxOut<A>"],["impl<A: Clone> Clone for ChangeSet<A>"],["impl<A: Clone> Clone for TxGraph<A>"],["impl<A: Clone, IA: Clone> Clone for ChangeSet<A, IA>"],["impl<D: Clone> Clone for SpkIterator<D>"],["impl<I: Clone> Clone for SpkTxOutIndex<I>"],["impl<K: Clone> Clone for InsertDescriptorError<K>"],["impl<K: Clone> Clone for ChangeSet<K>"],["impl<K: Clone> Clone for KeychainTxOutIndex<K>"],["impl<K: Clone> Clone for NoSuchKeychain<K>"],["impl<K: Clone, A: Clone> Clone for CombinedChangeSet<K, A>"]],
 "bdk_coin_select":[["impl Clone for ExcessStrategyKind"],["impl Clone for SelectionConstraint"],["impl Clone for CoinSelectorOpt"],["impl Clone for ExcessStrategy"],["impl Clone for Selection"],["impl Clone for SelectionError"],["impl Clone for WeightedValue"],["impl<'a> Clone for CoinSelector<'a>"]],
 "bdk_tmp_plan":[["impl Clone for SigningError"],["impl Clone for SatisfactionMaterial"],["impl<AK: Clone> Clone for Plan<AK>"],["impl<Ak: Clone> Clone for RequiredSignatures<Ak>"],["impl<Ak: Clone> Clone for PlanKey<Ak>"],["impl<Ak: Clone> Clone for Requirements<Ak>"],["impl<K: Clone> Clone for Assets<K>"]],
 "bdk_wallet":[["impl Clone for PkOrF"],["impl Clone for Satisfaction"],["impl Clone for SatisfiableItem"],["impl Clone for KeychainKind"],["impl Clone for Utxo"],["impl Clone for ScriptContextEnum"],["impl Clone for MiniscriptPsbtError"],["impl Clone for SignerContext"],["impl Clone for SignerId"],["impl Clone for TapLeavesOptions"],["impl Clone for ChangeSpendPolicy"],["impl Clone for TxOrdering"],["impl Clone for Condition"],["impl Clone for Policy"],["impl Clone for PrivateKeyGenerateOptions"],["impl Clone for LocalOutput"],["impl Clone for WeightedUtxo"],["impl Clone for BranchAndBoundCoinSelection"],["impl Clone for LargestFirstCoinSelection"],["impl Clone for OldestFirstCoinSelection"],["impl Clone for SignOptions"],["impl Clone for SignerOrdering"],["impl Clone for SignersContainer"],["impl Clone for Update"],["impl<'a> Clone for BuildSatisfaction<'a>"],["impl<'a, Cs: Clone> Clone for TxBuilder<'a, Cs>"],["impl<K: Clone, Ctx: ScriptContext> Clone for GeneratedKey<K, Ctx>"],["impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>"]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Eq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Eq.js
index 86f9895f0f..acf0caceaf 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Eq.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Eq.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl Eq for ConfirmationTime"],["impl Eq for CalculateFeeError"],["impl Eq for Balance"],["impl Eq for BlockId"],["impl Eq for ConfirmationHeightAnchor"],["impl Eq for ConfirmationTimeHeightAnchor"],["impl Eq for DescriptorId"],["impl<'a, T: Eq, A: Eq> Eq for CanonicalTx<'a, T, A>"],["impl<'a, T: Eq, A: Eq> Eq for TxNode<'a, T, A>"],["impl<A: Eq> Eq for ChainPosition<A>"],["impl<A: Eq> Eq for FullTxOut<A>"],["impl<K: Eq> Eq for NoSuchKeychain<K>"]],
+"bdk_chain":[["impl Eq for ConfirmationTime"],["impl Eq for CalculateFeeError"],["impl Eq for Balance"],["impl Eq for BlockId"],["impl Eq for ConfirmationBlockTime"],["impl Eq for DescriptorId"],["impl<'a, T: Eq, A: Eq> Eq for CanonicalTx<'a, T, A>"],["impl<'a, T: Eq, A: Eq> Eq for TxNode<'a, T, A>"],["impl<A: Eq> Eq for ChainPosition<A>"],["impl<A: Eq> Eq for FullTxOut<A>"],["impl<K: Eq> Eq for NoSuchKeychain<K>"]],
 "bdk_coin_select":[["impl Eq for ExcessStrategyKind"],["impl Eq for SelectionConstraint"]],
 "bdk_wallet":[["impl Eq for PkOrF"],["impl Eq for PolicyError"],["impl Eq for Satisfaction"],["impl Eq for SatisfiableItem"],["impl Eq for KeychainKind"],["impl Eq for Utxo"],["impl Eq for ScriptContextEnum"],["impl Eq for SignerContext"],["impl Eq for SignerId"],["impl Eq for TapLeavesOptions"],["impl Eq for ChangeSpendPolicy"],["impl Eq for Condition"],["impl Eq for Policy"],["impl Eq for LocalOutput"],["impl Eq for WeightedUtxo"],["impl Eq for SignerOrdering"],["impl Eq for AddressInfo"]],
 "example_cli":[["impl Eq for Keychain"]]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Ord.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Ord.js
index cae50849a8..310908560f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Ord.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.Ord.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl Ord for ConfirmationTime"],["impl Ord for BlockId"],["impl Ord for ConfirmationHeightAnchor"],["impl Ord for ConfirmationTimeHeightAnchor"],["impl Ord for DescriptorId"],["impl<'a, T: Ord, A: Ord> Ord for CanonicalTx<'a, T, A>"],["impl<'a, T: Ord, A: Ord> Ord for TxNode<'a, T, A>"],["impl<A: Ord> Ord for ChainPosition<A>"],["impl<A: Ord> Ord for FullTxOut<A>"]],
+"bdk_chain":[["impl Ord for ConfirmationTime"],["impl Ord for BlockId"],["impl Ord for ConfirmationBlockTime"],["impl Ord for DescriptorId"],["impl<'a, T: Ord, A: Ord> Ord for CanonicalTx<'a, T, A>"],["impl<'a, T: Ord, A: Ord> Ord for TxNode<'a, T, A>"],["impl<A: Ord> Ord for ChainPosition<A>"],["impl<A: Ord> Ord for FullTxOut<A>"]],
 "bdk_coin_select":[["impl Ord for ExcessStrategyKind"]],
 "bdk_wallet":[["impl Ord for KeychainKind"],["impl Ord for SignerId"],["impl Ord for ChangeSpendPolicy"],["impl Ord for SignerOrdering"]],
 "example_cli":[["impl Ord for Keychain"]]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js
index 54c63e1495..198b93f237 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl PartialEq for ConfirmationTime"],["impl PartialEq for ApplyHeaderError"],["impl PartialEq for CalculateFeeError"],["impl PartialEq for AlterCheckPointError"],["impl PartialEq for CannotConnectError"],["impl PartialEq for CheckPoint"],["impl PartialEq for LocalChain"],["impl PartialEq for MissingGenesisError"],["impl PartialEq for Balance"],["impl PartialEq for BlockId"],["impl PartialEq for ConfirmationHeightAnchor"],["impl PartialEq for ConfirmationTimeHeightAnchor"],["impl PartialEq for DescriptorId"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for TxNode<'a, T, A>"],["impl<A: PartialEq> PartialEq for ChainPosition<A>"],["impl<A: PartialEq> PartialEq for FullTxOut<A>"],["impl<A: PartialEq> PartialEq for ChangeSet<A>"],["impl<A: PartialEq> PartialEq for TxGraph<A>"],["impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>"],["impl<K: PartialEq> PartialEq for InsertDescriptorError<K>"],["impl<K: PartialEq> PartialEq for ChangeSet<K>"],["impl<K: PartialEq> PartialEq for NoSuchKeychain<K>"],["impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>"]],
+"bdk_chain":[["impl PartialEq for ConfirmationTime"],["impl PartialEq for ApplyHeaderError"],["impl PartialEq for CalculateFeeError"],["impl PartialEq for AlterCheckPointError"],["impl PartialEq for CannotConnectError"],["impl PartialEq for CheckPoint"],["impl PartialEq for LocalChain"],["impl PartialEq for MissingGenesisError"],["impl PartialEq for Balance"],["impl PartialEq for BlockId"],["impl PartialEq for ConfirmationBlockTime"],["impl PartialEq for DescriptorId"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for TxNode<'a, T, A>"],["impl<A: PartialEq> PartialEq for ChainPosition<A>"],["impl<A: PartialEq> PartialEq for FullTxOut<A>"],["impl<A: PartialEq> PartialEq for ChangeSet<A>"],["impl<A: PartialEq> PartialEq for TxGraph<A>"],["impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>"],["impl<K: PartialEq> PartialEq for InsertDescriptorError<K>"],["impl<K: PartialEq> PartialEq for ChangeSet<K>"],["impl<K: PartialEq> PartialEq for NoSuchKeychain<K>"],["impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>"]],
 "bdk_coin_select":[["impl PartialEq for ExcessStrategyKind"],["impl PartialEq for SelectionConstraint"]],
 "bdk_wallet":[["impl PartialEq for PkOrF"],["impl PartialEq for PolicyError"],["impl PartialEq for Satisfaction"],["impl PartialEq for SatisfiableItem"],["impl PartialEq for KeychainKind"],["impl PartialEq for Utxo"],["impl PartialEq for ScriptContextEnum"],["impl PartialEq for SignerContext"],["impl PartialEq for SignerId"],["impl PartialEq for TapLeavesOptions"],["impl PartialEq for ChangeSpendPolicy"],["impl PartialEq for Condition"],["impl PartialEq for Policy"],["impl PartialEq for LocalOutput"],["impl PartialEq for WeightedUtxo"],["impl PartialEq for SignerOrdering"],["impl PartialEq for AddressInfo"]],
 "example_cli":[["impl PartialEq for Keychain"]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialOrd.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialOrd.js
index c15c5e5acf..67301126ba 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialOrd.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialOrd.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl PartialOrd for ConfirmationTime"],["impl PartialOrd for BlockId"],["impl PartialOrd for ConfirmationHeightAnchor"],["impl PartialOrd for ConfirmationTimeHeightAnchor"],["impl PartialOrd for DescriptorId"],["impl<'a, T: PartialOrd, A: PartialOrd> PartialOrd for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialOrd, A: PartialOrd> PartialOrd for TxNode<'a, T, A>"],["impl<A: PartialOrd> PartialOrd for ChainPosition<A>"],["impl<A: PartialOrd> PartialOrd for FullTxOut<A>"]],
+"bdk_chain":[["impl PartialOrd for ConfirmationTime"],["impl PartialOrd for BlockId"],["impl PartialOrd for ConfirmationBlockTime"],["impl PartialOrd for DescriptorId"],["impl<'a, T: PartialOrd, A: PartialOrd> PartialOrd for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialOrd, A: PartialOrd> PartialOrd for TxNode<'a, T, A>"],["impl<A: PartialOrd> PartialOrd for ChainPosition<A>"],["impl<A: PartialOrd> PartialOrd for FullTxOut<A>"]],
 "bdk_coin_select":[["impl PartialOrd for ExcessStrategyKind"]],
 "bdk_wallet":[["impl PartialOrd for KeychainKind"],["impl PartialOrd for SignerId"],["impl PartialOrd for ChangeSpendPolicy"],["impl PartialOrd for Condition"],["impl PartialOrd for SignerOrdering"]],
 "example_cli":[["impl PartialOrd for Keychain"]]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.AsRef.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.AsRef.js
index 74f23a71da..6c7adc9577 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.AsRef.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.AsRef.js
@@ -1,4 +1,4 @@
 (function() {var implementors = {
 "bdk_chain":[["impl AsRef<[u8; 32]> for DescriptorId"],["impl AsRef<[u8]> for DescriptorId"],["impl<A> AsRef<TxGraph<A>> for TxGraph<A>"],["impl<A, I> AsRef<TxGraph<A>> for IndexedTxGraph<A, I>"]],
-"bdk_wallet":[["impl AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet"],["impl AsRef<[u8]> for KeychainKind"]]
+"bdk_wallet":[["impl AsRef<TxGraph<ConfirmationBlockTime>> for Wallet"],["impl AsRef<[u8]> for KeychainKind"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js
index 89be7ace65..0186c54fc8 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl From<(&u32, &BlockHash)> for BlockId"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<DescriptorId> for Hash"],["impl From<Hash> for DescriptorId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"],["impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>"],["impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>"],["impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>"]],
+"bdk_chain":[["impl From<(&u32, &BlockHash)> for BlockId"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<ChainPosition<ConfirmationBlockTime>> for ConfirmationTime"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<DescriptorId> for Hash"],["impl From<Hash> for DescriptorId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"],["impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>"],["impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>"],["impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>"]],
 "bdk_coin_select":[["impl From<usize> for BnbLimit"],["impl From<Duration> for BnbLimit"]],
 "bdk_file_store":[["impl From<Error> for FileError"],["impl From<Error> for IterError"]],
 "bdk_tmp_plan":[["impl From<Error> for SigningError"],["impl From<P2wpkhError> for SigningError"],["impl From<TaprootError> for SigningError"]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js
index 66ce46fbb0..56ee04797f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js
@@ -1,5 +1,5 @@
 (function() {var implementors = {
-"bdk_chain":[["impl Default for Balance"],["impl Default for BlockId"],["impl Default for ConfirmationHeightAnchor"],["impl Default for ConfirmationTimeHeightAnchor"],["impl<A> Default for ChangeSet<A>"],["impl<A> Default for TxGraph<A>"],["impl<A, I: Default> Default for IndexedTxGraph<A, I>"],["impl<A, IA: Default> Default for ChangeSet<A, IA>"],["impl<I> Default for SpkTxOutIndex<I>"],["impl<K> Default for ChangeSet<K>"],["impl<K> Default for KeychainTxOutIndex<K>"],["impl<K, A> Default for CombinedChangeSet<K, A>"]],
+"bdk_chain":[["impl Default for Balance"],["impl Default for BlockId"],["impl Default for ConfirmationBlockTime"],["impl<A> Default for ChangeSet<A>"],["impl<A> Default for TxGraph<A>"],["impl<A, I: Default> Default for IndexedTxGraph<A, I>"],["impl<A, IA: Default> Default for ChangeSet<A, IA>"],["impl<I> Default for SpkTxOutIndex<I>"],["impl<K> Default for ChangeSet<K>"],["impl<K> Default for KeychainTxOutIndex<K>"],["impl<K, A> Default for CombinedChangeSet<K, A>"]],
 "bdk_tmp_plan":[["impl Default for SatisfactionMaterial"],["impl<Ak> Default for RequiredSignatures<Ak>"],["impl<Ak> Default for Requirements<Ak>"],["impl<K> Default for Assets<K>"]],
 "bdk_wallet":[["impl Default for TapLeavesOptions"],["impl Default for ChangeSpendPolicy"],["impl Default for TxOrdering"],["impl Default for Condition"],["impl Default for PrivateKeyGenerateOptions"],["impl Default for BranchAndBoundCoinSelection"],["impl Default for LargestFirstCoinSelection"],["impl Default for OldestFirstCoinSelection"],["impl Default for SignOptions"],["impl Default for SignerOrdering"],["impl Default for SignersContainer"],["impl Default for Update"]],
 "example_cli":[["impl Default for CoinSelectionAlgo"]]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js
index 0daf848774..f95b2bf35f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js
@@ -1,6 +1,6 @@
 (function() {var implementors = {
 "bdk_bitcoind_rpc":[["impl<B: Debug> Debug for BlockEvent<B>"]],
-"bdk_chain":[["impl Debug for ConfirmationTime"],["impl Debug for ApplyHeaderError"],["impl Debug for CalculateFeeError"],["impl Debug for AlterCheckPointError"],["impl Debug for CannotConnectError"],["impl Debug for CheckPoint"],["impl Debug for LocalChain"],["impl Debug for MissingGenesisError"],["impl Debug for Balance"],["impl Debug for BlockId"],["impl Debug for ConfirmationHeightAnchor"],["impl Debug for ConfirmationTimeHeightAnchor"],["impl Debug for DescriptorId"],["impl<'a, T: Debug, A: Debug> Debug for CanonicalTx<'a, T, A>"],["impl<'a, T: Debug, A: Debug> Debug for TxNode<'a, T, A>"],["impl<A: Debug> Debug for ChainPosition<A>"],["impl<A: Debug> Debug for FullTxOut<A>"],["impl<A: Debug> Debug for ChangeSet<A>"],["impl<A: Debug> Debug for TxGraph<A>"],["impl<A: Debug, I: Debug> Debug for IndexedTxGraph<A, I>"],["impl<A: Debug, IA: Debug> Debug for ChangeSet<A, IA>"],["impl<I: Debug> Debug for SpkTxOutIndex<I>"],["impl<K: Debug> Debug for InsertDescriptorError<K>"],["impl<K: Debug> Debug for ChangeSet<K>"],["impl<K: Debug> Debug for KeychainTxOutIndex<K>"],["impl<K: Debug> Debug for NoSuchKeychain<K>"],["impl<K: Debug, A: Debug> Debug for CombinedChangeSet<K, A>"]],
+"bdk_chain":[["impl Debug for ConfirmationTime"],["impl Debug for ApplyHeaderError"],["impl Debug for CalculateFeeError"],["impl Debug for AlterCheckPointError"],["impl Debug for CannotConnectError"],["impl Debug for CheckPoint"],["impl Debug for LocalChain"],["impl Debug for MissingGenesisError"],["impl Debug for Balance"],["impl Debug for BlockId"],["impl Debug for ConfirmationBlockTime"],["impl Debug for DescriptorId"],["impl<'a, T: Debug, A: Debug> Debug for CanonicalTx<'a, T, A>"],["impl<'a, T: Debug, A: Debug> Debug for TxNode<'a, T, A>"],["impl<A: Debug> Debug for ChainPosition<A>"],["impl<A: Debug> Debug for FullTxOut<A>"],["impl<A: Debug> Debug for ChangeSet<A>"],["impl<A: Debug> Debug for TxGraph<A>"],["impl<A: Debug, I: Debug> Debug for IndexedTxGraph<A, I>"],["impl<A: Debug, IA: Debug> Debug for ChangeSet<A, IA>"],["impl<I: Debug> Debug for SpkTxOutIndex<I>"],["impl<K: Debug> Debug for InsertDescriptorError<K>"],["impl<K: Debug> Debug for ChangeSet<K>"],["impl<K: Debug> Debug for KeychainTxOutIndex<K>"],["impl<K: Debug> Debug for NoSuchKeychain<K>"],["impl<K: Debug, A: Debug> Debug for CombinedChangeSet<K, A>"]],
 "bdk_coin_select":[["impl Debug for ExcessStrategyKind"],["impl Debug for SelectionConstraint"],["impl Debug for CoinSelectorOpt"],["impl Debug for ExcessStrategy"],["impl Debug for Selection"],["impl Debug for SelectionError"],["impl Debug for WeightedValue"],["impl<'a> Debug for CoinSelector<'a>"]],
 "bdk_electrum":[["impl<E: Debug> Debug for BdkElectrumClient<E>"]],
 "bdk_file_store":[["impl Debug for FileError"],["impl Debug for IterError"],["impl<C> Debug for Store<C>
where\n C: Sync + Send + Debug,
"],["impl<C: Debug> Debug for AggregateChangesetsError<C>"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/hash/trait.Hash.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/hash/trait.Hash.js index 8f2e52b177..d7e5f1eed3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/hash/trait.Hash.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/hash/trait.Hash.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl Hash for ConfirmationTime"],["impl Hash for BlockId"],["impl Hash for ConfirmationHeightAnchor"],["impl Hash for ConfirmationTimeHeightAnchor"],["impl Hash for DescriptorId"],["impl<A: Hash> Hash for ChainPosition<A>"]], +"bdk_chain":[["impl Hash for ConfirmationTime"],["impl Hash for BlockId"],["impl Hash for ConfirmationBlockTime"],["impl Hash for DescriptorId"],["impl<A: Hash> Hash for ChainPosition<A>"]], "bdk_coin_select":[["impl Hash for ExcessStrategyKind"]], "bdk_wallet":[["impl Hash for PkOrF"],["impl Hash for KeychainKind"],["impl Hash for SignerId"],["impl Hash for ChangeSpendPolicy"],["impl Hash for Condition"],["impl Hash for LocalOutput"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Copy.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Copy.js index 2f1e1fce4d..09bfb973bd 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Copy.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Copy.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl Copy for ConfirmationTime"],["impl Copy for BlockId"],["impl Copy for ConfirmationHeightAnchor"],["impl Copy for ConfirmationTimeHeightAnchor"],["impl Copy for DescriptorId"],["impl<A: Copy> Copy for ChainPosition<A>"]], +"bdk_chain":[["impl Copy for ConfirmationTime"],["impl Copy for BlockId"],["impl Copy for ConfirmationBlockTime"],["impl Copy for DescriptorId"],["impl<A: Copy> Copy for ChainPosition<A>"]], "bdk_coin_select":[["impl Copy for ExcessStrategyKind"],["impl Copy for SelectionConstraint"],["impl Copy for CoinSelectorOpt"],["impl Copy for ExcessStrategy"],["impl Copy for WeightedValue"]], "bdk_wallet":[["impl Copy for KeychainKind"],["impl Copy for ScriptContextEnum"],["impl Copy for SignerContext"],["impl Copy for ChangeSpendPolicy"],["impl Copy for Condition"],["impl Copy for PrivateKeyGenerateOptions"],["impl Copy for LargestFirstCoinSelection"],["impl Copy for OldestFirstCoinSelection"],["impl<'a> Copy for BuildSatisfaction<'a>"]], "example_cli":[["impl Copy for Keychain"]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js index 9a261b9ac5..c27453e66d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Freeze for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Freeze for BlockEvent<B>
where\n B: Freeze,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Freeze for Balance",1,["bdk_chain::balance::Balance"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Freeze for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>
where\n T: Freeze,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>
where\n T: Freeze,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>
where\n F: Freeze,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>
where\n F: Freeze,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Freeze for ChainPosition<A>
where\n A: Freeze,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Freeze for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Freeze for FullTxOut<A>
where\n A: Freeze,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>
where\n I: Freeze,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>
where\n IA: Freeze,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Freeze for SpkIterator<D>
where\n D: Freeze,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !Freeze for InsertDescriptorError<K>",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Freeze for NoSuchKeychain<K>
where\n K: Freeze,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Freeze for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Freeze for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Freeze for CombinedChangeSet<K, A>",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Freeze for Balance",1,["bdk_chain::balance::Balance"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl Freeze for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>
where\n T: Freeze,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>
where\n T: Freeze,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>
where\n F: Freeze,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>
where\n F: Freeze,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Freeze for ChainPosition<A>
where\n A: Freeze,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Freeze for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Freeze for FullTxOut<A>
where\n A: Freeze,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>
where\n I: Freeze,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>
where\n IA: Freeze,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Freeze for SpkIterator<D>
where\n D: Freeze,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !Freeze for InsertDescriptorError<K>",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Freeze for NoSuchKeychain<K>
where\n K: Freeze,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Freeze for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Freeze for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Freeze for CombinedChangeSet<K, A>",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl Freeze for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Freeze for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Freeze for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Freeze for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Freeze for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Freeze for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Freeze for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Freeze for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Freeze for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Freeze for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> Freeze for BnbIter<'c, 'f, S>
where\n S: Freeze,
",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Freeze for Bnb<'c, S>
where\n S: Freeze,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl Freeze for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> !Freeze for BdkElectrumClient<E>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Freeze for ElectrumFullScanResult<K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> !Freeze for BdkElectrumClient<E>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl Freeze for FileError",1,["bdk_file_store::FileError"]],["impl Freeze for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Freeze for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Freeze for AggregateChangesetsError<C>
where\n C: Freeze,
",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Freeze for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Freeze for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl Freeze for Error",1,["bdk_sqlite::Error"]],["impl<K, A> !Freeze for Store<K, A>",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js index 2dde1a23db..7ed14a96d5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Send for Emitter<'c, C>
where\n C: Sync,
",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Send for BlockEvent<B>
where\n B: Send,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Send for Balance",1,["bdk_chain::balance::Balance"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Send for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Send for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>
where\n T: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Send for TxNode<'a, T, A>
where\n T: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>
where\n F: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>
where\n F: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Send for ChainPosition<A>
where\n A: Send,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Send for SyncResult<A>
where\n A: Send,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Send for FullTxOut<A>
where\n A: Send,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Send for ChangeSet<A>
where\n A: Send,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Send for TxGraph<A>
where\n A: Send,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Send for IndexedTxGraph<A, I>
where\n I: Send,\n A: Send,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>
where\n IA: Send,\n A: Send,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Send for SpkIterator<D>
where\n D: Send,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Send for SpkTxOutIndex<I>
where\n I: Send,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> Send for InsertDescriptorError<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Send for ChangeSet<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Send for NoSuchKeychain<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Send for FullScanRequest<K>
where\n K: Send,
",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Send for FullScanResult<K, A>
where\n K: Send,\n A: Send,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Send for CombinedChangeSet<K, A>
where\n K: Send,\n A: Send,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Send for Balance",1,["bdk_chain::balance::Balance"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl Send for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>
where\n T: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Send for TxNode<'a, T, A>
where\n T: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>
where\n F: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>
where\n F: Send,\n A: Sync,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Send for ChainPosition<A>
where\n A: Send,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Send for SyncResult<A>
where\n A: Send,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Send for FullTxOut<A>
where\n A: Send,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Send for ChangeSet<A>
where\n A: Send,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Send for TxGraph<A>
where\n A: Send,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Send for IndexedTxGraph<A, I>
where\n I: Send,\n A: Send,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>
where\n IA: Send,\n A: Send,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Send for SpkIterator<D>
where\n D: Send,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Send for SpkTxOutIndex<I>
where\n I: Send,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> Send for InsertDescriptorError<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Send for ChangeSet<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Send for NoSuchKeychain<K>
where\n K: Send,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Send for FullScanRequest<K>
where\n K: Send,
",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Send for FullScanResult<K, A>
where\n K: Send,\n A: Send,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Send for CombinedChangeSet<K, A>
where\n K: Send,\n A: Send,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl Send for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Send for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Send for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Send for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Send for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Send for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Send for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Send for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Send for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Send for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !Send for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Send for Bnb<'c, S>
where\n S: Send,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl Send for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Send for BdkElectrumClient<E>
where\n E: Send,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Send for ElectrumFullScanResult<K>
where\n K: Send,
",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> Send for BdkElectrumClient<E>
where\n E: Send,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl Send for FileError",1,["bdk_file_store::FileError"]],["impl Send for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Send for EntryIter<'t, T>
where\n T: Send,
",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Send for AggregateChangesetsError<C>
where\n C: Send,
",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Send for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Send for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl Send for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Send for Store<K, A>
where\n K: Send,\n A: Send,
",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js index 0b94f78118..018357119a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl StructuralPartialEq for ConfirmationTime"],["impl StructuralPartialEq for ApplyHeaderError"],["impl StructuralPartialEq for CalculateFeeError"],["impl StructuralPartialEq for AlterCheckPointError"],["impl StructuralPartialEq for CannotConnectError"],["impl StructuralPartialEq for LocalChain"],["impl StructuralPartialEq for MissingGenesisError"],["impl StructuralPartialEq for Balance"],["impl StructuralPartialEq for BlockId"],["impl StructuralPartialEq for ConfirmationHeightAnchor"],["impl StructuralPartialEq for ConfirmationTimeHeightAnchor"],["impl StructuralPartialEq for DescriptorId"],["impl<'a, T, A> StructuralPartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T, A> StructuralPartialEq for TxNode<'a, T, A>"],["impl<A> StructuralPartialEq for ChainPosition<A>"],["impl<A> StructuralPartialEq for FullTxOut<A>"],["impl<A> StructuralPartialEq for ChangeSet<A>"],["impl<A> StructuralPartialEq for TxGraph<A>"],["impl<A, IA> StructuralPartialEq for ChangeSet<A, IA>"],["impl<K> StructuralPartialEq for InsertDescriptorError<K>"],["impl<K> StructuralPartialEq for ChangeSet<K>"],["impl<K> StructuralPartialEq for NoSuchKeychain<K>"],["impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>"]], +"bdk_chain":[["impl StructuralPartialEq for ConfirmationTime"],["impl StructuralPartialEq for ApplyHeaderError"],["impl StructuralPartialEq for CalculateFeeError"],["impl StructuralPartialEq for AlterCheckPointError"],["impl StructuralPartialEq for CannotConnectError"],["impl StructuralPartialEq for LocalChain"],["impl StructuralPartialEq for MissingGenesisError"],["impl StructuralPartialEq for Balance"],["impl StructuralPartialEq for BlockId"],["impl StructuralPartialEq for ConfirmationBlockTime"],["impl StructuralPartialEq for DescriptorId"],["impl<'a, T, A> StructuralPartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T, A> StructuralPartialEq for TxNode<'a, T, A>"],["impl<A> StructuralPartialEq for ChainPosition<A>"],["impl<A> StructuralPartialEq for FullTxOut<A>"],["impl<A> StructuralPartialEq for ChangeSet<A>"],["impl<A> StructuralPartialEq for TxGraph<A>"],["impl<A, IA> StructuralPartialEq for ChangeSet<A, IA>"],["impl<K> StructuralPartialEq for InsertDescriptorError<K>"],["impl<K> StructuralPartialEq for ChangeSet<K>"],["impl<K> StructuralPartialEq for NoSuchKeychain<K>"],["impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl StructuralPartialEq for ExcessStrategyKind"],["impl StructuralPartialEq for SelectionConstraint"]], "bdk_wallet":[["impl StructuralPartialEq for PkOrF"],["impl StructuralPartialEq for PolicyError"],["impl StructuralPartialEq for Satisfaction"],["impl StructuralPartialEq for SatisfiableItem"],["impl StructuralPartialEq for KeychainKind"],["impl StructuralPartialEq for Utxo"],["impl StructuralPartialEq for ScriptContextEnum"],["impl StructuralPartialEq for SignerContext"],["impl StructuralPartialEq for SignerId"],["impl StructuralPartialEq for TapLeavesOptions"],["impl StructuralPartialEq for ChangeSpendPolicy"],["impl StructuralPartialEq for Condition"],["impl StructuralPartialEq for Policy"],["impl StructuralPartialEq for LocalOutput"],["impl StructuralPartialEq for WeightedUtxo"],["impl StructuralPartialEq for SignerOrdering"],["impl StructuralPartialEq for AddressInfo"]], "example_cli":[["impl StructuralPartialEq for Keychain"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js index aa87ee7131..2feb06ee03 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Sync for Emitter<'c, C>
where\n C: Sync,
",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Sync for BlockEvent<B>
where\n B: Sync,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !Sync for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for Balance",1,["bdk_chain::balance::Balance"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Sync for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Sync for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>
where\n T: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>
where\n T: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>
where\n F: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>
where\n F: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Sync for ChainPosition<A>
where\n A: Sync,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Sync for SyncResult<A>
where\n A: Sync,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Sync for FullTxOut<A>
where\n A: Sync,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Sync for ChangeSet<A>
where\n A: Sync,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Sync for TxGraph<A>
where\n A: Sync,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Sync for IndexedTxGraph<A, I>
where\n I: Sync,\n A: Sync,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>
where\n IA: Sync,\n A: Sync,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Sync for SpkIterator<D>
where\n D: Sync,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Sync for SpkTxOutIndex<I>
where\n I: Sync,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !Sync for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Sync for InsertDescriptorError<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Sync for ChangeSet<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Sync for NoSuchKeychain<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> Sync for FullScanResult<K, A>
where\n K: Sync,\n A: Sync,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Sync for CombinedChangeSet<K, A>
where\n K: Sync,\n A: Sync,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl !Sync for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for Balance",1,["bdk_chain::balance::Balance"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl Sync for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>
where\n T: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>
where\n T: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>
where\n F: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>
where\n F: Sync,\n A: Sync,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Sync for ChainPosition<A>
where\n A: Sync,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Sync for SyncResult<A>
where\n A: Sync,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Sync for FullTxOut<A>
where\n A: Sync,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Sync for ChangeSet<A>
where\n A: Sync,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Sync for TxGraph<A>
where\n A: Sync,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Sync for IndexedTxGraph<A, I>
where\n I: Sync,\n A: Sync,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>
where\n IA: Sync,\n A: Sync,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Sync for SpkIterator<D>
where\n D: Sync,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Sync for SpkTxOutIndex<I>
where\n I: Sync,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !Sync for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Sync for InsertDescriptorError<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Sync for ChangeSet<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Sync for NoSuchKeychain<K>
where\n K: Sync,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> Sync for FullScanResult<K, A>
where\n K: Sync,\n A: Sync,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Sync for CombinedChangeSet<K, A>
where\n K: Sync,\n A: Sync,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl Sync for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Sync for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Sync for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Sync for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Sync for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Sync for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Sync for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Sync for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Sync for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Sync for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !Sync for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Sync for Bnb<'c, S>
where\n S: Sync,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl Sync for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Sync for BdkElectrumClient<E>
where\n E: Sync,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Sync for ElectrumFullScanResult<K>
where\n K: Sync,
",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> Sync for BdkElectrumClient<E>
where\n E: Sync,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl Sync for FileError",1,["bdk_file_store::FileError"]],["impl Sync for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Sync for EntryIter<'t, T>
where\n T: Sync,
",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Sync for AggregateChangesetsError<C>
where\n C: Sync,
",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Sync for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Sync for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl Sync for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Sync for Store<K, A>
where\n K: Sync,\n A: Sync,
",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js index 3efefc5f12..67c7d9d74a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Unpin for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Unpin for BlockEvent<B>
where\n B: Unpin,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Unpin for Balance",1,["bdk_chain::balance::Balance"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Unpin for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Unpin for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>
where\n T: Unpin,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>
where\n T: Unpin,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>
where\n F: Unpin,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>
where\n F: Unpin,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Unpin for ChainPosition<A>
where\n A: Unpin,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Unpin for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Unpin for FullTxOut<A>
where\n A: Unpin,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>
where\n I: Unpin,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>
where\n IA: Unpin,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Unpin for SpkIterator<D>
where\n D: Unpin,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Unpin for SpkTxOutIndex<I>
where\n I: Unpin,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> Unpin for InsertDescriptorError<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Unpin for NoSuchKeychain<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Unpin for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Unpin for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Unpin for CombinedChangeSet<K, A>",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Unpin for Balance",1,["bdk_chain::balance::Balance"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl Unpin for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>
where\n T: Unpin,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>
where\n T: Unpin,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>
where\n F: Unpin,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>
where\n F: Unpin,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Unpin for ChainPosition<A>
where\n A: Unpin,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Unpin for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Unpin for FullTxOut<A>
where\n A: Unpin,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>
where\n I: Unpin,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>
where\n IA: Unpin,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Unpin for SpkIterator<D>
where\n D: Unpin,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Unpin for SpkTxOutIndex<I>
where\n I: Unpin,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> Unpin for InsertDescriptorError<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> Unpin for NoSuchKeychain<K>
where\n K: Unpin,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K> Unpin for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Unpin for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> Unpin for CombinedChangeSet<K, A>",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl Unpin for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Unpin for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Unpin for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Unpin for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Unpin for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Unpin for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Unpin for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Unpin for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Unpin for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Unpin for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> Unpin for BnbIter<'c, 'f, S>
where\n S: Unpin,
",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Unpin for Bnb<'c, S>
where\n S: Unpin,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl Unpin for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Unpin for BdkElectrumClient<E>
where\n E: Unpin,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Unpin for ElectrumFullScanResult<K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> Unpin for BdkElectrumClient<E>
where\n E: Unpin,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl Unpin for FileError",1,["bdk_file_store::FileError"]],["impl Unpin for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Unpin for EntryIter<'t, T>
where\n T: Unpin,
",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Unpin for AggregateChangesetsError<C>
where\n C: Unpin,
",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Unpin for Store<C>
where\n C: Unpin,
",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Unpin for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl Unpin for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Unpin for Store<K, A>
where\n K: Unpin,\n A: Unpin,
",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 92421c02ce..64a68d1db8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> RefUnwindSafe for Emitter<'c, C>
where\n C: RefUnwindSafe,
",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> RefUnwindSafe for BlockEvent<B>
where\n B: RefUnwindSafe,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !RefUnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::balance::Balance"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl RefUnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>
where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>
where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>
where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>
where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> RefUnwindSafe for ChainPosition<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> RefUnwindSafe for SyncResult<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> RefUnwindSafe for FullTxOut<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> RefUnwindSafe for ChangeSet<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> RefUnwindSafe for TxGraph<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>
where\n I: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>
where\n IA: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> RefUnwindSafe for SpkIterator<D>
where\n D: RefUnwindSafe,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> RefUnwindSafe for SpkTxOutIndex<I>
where\n I: RefUnwindSafe,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !RefUnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> RefUnwindSafe for InsertDescriptorError<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> RefUnwindSafe for ChangeSet<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for NoSuchKeychain<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> RefUnwindSafe for FullScanResult<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl !RefUnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::balance::Balance"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl RefUnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>
where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>
where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>
where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>
where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> RefUnwindSafe for ChainPosition<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> RefUnwindSafe for SyncResult<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> RefUnwindSafe for FullTxOut<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> RefUnwindSafe for ChangeSet<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> RefUnwindSafe for TxGraph<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>
where\n I: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>
where\n IA: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> RefUnwindSafe for SpkIterator<D>
where\n D: RefUnwindSafe,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> RefUnwindSafe for SpkTxOutIndex<I>
where\n I: RefUnwindSafe,
",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !RefUnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> RefUnwindSafe for InsertDescriptorError<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> RefUnwindSafe for ChangeSet<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for NoSuchKeychain<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> RefUnwindSafe for FullScanResult<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl RefUnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl RefUnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl RefUnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl RefUnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl RefUnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl RefUnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl RefUnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl RefUnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl RefUnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> RefUnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !RefUnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> RefUnwindSafe for Bnb<'c, S>
where\n S: RefUnwindSafe,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl RefUnwindSafe for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> RefUnwindSafe for BdkElectrumClient<E>
where\n E: RefUnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> RefUnwindSafe for ElectrumFullScanResult<K>
where\n K: RefUnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> RefUnwindSafe for BdkElectrumClient<E>
where\n E: RefUnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl !RefUnwindSafe for FileError",1,["bdk_file_store::FileError"]],["impl !RefUnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> RefUnwindSafe for EntryIter<'t, T>
where\n T: RefUnwindSafe,
",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> !RefUnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> RefUnwindSafe for Store<C>
where\n C: RefUnwindSafe,
",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl !RefUnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl !RefUnwindSafe for Error",1,["bdk_sqlite::Error"]],["impl<K, A> RefUnwindSafe for Store<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 264add5d2b..7256a44ca7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,8 +1,8 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> UnwindSafe for Emitter<'c, C>
where\n C: RefUnwindSafe,
",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> UnwindSafe for BlockEvent<B>
where\n B: UnwindSafe,
",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !UnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for Balance",1,["bdk_chain::balance::Balance"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl UnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>
where\n T: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>
where\n T: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>
where\n F: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>
where\n F: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> UnwindSafe for ChainPosition<A>
where\n A: UnwindSafe,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> UnwindSafe for SyncResult<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> UnwindSafe for FullTxOut<A>
where\n A: UnwindSafe,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> UnwindSafe for ChangeSet<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> UnwindSafe for TxGraph<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>
where\n I: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>
where\n IA: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> UnwindSafe for SpkIterator<D>
where\n D: UnwindSafe,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> UnwindSafe for SpkTxOutIndex<I>",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !UnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> UnwindSafe for InsertDescriptorError<K>
where\n K: UnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> UnwindSafe for ChangeSet<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> UnwindSafe for NoSuchKeychain<K>
where\n K: UnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> UnwindSafe for FullScanResult<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], +"bdk_chain":[["impl !UnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for Balance",1,["bdk_chain::balance::Balance"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationBlockTime",1,["bdk_chain::chain_data::ConfirmationBlockTime"]],["impl UnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>
where\n T: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>
where\n T: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>
where\n F: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>
where\n F: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> UnwindSafe for ChainPosition<A>
where\n A: UnwindSafe,
",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> UnwindSafe for SyncResult<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> UnwindSafe for FullTxOut<A>
where\n A: UnwindSafe,
",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> UnwindSafe for ChangeSet<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> UnwindSafe for TxGraph<A>
where\n A: RefUnwindSafe,
",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>
where\n I: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>
where\n IA: UnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> UnwindSafe for SpkIterator<D>
where\n D: UnwindSafe,
",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> UnwindSafe for SpkTxOutIndex<I>",1,["bdk_chain::indexer::spk_txout::SpkTxOutIndex"]],["impl<K> !UnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> UnwindSafe for InsertDescriptorError<K>
where\n K: UnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::InsertDescriptorError"]],["impl<K> UnwindSafe for ChangeSet<K>
where\n K: RefUnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>",1,["bdk_chain::indexer::keychain_txout::KeychainTxOutIndex"]],["impl<K> UnwindSafe for NoSuchKeychain<K>
where\n K: UnwindSafe,
",1,["bdk_chain::indexer::keychain_txout::NoSuchKeychain"]],["impl<K, A> UnwindSafe for FullScanResult<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::spk_client::FullScanResult"]],["impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
",1,["bdk_chain::changeset::CombinedChangeSet"]]], "bdk_coin_select":[["impl UnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl UnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl UnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl UnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl UnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl UnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl UnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl UnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl UnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> UnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !UnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> UnwindSafe for Bnb<'c, S>
where\n S: UnwindSafe,
",1,["bdk_coin_select::bnb::Bnb"]]], -"bdk_electrum":[["impl UnwindSafe for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> UnwindSafe for BdkElectrumClient<E>
where\n E: UnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> UnwindSafe for ElectrumFullScanResult<K>
where\n K: RefUnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], +"bdk_electrum":[["impl<E> UnwindSafe for BdkElectrumClient<E>
where\n E: UnwindSafe,
",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]]], "bdk_file_store":[["impl !UnwindSafe for FileError",1,["bdk_file_store::FileError"]],["impl !UnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> !UnwindSafe for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> !UnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> UnwindSafe for Store<C>
where\n C: UnwindSafe,
",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl UnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], "bdk_sqlite":[["impl !UnwindSafe for Error",1,["bdk_sqlite::Error"]],["impl<K, A> UnwindSafe for Store<K, A>
where\n K: UnwindSafe,\n A: UnwindSafe,
",1,["bdk_sqlite::store::Store"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js index 60a15c5e71..5671521bf4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for Balance"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationHeightAnchor"],["impl<'de> Deserialize<'de> for ConfirmationTimeHeightAnchor"],["impl<'de> Deserialize<'de> for DescriptorId"],["impl<'de, A> Deserialize<'de> for ChangeSet<A>
where\n A: Ord + Deserialize<'de>,
"],["impl<'de, A, IA> Deserialize<'de> for ChangeSet<A, IA>
where\n A: Ord + Deserialize<'de>,\n IA: Deserialize<'de>,
"],["impl<'de, K> Deserialize<'de> for ChangeSet<K>
where\n K: Ord + Deserialize<'de>,
"],["impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,
"]], +"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for Balance"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationBlockTime"],["impl<'de> Deserialize<'de> for DescriptorId"],["impl<'de, A> Deserialize<'de> for ChangeSet<A>
where\n A: Ord + Deserialize<'de>,
"],["impl<'de, A, IA> Deserialize<'de> for ChangeSet<A, IA>
where\n A: Ord + Deserialize<'de>,\n IA: Deserialize<'de>,
"],["impl<'de, K> Deserialize<'de> for ChangeSet<K>
where\n K: Ord + Deserialize<'de>,
"],["impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,
"]], "bdk_wallet":[["impl<'de> Deserialize<'de> for KeychainKind"],["impl<'de> Deserialize<'de> for LocalOutput"],["impl<'de> Deserialize<'de> for FullyNodedExport"]], "example_cli":[["impl<'de> Deserialize<'de> for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js index 938c80a001..8eab1e67df 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for Balance"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationHeightAnchor"],["impl Serialize for ConfirmationTimeHeightAnchor"],["impl Serialize for DescriptorId"],["impl<A> Serialize for ChangeSet<A>
where\n A: Ord + Serialize,
"],["impl<A, IA> Serialize for ChangeSet<A, IA>
where\n A: Ord + Serialize,\n IA: Serialize,
"],["impl<K> Serialize for ChangeSet<K>
where\n K: Ord + Serialize,
"],["impl<K, A> Serialize for CombinedChangeSet<K, A>
where\n A: Ord + Serialize,\n K: Ord + Serialize,
"]], +"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for Balance"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationBlockTime"],["impl Serialize for DescriptorId"],["impl<A> Serialize for ChangeSet<A>
where\n A: Ord + Serialize,
"],["impl<A, IA> Serialize for ChangeSet<A, IA>
where\n A: Ord + Serialize,\n IA: Serialize,
"],["impl<K> Serialize for ChangeSet<K>
where\n K: Ord + Serialize,
"],["impl<K, A> Serialize for CombinedChangeSet<K, A>
where\n A: Ord + Serialize,\n K: Ord + Serialize,
"]], "bdk_wallet":[["impl Serialize for PkOrF"],["impl Serialize for Satisfaction"],["impl Serialize for SatisfiableItem"],["impl Serialize for KeychainKind"],["impl Serialize for Condition"],["impl Serialize for Policy"],["impl Serialize for LocalOutput"],["impl Serialize for FullyNodedExport"]], "example_cli":[["impl Serialize for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/alloc/collections/btree/map/struct.BTreeMap.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/alloc/collections/btree/map/struct.BTreeMap.js index d63f4c58c7..5800c660a4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/alloc/collections/btree/map/struct.BTreeMap.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/alloc/collections/btree/map/struct.BTreeMap.js @@ -1,4 +1,4 @@ (function() {var type_impls = { -"bdk_chain":[["
source§

impl<K, V> BTreeMap<K, V>

1.0.0 (const: 1.66.0) · source

pub const fn new() -> BTreeMap<K, V>

Makes a new, empty BTreeMap.

\n

Does not allocate anything on its own.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn iter(&self) -> Iter<'_, K, V> ⓘ

Gets an iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"c\");\nmap.insert(2, \"b\");\nmap.insert(1, \"a\");\n\nfor (key, value) in map.iter() {\n    println!(\"{key}: {value}\");\n}\n\nlet (first_key, first_value) = map.iter().next().unwrap();\nassert_eq!((*first_key, *first_value), (1, \"a\"));
\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ

Gets a mutable iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::from([\n   (\"a\", 1),\n   (\"b\", 2),\n   (\"c\", 3),\n]);\n\n// add 10 to the value if the key isn't \"a\"\nfor (key, value) in map.iter_mut() {\n    if key != &\"a\" {\n        *value += 10;\n    }\n}
\n
1.0.0 · source

pub fn keys(&self) -> Keys<'_, K, V> ⓘ

Gets an iterator over the keys of the map, in sorted order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<_> = a.keys().cloned().collect();\nassert_eq!(keys, [1, 2]);
\n
1.0.0 · source

pub fn values(&self) -> Values<'_, K, V> ⓘ

Gets an iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.values().cloned().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
1.10.0 · source

pub fn values_mut(&mut self) -> ValuesMut<'_, K, V> ⓘ

Gets a mutable iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, String::from(\"hello\"));\na.insert(2, String::from(\"goodbye\"));\n\nfor value in a.values_mut() {\n    value.push_str(\"!\");\n}\n\nlet values: Vec<String> = a.values().cloned().collect();\nassert_eq!(values, [String::from(\"hello!\"),\n                    String::from(\"goodbye!\")]);
\n
1.0.0 (const: unstable) · source

pub fn len(&self) -> usize

Returns the number of elements in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert_eq!(a.len(), 0);\na.insert(1, \"a\");\nassert_eq!(a.len(), 1);
\n
1.0.0 (const: unstable) · source

pub fn is_empty(&self) -> bool

Returns true if the map contains no elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert!(a.is_empty());\na.insert(1, \"a\");\nassert!(!a.is_empty());
\n
source

pub fn lower_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.lower_bound(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &\"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &\"b\")));\n\nlet cursor = map.lower_bound(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.lower_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &\"a\")));
\n
source

pub fn lower_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.lower_bound_mut(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &mut \"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &mut \"b\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &mut \"a\")));
\n
source

pub fn upper_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.upper_bound(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &\"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &\"d\")));\n\nlet cursor = map.upper_bound(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.upper_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &\"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
source

pub fn upper_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.upper_bound_mut(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &mut \"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &mut \"d\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &mut \"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn clear(&mut self)

Clears the map, removing all elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.clear();\nassert!(a.is_empty());
\n
source

pub const fn new_in(alloc: A) -> BTreeMap<K, V, A>

🔬This is a nightly-only experimental API. (btreemap_alloc)

Makes a new empty BTreeMap with a reasonable choice for B.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::alloc::Global;\n\nlet mut map = BTreeMap::new_in(Global);\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn get<Q>(&self, key: &Q) -> Option<&V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get(&1), Some(&\"a\"));\nassert_eq!(map.get(&2), None);
\n
1.40.0 · source

pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns the key-value pair corresponding to the supplied key.

\n

The supplied key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get_key_value(&1), Some((&1, &\"a\")));\nassert_eq!(map.get_key_value(&2), None);
\n
1.66.0 · source

pub fn first_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the first key-value pair in the map.\nThe key in this pair is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.first_key_value(), None);\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.first_key_value(), Some((&1, &\"b\")));
\n
1.66.0 · source

pub fn first_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the first entry in the map for in-place manipulation.\nThe key of this entry is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.first_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"first\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"first\");\nassert_eq!(*map.get(&2).unwrap(), \"b\");
\n
1.66.0 · source

pub fn pop_first(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the first element in the map.\nThe key of this element is the minimum key that was in the map.

\n
§Examples
\n

Draining elements in ascending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_first() {\n    assert!(map.iter().all(|(k, _v)| *k > key));\n}\nassert!(map.is_empty());
\n
1.66.0 · source

pub fn last_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the last key-value pair in the map.\nThe key in this pair is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.last_key_value(), Some((&2, &\"a\")));
\n
1.66.0 · source

pub fn last_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the last entry in the map for in-place manipulation.\nThe key of this entry is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.last_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"last\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"a\");\nassert_eq!(*map.get(&2).unwrap(), \"last\");
\n
1.66.0 · source

pub fn pop_last(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the last element in the map.\nThe key of this element is the maximum key that was in the map.

\n
§Examples
\n

Draining elements in descending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_last() {\n    assert!(map.iter().all(|(k, _v)| *k < key));\n}\nassert!(map.is_empty());
\n
1.0.0 · source

pub fn contains_key<Q>(&self, key: &Q) -> bool
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns true if the map contains a value for the specified key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.contains_key(&1), true);\nassert_eq!(map.contains_key(&2), false);
\n
1.0.0 · source

pub fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a mutable reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nif let Some(x) = map.get_mut(&1) {\n    *x = \"b\";\n}\nassert_eq!(map[&1], \"b\");
\n
1.0.0 · source

pub fn insert(&mut self, key: K, value: V) -> Option<V>
where\n K: Ord,

Inserts a key-value pair into the map.

\n

If the map did not have this key present, None is returned.

\n

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 == without being identical. See the module-level\ndocumentation for more.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.insert(37, \"a\"), None);\nassert_eq!(map.is_empty(), false);\n\nmap.insert(37, \"b\");\nassert_eq!(map.insert(37, \"c\"), Some(\"b\"));\nassert_eq!(map[&37], \"c\");
\n
source

pub fn try_insert(\n &mut self,\n key: K,\n value: V\n) -> Result<&mut V, OccupiedError<'_, K, V, A>>
where\n K: Ord,

🔬This is a nightly-only experimental API. (map_try_insert)

Tries to insert a key-value pair into the map, and returns\na mutable reference to the value in the entry.

\n

If the map already had this key present, nothing is updated, and\nan error containing the occupied entry and the value is returned.

\n
§Examples
\n
#![feature(map_try_insert)]\n\nuse std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.try_insert(37, \"a\").unwrap(), &\"a\");\n\nlet err = map.try_insert(37, \"b\").unwrap_err();\nassert_eq!(err.entry.key(), &37);\nassert_eq!(err.entry.get(), &\"a\");\nassert_eq!(err.value, \"b\");
\n
1.0.0 · source

pub fn remove<Q>(&mut self, key: &Q) -> Option<V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the value at the key if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove(&1), Some(\"a\"));\nassert_eq!(map.remove(&1), None);
\n
1.45.0 · source

pub fn remove_entry<Q>(&mut self, key: &Q) -> Option<(K, V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the stored key and value if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove_entry(&1), Some((1, \"a\")));\nassert_eq!(map.remove_entry(&1), None);
\n
1.53.0 · source

pub fn retain<F>(&mut self, f: F)
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

Retains only the elements specified by the predicate.

\n

In other words, remove all pairs (k, v) for which f(&k, &mut v) returns false.\nThe elements are visited in ascending key order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x*10)).collect();\n// Keep only the elements with even-numbered keys.\nmap.retain(|&k, _| k % 2 == 0);\nassert!(map.into_iter().eq(vec![(0, 0), (2, 20), (4, 40), (6, 60)]));
\n
1.11.0 · source

pub fn append(&mut self, other: &mut BTreeMap<K, V, A>)
where\n K: Ord,\n A: Clone,

Moves all elements from other into self, leaving other empty.

\n

If a key from other is already present in self, the respective\nvalue from self will be overwritten with the respective value from other.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\"); // Note: Key (3) also present in b.\n\nlet mut b = BTreeMap::new();\nb.insert(3, \"d\"); // Note: Key (3) also present in a.\nb.insert(4, \"e\");\nb.insert(5, \"f\");\n\na.append(&mut b);\n\nassert_eq!(a.len(), 5);\nassert_eq!(b.len(), 0);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\nassert_eq!(a[&3], \"d\"); // Note: \"c\" has been overwritten.\nassert_eq!(a[&4], \"e\");\nassert_eq!(a[&5], \"f\");
\n
1.17.0 · source

pub fn range<T, R>(&self, range: R) -> Range<'_, K, V> ⓘ
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::ops::Bound::Included;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"a\");\nmap.insert(5, \"b\");\nmap.insert(8, \"c\");\nfor (&key, &value) in map.range((Included(&4), Included(&8))) {\n    println!(\"{key}: {value}\");\n}\nassert_eq!(Some((&5, &\"b\")), map.range(4..).next());
\n
1.17.0 · source

pub fn range_mut<T, R>(&mut self, range: R) -> RangeMut<'_, K, V> ⓘ
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a mutable double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<&str, i32> =\n    [(\"Alice\", 0), (\"Bob\", 0), (\"Carol\", 0), (\"Cheryl\", 0)].into();\nfor (_, balance) in map.range_mut(\"B\"..\"Cheryl\") {\n    *balance += 100;\n}\nfor (name, balance) in &map {\n    println!(\"{name} => {balance}\");\n}
\n
1.0.0 · source

pub fn entry(&mut self, key: K) -> Entry<'_, K, V, A>
where\n K: Ord,

Gets the given key’s corresponding entry in the map for in-place manipulation.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut count: BTreeMap<&str, usize> = BTreeMap::new();\n\n// count the number of occurrences of letters in the vec\nfor x in [\"a\", \"b\", \"a\", \"c\", \"a\", \"b\"] {\n    count.entry(x).and_modify(|curr| *curr += 1).or_insert(1);\n}\n\nassert_eq!(count[\"a\"], 3);\nassert_eq!(count[\"b\"], 2);\nassert_eq!(count[\"c\"], 1);
\n
1.11.0 · source

pub fn split_off<Q>(&mut self, key: &Q) -> BTreeMap<K, V, A>
where\n Q: Ord + ?Sized,\n K: Borrow<Q> + Ord,\n A: Clone,

Splits the collection into two at the given key. Returns everything after the given key,\nincluding the key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\");\na.insert(17, \"d\");\na.insert(41, \"e\");\n\nlet b = a.split_off(&3);\n\nassert_eq!(a.len(), 2);\nassert_eq!(b.len(), 3);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\n\nassert_eq!(b[&3], \"c\");\nassert_eq!(b[&17], \"d\");\nassert_eq!(b[&41], \"e\");
\n
source

pub fn extract_if<F>(&mut self, pred: F) -> ExtractIf<'_, K, V, F, A> ⓘ
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

🔬This is a nightly-only experimental API. (btree_extract_if)

Creates an iterator that visits all elements (key-value pairs) in\nascending key order and uses a closure to determine if an element should\nbe removed. If the closure returns true, the element is removed from\nthe map and yielded. If the closure returns false, or panics, the\nelement remains in the map and will not be yielded.

\n

The iterator also lets you mutate the value of each element in the\nclosure, regardless of whether you choose to keep or remove it.

\n

If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

\n
§Examples
\n

Splitting a map into even and odd keys, reusing the original map:

\n\n
#![feature(btree_extract_if)]\nuse std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x)).collect();\nlet evens: BTreeMap<_, _> = map.extract_if(|k, _v| k % 2 == 0).collect();\nlet odds = map;\nassert_eq!(evens.keys().copied().collect::<Vec<_>>(), [0, 2, 4, 6]);\nassert_eq!(odds.keys().copied().collect::<Vec<_>>(), [1, 3, 5, 7]);
\n
1.54.0 · source

pub fn into_keys(self) -> IntoKeys<K, V, A> ⓘ

Creates a consuming iterator visiting all the keys, in sorted order.\nThe map cannot be used after calling this.\nThe iterator element type is K.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<i32> = a.into_keys().collect();\nassert_eq!(keys, [1, 2]);
\n
1.54.0 · source

pub fn into_values(self) -> IntoValues<K, V, A> ⓘ

Creates a consuming iterator visiting all the values, in order by key.\nThe map cannot be used after calling this.\nThe iterator element type is V.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.into_values().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Clone for BTreeMap<K, V, A>
where\n K: Clone,\n V: Clone,\n A: Allocator + Clone,

source§

fn clone(&self) -> BTreeMap<K, V, A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Debug for BTreeMap<K, V, A>
where\n K: Debug,\n V: Debug,\n A: Allocator + Clone,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V> Default for BTreeMap<K, V>

source§

fn default() -> BTreeMap<K, V>

Creates an empty BTreeMap.

\n
","Default","bdk_chain::local_chain::ChangeSet"],["
source§

impl<'de, K, V> Deserialize<'de> for BTreeMap<K, V>
where\n K: Deserialize<'de> + Ord,\n V: Deserialize<'de>,

source§

fn deserialize<D>(\n deserializer: D\n) -> Result<BTreeMap<K, V>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","bdk_chain::local_chain::ChangeSet"],["
1.7.0 · source§

impl<K, V, A> Drop for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
","Drop","bdk_chain::local_chain::ChangeSet"],["
1.2.0 · source§

impl<'a, K, V, A> Extend<(&'a K, &'a V)> for BTreeMap<K, V, A>
where\n K: Ord + Copy,\n V: Copy,\n A: Allocator + Clone,

source§

fn extend<I>(&mut self, iter: I)
where\n I: IntoIterator<Item = (&'a K, &'a V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (&'a K, &'a V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(&'a K, &'a V)>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Extend<(K, V)> for BTreeMap<K, V, A>
where\n K: Ord,\n A: Allocator + Clone,

source§

fn extend<T>(&mut self, iter: T)
where\n T: IntoIterator<Item = (K, V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (K, V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(K, V)>","bdk_chain::local_chain::ChangeSet"],["
1.56.0 · source§

impl<K, V, const N: usize> From<[(K, V); N]> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from(arr: [(K, V); N]) -> BTreeMap<K, V>

Converts a [(K, V); N] into a BTreeMap<(K, V)>.

\n\n
use std::collections::BTreeMap;\n\nlet map1 = BTreeMap::from([(1, 2), (3, 4)]);\nlet map2: BTreeMap<_, _> = [(1, 2), (3, 4)].into();\nassert_eq!(map1, map2);
\n
","From<[(K, V); N]>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V> FromIterator<(K, V)> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from_iter<T>(iter: T) -> BTreeMap<K, V>
where\n T: IntoIterator<Item = (K, V)>,

Creates a value from an iterator. Read more
","FromIterator<(K, V)>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Hash for BTreeMap<K, V, A>
where\n K: Hash,\n V: Hash,\n A: Allocator + Clone,

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, Q, V, A> Index<&Q> for BTreeMap<K, V, A>
where\n A: Allocator + Clone,\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

source§

fn index(&self, key: &Q) -> &V

Returns a reference to the value corresponding to the supplied key.

\n
§Panics
\n

Panics if the key is not present in the BTreeMap.

\n
§

type Output = V

The returned type after indexing.
","Index<&Q>","bdk_chain::local_chain::ChangeSet"],["
source§

impl<'de, K, V, E> IntoDeserializer<'de, E> for BTreeMap<K, V>
where\n K: IntoDeserializer<'de, E> + Eq + Ord,\n V: IntoDeserializer<'de, E>,\n E: Error,

§

type Deserializer = MapDeserializer<'de, <BTreeMap<K, V> as IntoIterator>::IntoIter, E>

The type of the deserializer being converted into.
source§

fn into_deserializer(\n self\n) -> <BTreeMap<K, V> as IntoDeserializer<'de, E>>::Deserializer

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> IntoIterator for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn into_iter(self) -> IntoIter<K, V, A> ⓘ

Gets an owning iterator over the entries of the map, sorted by key.

\n
§

type Item = (K, V)

The type of the elements being iterated over.
§

type IntoIter = IntoIter<K, V, A>

Which kind of iterator are we turning this into?
","IntoIterator","bdk_chain::local_chain::ChangeSet"],["
source§

impl<K: Ord, V> Merge for BTreeMap<K, V>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
","Merge","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Ord for BTreeMap<K, V, A>
where\n K: Ord,\n V: Ord,\n A: Allocator + Clone,

source§

fn cmp(&self, other: &BTreeMap<K, V, A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> PartialEq for BTreeMap<K, V, A>
where\n K: PartialEq,\n V: PartialEq,\n A: Allocator + Clone,

source§

fn eq(&self, other: &BTreeMap<K, V, A>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> PartialOrd for BTreeMap<K, V, A>
where\n K: PartialOrd,\n V: PartialOrd,\n A: Allocator + Clone,

source§

fn partial_cmp(&self, other: &BTreeMap<K, V, A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
","PartialOrd","bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V> Serialize for BTreeMap<K, V>
where\n K: Serialize,\n V: Serialize,

source§

fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Eq for BTreeMap<K, V, A>
where\n K: Eq,\n V: Eq,\n A: Allocator + Clone,

","Eq","bdk_chain::local_chain::ChangeSet"],["
1.64.0 · source§

impl<K, V, A> UnwindSafe for BTreeMap<K, V, A>

","UnwindSafe","bdk_chain::local_chain::ChangeSet"]], +"bdk_chain":[["
source§

impl<K, V> BTreeMap<K, V>

1.0.0 (const: 1.66.0) · source

pub const fn new() -> BTreeMap<K, V>

Makes a new, empty BTreeMap.

\n

Does not allocate anything on its own.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn iter(&self) -> Iter<'_, K, V> ⓘ

Gets an iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"c\");\nmap.insert(2, \"b\");\nmap.insert(1, \"a\");\n\nfor (key, value) in map.iter() {\n    println!(\"{key}: {value}\");\n}\n\nlet (first_key, first_value) = map.iter().next().unwrap();\nassert_eq!((*first_key, *first_value), (1, \"a\"));
\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ

Gets a mutable iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::from([\n   (\"a\", 1),\n   (\"b\", 2),\n   (\"c\", 3),\n]);\n\n// add 10 to the value if the key isn't \"a\"\nfor (key, value) in map.iter_mut() {\n    if key != &\"a\" {\n        *value += 10;\n    }\n}
\n
1.0.0 · source

pub fn keys(&self) -> Keys<'_, K, V> ⓘ

Gets an iterator over the keys of the map, in sorted order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<_> = a.keys().cloned().collect();\nassert_eq!(keys, [1, 2]);
\n
1.0.0 · source

pub fn values(&self) -> Values<'_, K, V> ⓘ

Gets an iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.values().cloned().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
1.10.0 · source

pub fn values_mut(&mut self) -> ValuesMut<'_, K, V> ⓘ

Gets a mutable iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, String::from(\"hello\"));\na.insert(2, String::from(\"goodbye\"));\n\nfor value in a.values_mut() {\n    value.push_str(\"!\");\n}\n\nlet values: Vec<String> = a.values().cloned().collect();\nassert_eq!(values, [String::from(\"hello!\"),\n                    String::from(\"goodbye!\")]);
\n
1.0.0 (const: unstable) · source

pub fn len(&self) -> usize

Returns the number of elements in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert_eq!(a.len(), 0);\na.insert(1, \"a\");\nassert_eq!(a.len(), 1);
\n
1.0.0 (const: unstable) · source

pub fn is_empty(&self) -> bool

Returns true if the map contains no elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert!(a.is_empty());\na.insert(1, \"a\");\nassert!(!a.is_empty());
\n
source

pub fn lower_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.lower_bound(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &\"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &\"b\")));\n\nlet cursor = map.lower_bound(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.lower_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &\"a\")));
\n
source

pub fn lower_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.lower_bound_mut(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &mut \"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &mut \"b\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &mut \"a\")));
\n
source

pub fn upper_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.upper_bound(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &\"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &\"d\")));\n\nlet cursor = map.upper_bound(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.upper_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &\"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
source

pub fn upper_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.upper_bound_mut(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &mut \"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &mut \"d\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &mut \"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn clear(&mut self)

Clears the map, removing all elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.clear();\nassert!(a.is_empty());
\n
source

pub const fn new_in(alloc: A) -> BTreeMap<K, V, A>

🔬This is a nightly-only experimental API. (btreemap_alloc)

Makes a new empty BTreeMap with a reasonable choice for B.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::alloc::Global;\n\nlet mut map = BTreeMap::new_in(Global);\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn get<Q>(&self, key: &Q) -> Option<&V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get(&1), Some(&\"a\"));\nassert_eq!(map.get(&2), None);
\n
1.40.0 · source

pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns the key-value pair corresponding to the supplied key.

\n

The supplied key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get_key_value(&1), Some((&1, &\"a\")));\nassert_eq!(map.get_key_value(&2), None);
\n
1.66.0 · source

pub fn first_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the first key-value pair in the map.\nThe key in this pair is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.first_key_value(), None);\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.first_key_value(), Some((&1, &\"b\")));
\n
1.66.0 · source

pub fn first_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the first entry in the map for in-place manipulation.\nThe key of this entry is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.first_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"first\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"first\");\nassert_eq!(*map.get(&2).unwrap(), \"b\");
\n
1.66.0 · source

pub fn pop_first(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the first element in the map.\nThe key of this element is the minimum key that was in the map.

\n
§Examples
\n

Draining elements in ascending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_first() {\n    assert!(map.iter().all(|(k, _v)| *k > key));\n}\nassert!(map.is_empty());
\n
1.66.0 · source

pub fn last_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the last key-value pair in the map.\nThe key in this pair is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.last_key_value(), Some((&2, &\"a\")));
\n
1.66.0 · source

pub fn last_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the last entry in the map for in-place manipulation.\nThe key of this entry is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.last_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"last\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"a\");\nassert_eq!(*map.get(&2).unwrap(), \"last\");
\n
1.66.0 · source

pub fn pop_last(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the last element in the map.\nThe key of this element is the maximum key that was in the map.

\n
§Examples
\n

Draining elements in descending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_last() {\n    assert!(map.iter().all(|(k, _v)| *k < key));\n}\nassert!(map.is_empty());
\n
1.0.0 · source

pub fn contains_key<Q>(&self, key: &Q) -> bool
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns true if the map contains a value for the specified key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.contains_key(&1), true);\nassert_eq!(map.contains_key(&2), false);
\n
1.0.0 · source

pub fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a mutable reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nif let Some(x) = map.get_mut(&1) {\n    *x = \"b\";\n}\nassert_eq!(map[&1], \"b\");
\n
1.0.0 · source

pub fn insert(&mut self, key: K, value: V) -> Option<V>
where\n K: Ord,

Inserts a key-value pair into the map.

\n

If the map did not have this key present, None is returned.

\n

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 == without being identical. See the module-level\ndocumentation for more.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.insert(37, \"a\"), None);\nassert_eq!(map.is_empty(), false);\n\nmap.insert(37, \"b\");\nassert_eq!(map.insert(37, \"c\"), Some(\"b\"));\nassert_eq!(map[&37], \"c\");
\n
source

pub fn try_insert(\n &mut self,\n key: K,\n value: V\n) -> Result<&mut V, OccupiedError<'_, K, V, A>>
where\n K: Ord,

🔬This is a nightly-only experimental API. (map_try_insert)

Tries to insert a key-value pair into the map, and returns\na mutable reference to the value in the entry.

\n

If the map already had this key present, nothing is updated, and\nan error containing the occupied entry and the value is returned.

\n
§Examples
\n
#![feature(map_try_insert)]\n\nuse std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.try_insert(37, \"a\").unwrap(), &\"a\");\n\nlet err = map.try_insert(37, \"b\").unwrap_err();\nassert_eq!(err.entry.key(), &37);\nassert_eq!(err.entry.get(), &\"a\");\nassert_eq!(err.value, \"b\");
\n
1.0.0 · source

pub fn remove<Q>(&mut self, key: &Q) -> Option<V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the value at the key if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove(&1), Some(\"a\"));\nassert_eq!(map.remove(&1), None);
\n
1.45.0 · source

pub fn remove_entry<Q>(&mut self, key: &Q) -> Option<(K, V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the stored key and value if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove_entry(&1), Some((1, \"a\")));\nassert_eq!(map.remove_entry(&1), None);
\n
1.53.0 · source

pub fn retain<F>(&mut self, f: F)
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

Retains only the elements specified by the predicate.

\n

In other words, remove all pairs (k, v) for which f(&k, &mut v) returns false.\nThe elements are visited in ascending key order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x*10)).collect();\n// Keep only the elements with even-numbered keys.\nmap.retain(|&k, _| k % 2 == 0);\nassert!(map.into_iter().eq(vec![(0, 0), (2, 20), (4, 40), (6, 60)]));
\n
1.11.0 · source

pub fn append(&mut self, other: &mut BTreeMap<K, V, A>)
where\n K: Ord,\n A: Clone,

Moves all elements from other into self, leaving other empty.

\n

If a key from other is already present in self, the respective\nvalue from self will be overwritten with the respective value from other.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\"); // Note: Key (3) also present in b.\n\nlet mut b = BTreeMap::new();\nb.insert(3, \"d\"); // Note: Key (3) also present in a.\nb.insert(4, \"e\");\nb.insert(5, \"f\");\n\na.append(&mut b);\n\nassert_eq!(a.len(), 5);\nassert_eq!(b.len(), 0);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\nassert_eq!(a[&3], \"d\"); // Note: \"c\" has been overwritten.\nassert_eq!(a[&4], \"e\");\nassert_eq!(a[&5], \"f\");
\n
1.17.0 · source

pub fn range<T, R>(&self, range: R) -> Range<'_, K, V> ⓘ
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::ops::Bound::Included;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"a\");\nmap.insert(5, \"b\");\nmap.insert(8, \"c\");\nfor (&key, &value) in map.range((Included(&4), Included(&8))) {\n    println!(\"{key}: {value}\");\n}\nassert_eq!(Some((&5, &\"b\")), map.range(4..).next());
\n
1.17.0 · source

pub fn range_mut<T, R>(&mut self, range: R) -> RangeMut<'_, K, V> ⓘ
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a mutable double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<&str, i32> =\n    [(\"Alice\", 0), (\"Bob\", 0), (\"Carol\", 0), (\"Cheryl\", 0)].into();\nfor (_, balance) in map.range_mut(\"B\"..\"Cheryl\") {\n    *balance += 100;\n}\nfor (name, balance) in &map {\n    println!(\"{name} => {balance}\");\n}
\n
1.0.0 · source

pub fn entry(&mut self, key: K) -> Entry<'_, K, V, A>
where\n K: Ord,

Gets the given key’s corresponding entry in the map for in-place manipulation.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut count: BTreeMap<&str, usize> = BTreeMap::new();\n\n// count the number of occurrences of letters in the vec\nfor x in [\"a\", \"b\", \"a\", \"c\", \"a\", \"b\"] {\n    count.entry(x).and_modify(|curr| *curr += 1).or_insert(1);\n}\n\nassert_eq!(count[\"a\"], 3);\nassert_eq!(count[\"b\"], 2);\nassert_eq!(count[\"c\"], 1);
\n
1.11.0 · source

pub fn split_off<Q>(&mut self, key: &Q) -> BTreeMap<K, V, A>
where\n Q: Ord + ?Sized,\n K: Borrow<Q> + Ord,\n A: Clone,

Splits the collection into two at the given key. Returns everything after the given key,\nincluding the key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\");\na.insert(17, \"d\");\na.insert(41, \"e\");\n\nlet b = a.split_off(&3);\n\nassert_eq!(a.len(), 2);\nassert_eq!(b.len(), 3);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\n\nassert_eq!(b[&3], \"c\");\nassert_eq!(b[&17], \"d\");\nassert_eq!(b[&41], \"e\");
\n
source

pub fn extract_if<F>(&mut self, pred: F) -> ExtractIf<'_, K, V, F, A> ⓘ
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

🔬This is a nightly-only experimental API. (btree_extract_if)

Creates an iterator that visits all elements (key-value pairs) in\nascending key order and uses a closure to determine if an element should\nbe removed. If the closure returns true, the element is removed from\nthe map and yielded. If the closure returns false, or panics, the\nelement remains in the map and will not be yielded.

\n

The iterator also lets you mutate the value of each element in the\nclosure, regardless of whether you choose to keep or remove it.

\n

If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

\n
§Examples
\n

Splitting a map into even and odd keys, reusing the original map:

\n\n
#![feature(btree_extract_if)]\nuse std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x)).collect();\nlet evens: BTreeMap<_, _> = map.extract_if(|k, _v| k % 2 == 0).collect();\nlet odds = map;\nassert_eq!(evens.keys().copied().collect::<Vec<_>>(), [0, 2, 4, 6]);\nassert_eq!(odds.keys().copied().collect::<Vec<_>>(), [1, 3, 5, 7]);
\n
1.54.0 · source

pub fn into_keys(self) -> IntoKeys<K, V, A> ⓘ

Creates a consuming iterator visiting all the keys, in sorted order.\nThe map cannot be used after calling this.\nThe iterator element type is K.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<i32> = a.into_keys().collect();\nassert_eq!(keys, [1, 2]);
\n
1.54.0 · source

pub fn into_values(self) -> IntoValues<K, V, A> ⓘ

Creates a consuming iterator visiting all the values, in order by key.\nThe map cannot be used after calling this.\nThe iterator element type is V.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.into_values().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
",0,"bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Clone for BTreeMap<K, V, A>
where\n K: Clone,\n V: Clone,\n A: Allocator + Clone,

source§

fn clone(&self) -> BTreeMap<K, V, A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Debug for BTreeMap<K, V, A>
where\n K: Debug,\n V: Debug,\n A: Allocator + Clone,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V> Default for BTreeMap<K, V>

source§

fn default() -> BTreeMap<K, V>

Creates an empty BTreeMap.

\n
","Default","bdk_chain::local_chain::ChangeSet"],["
source§

impl<'de, K, V> Deserialize<'de> for BTreeMap<K, V>
where\n K: Deserialize<'de> + Ord,\n V: Deserialize<'de>,

source§

fn deserialize<D>(\n deserializer: D\n) -> Result<BTreeMap<K, V>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","bdk_chain::local_chain::ChangeSet"],["
1.7.0 · source§

impl<K, V, A> Drop for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
","Drop","bdk_chain::local_chain::ChangeSet"],["
1.2.0 · source§

impl<'a, K, V, A> Extend<(&'a K, &'a V)> for BTreeMap<K, V, A>
where\n K: Ord + Copy,\n V: Copy,\n A: Allocator + Clone,

source§

fn extend<I>(&mut self, iter: I)
where\n I: IntoIterator<Item = (&'a K, &'a V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (&'a K, &'a V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(&'a K, &'a V)>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Extend<(K, V)> for BTreeMap<K, V, A>
where\n K: Ord,\n A: Allocator + Clone,

source§

fn extend<T>(&mut self, iter: T)
where\n T: IntoIterator<Item = (K, V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (K, V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(K, V)>","bdk_chain::local_chain::ChangeSet"],["
1.56.0 · source§

impl<K, V, const N: usize> From<[(K, V); N]> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from(arr: [(K, V); N]) -> BTreeMap<K, V>

Converts a [(K, V); N] into a BTreeMap<(K, V)>.

\n\n
use std::collections::BTreeMap;\n\nlet map1 = BTreeMap::from([(1, 2), (3, 4)]);\nlet map2: BTreeMap<_, _> = [(1, 2), (3, 4)].into();\nassert_eq!(map1, map2);
\n
","From<[(K, V); N]>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V> FromIterator<(K, V)> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from_iter<T>(iter: T) -> BTreeMap<K, V>
where\n T: IntoIterator<Item = (K, V)>,

Creates a value from an iterator. Read more
","FromIterator<(K, V)>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Hash for BTreeMap<K, V, A>
where\n K: Hash,\n V: Hash,\n A: Allocator + Clone,

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, Q, V, A> Index<&Q> for BTreeMap<K, V, A>
where\n A: Allocator + Clone,\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

source§

fn index(&self, key: &Q) -> &V

Returns a reference to the value corresponding to the supplied key.

\n
§Panics
\n

Panics if the key is not present in the BTreeMap.

\n
§

type Output = V

The returned type after indexing.
","Index<&Q>","bdk_chain::local_chain::ChangeSet"],["
source§

impl<'de, K, V, E> IntoDeserializer<'de, E> for BTreeMap<K, V>
where\n K: IntoDeserializer<'de, E> + Eq + Ord,\n V: IntoDeserializer<'de, E>,\n E: Error,

§

type Deserializer = MapDeserializer<'de, <BTreeMap<K, V> as IntoIterator>::IntoIter, E>

The type of the deserializer being converted into.
source§

fn into_deserializer(\n self\n) -> <BTreeMap<K, V> as IntoDeserializer<'de, E>>::Deserializer

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> IntoIterator for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn into_iter(self) -> IntoIter<K, V, A> ⓘ

Gets an owning iterator over the entries of the map, sorted by key.

\n
§

type Item = (K, V)

The type of the elements being iterated over.
§

type IntoIter = IntoIter<K, V, A>

Which kind of iterator are we turning this into?
","IntoIterator","bdk_chain::local_chain::ChangeSet"],["
source§

impl<K: Ord, V> Merge for BTreeMap<K, V>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
","Merge","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Ord for BTreeMap<K, V, A>
where\n K: Ord,\n V: Ord,\n A: Allocator + Clone,

source§

fn cmp(&self, other: &BTreeMap<K, V, A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> PartialEq for BTreeMap<K, V, A>
where\n K: PartialEq,\n V: PartialEq,\n A: Allocator + Clone,

source§

fn eq(&self, other: &BTreeMap<K, V, A>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> PartialOrd for BTreeMap<K, V, A>
where\n K: PartialOrd,\n V: PartialOrd,\n A: Allocator + Clone,

source§

fn partial_cmp(&self, other: &BTreeMap<K, V, A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
","PartialOrd","bdk_chain::local_chain::ChangeSet"],["
source§

impl<K, V> Serialize for BTreeMap<K, V>
where\n K: Serialize,\n V: Serialize,

source§

fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","bdk_chain::local_chain::ChangeSet"],["
1.0.0 · source§

impl<K, V, A> Eq for BTreeMap<K, V, A>
where\n K: Eq,\n V: Eq,\n A: Allocator + Clone,

","Eq","bdk_chain::local_chain::ChangeSet"],["
1.64.0 · source§

impl<K, V, A> UnwindSafe for BTreeMap<K, V, A>

","UnwindSafe","bdk_chain::local_chain::ChangeSet"]], "bdk_wallet":[["
source§

impl<K, V> BTreeMap<K, V>

1.0.0 (const: 1.66.0) · source

pub const fn new() -> BTreeMap<K, V>

Makes a new, empty BTreeMap.

\n

Does not allocate anything on its own.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn iter(&self) -> Iter<'_, K, V>

Gets an iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"c\");\nmap.insert(2, \"b\");\nmap.insert(1, \"a\");\n\nfor (key, value) in map.iter() {\n    println!(\"{key}: {value}\");\n}\n\nlet (first_key, first_value) = map.iter().next().unwrap();\nassert_eq!((*first_key, *first_value), (1, \"a\"));
\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, K, V>

Gets a mutable iterator over the entries of the map, sorted by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::from([\n   (\"a\", 1),\n   (\"b\", 2),\n   (\"c\", 3),\n]);\n\n// add 10 to the value if the key isn't \"a\"\nfor (key, value) in map.iter_mut() {\n    if key != &\"a\" {\n        *value += 10;\n    }\n}
\n
1.0.0 · source

pub fn keys(&self) -> Keys<'_, K, V>

Gets an iterator over the keys of the map, in sorted order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<_> = a.keys().cloned().collect();\nassert_eq!(keys, [1, 2]);
\n
1.0.0 · source

pub fn values(&self) -> Values<'_, K, V>

Gets an iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.values().cloned().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
1.10.0 · source

pub fn values_mut(&mut self) -> ValuesMut<'_, K, V>

Gets a mutable iterator over the values of the map, in order by key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, String::from(\"hello\"));\na.insert(2, String::from(\"goodbye\"));\n\nfor value in a.values_mut() {\n    value.push_str(\"!\");\n}\n\nlet values: Vec<String> = a.values().cloned().collect();\nassert_eq!(values, [String::from(\"hello!\"),\n                    String::from(\"goodbye!\")]);
\n
1.0.0 (const: unstable) · source

pub fn len(&self) -> usize

Returns the number of elements in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert_eq!(a.len(), 0);\na.insert(1, \"a\");\nassert_eq!(a.len(), 1);
\n
1.0.0 (const: unstable) · source

pub fn is_empty(&self) -> bool

Returns true if the map contains no elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\nassert!(a.is_empty());\na.insert(1, \"a\");\nassert!(!a.is_empty());
\n
source

pub fn lower_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.lower_bound(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &\"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &\"b\")));\n\nlet cursor = map.lower_bound(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.lower_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &\"a\")));
\n
source

pub fn lower_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap before the smallest key\ngreater than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap before the smallest key greater than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap before the smallest key greater than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap before the smallest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.lower_bound_mut(Bound::Included(&2));\nassert_eq!(cursor.peek_prev(), Some((&1, &mut \"a\")));\nassert_eq!(cursor.peek_next(), Some((&2, &mut \"b\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Excluded(&2));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.lower_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), None);\nassert_eq!(cursor.peek_next(), Some((&1, &mut \"a\")));
\n
source

pub fn upper_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a Cursor pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet cursor = map.upper_bound(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &\"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &\"d\")));\n\nlet cursor = map.upper_bound(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &\"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &\"c\")));\n\nlet cursor = map.upper_bound(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &\"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
source

pub fn upper_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

🔬This is a nightly-only experimental API. (btree_cursors)

Returns a CursorMut pointing at the gap after the greatest key\nsmaller than the given bound.

\n

Passing Bound::Included(x) will return a cursor pointing to the\ngap after the greatest key smaller than or equal to x.

\n

Passing Bound::Excluded(x) will return a cursor pointing to the\ngap after the greatest key smaller than x.

\n

Passing Bound::Unbounded will return a cursor pointing to the\ngap after the greatest key in the map.

\n
§Examples
\n
#![feature(btree_cursors)]\n\nuse std::collections::BTreeMap;\nuse std::ops::Bound;\n\nlet mut map = BTreeMap::from([\n    (1, \"a\"),\n    (2, \"b\"),\n    (3, \"c\"),\n    (4, \"d\"),\n]);\n\nlet mut cursor = map.upper_bound_mut(Bound::Included(&3));\nassert_eq!(cursor.peek_prev(), Some((&3, &mut \"c\")));\nassert_eq!(cursor.peek_next(), Some((&4, &mut \"d\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Excluded(&3));\nassert_eq!(cursor.peek_prev(), Some((&2, &mut \"b\")));\nassert_eq!(cursor.peek_next(), Some((&3, &mut \"c\")));\n\nlet mut cursor = map.upper_bound_mut(Bound::Unbounded);\nassert_eq!(cursor.peek_prev(), Some((&4, &mut \"d\")));\nassert_eq!(cursor.peek_next(), None);
\n
",0,"bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn clear(&mut self)

Clears the map, removing all elements.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.clear();\nassert!(a.is_empty());
\n
source

pub const fn new_in(alloc: A) -> BTreeMap<K, V, A>

🔬This is a nightly-only experimental API. (btreemap_alloc)

Makes a new empty BTreeMap with a reasonable choice for B.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::alloc::Global;\n\nlet mut map = BTreeMap::new_in(Global);\n\n// entries can now be inserted into the empty map\nmap.insert(1, \"a\");
\n
",0,"bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
source§

impl<K, V, A> BTreeMap<K, V, A>
where\n A: Allocator + Clone,

1.0.0 · source

pub fn get<Q>(&self, key: &Q) -> Option<&V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get(&1), Some(&\"a\"));\nassert_eq!(map.get(&2), None);
\n
1.40.0 · source

pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns the key-value pair corresponding to the supplied key.

\n

The supplied key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get_key_value(&1), Some((&1, &\"a\")));\nassert_eq!(map.get_key_value(&2), None);
\n
1.66.0 · source

pub fn first_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the first key-value pair in the map.\nThe key in this pair is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.first_key_value(), None);\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.first_key_value(), Some((&1, &\"b\")));
\n
1.66.0 · source

pub fn first_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the first entry in the map for in-place manipulation.\nThe key of this entry is the minimum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.first_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"first\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"first\");\nassert_eq!(*map.get(&2).unwrap(), \"b\");
\n
1.66.0 · source

pub fn pop_first(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the first element in the map.\nThe key of this element is the minimum key that was in the map.

\n
§Examples
\n

Draining elements in ascending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_first() {\n    assert!(map.iter().all(|(k, _v)| *k > key));\n}\nassert!(map.is_empty());
\n
1.66.0 · source

pub fn last_key_value(&self) -> Option<(&K, &V)>
where\n K: Ord,

Returns the last key-value pair in the map.\nThe key in this pair is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"b\");\nmap.insert(2, \"a\");\nassert_eq!(map.last_key_value(), Some((&2, &\"a\")));
\n
1.66.0 · source

pub fn last_entry(&mut self) -> Option<OccupiedEntry<'_, K, V, A>>
where\n K: Ord,

Returns the last entry in the map for in-place manipulation.\nThe key of this entry is the maximum key in the map.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nif let Some(mut entry) = map.last_entry() {\n    if *entry.key() > 0 {\n        entry.insert(\"last\");\n    }\n}\nassert_eq!(*map.get(&1).unwrap(), \"a\");\nassert_eq!(*map.get(&2).unwrap(), \"last\");
\n
1.66.0 · source

pub fn pop_last(&mut self) -> Option<(K, V)>
where\n K: Ord,

Removes and returns the last element in the map.\nThe key of this element is the maximum key that was in the map.

\n
§Examples
\n

Draining elements in descending order, while keeping a usable map each iteration.

\n\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nmap.insert(2, \"b\");\nwhile let Some((key, _val)) = map.pop_last() {\n    assert!(map.iter().all(|(k, _v)| *k < key));\n}\nassert!(map.is_empty());
\n
1.0.0 · source

pub fn contains_key<Q>(&self, key: &Q) -> bool
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns true if the map contains a value for the specified key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.contains_key(&1), true);\nassert_eq!(map.contains_key(&2), false);
\n
1.0.0 · source

pub fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Returns a mutable reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nif let Some(x) = map.get_mut(&1) {\n    *x = \"b\";\n}\nassert_eq!(map[&1], \"b\");
\n
1.0.0 · source

pub fn insert(&mut self, key: K, value: V) -> Option<V>
where\n K: Ord,

Inserts a key-value pair into the map.

\n

If the map did not have this key present, None is returned.

\n

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 == without being identical. See the module-level\ndocumentation for more.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.insert(37, \"a\"), None);\nassert_eq!(map.is_empty(), false);\n\nmap.insert(37, \"b\");\nassert_eq!(map.insert(37, \"c\"), Some(\"b\"));\nassert_eq!(map[&37], \"c\");
\n
source

pub fn try_insert(\n &mut self,\n key: K,\n value: V\n) -> Result<&mut V, OccupiedError<'_, K, V, A>>
where\n K: Ord,

🔬This is a nightly-only experimental API. (map_try_insert)

Tries to insert a key-value pair into the map, and returns\na mutable reference to the value in the entry.

\n

If the map already had this key present, nothing is updated, and\nan error containing the occupied entry and the value is returned.

\n
§Examples
\n
#![feature(map_try_insert)]\n\nuse std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nassert_eq!(map.try_insert(37, \"a\").unwrap(), &\"a\");\n\nlet err = map.try_insert(37, \"b\").unwrap_err();\nassert_eq!(err.entry.key(), &37);\nassert_eq!(err.entry.get(), &\"a\");\nassert_eq!(err.value, \"b\");
\n
1.0.0 · source

pub fn remove<Q>(&mut self, key: &Q) -> Option<V>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the value at the key if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove(&1), Some(\"a\"));\nassert_eq!(map.remove(&1), None);
\n
1.45.0 · source

pub fn remove_entry<Q>(&mut self, key: &Q) -> Option<(K, V)>
where\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

Removes a key from the map, returning the stored key and value if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but the ordering\non the borrowed form must match the ordering on the key type.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map = BTreeMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove_entry(&1), Some((1, \"a\")));\nassert_eq!(map.remove_entry(&1), None);
\n
1.53.0 · source

pub fn retain<F>(&mut self, f: F)
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

Retains only the elements specified by the predicate.

\n

In other words, remove all pairs (k, v) for which f(&k, &mut v) returns false.\nThe elements are visited in ascending key order.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x*10)).collect();\n// Keep only the elements with even-numbered keys.\nmap.retain(|&k, _| k % 2 == 0);\nassert!(map.into_iter().eq(vec![(0, 0), (2, 20), (4, 40), (6, 60)]));
\n
1.11.0 · source

pub fn append(&mut self, other: &mut BTreeMap<K, V, A>)
where\n K: Ord,\n A: Clone,

Moves all elements from other into self, leaving other empty.

\n

If a key from other is already present in self, the respective\nvalue from self will be overwritten with the respective value from other.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\"); // Note: Key (3) also present in b.\n\nlet mut b = BTreeMap::new();\nb.insert(3, \"d\"); // Note: Key (3) also present in a.\nb.insert(4, \"e\");\nb.insert(5, \"f\");\n\na.append(&mut b);\n\nassert_eq!(a.len(), 5);\nassert_eq!(b.len(), 0);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\nassert_eq!(a[&3], \"d\"); // Note: \"c\" has been overwritten.\nassert_eq!(a[&4], \"e\");\nassert_eq!(a[&5], \"f\");
\n
1.17.0 · source

pub fn range<T, R>(&self, range: R) -> Range<'_, K, V>
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\nuse std::ops::Bound::Included;\n\nlet mut map = BTreeMap::new();\nmap.insert(3, \"a\");\nmap.insert(5, \"b\");\nmap.insert(8, \"c\");\nfor (&key, &value) in map.range((Included(&4), Included(&8))) {\n    println!(\"{key}: {value}\");\n}\nassert_eq!(Some((&5, &\"b\")), map.range(4..).next());
\n
1.17.0 · source

pub fn range_mut<T, R>(&mut self, range: R) -> RangeMut<'_, K, V>
where\n T: Ord + ?Sized,\n K: Borrow<T> + Ord,\n R: RangeBounds<T>,

Constructs a mutable double-ended iterator over a sub-range of elements in the map.\nThe simplest way is to use the range syntax min..max, thus range(min..max) will\nyield elements from min (inclusive) to max (exclusive).\nThe range may also be entered as (Bound<T>, Bound<T>), so for example\nrange((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive\nrange from 4 to 10.

\n
§Panics
\n

Panics if range start > end.\nPanics if range start == end and both bounds are Excluded.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut map: BTreeMap<&str, i32> =\n    [(\"Alice\", 0), (\"Bob\", 0), (\"Carol\", 0), (\"Cheryl\", 0)].into();\nfor (_, balance) in map.range_mut(\"B\"..\"Cheryl\") {\n    *balance += 100;\n}\nfor (name, balance) in &map {\n    println!(\"{name} => {balance}\");\n}
\n
1.0.0 · source

pub fn entry(&mut self, key: K) -> Entry<'_, K, V, A>
where\n K: Ord,

Gets the given key’s corresponding entry in the map for in-place manipulation.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut count: BTreeMap<&str, usize> = BTreeMap::new();\n\n// count the number of occurrences of letters in the vec\nfor x in [\"a\", \"b\", \"a\", \"c\", \"a\", \"b\"] {\n    count.entry(x).and_modify(|curr| *curr += 1).or_insert(1);\n}\n\nassert_eq!(count[\"a\"], 3);\nassert_eq!(count[\"b\"], 2);\nassert_eq!(count[\"c\"], 1);
\n
1.11.0 · source

pub fn split_off<Q>(&mut self, key: &Q) -> BTreeMap<K, V, A>
where\n Q: Ord + ?Sized,\n K: Borrow<Q> + Ord,\n A: Clone,

Splits the collection into two at the given key. Returns everything after the given key,\nincluding the key.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\na.insert(3, \"c\");\na.insert(17, \"d\");\na.insert(41, \"e\");\n\nlet b = a.split_off(&3);\n\nassert_eq!(a.len(), 2);\nassert_eq!(b.len(), 3);\n\nassert_eq!(a[&1], \"a\");\nassert_eq!(a[&2], \"b\");\n\nassert_eq!(b[&3], \"c\");\nassert_eq!(b[&17], \"d\");\nassert_eq!(b[&41], \"e\");
\n
source

pub fn extract_if<F>(&mut self, pred: F) -> ExtractIf<'_, K, V, F, A>
where\n K: Ord,\n F: FnMut(&K, &mut V) -> bool,

🔬This is a nightly-only experimental API. (btree_extract_if)

Creates an iterator that visits all elements (key-value pairs) in\nascending key order and uses a closure to determine if an element should\nbe removed. If the closure returns true, the element is removed from\nthe map and yielded. If the closure returns false, or panics, the\nelement remains in the map and will not be yielded.

\n

The iterator also lets you mutate the value of each element in the\nclosure, regardless of whether you choose to keep or remove it.

\n

If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

\n
§Examples
\n

Splitting a map into even and odd keys, reusing the original map:

\n\n
#![feature(btree_extract_if)]\nuse std::collections::BTreeMap;\n\nlet mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x)).collect();\nlet evens: BTreeMap<_, _> = map.extract_if(|k, _v| k % 2 == 0).collect();\nlet odds = map;\nassert_eq!(evens.keys().copied().collect::<Vec<_>>(), [0, 2, 4, 6]);\nassert_eq!(odds.keys().copied().collect::<Vec<_>>(), [1, 3, 5, 7]);
\n
1.54.0 · source

pub fn into_keys(self) -> IntoKeys<K, V, A>

Creates a consuming iterator visiting all the keys, in sorted order.\nThe map cannot be used after calling this.\nThe iterator element type is K.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(2, \"b\");\na.insert(1, \"a\");\n\nlet keys: Vec<i32> = a.into_keys().collect();\nassert_eq!(keys, [1, 2]);
\n
1.54.0 · source

pub fn into_values(self) -> IntoValues<K, V, A>

Creates a consuming iterator visiting all the values, in order by key.\nThe map cannot be used after calling this.\nThe iterator element type is V.

\n
§Examples
\n
use std::collections::BTreeMap;\n\nlet mut a = BTreeMap::new();\na.insert(1, \"hello\");\na.insert(2, \"goodbye\");\n\nlet values: Vec<&str> = a.into_values().collect();\nassert_eq!(values, [\"hello\", \"goodbye\"]);
\n
",0,"bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Clone for BTreeMap<K, V, A>
where\n K: Clone,\n V: Clone,\n A: Allocator + Clone,

source§

fn clone(&self) -> BTreeMap<K, V, A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Debug for BTreeMap<K, V, A>
where\n K: Debug,\n V: Debug,\n A: Allocator + Clone,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V> Default for BTreeMap<K, V>

source§

fn default() -> BTreeMap<K, V>

Creates an empty BTreeMap.

\n
","Default","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
source§

impl<'de, K, V> Deserialize<'de> for BTreeMap<K, V>
where\n K: Deserialize<'de> + Ord,\n V: Deserialize<'de>,

source§

fn deserialize<D>(\n deserializer: D\n) -> Result<BTreeMap<K, V>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.7.0 · source§

impl<K, V, A> Drop for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
","Drop","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.2.0 · source§

impl<'a, K, V, A> Extend<(&'a K, &'a V)> for BTreeMap<K, V, A>
where\n K: Ord + Copy,\n V: Copy,\n A: Allocator + Clone,

source§

fn extend<I>(&mut self, iter: I)
where\n I: IntoIterator<Item = (&'a K, &'a V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (&'a K, &'a V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(&'a K, &'a V)>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Extend<(K, V)> for BTreeMap<K, V, A>
where\n K: Ord,\n A: Allocator + Clone,

source§

fn extend<T>(&mut self, iter: T)
where\n T: IntoIterator<Item = (K, V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (K, V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(K, V)>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.56.0 · source§

impl<K, V, const N: usize> From<[(K, V); N]> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from(arr: [(K, V); N]) -> BTreeMap<K, V>

Converts a [(K, V); N] into a BTreeMap<(K, V)>.

\n\n
use std::collections::BTreeMap;\n\nlet map1 = BTreeMap::from([(1, 2), (3, 4)]);\nlet map2: BTreeMap<_, _> = [(1, 2), (3, 4)].into();\nassert_eq!(map1, map2);
\n
","From<[(K, V); N]>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V> FromIterator<(K, V)> for BTreeMap<K, V>
where\n K: Ord,

source§

fn from_iter<T>(iter: T) -> BTreeMap<K, V>
where\n T: IntoIterator<Item = (K, V)>,

Creates a value from an iterator. Read more
","FromIterator<(K, V)>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Hash for BTreeMap<K, V, A>
where\n K: Hash,\n V: Hash,\n A: Allocator + Clone,

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, Q, V, A> Index<&Q> for BTreeMap<K, V, A>
where\n A: Allocator + Clone,\n K: Borrow<Q> + Ord,\n Q: Ord + ?Sized,

source§

fn index(&self, key: &Q) -> &V

Returns a reference to the value corresponding to the supplied key.

\n
§Panics
\n

Panics if the key is not present in the BTreeMap.

\n
§

type Output = V

The returned type after indexing.
","Index<&Q>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
§

impl IntoAssets for BTreeMap<DescriptorPublicKey, DescriptorSecretKey>

§

fn into_assets(self) -> Assets

Convert self into a Assets struct
","IntoAssets","bdk_wallet::keys::KeyMap"],["
source§

impl<'de, K, V, E> IntoDeserializer<'de, E> for BTreeMap<K, V>
where\n K: IntoDeserializer<'de, E> + Eq + Ord,\n V: IntoDeserializer<'de, E>,\n E: Error,

§

type Deserializer = MapDeserializer<'de, <BTreeMap<K, V> as IntoIterator>::IntoIter, E>

The type of the deserializer being converted into.
source§

fn into_deserializer(\n self\n) -> <BTreeMap<K, V> as IntoDeserializer<'de, E>>::Deserializer

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> IntoIterator for BTreeMap<K, V, A>
where\n A: Allocator + Clone,

source§

fn into_iter(self) -> IntoIter<K, V, A>

Gets an owning iterator over the entries of the map, sorted by key.

\n
§

type Item = (K, V)

The type of the elements being iterated over.
§

type IntoIter = IntoIter<K, V, A>

Which kind of iterator are we turning this into?
","IntoIterator","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
§

impl<K, V> Merge for BTreeMap<K, V>
where\n K: Ord,

§

fn merge(&mut self, other: BTreeMap<K, V>)

Merge another object of the same type onto self.
§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
","Merge","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Ord for BTreeMap<K, V, A>
where\n K: Ord,\n V: Ord,\n A: Allocator + Clone,

source§

fn cmp(&self, other: &BTreeMap<K, V, A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> PartialEq for BTreeMap<K, V, A>
where\n K: PartialEq,\n V: PartialEq,\n A: Allocator + Clone,

source§

fn eq(&self, other: &BTreeMap<K, V, A>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> PartialOrd for BTreeMap<K, V, A>
where\n K: PartialOrd,\n V: PartialOrd,\n A: Allocator + Clone,

source§

fn partial_cmp(&self, other: &BTreeMap<K, V, A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
","PartialOrd","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
source§

impl<K, V> Serialize for BTreeMap<K, V>
where\n K: Serialize,\n V: Serialize,

source§

fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.0.0 · source§

impl<K, V, A> Eq for BTreeMap<K, V, A>
where\n K: Eq,\n V: Eq,\n A: Allocator + Clone,

","Eq","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"],["
1.64.0 · source§

impl<K, V, A> UnwindSafe for BTreeMap<K, V, A>

","UnwindSafe","bdk_wallet::descriptor::policy::ConditionMap","bdk_wallet::descriptor::policy::FoldedConditionMap","bdk_wallet::descriptor::HdKeyPaths","bdk_wallet::descriptor::TapKeyOrigins","bdk_wallet::keys::KeyMap"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/std/primitive.tuple.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/std/primitive.tuple.js index d050bb49a3..5afbd64c06 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/std/primitive.tuple.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/std/primitive.tuple.js @@ -1,5 +1,5 @@ (function() {var type_impls = { -"bdk_chain":[["
source§

impl From<BlockId> for (u32, BlockHash)

source§

fn from(block_id: BlockId) -> Self

Converts to this type from the input type.
","From","bdk_chain::Indexed"],["
source§

impl<T0, T1> Merge for (T0, T1)
where\n T0: Merge,\n T1: Merge,

source§

fn merge(&mut self, _other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
","Merge","bdk_chain::Indexed","bdk_chain::KeychainIndexed"]], +"bdk_chain":[["
source§

impl From<BlockId> for (u32, BlockHash)

source§

fn from(block_id: BlockId) -> Self

Converts to this type from the input type.
","From","bdk_chain::Indexed"],["
source§

impl<T0, T1> Merge for (T0, T1)
where\n T0: Merge,\n T1: Merge,

source§

fn merge(&mut self, _other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
","Merge","bdk_chain::Indexed","bdk_chain::KeychainIndexed"]], "bdk_wallet":[], "example_bitcoind_rpc_polling":[], "example_cli":[], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html index d8988516ff..bef8b6eec6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html @@ -1 +1 @@ -main in wallet_electrum_example - Rust

Function wallet_electrum_example::main

source ·
pub(crate) fn main() -> Result<(), Error>
\ No newline at end of file +main in wallet_electrum_example - Rust

Function wallet_electrum_example::main

source ·
pub(crate) fn main() -> Result<(), Error>
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html index bba1111a05..f1d09e1733 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html @@ -1 +1 @@ -wallet_electrum_example - Rust

Crate wallet_electrum_example

source ·

Constants§

Functions§

\ No newline at end of file +wallet_electrum_example - Rust

Crate wallet_electrum_example

source ·

Constants§

Functions§

\ No newline at end of file -- 2.49.0