From 823194c2f9d39211fc1521a7040e4675ae100160 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 05:09:09 +0000 Subject: [PATCH] Publish autogenerated nightly docs --- .../bdk/descriptor/enum.Descriptor.html | 2 +- .../bdk/nightly/latest/bdk/wallet/index.html | 2 +- .../latest/bdk/wallet/sidebar-items.js | 2 +- .../latest/bdk/wallet/struct.Balance.html | 4 +- .../chain_graph/enum.InsertTxError.html | 6 +- .../bdk_chain/chain_graph/enum.NewError.html | 6 +- .../chain_graph/enum.UpdateError.html | 6 +- .../latest/bdk_chain/chain_graph/index.html | 2 +- .../chain_graph/struct.ChainGraph.html | 58 +++++++------- .../chain_graph/struct.ChangeSet.html | 12 +-- .../struct.UnresolvableConflict.html | 6 +- .../type.InsertCheckpointError.html | 2 +- .../bdk_chain/constant.COINBASE_MATURITY.html | 2 +- .../bdk_chain/enum.ConfirmationTime.html | 6 +- .../latest/bdk_chain/enum.TxHeight.html | 6 +- .../bdk/nightly/latest/bdk_chain/index.html | 14 ++-- .../latest/bdk_chain/keychain/index.html | 8 +- .../bdk_chain/keychain/persist/index.html | 4 +- .../keychain/persist/sidebar-items.js | 2 +- .../keychain/persist/struct.Persist.html | 8 +- .../persist/trait.PersistBackend.html | 4 +- .../bdk_chain/keychain/sidebar-items.js | 2 +- .../bdk_chain/keychain/struct.Balance.html | 4 +- .../keychain/struct.DerivationAdditions.html | 6 +- .../keychain/struct.KeychainChangeSet.html | 8 +- .../keychain/struct.KeychainTracker.html | 22 +++--- .../keychain/struct.KeychainTxOutIndex.html | 76 +++++++++---------- .../nightly/latest/bdk_chain/sidebar-items.js | 2 +- .../enum.InsertCheckpointError.html | 2 +- .../sparse_chain/enum.InsertTxError.html | 6 +- .../sparse_chain/enum.UpdateError.html | 4 +- .../latest/bdk_chain/sparse_chain/index.html | 22 +++--- .../bdk_chain/sparse_chain/sidebar-items.js | 2 +- .../sparse_chain/struct.ChangeSet.html | 2 +- .../sparse_chain/struct.SparseChain.html | 12 +-- .../sparse_chain/trait.ChainPosition.html | 8 +- .../latest/bdk_chain/struct.BlockId.html | 8 +- .../latest/bdk_chain/struct.FullTxOut.html | 12 +-- .../bdk_chain/struct.SpkTxOutIndex.html | 48 ++++++------ .../latest/bdk_chain/trait.DescriptorExt.html | 2 +- .../latest/bdk_chain/trait.ForEachTxOut.html | 8 +- .../latest/bdk_chain/tx_graph/index.html | 10 +-- .../bdk_chain/tx_graph/struct.Additions.html | 6 +- .../bdk_chain/tx_graph/struct.TxGraph.html | 28 +++---- .../bdk_coin_select/enum.BranchStrategy.html | 2 +- .../enum.ExcessStrategyKind.html | 8 +- .../enum.SelectionConstraint.html | 6 +- .../bdk_coin_select/fn.coin_select_bnb.html | 6 +- .../nightly/latest/bdk_coin_select/index.html | 2 +- .../latest/bdk_coin_select/sidebar-items.js | 2 +- .../latest/bdk_coin_select/struct.Bnb.html | 6 +- .../bdk_coin_select/struct.CoinSelector.html | 8 +- .../struct.CoinSelectorOpt.html | 8 +- .../struct.ExcessStrategy.html | 6 +- .../bdk_coin_select/struct.Selection.html | 6 +- .../struct.SelectionError.html | 2 +- .../bdk_coin_select/struct.WeightedValue.html | 2 +- .../bdk_electrum/struct.ElectrumUpdate.html | 4 +- .../bdk_electrum/trait.ElectrumExt.html | 2 +- .../bdk_esplora/trait.EsploraAsyncExt.html | 2 +- .../latest/bdk_esplora/trait.EsploraExt.html | 2 +- .../latest/bdk_file_store/enum.FileError.html | 2 +- .../latest/bdk_file_store/enum.IterError.html | 4 +- .../bdk_file_store/struct.KeychainStore.html | 28 +++---- .../enum.ElectrumCommands.html | 14 ++-- .../struct.ScanOptions.html | 2 +- .../enum.EsploraCommands.html | 14 ++-- .../enum.AddressCmd.html | 4 +- .../enum.Commands.html | 8 +- .../enum.TxOutCmd.html | 8 +- .../keychain_tracker_example_cli/index.html | 2 +- .../sidebar-items.js | 2 +- .../struct.AddrsOutput.html | 2 +- .../bdk/nightly/latest/search-index.js | 16 ++-- .../latest/src/bdk_chain/chain_data.rs.html | 22 +++--- .../latest/src/bdk_chain/chain_graph.rs.html | 48 ++++++------ .../src/bdk_chain/descriptor_ext.rs.html | 2 +- .../latest/src/bdk_chain/keychain.rs.html | 28 +++---- .../src/bdk_chain/keychain/persist.rs.html | 12 +-- .../src/bdk_chain/keychain/tracker.rs.html | 22 +++--- .../bdk_chain/keychain/txout_index.rs.html | 70 ++++++++--------- .../nightly/latest/src/bdk_chain/lib.rs.html | 18 ++--- .../latest/src/bdk_chain/sparse_chain.rs.html | 56 +++++++------- .../src/bdk_chain/spk_txout_index.rs.html | 56 +++++++------- .../src/bdk_chain/tx_data_traits.rs.html | 6 +- .../latest/src/bdk_chain/tx_graph.rs.html | 44 +++++------ .../latest/src/bdk_coin_select/bnb.rs.html | 44 +++++------ .../src/bdk_coin_select/coin_selector.rs.html | 32 ++++---- .../latest/src/bdk_electrum/lib.rs.html | 20 ++--- .../latest/src/bdk_esplora/async_ext.rs.html | 14 ++-- .../src/bdk_esplora/blocking_ext.rs.html | 14 ++-- .../src/bdk_file_store/file_store.rs.html | 42 +++++----- .../main.rs.html | 16 ++-- .../main.rs.html | 14 ++-- .../keychain_tracker_example_cli/lib.rs.html | 54 ++++++------- 95 files changed, 638 insertions(+), 638 deletions(-) diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html index b44ba87ed9..3d8edda981 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html @@ -131,7 +131,7 @@ default(0x02) y-coordinate.

assert_eq!(result.to_string(), "tr(03cc8a4bc64d897bddc5fbc2f670f7a8ba0b386779106cf1223c6fc5d7cd6fc115)#6qm9h8ym");
Errors

This function will return an error if hardened derivation is attempted.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the minimum value (in satoshis) that an output should have to be broadcastable.
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Extract the spending policy
Run a predicate on every key in the descriptor, returning whether +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the minimum value (in satoshis) at which an output is broadcastable.
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Extract the spending policy
Run a predicate on every key in the descriptor, returning whether the predicate returned true for every key Read more
Run a predicate on every key in the descriptor, returning whether the predicate returned true for any key Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more

Parse an expression tree into a descriptor.

Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert the object into an abstract policy
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
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/bdk/wallet/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/index.html index 3bff530636..10bca743b0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/index.html @@ -1,7 +1,7 @@ bdk::wallet - Rust

Module bdk::wallet

source ·
Expand description

Wallet

This module defines the Wallet structure.

Modules

Coin selection
Wallet export
Generalized signers
Transaction builder

Structs

A derived address and the index it was found at. -For convenience this automatically derefs to Address
Balance differentiated in various categories.
A Bitcoin wallet

Enums

The address index selection strategy to use to derived an address from the wallet’s external +For convenience this automatically derefs to Address
Balance, differentiated into various categories.
A Bitcoin wallet

Enums

The address index selection strategy to use to derived an address from the wallet’s external descriptor. See Wallet::get_address. If you’re unsure which one to use use WalletIndex::New.
Error returned from Wallet::new

Traits

Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate

Functions

Deterministically generate a unique name given the descriptors defining the wallet

Type Definitions

The update to a Wallet used in Wallet::apply_update. This is usually returned from blockchain data sources. diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js index 41b994075c..e3291d243a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":[["AddressIndex","The address index selection strategy to use to derived an address from the wallet’s external descriptor. See [`Wallet::get_address`]. If you’re unsure which one to use use `WalletIndex::New`."],["NewError","Error returned from [`Wallet::new`]"]],"fn":[["wallet_name_from_descriptor","Deterministically generate a unique name given the descriptors defining the wallet"]],"mod":[["coin_selection","Coin selection"],["export","Wallet export"],["signer","Generalized signers"],["tx_builder","Transaction builder"]],"struct":[["AddressInfo","A derived address and the index it was found at. For convenience this automatically derefs to `Address`"],["Balance","Balance differentiated in various categories."],["Wallet","A Bitcoin wallet"]],"trait":[["IsDust","Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"]],"type":[["Update","The update to a [`Wallet`] used in [`Wallet::apply_update`]. This is usually returned from blockchain data sources. The type parameter `T` indicates the kind of transaction contained in the update. It’s usually a [`bitcoin::Transaction`]."],["UpdateError","Error indicating that something was wrong with an [`Update`]."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["AddressIndex","The address index selection strategy to use to derived an address from the wallet’s external descriptor. See [`Wallet::get_address`]. If you’re unsure which one to use use `WalletIndex::New`."],["NewError","Error returned from [`Wallet::new`]"]],"fn":[["wallet_name_from_descriptor","Deterministically generate a unique name given the descriptors defining the wallet"]],"mod":[["coin_selection","Coin selection"],["export","Wallet export"],["signer","Generalized signers"],["tx_builder","Transaction builder"]],"struct":[["AddressInfo","A derived address and the index it was found at. For convenience this automatically derefs to `Address`"],["Balance","Balance, differentiated into various categories."],["Wallet","A Bitcoin wallet"]],"trait":[["IsDust","Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"]],"type":[["Update","The update to a [`Wallet`] used in [`Wallet::apply_update`]. This is usually returned from blockchain data sources. The type parameter `T` indicates the kind of transaction contained in the update. It’s usually a [`bitcoin::Transaction`]."],["UpdateError","Error indicating that something was wrong with an [`Update`]."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html index 6ad2e72d25..f4d75f197a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html @@ -1,9 +1,9 @@ -Balance in bdk::wallet - Rust

Struct bdk::wallet::Balance

Expand description

Balance, differentiated into various categories.

Fields§

§immature: u64

All coinbase outputs not yet matured

§trusted_pending: u64

Unconfirmed UTXOs generated by a wallet tx

§untrusted_pending: u64

Unconfirmed UTXOs received from an external wallet

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.InsertTxError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.InsertTxError.html index a395d28b60..1f7e3a1763 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.InsertTxError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.InsertTxError.html @@ -1,11 +1,11 @@ -InsertTxError in bdk_chain::chain_graph - Rust
pub enum InsertTxError<P> {
+InsertTxError in bdk_chain::chain_graph - Rust
pub enum InsertTxError<P> {
     Chain(InsertTxError<P>),
     UnresolvableConflict(UnresolvableConflict<P>),
 }
Expand description

Error that may occur when inserting a transaction.

Refer to ChainGraph::insert_tx_preview and ChainGraph::insert_tx.

-

Variants§

§

Chain(InsertTxError<P>)

§

UnresolvableConflict(UnresolvableConflict<P>)

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Variants§

§

Chain(InsertTxError<P>)

§

UnresolvableConflict(UnresolvableConflict<P>)

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.NewError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.NewError.html index 03d2c42344..e8401e3565 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.NewError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.NewError.html @@ -1,4 +1,4 @@ -NewError in bdk_chain::chain_graph - Rust
pub enum NewError<P> {
+NewError in bdk_chain::chain_graph - Rust
pub enum NewError<P> {
     Conflict {
         a: (P, Txid),
         b: (P, Txid),
@@ -7,9 +7,9 @@
 }
Expand description

Error that may occur when calling ChainGraph::new.

Variants§

§

Conflict

Fields

§a: (P, Txid)
§b: (P, Txid)

Two transactions within the sparse chain conflicted with each other

§

Missing(HashSet<Txid>)

One or more transactions in the chain were not in the graph

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.UpdateError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.UpdateError.html index 8fecb11a88..abd7c30a18 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.UpdateError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/enum.UpdateError.html @@ -1,12 +1,12 @@ -UpdateError in bdk_chain::chain_graph - Rust
pub enum UpdateError<P> {
+UpdateError in bdk_chain::chain_graph - Rust
pub enum UpdateError<P> {
     Chain(UpdateError<P>),
     UnresolvableConflict(UnresolvableConflict<P>),
 }
Expand description

Represents an update failure.

Variants§

§

Chain(UpdateError<P>)

The update chain was inconsistent with the existing chain

§

UnresolvableConflict(UnresolvableConflict<P>)

A transaction in the update spent the same input as an already confirmed transaction

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/index.html index 2bb2b267f6..a8344573c3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/index.html @@ -1,3 +1,3 @@ -bdk_chain::chain_graph - Rust

Module bdk_chain::chain_graph

source ·
Expand description

Module for structures that combine the features of sparse_chain and tx_graph.

+bdk_chain::chain_graph - Rust

Module bdk_chain::chain_graph

source ·
Expand description

Module for structures that combine the features of sparse_chain and tx_graph.

Structs

A consistent combination of a SparseChain<P> and a TxGraph<T>.
Represents changes to ChainGraph.
Represents an unresolvable conflict between an update’s transaction and an already-confirmed transaction.

Enums

Error that may occur when inserting a transaction.
Error that may occur when calling ChainGraph::new.
Represents an update failure.

Type Definitions

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChainGraph.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChainGraph.html index b9bcfb82d0..0c9895a5de 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChainGraph.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChainGraph.html @@ -1,12 +1,12 @@ ChainGraph in bdk_chain::chain_graph - Rust
pub struct ChainGraph<P = TxHeight> { /* private fields */ }
Expand description

A consistent combination of a SparseChain<P> and a TxGraph<T>.

-

SparseChain only keeps track of transaction ids and their position in the chain but you often -want to store the full transactions as well. Additionally you want to make sure that everything +

SparseChain only keeps track of transaction ids and their position in the chain, but you often +want to store the full transactions as well. Additionally, you want to make sure that everything in the chain is consistent with the full transaction data. ChainGraph enforces these two invariants:

  1. Every transaction that is in the chain is also in the graph (you always have the full transaction).
  2. -
  3. No transactions in the chain conflict with each other i.e. they don’t double spend each +
  4. No transactions in the chain conflict with each other, i.e., they don’t double spend each other or have ancestors that double spend each other.

Note that the ChainGraph guarantees a 1:1 mapping between transactions in the chain and @@ -14,12 +14,12 @@ other or have ancestors that double spend each other. mempool eviction) but will remain in the graph.

Implementations§

Returns a reference to the internal SparseChain.

Returns a reference to the internal TxGraph.

-

Create a new chain graph from a chain and a graph.

+

Create a new chain graph from a chain and a graph.

There are two reasons this can return an Err:

  1. There is a transaction in the chain that does not have its corresponding full transaction in graph.
  2. -
  3. The chain has two transactions that allegedly in it but they conflict in the graph +
  4. The chain has two transactions that are allegedly in it, but they conflict in the graph (so could not possibly be in the same chain).

Take an update in the form of a SparseChain<P> and attempt to turn it @@ -27,12 +27,12 @@ into a chain graph by filling in full transactions from self and fr returns a ChainGraph<P, Cow<T>> where the Cow<'a, T> will borrow the transaction if it got it from self.

This is useful when interacting with services like an electrum server which returns a list -of txids and heights when calling script_get_history which can easily be inserted into a -SparseChain<TxHeight>. From there you need to figure out which full +of txids and heights when calling script_get_history, which can easily be inserted into a +SparseChain<TxHeight>. From there, you need to figure out which full transactions you are missing in your chain graph and form new_txs. You then use inflate_update to turn this into an update ChainGraph<P, Cow<Transaction>> and finally use determine_changeset to generate the changeset from it.

-

Sets the checkpoint limit.

+

Gets the checkpoint limit.

Refer to SparseChain::checkpoint_limit for more.

Sets the checkpoint limit.

Refer to SparseChain::set_checkpoint_limit for more.

@@ -42,45 +42,45 @@ above. Displaced transactions will have their positions moved to TxHeight::Unconfirmed.

This is equivalent to calling Self::invalidate_checkpoints_preview and Self::apply_changeset in sequence.

-

Get a transaction that is currently in the underlying SparseChain.

-

This does not necessarily mean that it is confirmed in the blockchain, it might just be in +

Get a transaction currently in the underlying SparseChain.

+

This does not necessarily mean that it is confirmed in the blockchain; it might just be in the unconfirmed transaction list within the SparseChain.

Determines the changes required to insert a transaction into the inner ChainGraph and SparseChain at the given position.

If inserting it into the chain position will result in conflicts, the returned ChangeSet should evict conflicting transactions.

-

Inserts [Transaction] at given chain position.

+

Inserts [Transaction] at the given chain position.

This is equivalent to calling Self::insert_tx_preview and Self::apply_changeset in sequence.

Determines the changes required to insert a [TxOut] into the internal TxGraph.

Inserts a [TxOut] into the internal TxGraph.

This is equivalent to calling Self::insert_txout_preview and Self::apply_changeset in sequence.

-

Determines the changes required to insert a block_id (a height and block hash) into the +

Determines the changes required to insert a block_id (a height and block hash) into the chain.

-

If a checkpoint already exists at that height with a different hash this will return -an error.

-

Inserts checkpoint into Self.

+

If a checkpoint with a different hash already exists at that height, this will return an error.

+

Inserts checkpoint into Self.

This is equivalent to calling Self::insert_checkpoint_preview and Self::apply_changeset in sequence.

-

Calculates the difference between self and update in the form of a ChangeSet.

-

Given a transaction, return an iterator of txids that conflict with it (spends at least -one of the same inputs). This includes all descendants of conflicting transactions.

+

Calculates the difference between self and update in the form of a ChangeSet.

+

Given a transaction, return an iterator of txids that conflict with it (spends at least +one of the same inputs). This iterator includes all descendants of conflicting transactions.

This method only returns conflicts that exist in the SparseChain as transactions that are not included in SparseChain are already considered as evicted.

-

Applies changeset to self.

-

Warning this method assumes the changeset is assumed to be correctly formed. If it isn’t -then the chain graph may not behave correctly in the future and may panic unexpectedly.

-

Applies the update chain graph. Note this is shorthand for calling +

Applies changeset to self.

+

Warning this method assumes that the changeset is correctly formed. If it is not, the +chain graph may behave incorrectly in the future and panic unexpectedly.

+

Applies the update chain graph. Note this is shorthand for calling Self::determine_changeset() and Self::apply_changeset() in sequence.

-

Get the full transaction output at an outpoint if it exists in the chain and the graph.

-

Iterate over the full transactions and their position in the chain ordered by their position +

Get the full transaction output at an outpoint if it exists in the chain and the graph.

+

Iterate over the full transactions and their position in the chain ordered by their position in ascending order.

-

Finds the transaction in the chain that spends outpoint given the input/output -relationships in graph. Note that the transaction including outpoint does not need to be -in the graph or the chain for this to return Some(_).

-

Whether the chain graph contains any data whatsoever.

-

Trait Implementations§

Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The provided closure f will called with each outpoint/txout pair.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Find the transaction in the chain that spends outpoint.

+

This uses the input/output relationships in the internal graph. Note that the transaction +which includes outpoint does not need to be in the graph or the chain for this to +return Some(_).

+

Whether the chain graph contains any data whatsoever.

+

Trait Implementations§

Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The provided closure f will be called with each outpoint/txout pair.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChangeSet.html index 1d19127e02..c666090470 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.ChangeSet.html @@ -1,15 +1,15 @@ -ChangeSet in bdk_chain::chain_graph - Rust
pub struct ChangeSet<P> {
+ChangeSet in bdk_chain::chain_graph - Rust
pub struct ChangeSet<P> {
     pub chain: ChangeSet<P>,
     pub graph: Additions,
 }
Expand description

Represents changes to ChainGraph.

This is essentially a combination of sparse_chain::ChangeSet and tx_graph::Additions.

-

Fields§

§chain: ChangeSet<P>§graph: Additions

Implementations§

Returns true if this ChangeSet records no changes.

-

Returns true if this ChangeSet contains transaction evictions.

-

Appends the changes in other into self such that applying self afterwards has the same +

Fields§

§chain: ChangeSet<P>§graph: Additions

Implementations§

Returns true if this ChangeSet records no changes.

+

Returns true if this ChangeSet contains transaction evictions.

+

Appends the changes in other into self such that applying self afterward has the same effect as sequentially applying the original self and other.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will called with each outpoint/txout pair.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will be called with each outpoint/txout pair.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.UnresolvableConflict.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.UnresolvableConflict.html index ff5a2c8a1f..4be9cc6c02 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.UnresolvableConflict.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/struct.UnresolvableConflict.html @@ -1,11 +1,11 @@ -UnresolvableConflict in bdk_chain::chain_graph - Rust
pub struct UnresolvableConflict<P> {
+UnresolvableConflict in bdk_chain::chain_graph - Rust
pub struct UnresolvableConflict<P> {
     pub already_confirmed_tx: (P, Txid),
     pub update_tx: (P, Txid),
 }
Expand description

Represents an unresolvable conflict between an update’s transaction and an already-confirmed transaction.

-

Fields§

§already_confirmed_tx: (P, Txid)§update_tx: (P, Txid)

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Fields§

§already_confirmed_tx: (P, Txid)§update_tx: (P, Txid)

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/type.InsertCheckpointError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/type.InsertCheckpointError.html index 92f78822bb..69be1d4d6a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/type.InsertCheckpointError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/chain_graph/type.InsertCheckpointError.html @@ -1,2 +1,2 @@ -InsertCheckpointError in bdk_chain::chain_graph - Rust
pub type InsertCheckpointError = InsertCheckpointError;
Expand description

A nice alias of sparse_chain::InsertCheckpointError.

+InsertCheckpointError in bdk_chain::chain_graph - Rust
pub type InsertCheckpointError = InsertCheckpointError;
Expand description
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html index be97a5e42e..90b7284b60 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html @@ -1,2 +1,2 @@ -COINBASE_MATURITY in bdk_chain - Rust

Constant bdk_chain::COINBASE_MATURITY

source ·
pub const COINBASE_MATURITY: u32 = 100;
Expand description

How many confirmations are needed for a coinbase output to be spent

+COINBASE_MATURITY in bdk_chain - Rust

Constant bdk_chain::COINBASE_MATURITY

source ·
pub const COINBASE_MATURITY: u32 = 100;
Expand description

How many confirmations are needed f or a coinbase output to be spent.

\ No newline at end of file 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 70be0a0b08..3b8dd8a1ae 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,11 +1,11 @@ -ConfirmationTime in bdk_chain - Rust
pub enum ConfirmationTime {
+ConfirmationTime in bdk_chain - Rust
pub enum ConfirmationTime {
     Confirmed {
         height: u32,
         time: u64,
     },
     Unconfirmed,
-}
Expand description

Block height and timestamp in which a transaction is confirmed in.

-

Variants§

§

Confirmed

Fields

§height: u32
§time: u64
§

Unconfirmed

Implementations§

Trait Implementations§

Get the transaction height of the positon.
Get the positon’s upper bound of a given height.
Get the position’s lower bound of a given height.
Get the unconfirmed position.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used +}
Expand description

Block height and timestamp at which a transaction is confirmed.

+

Variants§

§

Confirmed

Fields

§height: u32
§time: u64
§

Unconfirmed

Implementations§

Trait Implementations§

Get the transaction height of the position.
Get the position’s upper bound of a given height.
Get the position’s lower bound of a given height.
Get the unconfirmed position.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.TxHeight.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.TxHeight.html index 15e397910d..ea254f242d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.TxHeight.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/enum.TxHeight.html @@ -1,8 +1,8 @@ -TxHeight in bdk_chain - Rust

Enum bdk_chain::TxHeight

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

Enum bdk_chain::TxHeight

source ·
pub enum TxHeight {
     Confirmed(u32),
     Unconfirmed,
-}
Expand description

Represents the height in which a transaction is confirmed at.

-

Variants§

§

Confirmed(u32)

§

Unconfirmed

Implementations§

Trait Implementations§

Get the transaction height of the positon.
Get the positon’s upper bound of a given height.
Get the position’s lower bound of a given height.
Get the unconfirmed position.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used +}
Expand description

Represents the height at which a transaction is confirmed.

+

Variants§

§

Confirmed(u32)

§

Unconfirmed

Implementations§

Trait Implementations§

Get the transaction height of the position.
Get the position’s upper bound of a given height.
Get the position’s lower bound of a given height.
Get the unconfirmed position.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= 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 29f9799aef..be4b66df8f 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 @@ -1,18 +1,18 @@ bdk_chain - Rust

Crate bdk_chain

source ·
Expand description

This crate is a collection of core structures for Bitcoin Dev Kit (alpha release).

-

The goal of this crate is give wallets the mechanisms needed to:

+

The goal of this crate is to give wallets the mechanisms needed to:

  1. Figure out what data they need to fetch.
  2. -
  3. Process that data in a way that never leads to inconsistent states.
  4. -
  5. Fully index that data and expose it so that it can be consumed without friction.
  6. +
  7. Process the data in a way that never leads to inconsistent states.
  8. +
  9. Fully index that data and expose it to be consumed without friction.

Our design goals for these mechanisms are:

  1. Data source agnostic – nothing in bdk_chain cares about where you get data from or whether -you do it synchronously or asynchronously. If you know a fact about the blockchain you can just -tell bdk_chain’s APIs about it and that information will be integrated if it can be done +you do it synchronously or asynchronously. If you know a fact about the blockchain, you can just +tell bdk_chain’s APIs about it, and that information will be integrated, if it can be done consistently.
  2. -
  3. Error free APIs.
  4. +
  5. Error-free APIs.
  6. Data persistence agnostic – bdk_chain does not care where you cache on-chain data, what you cache or how you fetch it.
-

Re-exports

pub extern crate serde_crate as serde;
pub use bitcoin;
pub use miniscript;

Modules

Module for structures that combine the features of sparse_chain and tx_graph.
Module for keychain based structures.
Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data.
Module for structures that store and traverse transactions.

Structs

A reference to a block in the cannonical chain.
A TxOut with as much data as we can retreive about it
An index storing TxOuts that have a script pubkey that matches those in a list.

Enums

Block height and timestamp in which a transaction is confirmed in.
Represents the height in which a transaction is confirmed at.

Constants

How many confirmations are needed for a coinbase output to be spent

Traits

A trait to extend the functionality of a miniscript descriptor.
Trait to do something with every txout contained in a structure.
\ No newline at end of file +

Re-exports

pub extern crate serde_crate as serde;
pub use bitcoin;
pub use miniscript;

Modules

Module for structures that combine the features of sparse_chain and tx_graph.
Module for keychain related structures.
Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data.
Module for structures that store and traverse transactions.

Structs

A reference to a block in the canonical chain.
A TxOut with as much data as we can retrieve about it
An index storing TxOuts that have a script pubkey that matches those in a list.

Enums

Block height and timestamp at which a transaction is confirmed.
Represents the height at which a transaction is confirmed.

Constants

How many confirmations are needed f or a coinbase output to be spent.

Traits

A trait to extend the functionality of a miniscript descriptor.
Trait to do something with every txout contained in a structure.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/index.html index 94acf44ec3..68b7a79968 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/index.html @@ -1,13 +1,13 @@ -bdk_chain::keychain - Rust

Module bdk_chain::keychain

source ·
Expand description

Module for keychain based structures.

-

A keychain here is a set of application defined indexes for a minscript descriptor where we can +bdk_chain::keychain - Rust

Module bdk_chain::keychain

source ·
Expand description

Module for keychain related structures.

+

A keychain here is a set of application-defined indexes for a miniscript descriptor where we can derive script pubkeys at a particular derivation index. The application’s index is simply anything that implements Ord.

KeychainTxOutIndex indexes script pubkeys of keychains and scans in relevant outpoints (that has a txout containing an indexed script pubkey). Internally, this uses SpkTxOutIndex, but -also maintains “revealed” and “lookahead” index count per keychain.

+also maintains “revealed” and “lookahead” index counts per keychain.

KeychainTracker combines ChainGraph and KeychainTxOutIndex and enforces atomic changes between both these structures. KeychainScan is a structure used to update to KeychainTracker and changes made on a KeychainTracker are reported by KeychainChangeSets.

-

Re-exports

pub use persist::*;

Modules

Persistence for changes made to a KeychainTracker.

Structs

Balance differentiated in various categories.
Represents updates to the derivation index of a KeychainTxOutIndex.
Represents changes to a KeychainTracker.
An update that includes the last active indexes of each keychain.
A convenient combination of a KeychainTxOutIndex and a ChainGraph.
A convenient wrapper around SpkTxOutIndex that relates script pubkeys to miniscript public +

Re-exports

pub use persist::*;

Modules

Persistence for changes made to a KeychainTracker.

Structs

Balance, differentiated into various categories.
Represents updates to the derivation index of a KeychainTxOutIndex.
Represents changes to a KeychainTracker.
An update that includes the last active indexes of each keychain.
A convenient combination of a KeychainTxOutIndex and a ChainGraph.
A convenient wrapper around SpkTxOutIndex that relates script pubkeys to miniscript public Descriptors.

Constants

Maximum BIP32 derivation index.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/index.html index edd084cacf..e9a10baf56 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/index.html @@ -1,10 +1,10 @@ bdk_chain::keychain::persist - Rust

Module bdk_chain::keychain::persist

source ·
Expand description

Persistence for changes made to a KeychainTracker.

BDK’s KeychainTracker needs somewhere to persist changes it makes during operation. Operations like giving out a new address are crucial to persist so that next time the -application is loaded it can find transactions related to that address.

+application is loaded, it can find transactions related to that address.

Note that the KeychainTracker does not read this persisted data during operation since it always has a copy in memory.

Structs

Persist wraps a PersistBackend to create a convenient staging area for changes before they are persisted. Not all changes made to the KeychainTracker need to be written to disk right away so you can use Persist::stage to stage it first and then Persist::commit to -finally write it to disk.

Traits

A persistence backend for Persist.
\ No newline at end of file +finally, write it to disk.

Traits

A persistence backend for Persist.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/sidebar-items.js index 9c4f9f3c4a..59a9f5d7d5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":[["Persist","`Persist` wraps a [`PersistBackend`] to create a convenient staging area for changes before they are persisted. Not all changes made to the `KeychainTracker` need to be written to disk right away so you can use [`Persist::stage`] to stage it first and then [`Persist::commit`] to finally write it to disk."]],"trait":[["PersistBackend","A persistence backend for [`Persist`]."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["Persist","`Persist` wraps a [`PersistBackend`] to create a convenient staging area for changes before they are persisted. Not all changes made to the `KeychainTracker` need to be written to disk right away so you can use [`Persist::stage`] to stage it first and then [`Persist::commit`] to finally, write it to disk."]],"trait":[["PersistBackend","A persistence backend for [`Persist`]."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/struct.Persist.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/struct.Persist.html index 449fe2d614..421992ce58 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/struct.Persist.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/struct.Persist.html @@ -1,12 +1,12 @@ -Persist in bdk_chain::keychain::persist - Rust
pub struct Persist<K, P, B> { /* private fields */ }
Expand description

Persist wraps a PersistBackend to create a convenient staging area for changes before they +Persist in bdk_chain::keychain::persist - Rust

pub struct Persist<K, P, B> { /* private fields */ }
Expand description

Persist wraps a PersistBackend to create a convenient staging area for changes before they are persisted. Not all changes made to the KeychainTracker need to be written to disk right away so you can use Persist::stage to stage it first and then Persist::commit to -finally write it to disk.

+finally, write it to disk.

Implementations§

Create a new Persist from a PersistBackend.

Stage a changeset to later persistence with commit.

-

Get the changes that haven’t been commited yet

+

Get the changes that haven’t been committed yet

Commit the staged changes to the underlying persistence backend.

-

Retuns a backend defined error if this fails

+

Returns a backend-defined error if this fails.

Trait Implementations§

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/trait.PersistBackend.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/trait.PersistBackend.html index ea8d7d5d7a..350f5945c7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/trait.PersistBackend.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/persist/trait.PersistBackend.html @@ -7,9 +7,9 @@ }

Expand description

A persistence backend for Persist.

Required Associated Types§

The error the backend returns when it fails to write.

The error the backend returns when it fails to load.

-

Required Methods§

Appends a new changeset to the persistance backend.

+

Required Methods§

Appends a new changeset to the persistent backend.

It is up to the backend what it does with this. It could store every changeset in a list or -it insert the actual changes to a more structured database. All it needs to guarantee is +it inserts the actual changes into a more structured database. All it needs to guarantee is that load_into_keychain_tracker restores a keychain tracker to what it should be if all changesets had been applied sequentially.

Applies all the changesets the backend has received to tracker.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/sidebar-items.js index 1ce48c32e3..f57d9cc969 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":[["BIP32_MAX_INDEX","Maximum BIP32 derivation index."]],"mod":[["persist","Persistence for changes made to a `KeychainTracker`."]],"struct":[["Balance","Balance differentiated in various categories."],["DerivationAdditions","Represents updates to the derivation index of a `KeychainTxOutIndex`."],["KeychainChangeSet","Represents changes to a [`KeychainTracker`]."],["KeychainScan","An update that includes the last active indexes of each keychain."],["KeychainTracker","A convenient combination of a [`KeychainTxOutIndex`] and a [`ChainGraph`]."],["KeychainTxOutIndex","A convenient wrapper around `SpkTxOutIndex` that relates script pubkeys to miniscript public `Descriptor`s."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["BIP32_MAX_INDEX","Maximum BIP32 derivation index."]],"mod":[["persist","Persistence for changes made to a `KeychainTracker`."]],"struct":[["Balance","Balance, differentiated into various categories."],["DerivationAdditions","Represents updates to the derivation index of a `KeychainTxOutIndex`."],["KeychainChangeSet","Represents changes to a [`KeychainTracker`]."],["KeychainScan","An update that includes the last active indexes of each keychain."],["KeychainTracker","A convenient combination of a [`KeychainTxOutIndex`] and a [`ChainGraph`]."],["KeychainTxOutIndex","A convenient wrapper around `SpkTxOutIndex` that relates script pubkeys to miniscript public `Descriptor`s."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.Balance.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.Balance.html index 2354d57817..7ed14e384a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.Balance.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.Balance.html @@ -1,9 +1,9 @@ -Balance in bdk_chain::keychain - Rust

Struct bdk_chain::keychain::Balance

source ·
Expand description

Balance, differentiated into various categories.

Fields§

§immature: u64

All coinbase outputs not yet matured

§trusted_pending: u64

Unconfirmed UTXOs generated by a wallet tx

§untrusted_pending: u64

Unconfirmed UTXOs received from an external wallet

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html index bf82aaf7fd..7413b15a62 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html @@ -2,10 +2,10 @@

It can be applied to KeychainTxOutIndex with apply_additions. `DerivationAdditions are monotone in that they will never decrease the revealed derivation index.

Tuple Fields§

§0: BTreeMap<K, u32>

Implementations§

Returns whether the additions are empty.

-

Get the inner map of keychain to its new derivation index.

+

Get the inner map of the keychain to its new derivation index.

Append another DerivationAdditions into self.

-

If keychain already exists, increases the index when other’s index > self’s index. -If keychain did not exist, append the new keychain.

+

If the keychain already exists, increase the index when the other’s index > self’s index. +If the keychain did not exist, append the new keychain.

Trait Implementations§

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainChangeSet.html index 8d2359eb80..bf80bae1e5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainChangeSet.html @@ -6,11 +6,11 @@

Fields§

§derivation_indices: DerivationAdditions<K>

The changes in local keychain derivation indices

§chain_graph: ChangeSet<P>

The changes that have occurred in the blockchain

Implementations§

Returns whether the KeychainChangeSet is empty (no changes recorded).

-

Appends the changes in other into self such that applying self afterwards has the same +

Appends the changes in other into self such that applying self afterward has the same effect as sequentially applying the original self and other.

-

Note the derivation indices cannot be decreased so other will only change the derivation -index for a keychain if it’s entry is higher than the one in self.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will called with each outpoint/txout pair.
Converts to this type from the input type.
Converts to this type from the input type.
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Note the derivation indices cannot be decreased, so other will only change the derivation +index for a keychain, if it’s value is higher than the one in self.

+

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will be called with each outpoint/txout pair.
Converts to this type from the input type.
Converts to this type from the input type.
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTracker.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTracker.html index d1d07df6b8..b126f93d08 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTracker.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTracker.html @@ -5,7 +5,7 @@

The KeychainTracker atomically updates its KeychainTxOutIndex whenever new chain data is incorporated into its internal ChainGraph.

Fields§

§txout_index: KeychainTxOutIndex<K>

Index between script pubkeys to transaction outputs

-

Implementations§

Add a keychain to the tracker’s txout_index with a descriptor to derive addresses for it. +

Implementations§

Add a keychain to the tracker’s txout_index with a descriptor to derive addresses. This is just shorthand for calling KeychainTxOutIndex::add_keychain on the internal txout_index.

Adding a keychain means you will be able to derive new script pubkeys under that keychain @@ -20,7 +20,7 @@ and the tracker will discover transaction outputs with those script pubkeys.

Internally, we call ChainGraph::determine_changeset and also determine the additions of KeychainTxOutIndex.

Directly applies a KeychainScan on KeychainTracker.

-

This is equivilant to calling determine_changeset and apply_changeset in sequence.

+

This is equivalent to calling determine_changeset and apply_changeset in sequence.

Applies the changes in changeset to KeychainTracker.

Internally, this calls KeychainTxOutIndex::apply_additions and ChainGraph::apply_changeset in sequence.

@@ -33,10 +33,10 @@ view of the blockchain/mempool.

Returns a reference to the internal ChainGraph.

Returns a reference to the internal TxGraph (which is part of the ChainGraph).

Returns a reference to the internal SparseChain (which is part of the ChainGraph).

-

Determines the changes as result of inserting block_id (a height and block hash) into the +

Determines the changes as a result of inserting block_id (a height and block hash) into the tracker.

The caller is responsible for guaranteeing that a block exists at that height. If a -checkpoint already exists at that height with a different hash this will return an error. +checkpoint already exists at that height with a different hash; this will return an error. Otherwise it will return Ok(true) if the checkpoint didn’t already exist or Ok(false) if it did.

Warning: This function modifies the internal state of the tracker. You are responsible @@ -44,21 +44,21 @@ for persisting these changes to disk if you need to restore them.

Directly insert a block_id into the tracker.

This is equivalent of calling insert_checkpoint_preview and apply_changeset in sequence.

-

Determines the changes as result of inserting a transaction into the inner ChainGraph +

Determines the changes as a result of inserting a transaction into the inner ChainGraph and optionally into the inner chain at position.

Warning: This function modifies the internal state of the chain graph. You are responsible for persisting these changes to disk if you need to restore them.

Directly insert a transaction into the inner ChainGraph and optionally into the inner chain at position.

-

This is equivilant of calling insert_tx_preview and apply_changeset in sequence.

-

Returns the balance of the keychain i.e. the value of unspent transaction outputs tracked.

+

This is equivalent of calling insert_tx_preview and apply_changeset in sequence.

+

Returns the balance of the keychain, i.e., the value of unspent transaction outputs tracked.

The caller provides a should_trust predicate which must decide whether the value of unconfirmed outputs on this keychain are guaranteed to be realized or not. For example:

    -
  • For an internal (change) keychain should_trust should in general be true since even if -you lose an internal output due to eviction you will always gain back the value from whatever output the -unconfirmed transaction was spending (since that output is presumeably from your wallet).
  • -
  • For an external keychain you might want should_trust to return false since someone may cancel (by double spending) +
  • For an internal (change) keychain, should_trust should generally be true since even if +you lose an internal output due to eviction, you will always gain back the value from whatever output the +unconfirmed transaction was spending (since that output is presumably from your wallet).
  • +
  • For an external keychain, you might want should_trust to return false since someone may cancel (by double spending) a payment made to addresses on that keychain.

When in doubt set should_trust to return false. This doesn’t do anything other than change diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html index 791d9847b1..811a8da70b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html @@ -1,9 +1,9 @@ KeychainTxOutIndex in bdk_chain::keychain - Rust

pub struct KeychainTxOutIndex<K> { /* private fields */ }
Expand description

A convenient wrapper around SpkTxOutIndex that relates script pubkeys to miniscript public Descriptors.

Descriptors are referenced by the provided keychain generic (K).

-

Script pubkeys for a descriptor are revealed chronologically from index 0. I.e. If the last -revealed index of a descriptor is 5, scripts of indices 0 to 4 are guaranteed to already be -revealed. In addition to revealed scripts, we have a lookahead parameter for each keychain +

Script pubkeys for a descriptor are revealed chronologically from index 0. I.e., If the last +revealed index of a descriptor is 5; scripts of indices 0 to 4 are guaranteed to be already +revealed. In addition to revealed scripts, we have a lookahead parameter for each keychain, which defines the number of script pubkeys to store ahead of the last revealed index.

Methods that could update the last revealed index will return DerivationAdditions to report these changes. This can be persisted for future recovery.

@@ -31,43 +31,43 @@ txout_index.add_keychain(MyKeychain::MyAppUser { user_id: 4

If the matched script pubkey is part of the lookahead, the last stored index is updated for the script pubkey’s keychain and the DerivationAdditions returned will reflect the change.

-

Typically this method is used in two situations:

+

Typically, this method is used in two situations:

    -
  1. After loading transaction data from disk you may scan over all the txouts to restore all +
  2. After loading transaction data from the disk, you may scan over all the txouts to restore all your txouts.
  3. -
  4. When getting new data from the chain you usually scan it before incorporating it into -your chain state (i.e. SparseChain, ChainGraph).
  5. +
  6. When getting new data from the chain, you usually scan it before incorporating it into +your chain state (i.e., SparseChain, ChainGraph).

See ForEachTxout for the types that support this.

Scan a single outpoint for a matching script pubkey.

-

If it matches the index will store and index it.

+

If it matches, this will store and index it.

Return a reference to the internal SpkTxOutIndex.

-

Return a reference to the internal map of keychain to descriptors.

-

Add a keychain to the tracker’s txout_index with a descriptor to derive addresses for it.

+

Return a reference to the internal map of the keychain to descriptors.

+

Add a keychain to the tracker’s txout_index with a descriptor to derive addresses.

Adding a keychain means you will be able to derive new script pubkeys under that keychain and the txout index will discover transaction outputs with those script pubkeys.

Panics

This will panic if a different descriptor is introduced to the same keychain.

Return the lookahead setting for each keychain.

-

Refer to set_lookahead for a deeper explanation on lookahead.

+

Refer to set_lookahead for a deeper explanation of the lookahead.

Convenience method to call set_lookahead for all keychains.

Set the lookahead count for keychain.

The lookahead is the number of scripts to cache ahead of the last stored script index. This is useful during a scan via scan or scan_txout.

Panics
-

This will panic if keychain does not exist.

+

This will panic if the keychain does not exist.

Convenience method to call lookahead_to_target for multiple keychains.

Store lookahead scripts until target_index.

This does not change the lookahead setting.

Generates script pubkey iterators for every keychain. The iterators iterate over all derivable script pubkeys.

-

Generates a script pubkey iterator for the given keychain’s descriptor (if exists). The +

Generates a script pubkey iterator for the given keychain’s descriptor (if it exists). The iterator iterates over all derivable scripts of the keychain’s descriptor.

Panics
-

This will panic if keychain does not exist.

+

This will panic if the keychain does not exist.

Convenience method to get revealed_spks_of_keychain of all keychains.

Iterates over the script pubkeys revealed by this index under keychain.

-

Get the next derivation index for keychain. This is the index after the last revealed +

Get the next derivation index for keychain. The next index is the index after the last revealed derivation index.

The second field in the returned tuple represents whether the next derivation index is new. There are two scenarios where the next derivation index is reused (not new):

@@ -84,12 +84,12 @@ There are two scenarios where the next derivation index is reused (not new):

Convenience method to call Self::reveal_to_target on multiple keychains.

Reveals script pubkeys of the keychain’s descriptor up to and including the target_index.

-

If the target_index cannot be reached (due to the descriptor having no wildcard, and/or -the target_index is in the hardened index range), this method will do a best-effort and +

If the target_index cannot be reached (due to the descriptor having no wildcard and/or +the target_index is in the hardened index range), this method will make a best-effort and reveal up to the last possible index.

-

This returns an iterator of newly revealed indices (along side their scripts), and a -DerivationAdditions which reports updates to the latest revealed index. If no new script -pubkeys are revealed, both of these will be empty.

+

This returns an iterator of newly revealed indices (alongside their scripts) and a +DerivationAdditions, which reports updates to the latest revealed index. If no new script +pubkeys are revealed, then both of these will be empty.

Panics

Panics if keychain does not exist.

Attempts to reveal the next script pubkey for keychain.

@@ -103,25 +103,25 @@ pubkeys are revealed, both of these will be empty.

Panics

Panics if the keychain does not exist.

-

Gets the next unused script pubkey in the keychain. I.e. the script pubkey with the lowest +

Gets the next unused script pubkey in the keychain. I.e., the script pubkey with the lowest index that has not been used yet.

This will derive and reveal a new script pubkey if no more unused script pubkeys exist.

-

If the descriptor has no wildcard and already has a used script pubkey, or if a descriptor -has used all scripts up to the derivation bounds, the last derived script pubkey will be +

If the descriptor has no wildcard and already has a used script pubkey or if a descriptor +has used all scripts up to the derivation bounds, then the last derived script pubkey will be returned.

Panics

Panics if keychain has never been added to the index

-

Marks the script pubkey at index as used even though it hasn’t seen an output with it. +

Marks the script pubkey at index as used even though the tracker hasn’t seen an output with it. This only has an effect when the index had been added to self already and was unused.

-

Returns whether the index was originally present as unused.

+

Returns whether the index was initially present as unused.

This is useful when you want to reserve a script pubkey for something but don’t want to add the transaction output using it to the index yet. Other callers will consider index on keychain used until you call unmark_used.

Undoes the effect of mark_used. Returns whether the index is inserted back into unused.

-

Note that if self has scanned an output with this script pubkey then this will have no +

Note that if self has scanned an output with this script pubkey, then this will have no effect.

-

Iterates over all unused script pubkeys for a keychain that have been stored in the index.

+

Iterates over all unused script pubkeys for a keychain stored in the index.

Iterates over all the [OutPoint] that have a TxOut with a script pubkey derived from keychain.

Returns the highest derivation index of the keychain where KeychainTxOutIndex has @@ -132,14 +132,14 @@ a [TxOut] with it’s script pubkey.

derived scripts per keychain, as specified in the additions.

Methods from Deref<Target = SpkTxOutIndex<(K, u32)>>§

Iterate over all known txouts that spend to tracked script pubkeys.

Finds all txouts on a transaction that has previously been scanned and indexed.

-

Iterates over all outputs with script pubkeys in an index range.

+

Iterates over all the outputs with script pubkeys in an index range.

Returns the txout and script pubkey index of the TxOut at OutPoint.

Returns None if the TxOut hasn’t been scanned or if nothing matching was found there.

Returns the script that has been inserted at the index.

-

If that index hasn’t been inserted yet it will return None.

-

The script pubkeys being tracked by the index.

-

Iterates over a unused script pubkeys in a index range.

-

Here “unused” means that after the script pubkey was stored in the index, the index has +

If that index hasn’t been inserted yet, it will return None.

+

The script pubkeys that are being tracked by the index.

+

Iterates over all unused script pubkeys in an index range.

+

Here, “unused” means that after the script pubkey was stored in the index, the index has never scanned a transaction output with it.

Example

@@ -150,13 +150,13 @@ never scanned a transaction output with it.

let unused_change_spks = txout_index.unused_spks((change_index, u32::MIN)..(change_index, u32::MAX));

Returns whether the script pubkey at index has been used or not.

-

Here “unused” means that after the script pubkey was stored in the index, the index has +

Here, “unused” means that after the script pubkey was stored in the index, the index has never scanned a transaction output with it.

Returns the index associated with the script pubkey.

-

Computes total input value going from script pubkeys in the index (sent) and total output +

Computes total input value going from script pubkeys in the index (sent) and the total output value going to script pubkeys in the index (received) in tx. For the sent to be computed -correctly the output being spent must have already been scanned by the index. Calculating -received just uses the transaction outputs directly so will be correct even if it has not +correctly, the output being spent must have already been scanned by the index. Calculating +received just uses the transaction outputs directly, so it will be correct even if it has not been scanned.

Computes the net value that this transaction gives to the script pubkeys in the index and takes from the transaction outputs in the index. Shorthand for calling @@ -164,8 +164,8 @@ been scanned.

Whether any of the inputs of this transaction spend a txout tracked or whether any output matches one of our script pubkeys.

It is easily possible to misuse this method and get false negatives by calling it before you -have scanned the TxOuts the transaction is spending. For example if you want to filter out -all the transactions in a block that are irrelevant you must first scan all the +have scanned the TxOuts the transaction is spending. For example, if you want to filter out +all the transactions in a block that are irrelevant, you must first scan all the transactions in the block and only then use this method.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The resulting type after dereferencing.
Dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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 b05c084a29..cae94de312 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":[["COINBASE_MATURITY","How many confirmations are needed for a coinbase output to be spent"]],"enum":[["ConfirmationTime","Block height and timestamp in which a transaction is confirmed in."],["TxHeight","Represents the height in which a transaction is confirmed at."]],"externcrate":[["serde",""]],"mod":[["chain_graph","Module for structures that combine the features of [`sparse_chain`] and [`tx_graph`]."],["keychain","Module for keychain based structures."],["sparse_chain","Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data."],["tx_graph","Module for structures that store and traverse transactions."]],"struct":[["BlockId","A reference to a block in the cannonical chain."],["FullTxOut","A `TxOut` with as much data as we can retreive about it"],["SpkTxOutIndex","An index storing `TxOut`s that have a script pubkey that matches those in a list."]],"trait":[["DescriptorExt","A trait to extend the functionality of a miniscript descriptor."],["ForEachTxOut","Trait to do something with every txout contained in a structure."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["COINBASE_MATURITY","How many confirmations are needed f or a coinbase output to be spent."]],"enum":[["ConfirmationTime","Block height and timestamp at which a transaction is confirmed."],["TxHeight","Represents the height at which a transaction is confirmed."]],"externcrate":[["serde",""]],"mod":[["chain_graph","Module for structures that combine the features of [`sparse_chain`] and [`tx_graph`]."],["keychain","Module for keychain related structures."],["sparse_chain","Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data."],["tx_graph","Module for structures that store and traverse transactions."]],"struct":[["BlockId","A reference to a block in the canonical chain."],["FullTxOut","A `TxOut` with as much data as we can retrieve about it"],["SpkTxOutIndex","An index storing `TxOut`s that have a script pubkey that matches those in a list."]],"trait":[["DescriptorExt","A trait to extend the functionality of a miniscript descriptor."],["ForEachTxOut","Trait to do something with every txout contained in a structure."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertCheckpointError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertCheckpointError.html index 0dd477e41b..66e87b52ea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertCheckpointError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertCheckpointError.html @@ -5,7 +5,7 @@ update_hash: BlockHash, }, }
Expand description

Represents a failure when trying to insert a checkpoint into SparseChain.

-

Variants§

§

HashNotMatching

Fields

§height: u32
§original_hash: BlockHash
§update_hash: BlockHash

Occurs when checkpoint of the same height already exists with a different [BlockHash].

+

Variants§

§

HashNotMatching

Fields

§height: u32
§original_hash: BlockHash
§update_hash: BlockHash

Occurs when a checkpoint of the same height already exists with a different [BlockHash].

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertTxError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertTxError.html index c4e829be0d..9ee5454298 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertTxError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.InsertTxError.html @@ -10,10 +10,10 @@ update_pos: P, }, }
Expand description

Represents a failure when trying to insert a [Txid] into SparseChain.

-

Variants§

§

TxTooHigh

Fields

§txid: Txid
§tx_height: u32
§tip_height: Option<u32>

Occurs when the [Txid] is to be inserted at a hight higher than the SparseChain’s tip.

-
§

TxMovedUnexpectedly

Fields

§txid: Txid
§original_pos: P
§update_pos: P

Occurs when the [Txid] is already in the SparseChain and the insertion would result in +

Variants§

§

TxTooHigh

Fields

§txid: Txid
§tx_height: u32
§tip_height: Option<u32>

Occurs when the [Txid] is to be inserted at a height higher than the SparseChain’s tip.

+
§

TxMovedUnexpectedly

Fields

§txid: Txid
§original_pos: P
§update_pos: P

Occurs when the [Txid] is already in the SparseChain, and the insertion would result in an unexpected move in ChainPosition.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.UpdateError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.UpdateError.html index 85281b5c08..e6c913632f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.UpdateError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/enum.UpdateError.html @@ -9,9 +9,9 @@

Variants§

§

NotConnected(u32)

The update cannot be applied to the chain because the chain suffix it represents did not connect to the existing chain. This error case contains the checkpoint height to include so that the chains can connect.

-
§

TxInconsistent

Fields

§txid: Txid
§original_pos: P
§update_pos: P

The update contains inconsistent tx states (e.g. it changed the transaction’s height). This +

§

TxInconsistent

Fields

§txid: Txid
§original_pos: P
§update_pos: P

The update contains inconsistent tx states (e.g., it changed the transaction’s height). This error is usually the inconsistency found.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/index.html index bc751eb0b1..85121b1ac1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/index.html @@ -1,8 +1,8 @@ bdk_chain::sparse_chain - Rust

Module bdk_chain::sparse_chain

source ·
Expand description

Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data.

SparseChain stores [Txid]s ordered by an index that implements ChainPosition (this -represents the transaction’s position in the blockchain, by default TxHeight is used). +represents the transaction’s position in the blockchain; by default, TxHeight is used). SparseChain also contains “checkpoints” which relate block height to block hash. Changes to -a SparseChain are reported by returning ChangeSets.

+a SparseChain is reported by returning ChangeSets.

Updating SparseChain

A sparsechain can be thought of as a consistent snapshot of history. A SparseChain can be updated by applying an update SparseChain on top, but only if they “connect” via their @@ -46,7 +46,7 @@ checkpoints and don’t result in unexpected movements of transactions.

As shown above, sparsechains can be “connected” by comparing their checkpoints. However, there are situations where two sparsechains cannot connect in a way that guarantees consistency.

-
// our sparsechain has 2 checkpoints
+
// our sparsechain has two checkpoints
 let chain = SparseChain::<TxHeight>::from_checkpoints(vec![
     BlockId {
         height: 1,
@@ -79,7 +79,7 @@ are situations where two sparsechains cannot connect in a way that guarantees co
 /* Example of an update that completely misses the point */
 
 let disconnected_update = SparseChain::from_checkpoints(vec![
-    // the last checkpoint in chain is 2, so 3 and 4 do not connect
+    // the last checkpoint in the chain is 2, so 3 and 4 do not connect
     BlockId {
         height: 3,
         hash: hash_c,
@@ -96,7 +96,7 @@ are situations where two sparsechains cannot connect in a way that guarantees co
 

Updates can be formed to evict data from the original sparsechain. This is useful for handling blockchain reorgs.

-
// our chain has a single checkpoint at height 11
+
// our chain has a single checkpoint at height 11.
 let mut chain = SparseChain::<TxHeight>::from_checkpoints(vec![BlockId {
     height: 11,
     hash: hash_a,
@@ -117,10 +117,10 @@ blockchain reorgs.

.apply_update(update) .expect("we can evict/replace checkpoint 11 since it is the only checkpoint"); -// now our `chain` has 2 checkpoints (11:hash_b & 12:hash_c) -// we detect another reorg, this time at height 12... +// now our `chain` has two checkpoints (11:hash_b & 12:hash_c) +// we detect another reorg, this time at height 12. let update = SparseChain::from_checkpoints(vec![ - // we connect at checkpoint 11 as this is our "point of agreement" + // we connect at checkpoint 11 as this is our "point of agreement". BlockId { height: 11, hash: hash_b, @@ -152,9 +152,9 @@ reorg.

Custom ChainPosition

SparseChain maintains a list of txids ordered by ChainPosition. By default, TxHeight -is used, however additional data can be incorporated into the implementation.

+is used; however, additional data can be incorporated into the implementation.

For example, we can have “perfect ordering” of transactions if our positional index is a -combination of block height and transaction position in block.

+combination of block height and transaction position in a block.

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
 pub enum TxPosition {
@@ -263,4 +263,4 @@ combination of block height and transaction position in block.

], );

Structs

The return value of determine_changeset.
This is a non-monotone structure that tracks relevant [Txid]s that are ordered by chain -position P.

Enums

Represents a failure when trying to insert a checkpoint into SparseChain.
Represents a failure when trying to insert a [Txid] into SparseChain.
Represents an update failure of SparseChain.

Traits

Represents an position in which transactions are ordered in SparseChain.
\ No newline at end of file +position P.

Enums

Represents a failure when trying to insert a checkpoint into SparseChain.
Represents a failure when trying to insert a [Txid] into SparseChain.
Represents an update failure of SparseChain.

Traits

Represents a position in which transactions are ordered in SparseChain.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/sidebar-items.js index 0872de8708..5b8fd9d27f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":[["InsertCheckpointError","Represents a failure when trying to insert a checkpoint into [`SparseChain`]."],["InsertTxError","Represents a failure when trying to insert a [`Txid`] into [`SparseChain`]."],["UpdateError","Represents an update failure of [`SparseChain`]."]],"struct":[["ChangeSet","The return value of `determine_changeset`."],["SparseChain","This is a non-monotone structure that tracks relevant [`Txid`]s that are ordered by chain position `P`."]],"trait":[["ChainPosition","Represents an position in which transactions are ordered in [`SparseChain`]."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["InsertCheckpointError","Represents a failure when trying to insert a checkpoint into [`SparseChain`]."],["InsertTxError","Represents a failure when trying to insert a [`Txid`] into [`SparseChain`]."],["UpdateError","Represents an update failure of [`SparseChain`]."]],"struct":[["ChangeSet","The return value of `determine_changeset`."],["SparseChain","This is a non-monotone structure that tracks relevant [`Txid`]s that are ordered by chain position `P`."]],"trait":[["ChainPosition","Represents a position in which transactions are ordered in [`SparseChain`]."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.ChangeSet.html index 9f81a5c315..ae49b96bf7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.ChangeSet.html @@ -2,7 +2,7 @@ pub checkpoints: BTreeMap<u32, Option<BlockHash>>, pub txids: BTreeMap<Txid, Option<P>>, }
Expand description

The return value of determine_changeset.

-

Fields§

§checkpoints: BTreeMap<u32, Option<BlockHash>>§txids: BTreeMap<Txid, Option<P>>

Implementations§

Appends the changes in other into self such that applying self afterwards has the same +

Fields§

§checkpoints: BTreeMap<u32, Option<BlockHash>>§txids: BTreeMap<Txid, Option<P>>

Implementations§

Appends the changes of other into self such that applying self afterward has the same effect as sequentially applying the original self and other.

Whether this changeset contains no changes.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
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/bdk_chain/sparse_chain/struct.SparseChain.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.SparseChain.html index 9ff0e1f174..9ca9d71b55 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.SparseChain.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/struct.SparseChain.html @@ -10,7 +10,7 @@ are in the same chain.

Get the checkpoint for the last known tip.

Get the checkpoint at the given height if it exists.

Return the ChainPosition of a txid.

-

This returns None if the transation does not exist.

+

This returns None if the transaction does not exist.

Return a BTreeMap of all checkpoints (block hashes by height).

Return an iterator over checkpoints in a height range, in ascending height order.

Preview changes of updating Self with another chain that connects to it.

@@ -19,8 +19,8 @@ that is exactly the same height as one of self’s checkpoints.

To invalidate from a given checkpoint, update must contain a checkpoint of the same height but different hash. Invalidated checkpoints result in invalidated transactions becoming “unconfirmed”.

-

An error will be returned if an update will result in inconsistencies or if the update does -not properly connect with self.

+

An error will be returned if an update results in inconsistencies or if the update does +not correctly connect with self.

Refer to module-level documentation for more.

Updates SparseChain with another chain that connects to it.

This is equivilant to calling determine_changeset and apply_changeset in sequence.

@@ -38,7 +38,7 @@ removed completely.

This is equivalent to calling clear_mempool_preview and apply_changeset in sequence.

ChangeSet.

Determines the resultant ChangeSet if [Txid] was inserted at position pos.

-

Changes to the [Txid]’s position is allowed (under the rules noted in +

Changes to the [Txid]’s position are allowed (under the rules noted in module-level documentation) and will be reflected in the ChangeSet.

Inserts a given [Txid] at pos.

This is equivilant to calling insert_tx_preview and apply_changeset in sequence.

@@ -46,13 +46,13 @@ removed completely.

If the change would result in a change in block hash of a certain height, insertion would fail.

Insert a checkpoint (BlockId).

-

This is equivilant to calling insert_checkpoint_preview and apply_changeset in +

This is equivalent to calling insert_checkpoint_preview and apply_changeset in sequence.

Iterate over all [Txid]s ordered by their ChainPosition.

Iterate over a sub-range of positioned [Txid]s.

Iterate over a sub-range of positioned [Txid]s, where the range is defined by ChainPosition only.

-

Iterate over a sub-range of positioned [Txid]s, where the range is define by TxHeight +

Iterate over a sub-range of positioned [Txid]s, where the range is defined by TxHeight only.

Attempt to retrieve a FullTxOut of the given outpoint.

This will return Some only if the output’s transaction is in both self and graph.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/trait.ChainPosition.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/trait.ChainPosition.html index b1437e14cf..f3040ab5dc 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/trait.ChainPosition.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sparse_chain/trait.ChainPosition.html @@ -1,13 +1,13 @@ -ChainPosition in bdk_chain::sparse_chain - Rust
pub trait ChainPosition: Debug + Clone + Eq + PartialOrd + Ord + Hash + Send + Sync + 'static {
+ChainPosition in bdk_chain::sparse_chain - Rust
pub trait ChainPosition: Debug + Clone + Eq + PartialOrd + Ord + Hash + Send + Sync + 'static {
     fn height(&self) -> TxHeight;
     fn max_ord_of_height(height: TxHeight) -> Self;
     fn min_ord_of_height(height: TxHeight) -> Self;
 
     fn unconfirmed() -> Self { ... }
-}
Expand description

Represents an position in which transactions are ordered in SparseChain.

+}
Expand description

Represents a position in which transactions are ordered in SparseChain.

ChainPosition implementations must be Ord by TxHeight first.

-

Required Methods§

Get the transaction height of the positon.

-

Get the positon’s upper bound of a given height.

+

Required Methods§

Get the transaction height of the position.

+

Get the position’s upper bound of a given height.

Get the position’s lower bound of a given height.

Provided Methods§

Get the unconfirmed position.

Implementors§

\ No newline at end of file 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 b50bae278b..f503a66ccc 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 @@ -1,9 +1,9 @@ -BlockId in bdk_chain - Rust

Struct bdk_chain::BlockId

source ·
Expand description

A reference to a block in the canonical chain.

+

Fields§

§height: u32

The height of the block.

+
§hash: BlockHash

The hash of the block.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= 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 26cc2f88d8..447bf89729 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,18 +1,18 @@ -FullTxOut in bdk_chain - Rust

Struct bdk_chain::FullTxOut

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

Struct bdk_chain::FullTxOut

source ·
pub struct FullTxOut<I> {
     pub outpoint: OutPoint,
     pub txout: TxOut,
     pub chain_position: I,
     pub spent_by: Option<(I, Txid)>,
     pub is_on_coinbase: bool,
-}
Expand description

A TxOut with as much data as we can retreive about it

-

Fields§

§outpoint: OutPoint

The location of the TxOut

-
§txout: TxOut

The TxOut

+}
Expand description

A TxOut with as much data as we can retrieve about it

+

Fields§

§outpoint: OutPoint

The location of the TxOut.

+
§txout: TxOut

The TxOut.

§chain_position: I

The position of the transaction in outpoint in the overall chain.

§spent_by: Option<(I, 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

+
§is_on_coinbase: bool

Whether this output is on a coinbase transaction.

Implementations§

Whether the utxo is/was/will be spendable at height.

It is spendable if it is not an immature coinbase output and no spending tx has been -confirmed by that heigt.

+confirmed by that height.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html index e7d9c40406..6859e09736 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html @@ -1,36 +1,36 @@ SpkTxOutIndex in bdk_chain - Rust

Struct bdk_chain::SpkTxOutIndex

source ·
pub struct SpkTxOutIndex<I> { /* private fields */ }
Expand description

An index storing TxOuts that have a script pubkey that matches those in a list.

The basic idea is that you insert script pubkeys you care about into the index with -insert_spk and then when you call scan the index will look at any txouts you pass in and +insert_spk and then when you call scan, the index will look at any txouts you pass in and store and index any txouts matching one of its script pubkeys.

-

Each script pubkey is associated with a application defined index script index I which must be -Ord. Usually this is used to associate the derivation index of the script pubkey or even a +

Each script pubkey is associated with an application-defined index script index I, which must be +Ord. Usually, this is used to associate the derivation index of the script pubkey or even a combination of (keychain, derivation_index).

Note there is no harm in scanning transactions that disappear from the blockchain or were never in there in the first place. SpkTxOutIndex is intentionally monotone – you cannot delete or modify txouts that have been indexed. To find out which txouts from the index are actually in the -chain or unspent etc you must use other sources of information like a SparseChain.

+chain or unspent, you must use other sources of information like a SparseChain.

Implementations§

Scans an object containing many txouts.

-

Typically this is used in two situations:

+

Typically, this is used in two situations:

    -
  1. After loading transaction data from disk you may scan over all the txouts to restore all +
  2. After loading transaction data from the disk, you may scan over all the txouts to restore all your txouts.
  3. -
  4. When getting new data from the chain you usually scan it before incorporating it into your chain state.
  5. +
  6. When getting new data from the chain, you usually scan it before incorporating it into your chain state.

See ForEachTxout for the types that support this.

-

Scan a single TxOut for a matching script pubkey, and returns the index that matched the +

Scan a single TxOut for a matching script pubkey and returns the index that matches the script pubkey (if any).

Iterate over all known txouts that spend to tracked script pubkeys.

Finds all txouts on a transaction that has previously been scanned and indexed.

-

Iterates over all outputs with script pubkeys in an index range.

+

Iterates over all the outputs with script pubkeys in an index range.

Returns the txout and script pubkey index of the TxOut at OutPoint.

Returns None if the TxOut hasn’t been scanned or if nothing matching was found there.

Returns the script that has been inserted at the index.

-

If that index hasn’t been inserted yet it will return None.

-

The script pubkeys being tracked by the index.

+

If that index hasn’t been inserted yet, it will return None.

+

The script pubkeys that are being tracked by the index.

Adds a script pubkey to scan for. Returns false and does nothing if spk already exists in the map

-

the index will look for outputs spending to whenever it scans new data.

-

Iterates over a unused script pubkeys in a index range.

-

Here “unused” means that after the script pubkey was stored in the index, the index has +

the index will look for outputs spending to this spk whenever it scans new data.

+

Iterates over all unused script pubkeys in an index range.

+

Here, “unused” means that after the script pubkey was stored in the index, the index has never scanned a transaction output with it.

Example

@@ -41,23 +41,23 @@ never scanned a transaction output with it.

let unused_change_spks = txout_index.unused_spks((change_index, u32::MIN)..(change_index, u32::MAX));

Returns whether the script pubkey at index has been used or not.

-

Here “unused” means that after the script pubkey was stored in the index, the index has +

Here, “unused” means that after the script pubkey was stored in the index, the index has never scanned a transaction output with it.

-

Marks the script pubkey at index as used even though it hasn’t seen an output with it. -This only has an effect when the index had been added to self already and was unused.

-

Returns whether the index was originally present as unused.

+

Marks the script pubkey at index as used even though it hasn’t seen an output spending to it. +This only affects when the index had already been added to self and was unused.

+

Returns whether the index was initially present as unused.

This is useful when you want to reserve a script pubkey for something but don’t want to add -the transaction output using it to the index yet. Other callers will consider index used +the transaction output using it to the index yet. Other callers will consider the index used until you call unmark_used.

Undoes the effect of mark_used. Returns whether the index is inserted back into unused.

Note that if self has scanned an output with this script pubkey then this will have no effect.

Returns the index associated with the script pubkey.

-

Computes total input value going from script pubkeys in the index (sent) and total output +

Computes total input value going from script pubkeys in the index (sent) and the total output value going to script pubkeys in the index (received) in tx. For the sent to be computed -correctly the output being spent must have already been scanned by the index. Calculating -received just uses the transaction outputs directly so will be correct even if it has not +correctly, the output being spent must have already been scanned by the index. Calculating +received just uses the transaction outputs directly, so it will be correct even if it has not been scanned.

Computes the net value that this transaction gives to the script pubkeys in the index and takes from the transaction outputs in the index. Shorthand for calling @@ -65,8 +65,8 @@ been scanned.

Whether any of the inputs of this transaction spend a txout tracked or whether any output matches one of our script pubkeys.

It is easily possible to misuse this method and get false negatives by calling it before you -have scanned the TxOuts the transaction is spending. For example if you want to filter out -all the transactions in a block that are irrelevant you must first scan all the +have scanned the TxOuts the transaction is spending. For example, if you want to filter out +all the transactions in a block that are irrelevant, you must first scan all the transactions in the block and only then use this method.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html index 3c94b98f54..75352d07a5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html @@ -1,5 +1,5 @@ DescriptorExt in bdk_chain - Rust

Trait bdk_chain::DescriptorExt

source ·
pub trait DescriptorExt {
     fn dust_value(&self) -> u64;
 }
Expand description

A trait to extend the functionality of a miniscript descriptor.

-

Required Methods§

Returns the minimum value (in satoshis) that an output should have to be broadcastable.

+

Required Methods§

Returns the minimum value (in satoshis) at which an output is broadcastable.

Implementations on Foreign Types§

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.ForEachTxOut.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.ForEachTxOut.html index 77f74988e5..18f72e5353 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.ForEachTxOut.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.ForEachTxOut.html @@ -1,7 +1,7 @@ ForEachTxOut in bdk_chain - Rust

Trait bdk_chain::ForEachTxOut

source ·
pub trait ForEachTxOut {
     fn for_each_txout(&self, f: impl FnMut((OutPoint, &TxOut)));
 }
Expand description

Trait to do something with every txout contained in a structure.

-

We would prefer just work with things that can give us a Iterator<Item=(OutPoint, &TxOut)> -here but rust’s type system makes it extremely hard to do this (without trait objects).

-

Required Methods§

The provided closure f will called with each outpoint/txout pair.

-

Implementations on Foreign Types§

Implementors§

\ No newline at end of file +

We would prefer to just work with things that can give us an Iterator<Item=(OutPoint, &TxOut)> +here, but rust’s type system makes it extremely hard to do this (without trait objects).

+

Required Methods§

The provided closure f will be called with each outpoint/txout pair.

+

Implementations on Foreign Types§

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/index.html index bbf8c2d5bf..5d593a8d94 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/index.html @@ -1,13 +1,13 @@ bdk_chain::tx_graph - Rust

Module bdk_chain::tx_graph

source ·
Expand description

Module for structures that store and traverse transactions.

-

TxGraph is a monotone structure that inserts transactions and indexes spends. The -Additions structure reports changes of TxGraph, but can also be applied on to a -TxGraph as well. Lastly, TxDescendants is an Iterator which traverses descendants of +

TxGraph is a monotone structure that inserts transactions and indexes the spends. The +Additions structure reports changes of TxGraph but can also be applied to a +TxGraph as well. Lastly, TxDescendants is an Iterator that traverses descendants of a given transaction.

Conflicting transactions are allowed to coexist within a TxGraph. This is useful for identifying and traversing conflicts and descendants of a given transaction.

Previewing and applying changes

Methods that either preview or apply changes to TxGraph will return Additions. -Additions can be applied back on to a TxGraph, or be used to inform persistent storage +Additions can be applied back to a TxGraph or be used to inform persistent storage of the changes to TxGraph.

Expand description

A structure that represents changes to a TxGraph.

-

It is named “additions” because TxGraph is monotone so transactions can only be added and +

It is named “additions” because TxGraph is monotone, so transactions can only be added and not removed.

Refer to module-level documentation for more.

Fields§

§tx: BTreeSet<Transaction>§txout: BTreeMap<OutPoint, TxOut>

Implementations§

Returns true if the Additions is empty (no transactions or txouts).

Iterates over all outpoints contained within Additions.

-

Appends the changes in other into self such that applying self afterwards has the same +

Appends the changes in other into self such that applying self afterward has the same effect as sequentially applying the original self and other.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will called with each outpoint/txout pair.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
The provided closure f will be called with each outpoint/txout pair.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxGraph.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxGraph.html index 627c5da983..49e2136532 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxGraph.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxGraph.html @@ -4,50 +4,50 @@

Iterate over all full transactions in the graph.

Get a transaction by txid. This only returns Some for full transactions.

Refer to get_txout for getting a specific [TxOut].

-

Obtains a single tx output (if any) at specified outpoint.

+

Obtains a single tx output (if any) at the specified outpoint.

Returns a BTreeMap of vout to output of the provided txid.

Calculates the fee of a given transaction. Returns 0 if tx is a coinbase transaction. Returns Some(_) if we have all the TxOuts being spent by tx in the graph (either as -the full transactions or individual txouts). If the returned value is negative then the +the full transactions or individual txouts). If the returned value is negative, then the transaction is invalid according to the graph.

Returns None if we’re missing an input for the tx in the graph.

Note tx does not have to be in the graph for this to work.

-

Contruct a new TxGraph from a list of transaction.

+

Construct a new TxGraph from a list of transactions.

Inserts the given [TxOut] at [OutPoint].

Note this will ignore the action if we already have the full transaction that the txout is -alledged to be on (even if it doesn’t match it!).

+alleged to be on (even if it doesn’t match it!).

Inserts the given transaction into TxGraph.

The Additions returned will be empty if tx already exists.

Extends this graph with another so that self becomes the union of the two sets of transactions.

-

The returned Additions is the set difference of update and self (transactions that +

The returned Additions is the set difference between update and self (transactions that exist in update but not in self).

Applies Additions to TxGraph.

Previews the resultant Additions when Self is updated against the update graph.

-

The Additions would be the set difference of update and self (transactions that +

The Additions would be the set difference between update and self (transactions that exist in update but not in self).

Returns the resultant Additions if the given transaction is inserted. Does not actually mutate Self.

-

The Additions result will be empty if tx already existed in self.

+

The Additions result will be empty if tx already exists in self.

Returns the resultant Additions if the given txout is inserted at outpoint. Does not mutate self.

The Additions result will be empty if the outpoint (or a full transaction containing the outpoint) already existed in self.

The transactions spending from this output.

TxGraph allows conflicting transactions within the graph. Obviously the transactions in -the returned will never be in the same blockchain.

+the returned set will never be in the same active-chain.

Iterates over the transactions spending from txid.

The iterator item is a union of (vout, txid-set) where:

  • vout is the provided txid’s outpoint that is being spent
  • -
  • txid-set is the set of txids that is spending the vout
  • +
  • txid-set is the set of txids spending the vout.

Iterate over all partial transactions (outputs only) in the graph.

-

Creates an iterator that both filters and maps descendants from the starting txid.

+

Creates an iterator that filters and maps descendants from the starting txid.

The supplied closure takes in two inputs (depth, descendant_txid):

    -
  • depth is the distance between the starting txid and the descendant_txid. I.e. if the -descendant is spending an output of the starting txid, the depth will be 1.
  • +
  • depth is the distance between the starting txid and the descendant_txid. I.e., if the +descendant is spending an output of the starting txid; the depth will be 1.
  • descendant_txid is the descendant’s txid which we are considering to walk.

The supplied closure returns an Option<T>, allowing the caller to map each node it vists @@ -55,13 +55,13 @@ and decide whether to visit descendants.

Creates an iterator that both filters and maps conflicting transactions (this includes descendants of directly-conflicting transactions, which are also considered conflicts).

Refer to Self::walk_descendants for walk_map usage.

-

Given a transaction, return an iterator of txids which directly conflict with the given +

Given a transaction, return an iterator of txids that directly conflict with the given transaction’s inputs (spends). The conflicting txids are returned with the given transaction’s vin (in which it conflicts).

Note that this only returns directly conflicting txids and does not include descendants of those txids (which are technically also conflicting).

Whether the graph has any transactions or outputs in it.

-

Trait Implementations§

Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The provided closure f will called with each outpoint/txout pair.
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The provided closure f will be called with each outpoint/txout pair.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.BranchStrategy.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.BranchStrategy.html index 5350a53e80..4639c84cd7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.BranchStrategy.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.BranchStrategy.html @@ -4,7 +4,7 @@ SkipBoth, }
Expand description

Strategy in which we should branch.

Variants§

§

Continue

We continue exploring subtrees of this node, starting with the inclusion branch.

-
§

SkipInclusion

We continue exploring ONY the omission branch of this node, skipping the inclusion branch.

+
§

SkipInclusion

We continue exploring ONLY the omission branch of this node, skipping the inclusion branch.

§

SkipBoth

We skip both the inclusion and omission branches of this node.

Implementations§

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html index d3696a7e02..c60bc477d7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html @@ -1,12 +1,12 @@ -ExcessStrategyKind in bdk_coin_select - Rust
pub enum ExcessStrategyKind {
+ExcessStrategyKind in bdk_coin_select - Rust
pub enum ExcessStrategyKind {
     ToFee,
     ToRecipient,
     ToDrain,
-}

Variants§

§

ToFee

§

ToRecipient

§

ToDrain

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used +}

Variants§

§

ToFee

§

ToRecipient

§

ToDrain

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
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. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+operator. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

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 df271aec34..4c241ffba5 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 @@ -1,4 +1,4 @@ -SelectionConstraint in bdk_coin_select - Rust
pub enum SelectionConstraint {
+SelectionConstraint in bdk_coin_select - Rust
pub enum SelectionConstraint {
     TargetValue,
     TargetFee,
     MinAbsoluteFee,
@@ -7,9 +7,9 @@
 
§

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§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/fn.coin_select_bnb.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/fn.coin_select_bnb.html index 96795ab210..03b9026cf5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/fn.coin_select_bnb.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/fn.coin_select_bnb.html @@ -2,13 +2,13 @@ in Bitcoin Core).

The differences are as follows:

    -
  • In additional to working with effective values, we also work with absolute values. -This way, we can use bounds of absolute values to enforce min_absolute_fee (which is used by +
  • In addition to working with effective values, we also work with absolute values. +This way, we can use bounds of the absolute values to enforce min_absolute_fee (which is used by RBF), and max_extra_target (which can be used to increase the possible solution set, given that the sender is okay with sending extra to the receiver).

Murch’s Master Thesis: https://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf Bitcoin Core Implementation: https://github.com/bitcoin/bitcoin/blob/23.x/src/wallet/coinselection.cpp#L65

-

TODO: Another optimization we could do is figure out candidate with smallest waste, and +

TODO: Another optimization we could do is figure out candidates with the smallest waste, and if we find a result with waste equal to this, we can just break.

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/index.html index 4bdbe77069..85a19367f8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/index.html @@ -1,4 +1,4 @@ -bdk_coin_select - Rust

Crate bdk_coin_select

source ·

Structs

Bnb represents the current state of the BnB algorithm.
CoinSelector is responsible for selecting and deselecting from a set of canididates.
A WeightedValue represents an input candidate for CoinSelector. This can either be a +bdk_coin_select - Rust

Crate bdk_coin_select

source ·

Structs

Bnb represents the current state of the BnB algorithm.
CoinSelector selects and deselects from a set of candidates.
A WeightedValue represents an input candidate for CoinSelector. This can either be a single UTXO, or a group of UTXOs that should be spent together.

Enums

Determines how we should limit rounds of branch and bound.
Strategy in which we should branch.

Constants

Txin “base” fields include outpoint (32+4) and nSequence (4). This does not include scriptSigLen or scriptSig.

Functions

This is a variation of the Branch and Bound Coin Selection algorithm designed by Murch (as seen in Bitcoin Core).

Type Definitions

Closure to decide the branching strategy, alongside a score (if the current selection is a diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/sidebar-items.js index 90be17ea9d..8c1ff9aba0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":[["TXIN_BASE_WEIGHT","Txin “base” fields include `outpoint` (32+4) and `nSequence` (4). This does not include `scriptSigLen` or `scriptSig`."]],"enum":[["BnbLimit","Determines how we should limit rounds of branch and bound."],["BranchStrategy","Strategy in which we should branch."],["ExcessStrategyKind",""],["SelectionConstraint",""]],"fn":[["coin_select_bnb","This is a variation of the Branch and Bound Coin Selection algorithm designed by Murch (as seen in Bitcoin Core)."]],"struct":[["Bnb","[`Bnb`] represents the current state of the BnB algorithm."],["BnbIter",""],["CoinSelector","[`CoinSelector`] is responsible for selecting and deselecting from a set of canididates."],["CoinSelectorOpt",""],["ExcessStrategy",""],["Selection",""],["SelectionError",""],["WeightedValue","A [`WeightedValue`] represents an input candidate for [`CoinSelector`]. This can either be a single UTXO, or a group of UTXOs that should be spent together."]],"type":[["DecideStrategy","Closure to decide the branching strategy, alongside a score (if the current selection is a candidate solution)."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["TXIN_BASE_WEIGHT","Txin “base” fields include `outpoint` (32+4) and `nSequence` (4). This does not include `scriptSigLen` or `scriptSig`."]],"enum":[["BnbLimit","Determines how we should limit rounds of branch and bound."],["BranchStrategy","Strategy in which we should branch."],["ExcessStrategyKind",""],["SelectionConstraint",""]],"fn":[["coin_select_bnb","This is a variation of the Branch and Bound Coin Selection algorithm designed by Murch (as seen in Bitcoin Core)."]],"struct":[["Bnb","[`Bnb`] represents the current state of the BnB algorithm."],["BnbIter",""],["CoinSelector","[`CoinSelector`] selects and deselects from a set of candidates."],["CoinSelectorOpt",""],["ExcessStrategy",""],["Selection",""],["SelectionError",""],["WeightedValue","A [`WeightedValue`] represents an input candidate for [`CoinSelector`]. This can either be a single UTXO, or a group of UTXOs that should be spent together."]],"type":[["DecideStrategy","Closure to decide the branching strategy, alongside a score (if the current selection is a candidate solution)."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Bnb.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Bnb.html index 4eb7615f60..1d5c0a5ce4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Bnb.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Bnb.html @@ -9,11 +9,11 @@

Fields§

§pool: Vec<(usize, &'c WeightedValue)>§pool_pos: usize§best_score: S§selection: CoinSelector<'c>§rem_abs: u64§rem_eff: i64

Implementations§

Creates a new Bnb.

Turns our Bnb state into an iterator.

strategy should assess our current selection/node and determine the branching strategy and -whether this selection is a candidate solution (if so, return the score of the selection).

+whether this selection is a candidate solution (if so, return the selection score).

Attempt to backtrack to the previously selected node’s omission branch, return false otherwise (no more solutions).

-

Continue down this branch, skip inclusion branch if specified.

-

Compare advertised score with current best. New best will be the smaller value. Return true +

Continue down this branch and skip the inclusion branch if specified.

+

Compare the advertised score with the current best. The new best will be the smaller value. Return true if best is replaced.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelector.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelector.html index 88b82e56eb..8d4c316e69 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelector.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelector.html @@ -1,16 +1,16 @@ -CoinSelector in bdk_coin_select - Rust
pub struct CoinSelector<'a> {
+CoinSelector in bdk_coin_select - Rust
pub struct CoinSelector<'a> {
     pub opts: &'a CoinSelectorOpt,
     pub candidates: &'a Vec<WeightedValue>,
     /* private fields */
-}
Expand description

CoinSelector is responsible for selecting and deselecting from a set of canididates.

-

Fields§

§opts: &'a CoinSelectorOpt§candidates: &'a Vec<WeightedValue>

Implementations§

Weight sum of all selected inputs.

+}
Expand description

CoinSelector selects and deselects from a set of candidates.

+

Fields§

§opts: &'a CoinSelectorOpt§candidates: &'a Vec<WeightedValue>

Implementations§

Weight sum of all selected inputs.

Effective value sum of all selected inputs.

Absolute value sum of all selected inputs.

Waste sum of all selected inputs.

Current weight of template tx + selected inputs.

Current excess.

This is the effective target value.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html index 0b0e5ce213..c155083c6e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html @@ -9,13 +9,13 @@ pub spend_drain_weight: u32, pub min_drain_value: u64, }

Fields§

§target_value: Option<u64>

The value we need to select. -If the value is None then the selection will be complete if it can pay for the drain -output and satisfy the other constraints (e.g. minimum fees).

+If the value is None, then the selection will be complete if it can pay for the drain +output and satisfy the other constraints (e.g., minimum fees).

§max_extra_target: u64

Additional leeway for the target value.

§target_feerate: f32

The feerate we should try and achieve in sats per weight unit.

§long_term_feerate: Option<f32>

The feerate

-
§min_absolute_fee: u64

The minimum absolute fee. I.e. needed for RBF.

-
§base_weight: u32

The weight of the template transaction including fixed fields and outputs.

+
§min_absolute_fee: u64

The minimum absolute fee. I.e., needed for RBF.

+
§base_weight: u32

The weight of the template transaction, including fixed fields and outputs.

§drain_weight: u32

Additional weight if we include the drain (change) output.

§spend_drain_weight: u32

Weight of spending the drain (change) output in the future.

§min_drain_value: u64

Minimum value allowed for a drain (change) output.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.ExcessStrategy.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.ExcessStrategy.html index 605d365a86..7b658b8b77 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.ExcessStrategy.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.ExcessStrategy.html @@ -1,11 +1,11 @@ -ExcessStrategy in bdk_coin_select - Rust
pub struct ExcessStrategy {
+ExcessStrategy in bdk_coin_select - Rust
pub struct ExcessStrategy {
     pub recipient_value: Option<u64>,
     pub drain_value: Option<u64>,
     pub fee: u64,
     pub weight: u32,
     pub waste: i64,
-}

Fields§

§recipient_value: Option<u64>§drain_value: Option<u64>§fee: u64§weight: u32§waste: i64

Implementations§

Returns feerate in sats/wu.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+}

Fields§

§recipient_value: Option<u64>§drain_value: Option<u64>§fee: u64§weight: u32§waste: i64

Implementations§

Returns feerate in sats/wu.

+

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Selection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Selection.html index 5e62511f4e..e02ebfcb99 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Selection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.Selection.html @@ -1,9 +1,9 @@ -Selection in bdk_coin_select - Rust

Struct bdk_coin_select::Selection

source ·
pub struct Selection {
+Selection in bdk_coin_select - Rust

Struct bdk_coin_select::Selection

source ·
pub struct Selection {
     pub selected: BTreeSet<usize>,
     pub excess: u64,
     pub excess_strategies: HashMap<ExcessStrategyKind, ExcessStrategy>,
-}

Fields§

§selected: BTreeSet<usize>§excess: u64§excess_strategies: HashMap<ExcessStrategyKind, ExcessStrategy>

Implementations§

Returns the ExcessStrategy that results in the least waste.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+}

Fields§

§selected: BTreeSet<usize>§excess: u64§excess_strategies: HashMap<ExcessStrategyKind, ExcessStrategy>

Implementations§

Returns the ExcessStrategy that results in the least waste.

+

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.SelectionError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.SelectionError.html index 3af72569ea..f25456a262 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.SelectionError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.SelectionError.html @@ -1,4 +1,4 @@ -SelectionError in bdk_coin_select - Rust
pub struct SelectionError { /* private fields */ }

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬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§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+SelectionError in bdk_coin_select - Rust
pub struct SelectionError { /* private fields */ }

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬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§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.WeightedValue.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.WeightedValue.html index e5dbdabe19..7298fb14e0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.WeightedValue.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.WeightedValue.html @@ -9,7 +9,7 @@ single UTXO, or a group of UTXOs that should be spent together.

§weight: u32

Total weight of including this/these UTXO(s). txin fields: prevout, nSequence, scriptSigLen, scriptSig, scriptWitnessLen, scriptWitness should all be included.

-
§input_count: usize

Total number of inputs; so we can calculate extra varint weight due to vin len changes.

+
§input_count: usize

The total number of inputs; so we can calculate extra varint weight due to vin length changes.

§is_segwit: bool

Whether this WeightedValue contains at least one segwit spend.

Implementations§

Create a new WeightedValue that represents a single input.

satisfaction_weight is the weight of scriptSigLen + scriptSig + scriptWitnessLen + scriptWitness.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html index e28ba04e41..befb43943b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html @@ -3,9 +3,9 @@ pub last_active_indices: BTreeMap<K, u32>, }
Expand description

The result of ElectrumExt::scan.

Fields§

§chain_update: SparseChain<P>

The internal [SparseChain] update.

-
§last_active_indices: BTreeMap<K, u32>

The last keychain script pubkey indices which had transaction histories.

+
§last_active_indices: BTreeMap<K, u32>

The last keychain script pubkey indices, which had transaction histories.

Implementations§

Return a list of missing full transactions that are required to inflate_update.

-

Transform the ElectrumUpdate into a [KeychainScan] which can be applied to a +

Transform the ElectrumUpdate into a [KeychainScan], which can be applied to a tracker.

This will fail if there are missing full transactions not provided via new_txs.

Creates ElectrumUpdate<K, ConfirmationTime> from ElectrumUpdate<K, TxHeight>.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html index d390b5d827..ca20266439 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html @@ -12,7 +12,7 @@ transactions.

  • local_chain: the most recent block hashes present locally
  • keychain_spks: keychains that we want to scan transactions for
  • -
  • txids: transactions that we want updated [ChainPosition]s for
  • +
  • txids: transactions for which we want the updated [ChainPosition]s
  • outpoints: transactions associated with these outpoints (residing, spending) that we want to included in the update
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html index 98a87bcaee..9cac6454be 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html @@ -7,7 +7,7 @@
  • local_chain: the most recent block hashes present locally
  • keychain_spks: keychains that we want to scan transactions for
  • -
  • txids: transactions that we want updated ChainPositions for
  • +
  • txids: transactions for which we want updated ChainPositions
  • outpoints: transactions associated with these outpoints (residing, spending) that we want to included in the update
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html index a9dc3f9358..b17811c8fa 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html @@ -8,7 +8,7 @@
  • local_chain: the most recent block hashes present locally
  • keychain_spks: keychains that we want to scan transactions for
  • -
  • txids: transactions that we want updated ChainPositions for
  • +
  • txids: transactions for which we want updated ChainPositions
  • outpoints: transactions associated with these outpoints (residing, spending) that we want to included in the update
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 6cb0a391ed..48b72ec910 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 @@ -3,7 +3,7 @@ InvalidMagicBytes([u8; 12]), }
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([u8; 12])

Magic bytes do not match expected.

+
§

InvalidMagicBytes([u8; 12])

Magic bytes do not match what is expected.

Trait Implementations§

Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of 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 92de990200..6f3c429da3 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 @@ -2,8 +2,8 @@ Io(Error), Bincode(ErrorKind), }

Expand description

Error type for EntryIter.

-

Variants§

§

Io(Error)

Failure to read from file.

-
§

Bincode(ErrorKind)

Failure to decode data from file.

+

Variants§

§

Io(Error)

Failure to read from the file.

+
§

Bincode(ErrorKind)

Failure to decode data from the file.

Trait Implementations§

Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.KeychainStore.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.KeychainStore.html index 2c00e568e4..fdd4bd8682 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.KeychainStore.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.KeychainStore.html @@ -1,32 +1,32 @@ KeychainStore in bdk_file_store - Rust

pub struct KeychainStore<K, P> { /* private fields */ }
Expand description

Persists an append only list of KeychainChangeSet<K,P> to a single file. [KeychainChangeSet<K,P>] record the changes made to a [KeychainTracker<K,P>].

Implementations§

Creates a new store from a File.

-

The file must have been opened with read, write permissions.

-

Creates or loads a a store from db_path. If no file exists there it will be created.

-

Iterates over the stored changeset from first to last changing the seek position at each +

The file must have been opened with read and write permissions.

+

Creates or loads a store from db_path. If no file exists there, it will be created.

+

Iterates over the stored changeset from first to last, changing the seek position at each iteration.

-

The iterator may fail to read an entry and therefore return an error. However the first time -it returns an error will be the last. After doing so the iterator will always yield None.

+

The iterator may fail to read an entry and therefore return an error. However, the first time +it returns an error will be the last. After doing so, the iterator will always yield None.

WARNING: This method changes the write position in the underlying file. You should always iterate over all entries until None is returned if you want your next write to go -at the end, otherwise you will write over existing enties.

+at the end; otherwise, you will write over existing entries.

Loads all the changesets that have been stored as one giant changeset.

-

This function returns a tuple of the aggregate changeset and a result which indicates +

This function returns a tuple of the aggregate changeset and a result that indicates whether an error occurred while reading or deserializing one of the entries. If so the changeset will consist of all of those it was able to read.

-

You should usually check the error. In many applications it may make sense to do a full -wallet scan with a stop gap after getting an error since it is likely that one of the -changesets it was unable to read changed the derivation indicies of the tracker.

+

You should usually check the error. In many applications, it may make sense to do a full +wallet scan with a stop-gap after getting an error, since it is likely that one of the +changesets it was unable to read changed the derivation indices of the tracker.

WARNING: This method changes the write position of the underlying file. The next changeset will be written over the erroring entry (or the end of the file if none existed).

-

Reads and applies all the changesets stored sequentially to tracker, stopping when it fails +

Reads and applies all the changesets stored sequentially to the tracker, stopping when it fails to read the next one.

WARNING: This method changes the write position of the underlying file. The next changeset will be written over the erroring entry (or the end of the file if none existed).

-

Append a new changeset to the file and truncate file to the end of the appended changeset.

-

The truncation is to avoid the possibility of having a valid, but inconsistent changeset +

Append a new changeset to the file and truncate the file to the end of the appended changeset.

+

The truncation is to avoid the possibility of having a valid but inconsistent changeset directly after the appended changeset.

-

Trait Implementations§

Formats the value using the given formatter. Read more
The error the backend returns when it fails to write.
The error the backend returns when it fails to load.
Appends a new changeset to the persistance backend. Read more
Applies all the changesets the backend has received to tracker.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Trait Implementations§

Formats the value using the given formatter. Read more
The error the backend returns when it fails to write.
The error the backend returns when it fails to load.
Appends a new changeset to the persistent backend. Read more
Applies all the changesets the backend has received to tracker.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/enum.ElectrumCommands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/enum.ElectrumCommands.html index 22a6248d83..6eaa0f257d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/enum.ElectrumCommands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/enum.ElectrumCommands.html @@ -10,13 +10,13 @@ unconfirmed: bool, scan_options: ScanOptions, }, -}

Variants§

§

Scan

Fields

§stop_gap: usize

When a gap this large has been found for a keychain it will stop.

-
§scan_options: ScanOptions

Scans the addresses in the wallet using esplora API.

-
§

Sync

Fields

§unused_spks: bool

Scan all the unused addresses

-
§all_spks: bool

Scan every address that you have derived

-
§utxos: bool

Scan unspent outpoints for spends or changes to confirmation status of residing tx

-
§unconfirmed: bool

Scan unconfirmed transactions for updates

-
§scan_options: ScanOptions

Scans particular addresses using esplora API

+}

Variants§

§

Scan

Fields

§stop_gap: usize

When a gap this large has been found for a keychain, it will stop.

+
§scan_options: ScanOptions

Scans the addresses in the wallet using the esplora API.

+
§

Sync

Fields

§unused_spks: bool

Scan all the unused addresses.

+
§all_spks: bool

Scan every address that you have derived.

+
§utxos: bool

Scan unspent outpoints for spends or changes to confirmation status of residing tx.

+
§unconfirmed: bool

Scan unconfirmed transactions for updates.

+
§scan_options: ScanOptions

Scans particular addresses using the esplora API.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/struct.ScanOptions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/struct.ScanOptions.html index 09fcf1d00a..a159c4e348 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/struct.ScanOptions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_electrum_example/struct.ScanOptions.html @@ -1,6 +1,6 @@ ScanOptions in keychain_tracker_electrum_example - Rust

pub struct ScanOptions {
     pub batch_size: usize,
-}

Fields§

§batch_size: usize

Set batch size for each script_history call to electrum client

+}

Fields§

§batch_size: usize

Set batch size for each script_history call to electrum client.

Trait Implementations§

Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Deprecated, replaced with CommandFactory::command
Deprecated, replaced with CommandFactory::command_for_update
Build a [Command] that can instantiate Self. Read more
Build a [Command] that can update self. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Parse from std::env::args_os(), exit on error
Parse from std::env::args_os(), return Err on error.
Parse from iterator, exit on error
Parse from iterator, return Err on error.
Update from iterator, exit on error
Update from iterator, return Err on error.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_esplora_example/enum.EsploraCommands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_esplora_example/enum.EsploraCommands.html index 489169199e..9251b64240 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_esplora_example/enum.EsploraCommands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_esplora_example/enum.EsploraCommands.html @@ -10,13 +10,13 @@ unconfirmed: bool, scan_options: ScanOptions, }, -}

Variants§

§

Scan

Fields

§stop_gap: usize

When a gap this large has been found for a keychain it will stop.

-
§scan_options: ScanOptions

Scans the addresses in the wallet using esplora API.

-
§

Sync

Fields

§unused_spks: bool

Scan all the unused addresses

-
§all_spks: bool

Scan every address that you have derived

-
§utxos: bool

Scan unspent outpoints for spends or changes to confirmation status of residing tx

-
§unconfirmed: bool

Scan unconfirmed transactions for updates

-
§scan_options: ScanOptions

Scans particular addresses using esplora API

+}

Variants§

§

Scan

Fields

§stop_gap: usize

When a gap this large has been found for a keychain, it will stop.

+
§scan_options: ScanOptions

Scans the addresses in the wallet using the esplora API.

+
§

Sync

Fields

§unused_spks: bool

Scan all the unused addresses.

+
§all_spks: bool

Scan every address that you have derived.

+
§utxos: bool

Scan unspent outpoints for spends or changes to confirmation status of residing tx.

+
§unconfirmed: bool

Scan unconfirmed transactions for updates.

+
§scan_options: ScanOptions

Scans particular addresses using esplora API.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.AddressCmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.AddressCmd.html index 8f318a9788..696d46bd7a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.AddressCmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.AddressCmd.html @@ -5,8 +5,8 @@ change: bool, }, Index, -}

Variants§

§

Next

Get the next unused address

-
§

New

Get a new address regardless if the existing ones haven’t been used

+}

Variants§

§

Next

Get the next unused address.

+
§

New

Get a new address regardless of the existing unused addresses.

§

List

Fields

§change: bool

List all addresses

§

Index

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.Commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.Commands.html index 0d66266e46..cc85872d91 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.Commands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.Commands.html @@ -12,10 +12,10 @@ address: Address, coin_select: CoinSelectionAlgo, }, -}

Variants§

§

ChainSpecific(C)

§

Address

Fields

§addr_cmd: AddressCmd

Address generation and inspection

-
§

Balance

Get the wallet balance

-
§

TxOut

Fields

§txout_cmd: TxOutCmd

TxOut related commands

-
§

Send

Fields

§value: u64
§address: Address
§coin_select: CoinSelectionAlgo

Send coins to an address

+}

Variants§

§

ChainSpecific(C)

§

Address

Fields

§addr_cmd: AddressCmd

Address generation and inspection.

+
§

Balance

Get the wallet balance.

+
§

TxOut

Fields

§txout_cmd: TxOutCmd

TxOut related commands.

+
§

Send

Fields

§value: u64
§address: Address
§coin_select: CoinSelectionAlgo

Send coins to an address.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.TxOutCmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.TxOutCmd.html index 6c0717aabd..82695a7a3e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.TxOutCmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/enum.TxOutCmd.html @@ -5,10 +5,10 @@ confirmed: bool, unconfirmed: bool, }, -}

Variants§

§

List

Fields

§spent: bool

Return only spent outputs

-
§unspent: bool

Return only unspent outputs

-
§confirmed: bool

Return only confirmed outputs

-
§unconfirmed: bool

Return only unconfirmed outputs

+}

Variants§

§

List

Fields

§spent: bool

Return only spent outputs.

+
§unspent: bool

Return only unspent outputs.

+
§confirmed: bool

Return only confirmed outputs.

+
§unconfirmed: bool

Return only unconfirmed outputs.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Assign values from ArgMatches to self.
Assign values from ArgMatches to self.
Append to [Command] so it can instantiate Self. Read more
Append to [Command] so it can update self. Read more
Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/index.html index d2b14bdc88..9971e08095 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/index.html @@ -1 +1 @@ -keychain_tracker_example_cli - Rust

\ No newline at end of file +keychain_tracker_example_cli - Rust
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/sidebar-items.js index 9e66c98215..e3f5ee79c4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":[["AddressCmd",""],["CoinSelectionAlgo",""],["Commands",""],["Keychain",""],["TxOutCmd",""]],"externcrate":[["anyhow",""]],"fn":[["create_tx",""],["handle_commands",""],["init",""],["planned_utxos",""],["run_address_cmd",""],["run_balance_cmd",""],["run_txo_cmd",""]],"struct":[["AddrsOutput","A structure defining output of a AddressCmd execution."],["Args",""]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["AddressCmd",""],["CoinSelectionAlgo",""],["Commands",""],["Keychain",""],["TxOutCmd",""]],"externcrate":[["anyhow",""]],"fn":[["create_tx",""],["handle_commands",""],["init",""],["planned_utxos",""],["run_address_cmd",""],["run_balance_cmd",""],["run_txo_cmd",""]],"struct":[["AddrsOutput","A structure defining the output of an [`AddressCmd`]` execution."],["Args",""]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/struct.AddrsOutput.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/struct.AddrsOutput.html index dfd44b09d5..d22454b33e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/struct.AddrsOutput.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/keychain_tracker_example_cli/struct.AddrsOutput.html @@ -1,4 +1,4 @@ -AddrsOutput in keychain_tracker_example_cli - Rust
pub struct AddrsOutput { /* private fields */ }
Expand description

A structure defining output of a AddressCmd execution.

+AddrsOutput in keychain_tracker_example_cli - Rust
pub struct AddrsOutput { /* private fields */ }
Expand description

A structure defining the output of an AddressCmd` execution.

Trait Implementations§

Deserialize this value from the given Serde deserializer. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of 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 ae9d1f9a40..01d9dff41a 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,15 +1,15 @@ var searchIndex = JSON.parse('{\ -"bdk":{"doc":"bdk","t":[13,13,13,13,13,4,13,3,13,13,13,13,13,2,13,13,13,13,13,13,4,13,3,13,13,13,13,13,13,13,2,13,13,13,3,13,2,13,4,8,2,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,0,14,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,11,11,11,0,12,12,12,11,11,11,2,11,2,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,10,5,11,11,11,11,11,11,11,0,11,12,12,12,12,12,12,13,6,4,2,4,3,6,8,13,6,8,16,6,4,3,13,13,2,8,4,13,13,6,13,13,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,5,5,5,5,13,13,4,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,8,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,4,3,3,13,8,13,13,4,13,13,6,6,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,12,11,11,11,11,11,5,3,13,8,3,6,4,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,13,3,13,13,4,3,13,13,3,8,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bip32","BnBNoExactMatch","BnBTotalTriesExceeded","ChecksumMismatch","Descriptor","Error","External","FeeRate","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","Foreign","Generic","HdKeyPaths","InsufficientFunds","Internal","InvalidOutpoint","InvalidPolicyPathError","IrreplaceableTransaction","Key","KeychainKind","Local","LocalUtxo","Miniscript","MiniscriptPsbt","MissingKeyOrigin","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","Psbt","SignOptions","Signer","SpendingPolicyRequired","TransactionConfirmed","TransactionDetails","TransactionNotFound","TxBuilder","UnknownUtxo","Utxo","Vbytes","Wallet","WeightedUtxo","as_byte","as_ref","as_sat_per_vb","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","check_base32","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","confirmation_time","confirmation_time","default","default_min_relay_fee","derivation_index","descriptor","descriptor","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","fee","fee_vb","fee_wu","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fragment","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_btc_per_kvb","from_sat_per_kvb","from_sat_per_kwu","from_sat_per_vb","from_vb","from_wu","hash","hash","into","into","into","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","partial_cmp","partial_cmp","provide","psbt","received","satisfaction_weight","sent","serialize","serialize","serialize","signer","sub","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction","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","txid","txout","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","utxo","vbytes","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet","write_base32","available","needed","required","required","outpoint","psbt_input","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","DescriptorXKey","ExtendedDescriptor","ExtractPolicy","Hardened","HdKeyPaths","IntoWalletDescriptor","Key","KeyMap","Legacy","Miniscript","None","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Unhardened","Wildcard","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","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_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","contains_raw_pkh","derivation_path","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","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","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from_ast","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","hash","hash","into","into","into","into","into","into","into_inner","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_non_malleable","iter","iter_pk","lift","lift","lift_check","matches","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","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","origin","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","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","template","to_owned","to_owned","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_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","vzip","vzip","wildcard","within_resource_limits","xkey","calc_checksum","calc_checksum_bytes","get_checksum","get_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2Wpkh","P2Wpkh_P2Sh","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","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","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","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","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","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","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","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","encode","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","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_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_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","sig_type","sorted_node","test_networks","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","AddressIndex","AddressInfo","Balance","Descriptor","IsDust","LastUnused","New","NewError","Peek","Persist","Update","UpdateError","Wallet","add","add_signer","address","apply_update","as_chain_graph","as_graph","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","cancel_tx","checkpoints","clone","clone_into","coin_selection","commit","confirmed","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_address","get_balance","get_descriptor_for_keychain","get_internal_address","get_psbt_input","get_signers","get_tx","get_utxo","immature","index","insert_checkpoint","insert_tx","into","into","into","into","into","is_dust","is_mine","keychain","keychanins","latest_checkpoint","list_transactions","list_unspent","network","new","new_no_persist","next_derivation_index","policies","provide","public_descriptor","secp_ctx","serialize","sign","signer","spks_of_all_keychains","spks_of_keychain","staged","to_owned","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","tx_builder","type_id","type_id","type_id","type_id","type_id","untrusted_pending","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Excess","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","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","from","from","from","from","from","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","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","amount","change_fee","dust_threshold","fee","remaining_amount","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","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","eq","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","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_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","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","Untouched","add_data","add_foreign_utxo","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","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"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Error","","","","bdk::Utxo","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["BIP32 error","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Descriptor checksum mismatch","Error related to the parsing and usage of descriptors","Errors that can be thrown by the Wallet","External","Fee rate","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","A UTXO owned by another wallet.","Generic error","","Wallet’s UTXO set is not enough to cover recipient’s …","Internal, usually used for change outputs","Requested outpoint doesn’t exist in the tx (vout greater …","Error while extracting and manipulating policies","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Error while working with keys","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","Miniscript error","Miniscript PSBT error","In order to use the TxBuilder::add_global_xpubs option …","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Partially signed bitcoin transaction error","","Signing error","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","A wallet transaction","Thrown when a tx is not found in the internal database","","Happens when trying to spend an UTXO that is not in the …","An unspent transaction output (UTXO).","Trait implemented by types that can be used to measure …","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","Return the value as satoshi/vbyte","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","If the transaction is confirmed, contains height and Unix …","","Create a new FeeRate with the default min relay fee value","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","Fee value in sats if it was available.","Calculate absolute fee in Satoshis using size in virtual …","Calculate absolute fee in Satoshis using size in weight …","","","","","","","","","Macro to write descriptor fragments with code","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Calculate fee rate from fee and vbytes.","Calculate fee rate from fee and weight units (wu).","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","","","","Additional functions on the rust-bitcoin …","Received value (sats) Sum of owned outputs of this …","The weight of the witness data and scriptSig expressed in …","Sent value (sats) Sum of owned inputs of this transaction.","","","","","","","","","","","","","","Optional transaction","","","","","","","","","","","","","","","Transaction id","Get the TxOut of the UTXO","Transaction output","","","","","","","","The UTXO","Convert weight units to virtual bytes.","Get the version of BDK at runtime","","","","","","","","Wallet","","Sats available for spending","Sats needed for some transaction","Required fee rate (satoshi/vbyte)","Required fee absolute value (satoshi)","The location of the output.","The information about the input we require to add it to a …","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","An extended key with origin, derivation path, and wildcard.","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Unhardened wildcard, e.g. *h","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Alias type for a map of public key to secret key","Legacy ScriptContext To be used as P2SH scripts For …","Top-level script AST type","No wildcard","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Unhardened wildcard, e.g. *","Whether a descriptor has a wildcard in it","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","Replaces all wildcards (i.e. /*) in the descriptor with a …","","","","","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","The derivation path","Deprecated name for [at_derivation_index].","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","Encode as a Bitcoin script","","","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending policy","","","Utility method for deriving the descriptor at each index …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. /*.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extracts the AstElem representing the root of the …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds conversion of miniscript into Policy […","Compares this key with a keysource and returns the …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the Abstract Syntax Tree(","Origin information","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","","","Get the len of public key when serialized based on context …","","","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Descriptor templates","","","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","","","","","The correctness and malleability type information for the …","","","","","","","Computes the scriptSig that will be in place for an …","","","","","","","Whether the descriptor is wildcard","Whether the miniscript can exceed the resource …","The extended key","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Compute the checksum of a descriptor","Compute the checksum bytes of a descriptor","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","Key-related error","Error while extracting and manipulating policies","","","","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to …","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","Trait for descriptor templates that can be built into a …","Type alias for the return type of DescriptorTemplate, …","P2PKH template. Expands to a descriptor pkh(key)","P2WPKH template. Expands to a descriptor wpkh(key)","P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. [u8;32]","Returned error in case of failure","Trait that adds extra useful methods to ScriptContexts","Enum for extended keys that can be either xprv or xpub","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a GeneratableKey key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with keys","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single public key.","Single private key.","A descriptor bitcoin::PrivateKey with optional origin …","A descriptor SinglePubKey with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the ScriptContext as a ScriptContextEnum","Replaces any wildcard (i.e. /*) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name of [at_derivation_index].","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Transform the ExtendedKey into an ExtendedPrivKey for the …","Transform the ExtendedKey into an ExtendedPubKey for the …","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is …","Returns whether the script context is Segwitv0","Returns whether the script context is …","Returns whether the script context is Tap, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of SortedMultiVec given a list of …","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the TxOut for the specified input index, if it doesn’…","The address index selection strategy to use to derived an …","A derived address and the index it was found at. For …","Balance differentiated in various categories.","There was problem with the descriptors passed in","Trait to check if a value is below the dust limit. We are …","Return the address for the current descriptor index if it …","Return a new address after incrementing the current …","Error returned from Wallet::new","Return the address for a specific descriptor index. Does …","We were unable to load the wallet’s data from the …","The update to a Wallet used in Wallet::apply_update. This …","Error indicating that something was wrong with an Update<T>…","A Bitcoin wallet","","Add an external signer","Address","Applies an update to the wallet and stages the changes …","Get a reference to the inner ChainGraph.","Get a reference to the inner TxGraph.","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Informs the wallet that you no longer intend to broadcast …","Get all the checkpoints the wallet is currently storing …","","","Coin selection","Commits all curently staged changed to the persistence …","Confirmed and immediately spendable balance","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return a derived address using the external descriptor, …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Return a derived address using the internal (change) …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Return a single transactions made and received by the …","Returns the utxo owned by this wallet corresponding to …","All coinbase outputs not yet matured","Child index of this address","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Returns the latest checkpoint.","Deprecated. use Wallet::transactions instead.","Return the list of unspent outputs of this wallet","Get the Bitcoin network the wallet is using.","Create a wallet from a descriptor (and an optional …","Creates a wallet that does not persist data.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Returns a iterators of all the script pubkeys for the …","Gets an iterator over all the script pubkeys in a single …","Returns the changes that will be staged with the next call …","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet in order of …","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","Transaction builder","","","","","","Unconfirmed UTXOs received from an external wallet","","","","","","Deterministically generate a unique name given the …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Remaining amount after performing coin selection","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper structure to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Sign a single psbt input","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee","Set a custom fee rate","Finish building the transaction.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","",""],"i":[17,17,17,17,17,0,1,0,17,17,17,12,17,0,17,1,17,17,17,17,0,12,0,17,17,17,17,17,17,17,0,17,17,17,0,17,0,17,0,0,0,0,1,1,3,1,17,1,3,10,11,12,13,17,1,3,10,11,12,13,0,1,1,3,10,11,12,13,1,3,10,11,12,13,1,13,10,13,3,3,10,0,0,1,10,13,1,3,10,11,12,13,13,3,3,17,17,1,3,10,11,12,13,0,17,17,17,17,17,17,17,17,1,3,10,11,12,13,3,3,3,3,3,3,1,10,17,1,3,10,11,12,13,10,10,0,12,10,1,3,13,17,0,13,11,13,1,10,13,0,3,0,1,3,10,11,12,13,17,13,17,1,3,10,11,12,13,17,1,3,10,11,12,13,13,12,10,17,1,3,10,11,12,13,11,168,0,17,1,3,10,11,12,13,0,1,169,169,170,171,172,172,34,0,0,0,0,0,0,0,45,0,0,58,0,0,0,45,34,0,0,0,34,40,0,34,45,0,34,34,40,34,46,47,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,0,58,46,47,58,47,58,58,46,47,58,46,47,58,58,46,47,58,46,47,0,44,45,34,46,47,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,34,34,34,34,34,38,34,38,44,45,34,46,47,38,0,34,38,38,173,34,38,34,44,45,34,34,46,47,38,38,34,38,44,45,34,34,34,34,34,34,34,46,47,38,38,34,38,38,38,34,38,38,38,34,34,38,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,142,68,34,38,38,38,34,38,38,44,58,46,47,38,34,38,58,46,47,34,34,34,34,34,34,34,34,34,34,34,34,34,34,38,44,58,38,34,38,38,44,45,34,46,47,38,58,46,47,0,38,34,38,34,38,38,34,34,38,34,38,58,46,47,0,44,45,34,46,47,38,34,38,34,58,58,34,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,45,34,46,47,38,34,44,45,34,46,47,38,44,38,44,0,0,0,0,22,22,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,83,23,23,0,84,0,0,83,82,0,83,83,23,23,23,83,84,56,23,84,84,0,0,0,56,56,82,83,83,0,0,83,83,83,82,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,56,82,83,84,57,85,56,57,85,85,82,83,84,57,85,23,82,83,84,57,85,23,23,56,82,83,84,84,57,57,85,23,56,57,82,85,83,57,82,83,84,57,85,23,56,83,84,85,57,85,23,57,57,82,83,84,57,85,85,82,83,84,57,85,56,23,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,23,56,174,174,174,175,176,177,176,177,176,177,176,177,176,177,178,179,180,181,182,183,183,182,184,185,0,0,0,0,0,0,0,0,0,0,0,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,186,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,87,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,25,0,0,0,0,187,187,0,0,105,0,0,0,0,25,25,25,58,0,0,37,25,25,187,111,0,111,0,0,37,40,108,0,0,0,0,37,0,105,108,40,0,188,40,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,58,58,58,58,58,58,58,58,101,37,102,103,40,104,105,101,37,102,103,40,104,105,103,40,104,105,102,102,101,40,103,37,103,40,104,105,107,37,102,25,25,103,103,40,40,108,108,104,109,105,103,111,111,111,101,107,37,102,25,25,25,103,40,40,108,104,109,105,107,107,40,108,103,40,187,189,187,189,111,40,103,40,104,105,111,101,107,37,102,25,103,40,108,104,109,105,88,92,101,101,107,40,108,92,111,101,101,111,111,40,188,37,188,37,188,37,40,40,103,104,109,103,0,40,58,103,103,0,58,103,104,109,58,107,103,40,104,105,58,103,25,103,103,103,58,103,0,101,37,102,103,40,104,105,108,25,103,40,108,58,58,103,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,0,190,190,190,0,0,0,135,0,134,134,0,134,135,0,0,0,116,117,131,117,117,117,117,117,116,117,134,131,135,116,117,134,131,135,117,117,117,117,116,116,0,117,116,116,131,117,117,117,116,116,131,0,117,116,116,117,134,131,131,135,135,116,117,134,131,135,117,117,117,117,117,117,117,117,116,131,117,117,116,117,134,131,135,191,117,131,117,117,117,117,117,117,117,117,117,135,117,117,116,117,0,117,117,117,116,116,131,135,116,117,116,116,116,117,134,131,135,116,117,134,131,135,0,116,117,134,131,135,116,116,117,134,131,135,0,0,150,0,0,0,0,0,150,0,150,149,146,147,148,150,149,146,147,148,146,147,148,146,147,148,161,146,147,148,0,146,147,148,149,149,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,149,148,149,149,146,147,148,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,192,193,193,192,193,0,0,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,157,152,157,152,157,24,0,24,24,24,154,24,24,24,24,24,24,157,152,154,24,0,0,0,0,0,0,0,0,154,0,0,24,55,133,133,55,133,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,55,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,118,118,55,133,157,156,194,156,156,152,24,154,118,157,55,152,24,24,154,156,118,55,133,157,152,152,152,24,24,154,156,118,55,133,157,152,194,156,156,55,152,24,154,156,118,55,133,157,156,55,152,118,24,55,133,195,156,156,119,156,133,55,133,152,24,154,156,118,55,133,157,24,133,133,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,196,164,0,163,163,0,0,163,164,0,0,0,164,128,128,128,128,128,128,128,128,128,129,127,128,164,163,129,127,128,164,163,128,129,127,128,164,163,129,127,128,164,163,164,163,128,128,129,127,164,163,128,128,128,128,128,164,163,128,128,128,129,127,128,164,163,129,127,128,164,163,164,163,128,129,127,128,164,163,128,128,128,128,128,164,163,128,128,128,164,129,127,128,164,163,129,127,128,164,163,129,127,128,164,163,129,127,128,164,163,128,128,129,127,128,164,163],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[3,4],[[],5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[9,[[8,[6,7]]]]]],[1,1],[3,3],[10,10],[11,11],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[1,1],14],[[13,13],14],0,0,[[],3],[[],3],0,0,0,[[],[[9,[1]]]],[[],[[9,[10]]]],[[],[[9,[13]]]],[[1,1],15],[[3,3],15],[[10,10],15],[[11,11],15],[[12,12],15],[[13,13],15],0,[[3,5],16],[[3,5],16],[[17,18],19],[[17,18],19],[[1,18],19],[[3,18],19],[[10,18],19],[[11,18],19],[[12,18],19],[[13,18],19],0,[20,17],[21,17],[[]],[22,17],[23,17],[24,17],[25,17],[26,17],[[]],[[]],[[]],[[]],[[]],[[]],[4,3],[4,3],[4,3],[4,3],[[16,5],3],[[16,5],3],[1],[10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[12,27],0,[[1,1],[[28,[14]]]],[[3,3],[[28,[14]]]],[[13,13],[[28,[14]]]],[29],0,0,0,0,[1,9],[10,9],[13,9],0,[[3,3]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[12,31],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[],5],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],9],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[34,35],[[9,[36,26]]]],[[],37],[[],37],[38,39],[[[34,[40]],41],[[34,[42]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[8,[38,7]]]],0,[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],0,[44,44],[45,45],[34,34],[46,46],[47,47],[38,38],[[]],[[]],[[]],[[]],[[]],[[]],[[44,44],14],[[45,45],14],[[34,34],14],[[46,46],14],[[47,47],14],[[38,38],14],[38,15],0,[[[34,[40]],41],[[34,[42]]]],[[[34,[40]],48,41],[[9,[[34,[49]],50]]]],[[[34,[42]],48],[[9,[[34,[49]],50]]]],[34,51],[[],[[9,[34]]]],[[],[[9,[38]]]],[[[34,[40]]],16],[38,52],[[44,44],15],[[45,45],15],[[34,34],15],[[46,46],15],[[47,47],15],[[38,38],15],0,[34,[[9,[52,26]]]],0,[[38,53],[[9,[54]]]],[[55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],55,56,48],[[9,[[28,[57]],22]]]],[[[38,[40,58]],55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],48,52,[59,[41]]],[[9,[28,50]]]],[[44,18],[[9,[60]]]],[[45,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[46,18],[[9,[60]]]],[[47,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[34,15],[38,15],[[]],[[]],[61,34],[[]],[62,34],[63,34],[64,34],[65,34],[66,34],[[]],[[]],[[]],[39,[[9,[38,26]]]],[33,[[9,[34,26]]]],[33,[[9,[38,26]]]],[[33,53],[[9,[38,26]]]],[33,[[9,[38,26]]]],[67,[[9,[34,26]]]],[67,[[9,[38,26]]]],[[38,5],[[28,[38]]]],[[38,5],28],[34,[[9,[26]]]],[34,[[9,[26]]]],[38,15],[38,15],[[[34,[40]]],15],[44],[45],[34],[46],[47],[38],[[]],[[]],[[]],[[]],[[]],[[]],[38,39],[[48,35],[[9,[22]]]],[[68,48,35],[[9,[22]]]],[[[34,[40]]],15],[38,15],[38,69],[38,70],[34,[[9,[71,26]]]],[38,[[9,[71,26]]]],[38,[[9,[72]]]],[[44,48],[[28,[73]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[9,[5,26]]]],[34,[[9,[5,26]]]],[38,[[9,[5,26]]]],[[],33],[[],33],[[],33],[[[38,[74]]],[[9,[34,26]]]],[[],34],[[],34],[[[38,[46]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],[65,34],[61,34],[[],[[9,[34,26]]]],[[[38,[47]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],[[[28,[75]]],[[9,[34,26]]]],[[],[[9,[34,26]]]],[[[38,[47]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],0,0,[38,[[9,[26]]]],[52,[[9,[38,26]]]],[[48,33],[[9,[26]]]],[52,[[9,[38,26]]]],[[52,53],[[9,[38,26]]]],[[44,44],[[28,[14]]]],[[45,45],[[28,[14]]]],[[34,34],[[28,[14]]]],[[46,46],[[28,[14]]]],[[47,47],[[28,[14]]]],[[38,38],[[28,[14]]]],[[],5],[[],5],[[],5],0,[38,15],[34,[[9,[26]]]],[38,[[9,[54]]]],[[34,76],[[9,[26]]]],[38,[[9,[[8,[[8,[2,7]],7]],26]]]],[38,[[9,[[8,[[8,[2,7]],7]],26]]]],[34,[[9,[52,26]]]],[34,52],[38,5],[34,9],[38,9],[[],77],[[],77],[[],77],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],30],[[[34,[40]],78],30],[38,[[9,[26]]]],[38,[[9,[26]]]],[34,9],[38,9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[34,52],[[]],[[]],[[]],[[]],[[]],[[]],0,[38,15],0,[33,[[9,[30,22]]]],[33,[[9,[22]]]],[33,[[9,[30,22]]]],[33,[[9,[22]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[22,18],19],[[22,18],19],[[]],[23,22],[79,22],[25,22],[80,22],[26,22],[81,22],[21,22],[[]],[29],[[],30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[57,57],[85,85],[56,56],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],15],[[83,83],15],[[84,84],15],[[57,57],15],[[85,85],15],[[23,23],15],[[82,18],19],[[83,18],19],[[84,18],19],[[57,18],19],[[85,18],19],[[23,18],19],[[23,18],19],[[56,18],19],[[]],[[]],[15,84],[[]],[[]],[83,57],[[]],[[]],[[]],[[57,86],[[9,[85,23]]]],[82],[85],[83,30],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,15],[84,15],[85,15],0,[[85,85],[[28,[14]]]],[29],[57,15],0,[82,9],[83,9],[84,9],[57,9],[85,9],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[35,[[9,[87,22]]]],[[[89,[[88,[46]]]],35],[[9,[87,22]]]],[[[90,[[88,[47]]]],35],[[9,[87,22]]]],[[[91,[[88,[47]]]],35],[[9,[87,22]]]],[[[93,[[92,[46]]]],35],[[9,[87,22]]]],[[[94,[[92,[46]]]],35],[[9,[87,22]]]],[[[95,[[92,[47]]]],35],[[9,[87,22]]]],[[[96,[[92,[47]]]],35],[[9,[87,22]]]],[[[97,[[92,[47]]]],35],[[9,[87,22]]]],[[[98,[[92,[47]]]],35],[[9,[87,22]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[87,48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],99],[[],37],[[40,41],42],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[[101,[100,58]]],[[101,[100,58]]]],[37,37],[102,102],[103,103],[40,40],[104,104],[105,105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[103,103],14],[[40,40],14],[[104,104],14],[[105,105],14],0,[[],102],[[[101,[58]]]],[[40,41],42],[103,52],[[37,37],15],[[103,103],15],[[40,40],15],[[104,104],15],[[105,105],15],[[[107,[[0,[106,58]]]],18],19],[[37,18],19],[[102,18],19],[[25,18],19],[[25,18],19],[[103,18],[[9,[60]]]],[[103,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[108,18],[[9,[60]]]],[[108,18],[[9,[60]]]],[[104,18],[[9,[60]]]],[[109,18],[[9,[60]]]],[[105,18],[[9,[60]]]],[103,15],[110,[[111,[58]]]],[112,[[111,[58]]]],[[]],[[]],[[]],[[]],[[]],[26,25],[[]],[21,25],[[]],[42,40],[[]],[[]],[[]],[[]],[[]],[[40,99],[[107,[58]]]],[[108,99],[[107,[58]]]],[33,[[9,[40]]]],[33,[[9,[108]]]],[67,[[9,[103,26]]]],[40,73],[[],[[9,[101]]]],[[],[[9,[101]]]],[[],[[9,[101]]]],[[],[[9,[101]]]],[[[111,[58]]],15],[40,15],[103],[40],[104],[105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[9,[107,25]]]],[[[28,[113]],73],[[9,[107,25]]]],[[101,[28,[113]],73],[[9,[107,25]]]],[101,[[9,[107,25]]]],[[[107,[58]]],[[9,[[107,[58]],25]]]],[40,[[9,[[107,[58]],25]]]],[108,[[9,[[107,[58]],25]]]],[[],[[9,[111,25]]]],[[[111,[58]]],[[9,[[111,[58]],25]]]],[101,[[9,[111,25]]]],[[[101,[58]]]],[[[111,[58]],35],[[28,[112]]]],[[[111,[58]],35,48],110],[40,15],[[],15],[37,15],[[],15],[37,15],[[],15],[37,15],[40,15],[40,15],0,0,0,[103,[[9,[71,26]]]],[[],99],[40,114],[38,[[28,[5]]]],[103,5],[103,5],[[99,99],99],[[],33],[[5,[8,[7]]],[[9,[103,26]]]],0,0,[38,[[9,[26]]]],[[[107,[58]],99],[[107,[58]]]],[[103,103],[[28,[14]]]],[[40,40],[[28,[14]]]],[[104,104],[[28,[14]]]],[[105,105],[[28,[14]]]],[[],5],0,[29],[103,[[9,[26]]]],[103,[[9,[[8,[[8,[2,7]],7]],26]]]],[103,5],[[],77],[103,39],[[],99],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[108,48],[[9,[40,115]]]],[[],30],[[],30],[[],30],[[],30],[38,[[9,[26]]]],[38,[[9,[26]]]],[103,[[9,[103]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[28,[16]]]],[[],[[28,[3]]]],[5,[[28,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[116,116],116],[[117,1,118,[120,[119]]]],0,[[117,121],[[9,[122]]]],[117,123],[117,124],[117,124],[117,123],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[117,125],[[9,[[128,[126,127]],17]]]],[117,[[128,[126,129]]]],[[117,130]],[117,86],[116,116],[[]],0,[117,9],0,[[],116],[131],[[117,1],[[28,[41]]]],[[117,52],28],[[117,1],30],[[],[[9,[116]]]],[[116,116],15],[[131,131],15],0,[[117,132,133],[[9,[15,17]]]],[[116,18],[[9,[60]]]],[[116,18],[[9,[60]]]],[[[117,[106]],18],19],[[134,18],19],[[131,18],19],[[131,18],19],[[[135,[106]],18],19],[[135,18],19],[[]],[[]],[[]],[[]],[[]],[[117,134],131],[117,116],[[117,1],68],[[117,134],131],[[117,10,[28,[136]],15],[[9,[137,17]]]],[[117,1],[[120,[55]]]],[[117,125,15],[[28,[13]]]],[[117,27],[[28,[10]]]],0,0,[[117,138],[[9,[15,139]]]],[[117,130,140],[[9,[15,[141,[140]]]]]],[[]],[[]],[[]],[[]],[[]],[52,15],[[117,52],15],0,[117,86],[117,[[28,[138]]]],[[117,15],[[8,[13]]]],[117,[[8,[10]]]],[117,35],[[142,[28,[142]],35],[[9,[117,135]]]],[[142,[28,[142]],35],[[9,[117,22]]]],[[117,1],41],[[117,1],[[9,[[28,[57]],17]]]],[29],[[117,1],[[28,[68]]]],[117,48],[116,9],[[117,132,133],[[9,[15,17]]]],0,[117,[[86,[1,[0,[143,100]]]]]],[[117,1],[[0,[143,100]]]],[117,144],[[]],[[],30],[[],30],[[],30],[116,16],[117,145],0,[116,16],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],32],[[],32],[[],32],[[],32],[[],32],0,[[]],[[]],[[]],[[]],[[]],[[28,35,48],[[9,[30,17]]]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[146,146],[147,147],[148,148],[[]],[[]],[[]],[[[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[146,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[147,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[148,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[16,3,52],150],[[],146],[[],147],[[],148],0,0,[[150,18],19],[[149,18],19],[[146,18],19],[[147,18],19],[[148,18],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[149,16],[16,148],0,[149,16],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,[[]],[[]],[151,[[28,[30]]]],[151,30],[[],[[9,[151]]]],[[117,33,15],[[9,[151,33]]]],[[151,18],19],[[]],[33,[[9,[151]]]],[[]],0,[151,9],[151,30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[55,152,118,[120,[119]]],[[28,[[120,[119]]]]]],0,0,[[55,48],153],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[153,34,48],55],[152,152],[24,24],[154,154],[[[156,[[0,[100,155,106,100]]]]],[[156,[[0,[100,155,106,100]]]]]],[118,118],[55,55],[133,133],[157,157],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[152,152],14],[[118,118],14],[[],118],[[],55],[[],133],[[],157],[[[156,[[0,[155,106,100]]]]]],[[],[[28,[108]]]],[[[156,[158]]],[[28,[108]]]],[[[156,[[44,[112]]]]],[[28,[108]]]],[[152,152],15],[[24,24],15],[[154,154],15],[[118,118],15],[[157,157],15],[[55,152],[[28,[120]]]],[[152,18],19],[[24,18],19],[[24,18],19],[[154,18],19],[[[156,[[0,[106,155,106,100]]]],18],19],[[118,18],19],[[55,18],19],[[133,18],19],[[157,18],19],[114,152],[159,152],[[]],[160,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[152],[48,152],[[[156,[158]],48],152],[[[156,[[44,[112]]]],48],152],[55,[[8,[152]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[155,106,100]],154],[[156,[[0,[155,106,100]]]]]],[[],55],[[152,152],[[28,[14]]]],[[118,118],[[28,[14]]]],[29],[[55,152,118],[[28,[[120,[119]]]]]],0,[[132,5,133,48],[[9,[24]]]],[[[156,[158]],132,5,133,48],[[9,[24]]]],[[[156,[[44,[112]]]],132,5,133,48],[[9,[24]]]],[[132,133,48],[[9,[24]]]],[[132,133,48],[[9,[24]]]],0,[55,[[8,[120]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[128,[161,129]]],[[128,[161,129]]]],[[[128,[161,162]],27,137,5],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,129]],52,16],[[128,[161,129]]]],[[[128,[161,162]],27],[[128,[161,162]]]],[[[128,[161,162]],27],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]]],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]],15],[[128,[161,162]]]],[[[128,[126,127]],52],[[9,[[128,[126,127]],17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[128,[161,162]],163],[[128,[161,162]]]],[129,129],[127,127],[[[128,[100]]],[[128,[100]]]],[164,164],[163,163],[[]],[[]],[[]],[[]],[[]],[[164,164],14],[[163,163],14],[[[128,[161,162]],161],[[128,[161,162]]]],[[[128,[161,162]],41],[[128,[161,162]]]],[[],129],[[],127],[[],164],[[],163],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,129]],52],[[128,[161,129]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],165],[[128,[161,162]]]],[[164,164],15],[[163,163],15],[[[128,[161,162]],16],[[128,[161,162]]]],[[[128,[161,162]],3],[[128,[161,162]]]],[[[128,[161,162]]],[[9,[17]]]],[[129,18],19],[[127,18],19],[[[128,[106,106,106]],18],19],[[164,18],19],[[163,18],19],[[]],[[]],[[]],[[]],[[]],[164],[163],[[[128,[161,162]]],[[128,[161,162]]]],[[]],[[]],[[]],[[]],[[]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],166],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],164],[[128,[161,162]]]],[[164,164],[[28,[14]]]],[[163,163],[[28,[14]]]],[[[128,[161,162]],[86,[30,[8,[5]]]],1],[[128,[161,162]]]],[[[128,[161,129]],8],[[128,[161,129]]]],[[[128,[161,162]],136],[[128,[161,162]]]],[[164,130]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[[128,[161,162]],[8,[27]]],[[128,[161,162]]]],[[[128,[161,162]],167],[[128,[161,162]]]],[[]],[[]],[[]],[[]],[[]]],"p":[[4,"KeychainKind"],[15,"u8"],[3,"FeeRate"],[15,"f32"],[15,"usize"],[3,"u5"],[3,"Global"],[3,"Vec"],[4,"Result"],[3,"LocalUtxo"],[3,"WeightedUtxo"],[4,"Utxo"],[3,"TransactionDetails"],[4,"Ordering"],[15,"bool"],[15,"u64"],[4,"Error"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PolicyError"],[4,"SignerError"],[4,"KeyError"],[4,"Error"],[3,"OutPoint"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[3,"Address"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ScriptContextError"],[3,"DescriptorXKey"],[4,"Wildcard"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"ConversionError"],[4,"DescriptorType"],[3,"Script"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[8,"ScriptContext"],[3,"Range"],[3,"Error"],[3,"Wsh"],[3,"Bare"],[3,"Sh"],[3,"Tr"],[3,"Wpkh"],[3,"Pkh"],[3,"Tree"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[3,"DerivationPath"],[4,"BareCtx"],[4,"TapTree"],[3,"TxIn"],[4,"SigType"],[3,"HashMap"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[3,"BTreeMap"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[6,"ValidNetworks"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[3,"SortedMultiVec"],[3,"SinglePub"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[4,"DescriptorSecretKey"],[3,"SinglePriv"],[3,"ExtendedPubKey"],[4,"ExtendedKey"],[3,"ExtendedPrivKey"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[6,"Update"],[6,"UpdateError"],[3,"ChainGraph"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[3,"CreateTx"],[3,"Transaction"],[3,"AddressInfo"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"AddressIndex"],[4,"NewError"],[3,"PsbtSighashType"],[3,"Input"],[3,"BlockId"],[4,"InsertCheckpointError"],[4,"ConfirmationTime"],[4,"InsertTxError"],[8,"IntoWalletDescriptor"],[8,"Iterator"],[3,"KeychainChangeSet"],[8,"DoubleEndedIterator"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Excess"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[8,"TxBuilderContext"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[3,"Sequence"],[4,"LockTime"],[15,"i32"],[8,"Vbytes"],[13,"InsufficientFunds"],[13,"FeeRateTooLow"],[13,"FeeTooLow"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"Change"],[13,"NoChange"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"]]},\ -"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[3,17,4,13,13,8,8,3,3,4,13,13,11,2,11,11,11,11,11,11,11,11,11,11,0,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,0,11,11,11,11,11,2,11,12,11,11,11,11,11,11,11,11,11,11,0,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,3,3,13,6,4,13,4,3,13,13,4,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,17,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,16,3,8,16,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,8,3,13,4,4,13,3,13,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11],"n":["BlockId","COINBASE_MATURITY","ConfirmationTime","Confirmed","Confirmed","DescriptorExt","ForEachTxOut","FullTxOut","SpkTxOutIndex","TxHeight","Unconfirmed","Unconfirmed","all_spks","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_graph","chain_position","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","default","default","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","hash","hash","hash","height","height","height","index_of_spk","insert_spk","into","into","into","into","into","is_confirmed","is_confirmed","is_mature","is_on_coinbase","is_relevant","is_spendable_at","is_used","keychain","mark_used","max_ord_of_height","max_ord_of_height","min_ord_of_height","min_ord_of_height","miniscript","net_value","outpoint","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","sparse_chain","spent_by","spk_at_index","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","height","time","Chain","Chain","ChainGraph","ChangeSet","Conflict","InsertCheckpointError","InsertTxError","Missing","NewError","UnresolvableConflict","UnresolvableConflict","UnresolvableConflict","UpdateError","already_confirmed_tx","append","apply_changeset","apply_update","as_ref","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","checkpoint_limit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contains_eviction","default","default","deserialize","determine_changeset","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","for_each_txout","from","from","from","from","from","from","from","from","from","from","full_txout","get_tx_in_chain","graph","graph","inflate_update","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into","into","into","invalidate_checkpoints","invalidate_checkpoints_preview","is_empty","is_empty","new","provide","provide","provide","provide","serialize","set_checkpoint_limit","spent_by","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transactions_in_chain","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","tx_conflicts_in_chain","type_id","type_id","type_id","type_id","type_id","type_id","update_tx","vzip","vzip","vzip","vzip","vzip","vzip","a","b","BIP32_MAX_INDEX","Balance","DerivationAdditions","KeychainChangeSet","KeychainScan","KeychainTracker","KeychainTxOutIndex","add","add_keychain","add_keychain","append","append","apply_additions","apply_changeset","apply_update","as_inner","as_ref","as_ref","as_ref","as_ref","as_ref","balance","balance_at","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain_graph","chain_graph","checkpoint_limit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","default","default","default","deref","derivation_indices","deserialize","deserialize","deserialize","determine_changeset","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","from","full_txouts","full_utxos","graph","immature","inner","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","into","into","into","into","into","into","is_empty","is_empty","keychains","keychains","last_active_indices","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead_to_target","lookahead_to_target_multi","lookaheads","mark_used","next_index","next_unused_spk","persist","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_spks_of_all_keychains","revealed_spks_of_keychain","scan","scan_txout","serialize","serialize","serialize","set_checkpoint_limit","set_lookahead","set_lookahead_for_all","spks_of_all_keychains","spks_of_keychain","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","txout_index","txouts_of_keychain","type_id","type_id","type_id","type_id","type_id","type_id","unmark_used","untrusted_pending","unused_spks_of_keychain","update","vzip","vzip","vzip","vzip","vzip","vzip","LoadError","Persist","PersistBackend","WriteError","append_changeset","borrow","borrow_mut","commit","fmt","from","into","load_into_keychain_tracker","new","stage","staged","try_from","try_into","type_id","vzip","ChainPosition","ChangeSet","HashNotMatching","InsertCheckpointError","InsertTxError","NotConnected","SparseChain","TxInconsistent","TxMovedUnexpectedly","TxTooHigh","UpdateError","append","apply_changeset","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset_additions","checkpoint_at","checkpoint_limit","checkpoints","checkpoints","clear_mempool","clear_mempool_preview","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","deserialize","determine_changeset","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_checkpoints","full_txout","height","initial_changeset","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","into","into","into","into","into","invalidate_checkpoints","invalidate_checkpoints_preview","is_empty","is_empty","latest_checkpoint","max_ord_of_height","min_ord_of_height","provide","provide","provide","range_checkpoints","range_txids","range_txids_by_height","range_txids_by_position","serialize","set_checkpoint_limit","spent_by","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_into","try_into","try_into","try_into","try_into","tx_position","txids","txids","type_id","type_id","type_id","type_id","type_id","unconfirmed","vzip","vzip","vzip","vzip","vzip","height","original_hash","update_hash","original_pos","tip_height","tx_height","txid","txid","update_pos","original_pos","txid","update_pos","Additions","TxDescendants","TxGraph","all_txouts","append","apply_additions","apply_update","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","calculate_fee","checked_sum","checked_sum","clone","clone","clone_into","clone_into","default","default","deserialize","determine_additions","direct_conflicts_of_tx","eq","eq","fmt","fmt","for_each_txout","for_each_txout","from","from","from","full_transactions","get_tx","get_txout","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into_iter","is_empty","is_empty","new","next","outspends","partial_transactions","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","tx","tx_outspends","txout","txouts","txouts","type_id","type_id","type_id","vzip","vzip","vzip","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","bdk_chain::chain_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::chain_graph::NewError","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain::persist","","","","","","","","","","","","","","","","","","","bdk_chain::sparse_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::sparse_chain::InsertCheckpointError","","","bdk_chain::sparse_chain::InsertTxError","","","","","","bdk_chain::sparse_chain::UpdateError","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A reference to a block in the cannonical chain.","How many confirmations are needed for a coinbase output to …","Block height and timestamp in which a transaction is …","","","A trait to extend the functionality of a miniscript …","Trait to do something with every txout contained in a …","A TxOut with as much data as we can retreive about it","An index storing TxOuts that have a script pubkey that …","Represents the height in which a transaction is confirmed …","","","The script pubkeys being tracked by the index.","","","","","","","","","","","","Module for structures that combine the features of …","The position of the transaction in outpoint in the overall …","","","","","","","","","","","","","","","","","","","","Returns the minimum value (in satoshis) that an output …","","","","","","","","","","","The provided closure f will called with each outpoint/txout…","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","The hash of the block","","","The height the block was confirmed at","Returns the index associated with the script pubkey.","Adds a script pubkey to scan for. Returns false and does …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Whether this output is on a coinbase transaction","Whether any of the inputs of this transaction spend a …","Whether the utxo is/was/will be spendable at height.","Returns whether the script pubkey at index has been used …","Module for keychain based structures.","Marks the script pubkey at index as used even though it …","","","","","","Computes the net value that this transaction gives to the …","The location of the TxOut","Iterates over all outputs with script pubkeys in an index …","","","","Scans an object containing many txouts.","Scan a single TxOut for a matching script pubkey, and …","Computes total input value going from script pubkeys in …","","","","Module for structures that maintain sparse (purposely …","The txid and chain position of the transaction (if any) …","Returns the script that has been inserted at the index.","","","","","","","","","","","","","","","","","Module for structures that store and traverse transactions.","Returns the txout and script pubkey index of the TxOut at …","The TxOut","Iterate over all known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","","","Undoes the effect of mark_used. Returns whether the index …","Iterates over a unused script pubkeys in a index range.","","","","","","","","","The update chain was inconsistent with the existing chain","A consistent combination of a SparseChain<P> and a …","Represents changes to ChainGraph.","Two transactions within the sparse chain conflicted with …","A nice alias of sparse_chain::InsertCheckpointError.","Error that may occur when inserting a transaction.","One or more transactions in the chain were not in the graph","Error that may occur when calling ChainGraph::new.","Represents an unresolvable conflict between an update’s …","","A transaction in the update spent the same input as an …","Represents an update failure.","","Appends the changes in other into self such that applying …","Applies changeset to self.","Applies the update chain graph. Note this is shorthand for …","","","","","","","","","","","","","","","","Returns a reference to the internal SparseChain.","","Sets the checkpoint limit.","","","","","","","","","","","","","Returns true if this ChangeSet contains transaction …","","","","Calculates the difference between self and update in the …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Get the full transaction output at an outpoint if it …","Get a transaction that is currently in the underlying …","Returns a reference to the internal TxGraph.","","Take an update in the form of a SparseChain<P> and attempt …","Inserts checkpoint into Self.","Determines the changes required to insert a block_id (a …","Inserts Transaction at given chain position.","Determines the changes required to insert a transaction …","Inserts a TxOut into the internal TxGraph.","Determines the changes required to insert a TxOut into the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Invalidate checkpoints from_height (inclusive) and above. …","Determines the changes required to invalidate checkpoints …","Whether the chain graph contains any data whatsoever.","Returns true if this ChangeSet records no changes.","Create a new chain graph from a chain and a graph.","","","","","","Sets the checkpoint limit.","Finds the transaction in the chain that spends outpoint …","","","","","","","","","","","Iterate over the full transactions and their position in …","","","","","","","","","","","","","Given a transaction, return an iterator of txids that …","","","","","","","","","","","","","","","","Maximum BIP32 derivation index.","Balance differentiated in various categories.","Represents updates to the derivation index of a …","Represents changes to a KeychainTracker.","An update that includes the last active indexes of each …","A convenient combination of a KeychainTxOutIndex and a …","A convenient wrapper around SpkTxOutIndex that relates …","","Add a keychain to the tracker’s txout_index with a …","Add a keychain to the tracker’s txout_index with a …","Append another DerivationAdditions into self.","Appends the changes in other into self such that applying …","Applies the derivation additions to the KeychainTxOutIndex…","Applies the changes in changeset to KeychainTracker.","Directly applies a KeychainScan on KeychainTracker.","Get the inner map of keychain to its new derivation index.","","","","","","Returns the balance of the keychain i.e. the value of …","Returns the balance of all spendable confirmed unspent …","","","","","","","","","","","","","Returns a reference to the internal SparseChain (which is …","Returns a reference to the internal ChainGraph.","The changes that have occurred in the blockchain","Get the checkpoint limit of the internal SparseChain.","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","The changes in local keychain derivation indices","","","","Determines the resultant KeychainChangeSet if the given …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Iterates through FullTxOuts that are considered to exist …","Iterates through FullTxOuts that are unspent outputs.","Returns a reference to the internal TxGraph (which is part …","All coinbase outputs not yet matured","Return a reference to the internal SpkTxOutIndex.","Directly insert a block_id into the tracker.","Determines the changes as result of inserting block_id (a …","Directly insert a transaction into the inner ChainGraph …","Determines the changes as result of inserting a …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the additions are empty.","Returns whether the KeychainChangeSet is empty (no changes …","Get the internal map of keychains to their descriptors. …","Return a reference to the internal map of keychain to …","The last active indexes of each keychain","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Store lookahead scripts until target_index.","Convenience method to call lookahead_to_target for …","Return the lookahead setting for each keychain.","Marks the script pubkey at index as used even though it …","Get the next derivation index for keychain. This is the …","Gets the next unused script pubkey in the keychain. I.e. …","Persistence for changes made to a KeychainTracker.","Attempts to reveal the next script pubkey for keychain.","Reveals script pubkeys of the keychain’s descriptor up …","Convenience method to call Self::reveal_to_target on …","Convenience method to get revealed_spks_of_keychain of all …","Iterates over the script pubkeys revealed by this index …","Scans an object for relevant outpoints, which are stored …","Scan a single outpoint for a matching script pubkey.","","","","Set the checkpoint limit of the internal SparseChain.","Set the lookahead count for keychain.","Convenience method to call set_lookahead for all keychains.","Generates script pubkey iterators for every keychain. The …","Generates a script pubkey iterator for the given keychain…","","","","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","Index between script pubkeys to transaction outputs","Iterates over all the OutPoint that have a TxOut with a …","","","","","","","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterates over all unused script pubkeys for a keychain …","The update data in the form of a chain that could be …","","","","","","","The error the backend returns when it fails to load.","Persist wraps a PersistBackend to create a convenient …","A persistence backend for Persist.","The error the backend returns when it fails to write.","Appends a new changeset to the persistance backend.","","","Commit the staged changes to the underlying persistence …","","Returns the argument unchanged.","Calls U::from(self).","Applies all the changesets the backend has received to …","Create a new Persist from a PersistBackend.","Stage a changeset to later persistence with commit.","Get the changes that haven’t been commited yet","","","","","Represents an position in which transactions are ordered …","The return value of determine_changeset.","Occurs when checkpoint of the same height already exists …","Represents a failure when trying to insert a checkpoint …","Represents a failure when trying to insert a Txid into …","The update cannot be applied to the chain because the …","This is a non-monotone structure that tracks relevant Txid…","The update contains inconsistent tx states (e.g. it …","Occurs when the Txid is already in the SparseChain and the …","Occurs when the Txid is to be inserted at a hight higher …","Represents an update failure of SparseChain.","Appends the changes in other into self such that applying …","","Updates SparseChain with another chain that connects to it.","","","","","","","","","","","","Return Txids that would be added to the sparse chain if …","Get the checkpoint at the given height if it exists.","Returns the value set as the checkpoint limit.","Return a BTreeMap of all checkpoints (block hashes by …","","Clears all transactions of height TxHeight::Unconfirmed.","Determines the ChangeSet when all transactions of height …","","","","","","","","","","","","","","Preview changes of updating Self with another chain that …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Creates a new chain from a list of block hashes and …","Attempt to retrieve a FullTxOut of the given outpoint.","Get the transaction height of the positon.","Derives a ChangeSet that assumes that there are no …","Insert a checkpoint (BlockId).","Determines the resultant ChangeSet if BlockId was inserted.","Inserts a given Txid at pos.","Determines the resultant ChangeSet if Txid was inserted at …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Invalidate checkpoints from_height (inclusive) and above.","Determines the ChangeSet when checkpoints from_height …","Returns whether the sparse chain contains any checkpoints …","Whether this changeset contains no changes.","Get the checkpoint for the last known tip.","Get the positon’s upper bound of a given height.","Get the position’s lower bound of a given height.","","","","Return an iterator over checkpoints in a height range, in …","Iterate over a sub-range of positioned Txids.","Iterate over a sub-range of positioned Txids, where the …","Iterate over a sub-range of positioned Txids, where the …","","Set the checkpoint limit.","Finds the transaction in the chain that spends outpoint.","","","","","","","","","","","","","","","","","","","Return the ChainPosition of a txid.","Iterate over all Txids ordered by their ChainPosition.","","","","","","","Get the unconfirmed position.","","","","","","","","","","","","","","","","","","A structure that represents changes to a TxGraph.","An iterator that traverses transaction descendants.","A graph of transactions and spends.","Iterate over all tx outputs known by TxGraph.","Appends the changes in other into self such that applying …","Applies Additions to TxGraph.","Extends this graph with another so that self becomes the …","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","","","","","","","","","","Previews the resultant Additions when Self is updated …","Given a transaction, return an iterator of txids which …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get a transaction by txid. This only returns Some for full …","Obtains a single tx output (if any) at specified outpoint.","Inserts the given transaction into TxGraph.","Returns the resultant Additions if the given transaction …","Inserts the given TxOut at OutPoint.","Returns the resultant Additions if the given txout is …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Whether the graph has any transactions or outputs in it.","Returns true if the Additions is empty (no transactions or …","Contruct a new TxGraph from a list of transaction.","","The transactions spending from this output.","Iterate over all partial transactions (outputs only) in …","","","","","","","","","","","Iterates over the transactions spending from txid.","","Returns a BTreeMap of vout to output of the provided txid.","Iterates over all outpoints contained within Additions.","","","","","","","Creates an iterator that both filters and maps conflicting …","Creates an iterator that both filters and maps descendants …"],"i":[0,0,0,5,6,0,0,0,0,0,5,6,3,0,3,5,6,7,8,3,5,6,7,8,0,8,3,5,6,7,8,3,5,6,7,8,5,6,7,3,5,7,5,6,7,64,5,6,7,8,3,5,5,6,7,8,65,3,5,5,6,7,7,7,8,5,6,7,5,6,7,3,3,3,5,6,7,8,5,6,8,8,3,8,3,0,3,5,6,5,6,0,3,8,3,5,6,7,3,3,3,5,6,7,0,8,3,3,5,6,7,8,5,3,5,6,7,8,3,5,6,7,8,0,3,8,3,3,3,5,6,7,8,3,3,3,5,6,7,8,66,66,40,35,0,0,39,0,0,39,0,0,40,35,0,41,33,34,34,34,34,34,34,33,39,40,35,41,34,33,39,40,35,41,34,33,34,34,33,39,40,35,41,34,33,39,40,35,41,33,34,33,33,34,34,33,39,40,35,41,34,33,39,39,40,40,35,35,41,41,34,33,34,33,39,40,40,40,35,35,35,41,34,34,34,33,34,34,34,34,34,34,34,34,33,39,40,35,41,34,34,34,33,34,39,40,35,41,33,34,34,34,33,39,40,35,41,39,40,35,41,34,34,33,39,40,35,41,34,33,39,40,35,41,34,34,33,39,40,35,41,41,34,33,39,40,35,41,67,67,0,0,0,0,0,0,0,48,49,52,53,54,52,49,49,53,49,49,49,53,55,49,49,49,52,53,55,54,48,49,52,53,55,54,48,49,49,54,49,49,52,53,55,54,48,49,52,53,55,54,48,48,49,52,53,55,54,48,52,54,53,54,48,49,53,55,48,49,52,53,55,54,48,48,54,49,52,53,55,55,54,54,54,48,49,49,49,48,52,49,49,49,49,49,52,53,55,54,48,53,54,49,52,55,52,52,52,52,52,52,52,52,52,52,0,52,52,52,52,52,52,52,53,54,48,49,52,52,52,52,49,52,53,55,54,48,48,48,48,48,49,52,53,55,54,48,49,52,53,55,54,48,49,52,49,52,53,55,54,48,52,48,52,55,49,52,53,55,54,48,68,0,0,68,68,56,56,56,56,56,56,68,56,56,56,56,56,56,56,0,0,58,0,0,43,0,43,42,42,0,57,37,37,37,37,42,58,43,57,37,42,58,43,57,37,37,37,37,57,37,37,37,42,58,43,57,37,42,58,43,57,37,57,57,37,37,42,58,43,57,37,42,42,58,58,43,43,57,37,42,58,43,57,37,37,21,37,37,37,37,37,37,42,58,43,57,37,37,37,57,37,21,21,42,58,43,37,37,37,37,57,37,37,37,42,58,43,57,42,58,43,37,42,58,43,57,37,42,58,43,57,37,37,57,37,42,58,43,57,21,37,42,58,43,57,69,69,69,70,71,71,71,70,70,72,72,72,0,0,0,36,59,36,36,36,62,36,59,62,36,59,36,62,62,36,59,36,59,36,59,59,36,36,36,59,36,59,36,59,62,36,59,36,36,36,36,36,36,36,62,36,59,62,36,59,36,62,36,36,59,36,59,62,36,59,62,36,59,59,36,59,36,59,62,36,59,62,36,59,36,36],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[3,[1]]],[[3,[1]]]],[5,5],[6,6],[7,7],[[[8,[1]]],[[8,[1]]]],[[]],[[]],[[]],[[]],[[]],[[5,5],9],[[6,6],9],[[7,7],9],[[],3],[[],5],[[],7],[[],[[10,[5]]]],[[],[[10,[6]]]],[[],[[10,[7]]]],[[],11],[[5,5],12],[[6,6],12],[[7,7],12],[[[8,[13]],8],12],[[[3,[14]],15],16],[[5,15],16],[[5,15],16],[[6,15],16],[[7,15],16],[[[8,[14]],15],16],[17],[[]],[[[19,[18]]],5],[[]],[[]],[[],7],[[],7],[[]],[[]],[5],[6],0,[5,5],[6,5],0,[[[3,[[0,[1,2]]]],20],19],[[[3,[[0,[1,2]]]],[0,[1,2]],20],12],[[]],[[]],[[]],[[]],[[]],[5,12],[6,12],[[[8,[21]],18],12],0,[[[3,[[0,[1,2]]]],22],12],[[[8,[21]],18],12],[[[3,[[0,[1,2]]]]],12],0,[[[3,[[0,[1,2]]]]],12],[5,5],[5,6],[5,5],[5,6],0,[[[3,[[0,[1,2]]]],22],23],0,[[[3,[[0,[1,2]]]],[24,[[0,[1,2]]]]],25],[[5,5],[[19,[9]]]],[[6,6],[[19,[9]]]],[[7,7],[[19,[9]]]],[[[3,[[0,[1,2]]]]],[[26,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],27,28],19],[[[3,[[0,[1,2]]]],22]],[5,10],[6,10],[7,10],0,0,[[[3,[[0,[1,2]]]]],[[19,[20]]]],[[]],[[]],[[]],[[]],[[]],[[],29],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[[3,[[0,[1,2]]]],27],19],0,[[[3,[[0,[1,2]]]]],[[0,[25,30]]]],[[[3,[[0,[1,2]]]],31],25],[[],32],[[],32],[[],32],[[],32],[[],32],[[[3,[[0,[1,2]]]]],12],[[[3,[[0,[1,2]]]]],25],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[33,33]],[[34,33]],[[34,34],[[10,[33,35]]]],[34,34],[34,36],[34,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[34,37],0,[34,[[19,[38]]]],[[[34,[1]]],[[34,[1]]]],[[[33,[1]]],[[33,[1]]]],[[[39,[1]]],[[39,[1]]]],[[[40,[1]]],[[40,[1]]]],[[[35,[1]]],[[35,[1]]]],[[[41,[1]]],[[41,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[33,12],[[],34],[[],33],[[],[[10,[33]]]],[[34,34],[[10,[33,35]]]],[[[34,[13]],34],12],[[[33,[13]],33],12],[[[39,[13]],39],12],[[[40,[13]],40],12],[[[35,[13]],35],12],[[[41,[13]],41],12],[[[34,[14]],15],16],[[[33,[14]],15],16],[[[39,[14]],15],16],[[[39,[14]],15],16],[[[40,[14]],15],16],[[[40,[14]],15],16],[[[35,[14]],15],16],[[[35,[14]],15],16],[[[41,[14]],15],16],[[[41,[14]],15],16],[[34,17]],[[33,17]],[[]],[[]],[[]],[[]],[41,40],[42,40],[41,35],[43,35],[[]],[[]],[[34,27],[[19,[8]]]],[[34,31],19],[34,36],0,[[34,37,44],[[10,[34,39]]]],[[34,7],[[10,[33,45]]]],[[34,7],[[10,[33,45]]]],[[34,22],[[10,[33,40]]]],[[34,22],[[10,[33,40]]]],[[34,27,28],33],[[34,27,28],33],[[]],[[]],[[]],[[]],[[]],[[]],[[34,18],33],[[34,18],33],[34,12],[33,12],[[37,36],[[10,[34,39]]]],[46],[46],[46],[46],[33,10],[[34,[19,[38]]]],[[34,27],19],[[]],[[]],[[]],[[]],[[]],[[]],[[],29],[[],29],[[],29],[[],29],[34,25],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[34,22],47],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[48,48],48],[[49,[51,[50]]]],[[[52,[[0,[1,2,14]]]],[0,[1,2,14]],[51,[50]]]],[[[53,[2]],[53,[2]]]],[[54,54]],[[[52,[[0,[1,2,14]]]],[53,[[0,[1,2,14]]]]]],[[49,54]],[[49,55],[[10,[54,35]]]],[53,4],[49,37],[49,34],[49,36],[53,4],[55,36],[[49,17],48],[[49,18],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,37],[49,34],0,[49,[[19,[38]]]],[[[49,[1,1]]],[[49,[1,1]]]],[[[52,[1]]],[[52,[1]]]],[[[53,[1]]],[[53,[1]]]],[[[55,[1,1]]],[[55,[1,1]]]],[[[54,[1,1]]],[[54,[1,1]]]],[48,48],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],49],[[],52],[[],53],[[],55],[[],54],[[],48],[52],0,[[],[[10,[53]]]],[[],[[10,[54]]]],[[],[[10,[48]]]],[[49,55],[[10,[54,35]]]],[[[53,[13]],53],12],[[[55,[13,13]],55],12],[[48,48],12],[[[49,[14,14]],15],16],[[[52,[14]],15],16],[[[53,[14]],15],16],[[[55,[14,14]],15],16],[[[54,[14,14]],15],16],[[48,15],16],[[48,15],16],[[54,17]],[[]],[[]],[[]],[[]],[34,55],[[]],[53,54],[33,54],[[]],[49,47],[49,47],[49,36],0,[[[52,[[0,[1,2,14]]]]],3],[[49,7],[[10,[54,45]]]],[[49,7],[[10,[54,45]]]],[[49,22],[[10,[54,40]]]],[[49,22],[[10,[54,40]]]],[[]],[[]],[[]],[[]],[[]],[[]],[53,12],[54,12],[49,4],[[[52,[[0,[1,2,14]]]]],4],0,[[[52,[[0,[1,2,14]]]]],[[19,[18]]]],[[[52,[[0,[1,2,14]]]]],4],[[[52,[[0,[1,2,14]]]]],[[19,[18]]]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],18]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],[4,[[0,[1,2,14]],18]]]],[[[52,[[0,[1,2,14]]]]],4],[[[52,[[0,[1,2,14]]]],18],12],[[[52,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]]]],0,[[[52,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],4]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],[0,[47,1]]]]]],[[[52,[[0,[1,2,14]]]]],[[0,[25,1]]]],[[[52,[[0,[1,2,14]]]]],[[53,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]],27,28],[[53,[[0,[1,2,14]]]]]],[53,10],[54,10],[48,10],[[49,[19,[38]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],[0,[47,1]]]]]],[[[52,[[0,[1,2,14]]]]],[[0,[47,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],29],[48,11],0,[48,11],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[[52,[[0,[1,2,14]]]]],25],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[[52,[[0,[1,2,14]]]],18],12],0,[[[52,[[0,[1,2,14]]]]],25],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,[54,10],[[]],[[]],[56,10],[[[56,[14,14,14]],15],16],[[]],[[]],[49,10],[[],56],[[56,54]],[56,54],[[],10],[[],10],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,[[57,57]],[[[37,[21]],[57,[21]]]],[[[37,[21]],[37,[21]]],[[10,[[57,[21]],[43,[21]]]]]],[37,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[37,[21]],57],47],[[[37,[21]],18],[[19,[7]]]],[[[37,[21]]],[[19,[38]]]],[[[37,[21]]],4],0,[[[37,[21]]],[[57,[21]]]],[[[37,[21]]],[[57,[21]]]],[[[37,[1]]],[[37,[1]]]],[[[42,[1]]],[[42,[1]]]],[58,58],[[[43,[1]]],[[43,[1]]]],[[[57,[1]]],[[57,[1]]]],[[]],[[]],[[]],[[]],[[]],[[],37],[[],57],[[],[[10,[57]]]],[[[37,[21]],[37,[21]]],[[10,[[57,[21]],[43,[21]]]]]],[[[37,[13]],37],12],[[[42,[13]],42],12],[[58,58],12],[[[43,[13]],43],12],[[[57,[13]],57],12],[[[37,[14]],15],16],[[[42,[14]],15],16],[[[42,[14]],15],16],[[58,15],16],[[58,15],16],[[[43,[14]],15],16],[[[43,[14]],15],16],[[[57,[14]],15],16],[[]],[[]],[[]],[[]],[[]],[[],[[37,[21]]]],[[[37,[21]],36,27],[[19,[[8,[21]]]]]],[[],5],[[[37,[21]]],[[57,[21]]]],[[[37,[21]],7],[[10,[[57,[21]],58]]]],[[[37,[21]],7],[[10,[[57,[21]],58]]]],[[[37,[21]],31,21],[[10,[[57,[21]],[42,[21]]]]]],[[[37,[21]],31,21],[[10,[[57,[21]],[42,[21]]]]]],[[]],[[]],[[]],[[]],[[]],[[[37,[21]],18],[[57,[21]]]],[[[37,[21]],18],[[57,[21]]]],[[[37,[21]]],12],[57,12],[[[37,[21]]],[[19,[7]]]],[5],[5],[46],[46],[46],[[[37,[21]],[24,[18]]],25],[[[37,[21]]],25],[[[37,[21]]],25],[[[37,[21]]],25],[57,10],[[[37,[21]],[19,[38]]]],[[[37,[21]],36,27],19],[[]],[[]],[[]],[[]],[[]],[[],29],[[],29],[[],29],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[[37,[21]],31],19],[[[37,[21]]],[[0,[25,30]]]],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[36,47],[[59,59]],[[36,59]],[[36,36],59],[36,36],[[]],[[]],[[]],[[]],[[]],[[]],[[36,22],[[19,[23]]]],[[],[[19,[60]]]],[[],[[19,[61]]]],[36,36],[59,59],[[]],[[]],[[],36],[[],59],[[],[[10,[59]]]],[[36,36],59],[[36,22],47],[[36,36],12],[[59,59],12],[[36,15],16],[[59,15],16],[[36,17]],[[59,17]],[[]],[[]],[[]],[36,47],[[36,31],[[19,[22]]]],[[36,27],[[19,[28]]]],[[36,22],59],[[36,22],59],[[36,27,28],59],[[36,27,28],59],[[]],[[]],[[]],[[]],[36,12],[59,12],[44,36],[62,19],[[36,27],63],[36,47],[59,10],[[]],[[]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[36,31],25],0,[[36,31],[[19,[[4,[18,28]]]]]],[59,47],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[36,22],62],[[36,31],62]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[4,"TxHeight"],[4,"ConfirmationTime"],[3,"BlockId"],[3,"FullTxOut"],[4,"Ordering"],[4,"Result"],[15,"u64"],[15,"bool"],[8,"PartialEq"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[8,"FnMut"],[15,"u32"],[4,"Option"],[3,"Script"],[8,"ChainPosition"],[3,"Transaction"],[15,"i64"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[3,"BTreeSet"],[3,"OutPoint"],[3,"TxOut"],[3,"String"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[3,"ChangeSet"],[3,"ChainGraph"],[4,"UpdateError"],[3,"TxGraph"],[3,"SparseChain"],[15,"usize"],[4,"NewError"],[4,"InsertTxError"],[3,"UnresolvableConflict"],[4,"InsertTxError"],[4,"UpdateError"],[8,"IntoIterator"],[6,"InsertCheckpointError"],[3,"Demand"],[8,"Iterator"],[3,"Balance"],[3,"KeychainTracker"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"KeychainTxOutIndex"],[3,"DerivationAdditions"],[3,"KeychainChangeSet"],[3,"KeychainScan"],[3,"Persist"],[3,"ChangeSet"],[4,"InsertCheckpointError"],[3,"Additions"],[3,"Amount"],[3,"SignedAmount"],[3,"TxDescendants"],[3,"HashSet"],[8,"DescriptorExt"],[8,"ForEachTxOut"],[13,"Confirmed"],[13,"Conflict"],[8,"PersistBackend"],[13,"HashNotMatching"],[13,"TxMovedUnexpectedly"],[13,"TxTooHigh"],[13,"TxInconsistent"]]},\ -"bdk_coin_select":{"doc":"","t":[3,3,4,4,3,3,13,6,13,3,4,13,13,13,3,4,3,13,13,17,13,13,13,13,13,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,12,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11],"n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","provide","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":["bdk_coin_select","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Bnb represents the current state of the BnB algorithm.","","Determines how we should limit rounds of branch and bound.","Strategy in which we should branch.","CoinSelector is responsible for selecting and deselecting …","","We continue exploring subtrees of this node, starting with …","Closure to decide the branching strategy, alongside a …","","","","Min absolute fee is not met","Min drain value is not met","","","","","We skip both the inclusion and omission branches of this …","We continue exploring ONY the omission branch of this …","Txin “base” fields include outpoint (32+4) and …","The target fee (given the feerate) is not met","The target is not met","","","","A WeightedValue represents an input candidate for …","Compare advertised score with current best. New best will …","","","Attempt to backtrack to the previously selected node’s …","The weight of the template transaction including fixed …","","Returns the ExcessStrategy that results in the least waste.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This is a variation of the Branch and Bound Coin Selection …","Current excess.","Current weight of template tx + selected inputs.","","","","Additional weight if we include the drain (change) output.","This is the effective target value.","Effective value of this input candidate: …","","","","","","Returns feerate in sats/wu.","","","","","","","","","","","","","Continue down this branch, skip inclusion branch if …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Total number of inputs; so we can calculate extra varint …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turns our Bnb state into an iterator.","","","Whether this WeightedValue contains at least one segwit …","","","The feerate","Additional leeway for the target value.","The minimum absolute fee. I.e. needed for RBF.","Minimum value allowed for a drain (change) output.","Creates a new Bnb.","Create a new WeightedValue that represents a single input.","","","","","","","","","","","","","","","","Absolute value sum of all selected inputs.","","Effective value sum of all selected inputs.","","Waste sum of all selected inputs.","Weight sum of all selected inputs.","","Weight of spending the drain (change) output in the future.","The feerate we should try and achieve in sats per weight …","The value we need to select. If the value is None then the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Total value of the UTXO(s) that this WeightedValue …","","","","","","","","","","","","","","Total weight of including this/these UTXO(s). txin fields: …","",""],"i":[0,0,0,0,0,0,34,0,22,0,0,11,11,22,0,0,0,34,34,0,11,11,12,12,12,0,2,4,5,2,9,2,5,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,9,4,10,11,5,12,13,8,9,4,10,11,5,12,13,12,0,4,4,4,13,9,9,4,8,11,12,5,5,13,13,4,8,9,4,10,10,11,11,5,12,12,13,2,34,2,26,22,22,22,8,9,4,10,11,5,12,13,9,12,8,34,2,26,22,8,9,4,10,11,5,12,13,2,26,4,8,4,9,9,9,9,9,2,8,4,26,4,12,2,2,10,13,2,2,4,4,4,4,5,4,4,4,4,4,4,2,9,9,9,8,9,4,10,11,5,12,13,10,11,12,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,34,2,26,22,8,9,4,10,11,5,12,13,13,8,13,34],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],1],3],[4,3],[5,6],[[[2,[1]]],3],0,0,[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,7],8],0,[8,8],[9,9],[4,4],[10,10],[11,11],[5,5],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,12],14],[4,[[15,[4]]]],[4,16],[4,17],[[4,7],3],0,[9,16],0,[4,16],[[8,18],16],[[11,11],3],[[12,12],3],0,0,0,[13,18],[4,[[19,[5,10]]]],[[8,20],21],[[9,20],21],[[4,20],21],[[10,20],21],[[10,20],21],[[11,20],21],[[11,20],21],[[5,20],21],[[12,20],21],[[12,20],21],[[13,20],21],[[[2,[1]],3]],[[]],[[]],[[]],[[]],[7,22],[23,22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[24,17],9],[12],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[2,[1]],25],[[26,[1]]]],[[]],[4,3],0,[[4,7],3],[9,18],0,0,0,0,[[4,27,1],[[2,[1]]]],[[28,17,3],8],[[27,9],4],[[[26,[[0,[1,29,30]]]]],15],0,[[12,12],[[15,[14]]]],0,0,[31],0,0,0,[[4,7],3],[4],[4,[[19,[5,10]]]],[4,6],0,[4,28],[4,7],[4,16],[4,6],[4,16],[4,17],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[],32],[[],32],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[4,6],[4,6],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[34,3]],"p":[[8,"Ord"],[3,"Bnb"],[15,"bool"],[3,"CoinSelector"],[3,"Selection"],[8,"Iterator"],[15,"usize"],[3,"WeightedValue"],[3,"CoinSelectorOpt"],[3,"SelectionError"],[4,"SelectionConstraint"],[4,"ExcessStrategyKind"],[3,"ExcessStrategy"],[4,"Ordering"],[4,"Option"],[15,"i64"],[15,"u32"],[15,"f32"],[4,"Result"],[3,"Formatter"],[6,"Result"],[4,"BnbLimit"],[3,"Duration"],[3,"TxOut"],[6,"DecideStrategy"],[3,"BnbIter"],[3,"Vec"],[15,"u64"],[8,"Copy"],[8,"Display"],[3,"Demand"],[3,"String"],[3,"TypeId"],[4,"BranchStrategy"]]},\ -"bdk_electrum":{"doc":"This crate is used for updating structures of the bdk_chain…","t":[8,3,11,2,11,11,12,11,2,11,10,11,11,11,12,11,10,11,11,11,11,11],"n":["ElectrumExt","ElectrumUpdate","as_ref","bdk_chain","borrow","borrow_mut","chain_update","default","electrum_client","from","get_tip","into","into_confirmation_time_update","into_keychain_scan","last_active_indices","missing_full_txs","scan","scan_without_keychain","try_from","try_into","type_id","vzip"],"q":["bdk_electrum","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait to extend electrum_client::Client functionality.","The result of ElectrumExt::scan.","","","","","The internal SparseChain update.","","","Returns the argument unchanged.","Fetch the latest block height.","Calls U::from(self).","Creates ElectrumUpdate<K, ConfirmationTime> from …","Transform the ElectrumUpdate into a KeychainScan which can …","The last keychain script pubkey indices which had …","Return a list of missing full transactions that are …","Scan the blockchain (via electrum) for the data specified. …","Convenience method to call scan without requiring a …","","","",""],"i":[0,0,1,0,1,1,1,1,0,1,21,1,1,1,1,1,21,21,1,1,1,1],"f":[0,0,[1,2],0,[[]],[[]],0,[[],1],0,[[]],[[],[[4,[3]]]],[[]],[[[1,[[0,[5,6,7]],8]],9],[[4,[[1,[[0,[5,6,7]],10]],3]]]],[[[1,[[0,[5,6,7]],11]],[13,[12]]],[[4,[[14,[[0,[5,6,7]],11]],[15,[11]]]]]],0,[[[1,[[0,[5,6,7]],11]]],[[13,[16]]]],[[17,[17,[[0,[5,6]],18]],18,18,19,19],[[4,[[1,[[0,[5,6]],8]],3]]]],[[17,18,18,18,19],[[4,[2,3]]]],[[],4],[[],4],[[],20],[[]]],"p":[[3,"ElectrumUpdate"],[3,"SparseChain"],[4,"Error"],[4,"Result"],[8,"Ord"],[8,"Clone"],[8,"Debug"],[4,"TxHeight"],[3,"Client"],[4,"ConfirmationTime"],[8,"ChainPosition"],[3,"Transaction"],[3,"Vec"],[3,"KeychainScan"],[4,"NewError"],[3,"Txid"],[3,"BTreeMap"],[8,"IntoIterator"],[15,"usize"],[3,"TypeId"],[8,"ElectrumExt"]]},\ +"bdk":{"doc":"bdk","t":[13,13,13,13,13,4,13,3,13,13,13,13,13,2,13,13,13,13,13,13,4,13,3,13,13,13,13,13,13,13,2,13,13,13,3,13,2,13,4,8,2,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,0,14,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,11,11,11,0,12,12,12,11,11,11,2,11,2,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,10,5,11,11,11,11,11,11,11,0,11,12,12,12,12,12,12,13,6,4,2,4,3,6,8,13,6,8,16,6,4,3,13,13,2,8,4,13,13,6,13,13,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,5,5,5,5,13,13,4,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,8,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,4,3,3,13,8,13,13,4,13,13,6,6,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,12,11,11,11,11,11,5,3,13,8,3,6,4,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,13,3,13,13,4,3,13,13,3,8,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bip32","BnBNoExactMatch","BnBTotalTriesExceeded","ChecksumMismatch","Descriptor","Error","External","FeeRate","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","Foreign","Generic","HdKeyPaths","InsufficientFunds","Internal","InvalidOutpoint","InvalidPolicyPathError","IrreplaceableTransaction","Key","KeychainKind","Local","LocalUtxo","Miniscript","MiniscriptPsbt","MissingKeyOrigin","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","Psbt","SignOptions","Signer","SpendingPolicyRequired","TransactionConfirmed","TransactionDetails","TransactionNotFound","TxBuilder","UnknownUtxo","Utxo","Vbytes","Wallet","WeightedUtxo","as_byte","as_ref","as_sat_per_vb","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","check_base32","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","confirmation_time","confirmation_time","default","default_min_relay_fee","derivation_index","descriptor","descriptor","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","fee","fee_vb","fee_wu","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fragment","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_btc_per_kvb","from_sat_per_kvb","from_sat_per_kwu","from_sat_per_vb","from_vb","from_wu","hash","hash","into","into","into","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","partial_cmp","partial_cmp","provide","psbt","received","satisfaction_weight","sent","serialize","serialize","serialize","signer","sub","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction","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","txid","txout","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","utxo","vbytes","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet","write_base32","available","needed","required","required","outpoint","psbt_input","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","DescriptorXKey","ExtendedDescriptor","ExtractPolicy","Hardened","HdKeyPaths","IntoWalletDescriptor","Key","KeyMap","Legacy","Miniscript","None","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Unhardened","Wildcard","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","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_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","contains_raw_pkh","derivation_path","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","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","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from_ast","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","hash","hash","into","into","into","into","into","into","into_inner","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_non_malleable","iter","iter_pk","lift","lift","lift_check","matches","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","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","origin","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","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","template","to_owned","to_owned","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_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","vzip","vzip","wildcard","within_resource_limits","xkey","calc_checksum","calc_checksum_bytes","get_checksum","get_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2Wpkh","P2Wpkh_P2Sh","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","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","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","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","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","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","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","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","encode","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","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_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_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","sig_type","sorted_node","test_networks","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","AddressIndex","AddressInfo","Balance","Descriptor","IsDust","LastUnused","New","NewError","Peek","Persist","Update","UpdateError","Wallet","add","add_signer","address","apply_update","as_chain_graph","as_graph","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","cancel_tx","checkpoints","clone","clone_into","coin_selection","commit","confirmed","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_address","get_balance","get_descriptor_for_keychain","get_internal_address","get_psbt_input","get_signers","get_tx","get_utxo","immature","index","insert_checkpoint","insert_tx","into","into","into","into","into","is_dust","is_mine","keychain","keychanins","latest_checkpoint","list_transactions","list_unspent","network","new","new_no_persist","next_derivation_index","policies","provide","public_descriptor","secp_ctx","serialize","sign","signer","spks_of_all_keychains","spks_of_keychain","staged","to_owned","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","tx_builder","type_id","type_id","type_id","type_id","type_id","untrusted_pending","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Excess","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","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","from","from","from","from","from","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","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","amount","change_fee","dust_threshold","fee","remaining_amount","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","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","eq","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","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_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","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","Untouched","add_data","add_foreign_utxo","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","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"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Error","","","","bdk::Utxo","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["BIP32 error","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Descriptor checksum mismatch","Error related to the parsing and usage of descriptors","Errors that can be thrown by the Wallet","External","Fee rate","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","A UTXO owned by another wallet.","Generic error","","Wallet’s UTXO set is not enough to cover recipient’s …","Internal, usually used for change outputs","Requested outpoint doesn’t exist in the tx (vout greater …","Error while extracting and manipulating policies","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Error while working with keys","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","Miniscript error","Miniscript PSBT error","In order to use the TxBuilder::add_global_xpubs option …","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Partially signed bitcoin transaction error","","Signing error","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","A wallet transaction","Thrown when a tx is not found in the internal database","","Happens when trying to spend an UTXO that is not in the …","An unspent transaction output (UTXO).","Trait implemented by types that can be used to measure …","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","Return the value as satoshi/vbyte","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","If the transaction is confirmed, contains height and Unix …","","Create a new FeeRate with the default min relay fee value","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","Fee value in sats if it was available.","Calculate absolute fee in Satoshis using size in virtual …","Calculate absolute fee in Satoshis using size in weight …","","","","","","","","","Macro to write descriptor fragments with code","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Calculate fee rate from fee and vbytes.","Calculate fee rate from fee and weight units (wu).","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","","","","Additional functions on the rust-bitcoin …","Received value (sats) Sum of owned outputs of this …","The weight of the witness data and scriptSig expressed in …","Sent value (sats) Sum of owned inputs of this transaction.","","","","","","","","","","","","","","Optional transaction","","","","","","","","","","","","","","","Transaction id","Get the TxOut of the UTXO","Transaction output","","","","","","","","The UTXO","Convert weight units to virtual bytes.","Get the version of BDK at runtime","","","","","","","","Wallet","","Sats available for spending","Sats needed for some transaction","Required fee rate (satoshi/vbyte)","Required fee absolute value (satoshi)","The location of the output.","The information about the input we require to add it to a …","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","An extended key with origin, derivation path, and wildcard.","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Unhardened wildcard, e.g. *h","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Alias type for a map of public key to secret key","Legacy ScriptContext To be used as P2SH scripts For …","Top-level script AST type","No wildcard","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Unhardened wildcard, e.g. *","Whether a descriptor has a wildcard in it","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","Replaces all wildcards (i.e. /*) in the descriptor with a …","","","","","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","The derivation path","Deprecated name for [at_derivation_index].","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","Encode as a Bitcoin script","","","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending policy","","","Utility method for deriving the descriptor at each index …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. /*.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extracts the AstElem representing the root of the …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds conversion of miniscript into Policy […","Compares this key with a keysource and returns the …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the Abstract Syntax Tree(","Origin information","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","","","Get the len of public key when serialized based on context …","","","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Descriptor templates","","","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","","","","","The correctness and malleability type information for the …","","","","","","","Computes the scriptSig that will be in place for an …","","","","","","","Whether the descriptor is wildcard","Whether the miniscript can exceed the resource …","The extended key","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Compute the checksum of a descriptor","Compute the checksum bytes of a descriptor","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","Key-related error","Error while extracting and manipulating policies","","","","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to …","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","Trait for descriptor templates that can be built into a …","Type alias for the return type of DescriptorTemplate, …","P2PKH template. Expands to a descriptor pkh(key)","P2WPKH template. Expands to a descriptor wpkh(key)","P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. [u8;32]","Returned error in case of failure","Trait that adds extra useful methods to ScriptContexts","Enum for extended keys that can be either xprv or xpub","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a GeneratableKey key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with keys","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single public key.","Single private key.","A descriptor bitcoin::PrivateKey with optional origin …","A descriptor SinglePubKey with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the ScriptContext as a ScriptContextEnum","Replaces any wildcard (i.e. /*) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name of [at_derivation_index].","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Transform the ExtendedKey into an ExtendedPrivKey for the …","Transform the ExtendedKey into an ExtendedPubKey for the …","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is …","Returns whether the script context is Segwitv0","Returns whether the script context is …","Returns whether the script context is Tap, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of SortedMultiVec given a list of …","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the TxOut for the specified input index, if it doesn’…","The address index selection strategy to use to derived an …","A derived address and the index it was found at. For …","Balance, differentiated into various categories.","There was problem with the descriptors passed in","Trait to check if a value is below the dust limit. We are …","Return the address for the current descriptor index if it …","Return a new address after incrementing the current …","Error returned from Wallet::new","Return the address for a specific descriptor index. Does …","We were unable to load the wallet’s data from the …","The update to a Wallet used in Wallet::apply_update. This …","Error indicating that something was wrong with an Update<T>…","A Bitcoin wallet","","Add an external signer","Address","Applies an update to the wallet and stages the changes …","Get a reference to the inner ChainGraph.","Get a reference to the inner TxGraph.","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Informs the wallet that you no longer intend to broadcast …","Get all the checkpoints the wallet is currently storing …","","","Coin selection","Commits all curently staged changed to the persistence …","Confirmed and immediately spendable balance","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return a derived address using the external descriptor, …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Return a derived address using the internal (change) …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Return a single transactions made and received by the …","Returns the utxo owned by this wallet corresponding to …","All coinbase outputs not yet matured","Child index of this address","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Returns the latest checkpoint.","Deprecated. use Wallet::transactions instead.","Return the list of unspent outputs of this wallet","Get the Bitcoin network the wallet is using.","Create a wallet from a descriptor (and an optional …","Creates a wallet that does not persist data.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Returns a iterators of all the script pubkeys for the …","Gets an iterator over all the script pubkeys in a single …","Returns the changes that will be staged with the next call …","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet in order of …","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","Transaction builder","","","","","","Unconfirmed UTXOs received from an external wallet","","","","","","Deterministically generate a unique name given the …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Remaining amount after performing coin selection","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper structure to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Sign a single psbt input","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee","Set a custom fee rate","Finish building the transaction.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","",""],"i":[17,17,17,17,17,0,1,0,17,17,17,12,17,0,17,1,17,17,17,17,0,12,0,17,17,17,17,17,17,17,0,17,17,17,0,17,0,17,0,0,0,0,1,1,3,1,17,1,3,10,11,12,13,17,1,3,10,11,12,13,0,1,1,3,10,11,12,13,1,3,10,11,12,13,1,13,10,13,3,3,10,0,0,1,10,13,1,3,10,11,12,13,13,3,3,17,17,1,3,10,11,12,13,0,17,17,17,17,17,17,17,17,1,3,10,11,12,13,3,3,3,3,3,3,1,10,17,1,3,10,11,12,13,10,10,0,12,10,1,3,13,17,0,13,11,13,1,10,13,0,3,0,1,3,10,11,12,13,17,13,17,1,3,10,11,12,13,17,1,3,10,11,12,13,13,12,10,17,1,3,10,11,12,13,11,168,0,17,1,3,10,11,12,13,0,1,169,169,170,171,172,172,34,0,0,0,0,0,0,0,45,0,0,58,0,0,0,45,34,0,0,0,34,40,0,34,45,0,34,34,40,34,46,47,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,0,58,46,47,58,47,58,58,46,47,58,46,47,58,58,46,47,58,46,47,0,44,45,34,46,47,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,34,34,34,34,34,38,34,38,44,45,34,46,47,38,0,34,38,38,173,34,38,34,44,45,34,34,46,47,38,38,34,38,44,45,34,34,34,34,34,34,34,46,47,38,38,34,38,38,38,34,38,38,38,34,34,38,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,142,68,34,38,38,38,34,38,38,44,58,46,47,38,34,38,58,46,47,34,34,34,34,34,34,34,34,34,34,34,34,34,34,38,44,58,38,34,38,38,44,45,34,46,47,38,58,46,47,0,38,34,38,34,38,38,34,34,38,34,38,58,46,47,0,44,45,34,46,47,38,34,38,34,58,58,34,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,45,34,46,47,38,34,44,45,34,46,47,38,44,38,44,0,0,0,0,22,22,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,83,23,23,0,84,0,0,83,82,0,83,83,23,23,23,83,84,56,23,84,84,0,0,0,56,56,82,83,83,0,0,83,83,83,82,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,56,82,83,84,57,85,56,57,85,85,82,83,84,57,85,23,82,83,84,57,85,23,23,56,82,83,84,84,57,57,85,23,56,57,82,85,83,57,82,83,84,57,85,23,56,83,84,85,57,85,23,57,57,82,83,84,57,85,85,82,83,84,57,85,56,23,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,23,56,82,83,84,57,85,23,56,174,174,174,175,176,177,176,177,176,177,176,177,176,177,178,179,180,181,182,183,183,182,184,185,0,0,0,0,0,0,0,0,0,0,0,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,186,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,87,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,89,90,91,93,94,95,96,97,98,25,0,0,0,0,187,187,0,0,105,0,0,0,0,25,25,25,58,0,0,37,25,25,187,111,0,111,0,0,37,40,108,0,0,0,0,37,0,105,108,40,0,188,40,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,58,58,58,58,58,58,58,58,101,37,102,103,40,104,105,101,37,102,103,40,104,105,103,40,104,105,102,102,101,40,103,37,103,40,104,105,107,37,102,25,25,103,103,40,40,108,108,104,109,105,103,111,111,111,101,107,37,102,25,25,25,103,40,40,108,104,109,105,107,107,40,108,103,40,187,189,187,189,111,40,103,40,104,105,111,101,107,37,102,25,103,40,108,104,109,105,88,92,101,101,107,40,108,92,111,101,101,111,111,40,188,37,188,37,188,37,40,40,103,104,109,103,0,40,58,103,103,0,58,103,104,109,58,107,103,40,104,105,58,103,25,103,103,103,58,103,0,101,37,102,103,40,104,105,108,25,103,40,108,58,58,103,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,111,101,107,37,102,25,103,40,108,104,109,105,0,190,190,190,0,0,0,135,0,134,134,0,134,135,0,0,0,116,117,131,117,117,117,117,117,116,117,134,131,135,116,117,134,131,135,117,117,117,117,116,116,0,117,116,116,131,117,117,117,116,116,131,0,117,116,116,117,134,131,131,135,135,116,117,134,131,135,117,117,117,117,117,117,117,117,116,131,117,117,116,117,134,131,135,191,117,131,117,117,117,117,117,117,117,117,117,135,117,117,116,117,0,117,117,117,116,116,131,135,116,117,116,116,116,117,134,131,135,116,117,134,131,135,0,116,117,134,131,135,116,116,117,134,131,135,0,0,150,0,0,0,0,0,150,0,150,149,146,147,148,150,149,146,147,148,146,147,148,146,147,148,161,146,147,148,0,146,147,148,149,149,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,149,148,149,149,146,147,148,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,150,149,146,147,148,192,193,193,192,193,0,0,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,157,152,157,152,157,24,0,24,24,24,154,24,24,24,24,24,24,157,152,154,24,0,0,0,0,0,0,0,0,154,0,0,24,55,133,133,55,133,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,55,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,118,118,55,133,157,156,194,156,156,152,24,154,118,157,55,152,24,24,154,156,118,55,133,157,152,152,152,24,24,154,156,118,55,133,157,152,194,156,156,55,152,24,154,156,118,55,133,157,156,55,152,118,24,55,133,195,156,156,119,156,133,55,133,152,24,154,156,118,55,133,157,24,133,133,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,152,24,154,156,118,55,133,157,196,164,0,163,163,0,0,163,164,0,0,0,164,128,128,128,128,128,128,128,128,128,129,127,128,164,163,129,127,128,164,163,128,129,127,128,164,163,129,127,128,164,163,164,163,128,128,129,127,164,163,128,128,128,128,128,164,163,128,128,128,129,127,128,164,163,129,127,128,164,163,164,163,128,129,127,128,164,163,128,128,128,128,128,164,163,128,128,128,164,129,127,128,164,163,129,127,128,164,163,129,127,128,164,163,129,127,128,164,163,128,128,129,127,128,164,163],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[3,4],[[],5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[9,[[8,[6,7]]]]]],[1,1],[3,3],[10,10],[11,11],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[1,1],14],[[13,13],14],0,0,[[],3],[[],3],0,0,0,[[],[[9,[1]]]],[[],[[9,[10]]]],[[],[[9,[13]]]],[[1,1],15],[[3,3],15],[[10,10],15],[[11,11],15],[[12,12],15],[[13,13],15],0,[[3,5],16],[[3,5],16],[[17,18],19],[[17,18],19],[[1,18],19],[[3,18],19],[[10,18],19],[[11,18],19],[[12,18],19],[[13,18],19],0,[20,17],[21,17],[[]],[22,17],[23,17],[24,17],[25,17],[26,17],[[]],[[]],[[]],[[]],[[]],[[]],[4,3],[4,3],[4,3],[4,3],[[16,5],3],[[16,5],3],[1],[10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[12,27],0,[[1,1],[[28,[14]]]],[[3,3],[[28,[14]]]],[[13,13],[[28,[14]]]],[29],0,0,0,0,[1,9],[10,9],[13,9],0,[[3,3]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[12,31],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[],5],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],9],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[34,35],[[9,[36,26]]]],[[],37],[[],37],[38,39],[[[34,[40]],41],[[34,[42]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[8,[38,7]]]],0,[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],0,[44,44],[45,45],[34,34],[46,46],[47,47],[38,38],[[]],[[]],[[]],[[]],[[]],[[]],[[44,44],14],[[45,45],14],[[34,34],14],[[46,46],14],[[47,47],14],[[38,38],14],[38,15],0,[[[34,[40]],41],[[34,[42]]]],[[[34,[40]],48,41],[[9,[[34,[49]],50]]]],[[[34,[42]],48],[[9,[[34,[49]],50]]]],[34,51],[[],[[9,[34]]]],[[],[[9,[38]]]],[[[34,[40]]],16],[38,52],[[44,44],15],[[45,45],15],[[34,34],15],[[46,46],15],[[47,47],15],[[38,38],15],0,[34,[[9,[52,26]]]],0,[[38,53],[[9,[54]]]],[[55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],55,56,48],[[9,[[28,[57]],22]]]],[[[38,[40,58]],55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],48,52,[59,[41]]],[[9,[28,50]]]],[[44,18],[[9,[60]]]],[[45,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[46,18],[[9,[60]]]],[[47,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[34,15],[38,15],[[]],[[]],[61,34],[[]],[62,34],[63,34],[64,34],[65,34],[66,34],[[]],[[]],[[]],[39,[[9,[38,26]]]],[33,[[9,[34,26]]]],[33,[[9,[38,26]]]],[[33,53],[[9,[38,26]]]],[33,[[9,[38,26]]]],[67,[[9,[34,26]]]],[67,[[9,[38,26]]]],[[38,5],[[28,[38]]]],[[38,5],28],[34,[[9,[26]]]],[34,[[9,[26]]]],[38,15],[38,15],[[[34,[40]]],15],[44],[45],[34],[46],[47],[38],[[]],[[]],[[]],[[]],[[]],[[]],[38,39],[[48,35],[[9,[22]]]],[[68,48,35],[[9,[22]]]],[[[34,[40]]],15],[38,15],[38,69],[38,70],[34,[[9,[71,26]]]],[38,[[9,[71,26]]]],[38,[[9,[72]]]],[[44,48],[[28,[73]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[9,[5,26]]]],[34,[[9,[5,26]]]],[38,[[9,[5,26]]]],[[],33],[[],33],[[],33],[[[38,[74]]],[[9,[34,26]]]],[[],34],[[],34],[[[38,[46]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],[65,34],[61,34],[[],[[9,[34,26]]]],[[[38,[47]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],[[[28,[75]]],[[9,[34,26]]]],[[],[[9,[34,26]]]],[[[38,[47]]],[[9,[34,26]]]],[[5,[8,[7]]],[[9,[34,26]]]],0,0,[38,[[9,[26]]]],[52,[[9,[38,26]]]],[[48,33],[[9,[26]]]],[52,[[9,[38,26]]]],[[52,53],[[9,[38,26]]]],[[44,44],[[28,[14]]]],[[45,45],[[28,[14]]]],[[34,34],[[28,[14]]]],[[46,46],[[28,[14]]]],[[47,47],[[28,[14]]]],[[38,38],[[28,[14]]]],[[],5],[[],5],[[],5],0,[38,15],[34,[[9,[26]]]],[38,[[9,[54]]]],[[34,76],[[9,[26]]]],[38,[[9,[[8,[[8,[2,7]],7]],26]]]],[38,[[9,[[8,[[8,[2,7]],7]],26]]]],[34,[[9,[52,26]]]],[34,52],[38,5],[34,9],[38,9],[[],77],[[],77],[[],77],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],30],[[[34,[40]],78],30],[38,[[9,[26]]]],[38,[[9,[26]]]],[34,9],[38,9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[34,52],[[]],[[]],[[]],[[]],[[]],[[]],0,[38,15],0,[33,[[9,[30,22]]]],[33,[[9,[22]]]],[33,[[9,[30,22]]]],[33,[[9,[22]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[22,18],19],[[22,18],19],[[]],[23,22],[79,22],[25,22],[80,22],[26,22],[81,22],[21,22],[[]],[29],[[],30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[57,57],[85,85],[56,56],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],15],[[83,83],15],[[84,84],15],[[57,57],15],[[85,85],15],[[23,23],15],[[82,18],19],[[83,18],19],[[84,18],19],[[57,18],19],[[85,18],19],[[23,18],19],[[23,18],19],[[56,18],19],[[]],[[]],[15,84],[[]],[[]],[83,57],[[]],[[]],[[]],[[57,86],[[9,[85,23]]]],[82],[85],[83,30],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,15],[84,15],[85,15],0,[[85,85],[[28,[14]]]],[29],[57,15],0,[82,9],[83,9],[84,9],[57,9],[85,9],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[35,[[9,[87,22]]]],[[[89,[[88,[46]]]],35],[[9,[87,22]]]],[[[90,[[88,[47]]]],35],[[9,[87,22]]]],[[[91,[[88,[47]]]],35],[[9,[87,22]]]],[[[93,[[92,[46]]]],35],[[9,[87,22]]]],[[[94,[[92,[46]]]],35],[[9,[87,22]]]],[[[95,[[92,[47]]]],35],[[9,[87,22]]]],[[[96,[[92,[47]]]],35],[[9,[87,22]]]],[[[97,[[92,[47]]]],35],[[9,[87,22]]]],[[[98,[[92,[47]]]],35],[[9,[87,22]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[87,48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],99],[[],37],[[40,41],42],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[[101,[100,58]]],[[101,[100,58]]]],[37,37],[102,102],[103,103],[40,40],[104,104],[105,105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[103,103],14],[[40,40],14],[[104,104],14],[[105,105],14],0,[[],102],[[[101,[58]]]],[[40,41],42],[103,52],[[37,37],15],[[103,103],15],[[40,40],15],[[104,104],15],[[105,105],15],[[[107,[[0,[106,58]]]],18],19],[[37,18],19],[[102,18],19],[[25,18],19],[[25,18],19],[[103,18],[[9,[60]]]],[[103,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[108,18],[[9,[60]]]],[[108,18],[[9,[60]]]],[[104,18],[[9,[60]]]],[[109,18],[[9,[60]]]],[[105,18],[[9,[60]]]],[103,15],[110,[[111,[58]]]],[112,[[111,[58]]]],[[]],[[]],[[]],[[]],[[]],[26,25],[[]],[21,25],[[]],[42,40],[[]],[[]],[[]],[[]],[[]],[[40,99],[[107,[58]]]],[[108,99],[[107,[58]]]],[33,[[9,[40]]]],[33,[[9,[108]]]],[67,[[9,[103,26]]]],[40,73],[[],[[9,[101]]]],[[],[[9,[101]]]],[[],[[9,[101]]]],[[],[[9,[101]]]],[[[111,[58]]],15],[40,15],[103],[40],[104],[105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[9,[107,25]]]],[[[28,[113]],73],[[9,[107,25]]]],[[101,[28,[113]],73],[[9,[107,25]]]],[101,[[9,[107,25]]]],[[[107,[58]]],[[9,[[107,[58]],25]]]],[40,[[9,[[107,[58]],25]]]],[108,[[9,[[107,[58]],25]]]],[[],[[9,[111,25]]]],[[[111,[58]]],[[9,[[111,[58]],25]]]],[101,[[9,[111,25]]]],[[[101,[58]]]],[[[111,[58]],35],[[28,[112]]]],[[[111,[58]],35,48],110],[40,15],[[],15],[37,15],[[],15],[37,15],[[],15],[37,15],[40,15],[40,15],0,0,0,[103,[[9,[71,26]]]],[[],99],[40,114],[38,[[28,[5]]]],[103,5],[103,5],[[99,99],99],[[],33],[[5,[8,[7]]],[[9,[103,26]]]],0,0,[38,[[9,[26]]]],[[[107,[58]],99],[[107,[58]]]],[[103,103],[[28,[14]]]],[[40,40],[[28,[14]]]],[[104,104],[[28,[14]]]],[[105,105],[[28,[14]]]],[[],5],0,[29],[103,[[9,[26]]]],[103,[[9,[[8,[[8,[2,7]],7]],26]]]],[103,5],[[],77],[103,39],[[],99],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[108,48],[[9,[40,115]]]],[[],30],[[],30],[[],30],[[],30],[38,[[9,[26]]]],[38,[[9,[26]]]],[103,[[9,[103]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[28,[16]]]],[[],[[28,[3]]]],[5,[[28,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[116,116],116],[[117,1,118,[120,[119]]]],0,[[117,121],[[9,[122]]]],[117,123],[117,124],[117,124],[117,123],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[117,125],[[9,[[128,[126,127]],17]]]],[117,[[128,[126,129]]]],[[117,130]],[117,86],[116,116],[[]],0,[117,9],0,[[],116],[131],[[117,1],[[28,[41]]]],[[117,52],28],[[117,1],30],[[],[[9,[116]]]],[[116,116],15],[[131,131],15],0,[[117,132,133],[[9,[15,17]]]],[[116,18],[[9,[60]]]],[[116,18],[[9,[60]]]],[[[117,[106]],18],19],[[134,18],19],[[131,18],19],[[131,18],19],[[[135,[106]],18],19],[[135,18],19],[[]],[[]],[[]],[[]],[[]],[[117,134],131],[117,116],[[117,1],68],[[117,134],131],[[117,10,[28,[136]],15],[[9,[137,17]]]],[[117,1],[[120,[55]]]],[[117,125,15],[[28,[13]]]],[[117,27],[[28,[10]]]],0,0,[[117,138],[[9,[15,139]]]],[[117,130,140],[[9,[15,[141,[140]]]]]],[[]],[[]],[[]],[[]],[[]],[52,15],[[117,52],15],0,[117,86],[117,[[28,[138]]]],[[117,15],[[8,[13]]]],[117,[[8,[10]]]],[117,35],[[142,[28,[142]],35],[[9,[117,135]]]],[[142,[28,[142]],35],[[9,[117,22]]]],[[117,1],41],[[117,1],[[9,[[28,[57]],17]]]],[29],[[117,1],[[28,[68]]]],[117,48],[116,9],[[117,132,133],[[9,[15,17]]]],0,[117,[[86,[1,[0,[143,100]]]]]],[[117,1],[[0,[143,100]]]],[117,144],[[]],[[],30],[[],30],[[],30],[116,16],[117,145],0,[116,16],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],32],[[],32],[[],32],[[],32],[[],32],0,[[]],[[]],[[]],[[]],[[]],[[28,35,48],[[9,[30,17]]]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[146,146],[147,147],[148,148],[[]],[[]],[[]],[[[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[146,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[147,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[148,[8,[11]],[8,[11]],3,16,52],[[9,[149,17]]]],[[16,3,52],150],[[],146],[[],147],[[],148],0,0,[[150,18],19],[[149,18],19],[[146,18],19],[[147,18],19],[[148,18],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[149,16],[16,148],0,[149,16],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,[[]],[[]],[151,[[28,[30]]]],[151,30],[[],[[9,[151]]]],[[117,33,15],[[9,[151,33]]]],[[151,18],19],[[]],[33,[[9,[151]]]],[[]],0,[151,9],[151,30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[55,152,118,[120,[119]]],[[28,[[120,[119]]]]]],0,0,[[55,48],153],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[153,34,48],55],[152,152],[24,24],[154,154],[[[156,[[0,[100,155,106,100]]]]],[[156,[[0,[100,155,106,100]]]]]],[118,118],[55,55],[133,133],[157,157],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[152,152],14],[[118,118],14],[[],118],[[],55],[[],133],[[],157],[[[156,[[0,[155,106,100]]]]]],[[],[[28,[108]]]],[[[156,[158]]],[[28,[108]]]],[[[156,[[44,[112]]]]],[[28,[108]]]],[[152,152],15],[[24,24],15],[[154,154],15],[[118,118],15],[[157,157],15],[[55,152],[[28,[120]]]],[[152,18],19],[[24,18],19],[[24,18],19],[[154,18],19],[[[156,[[0,[106,155,106,100]]]],18],19],[[118,18],19],[[55,18],19],[[133,18],19],[[157,18],19],[114,152],[159,152],[[]],[160,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[152],[48,152],[[[156,[158]],48],152],[[[156,[[44,[112]]]],48],152],[55,[[8,[152]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[155,106,100]],154],[[156,[[0,[155,106,100]]]]]],[[],55],[[152,152],[[28,[14]]]],[[118,118],[[28,[14]]]],[29],[[55,152,118],[[28,[[120,[119]]]]]],0,[[132,5,133,48],[[9,[24]]]],[[[156,[158]],132,5,133,48],[[9,[24]]]],[[[156,[[44,[112]]]],132,5,133,48],[[9,[24]]]],[[132,133,48],[[9,[24]]]],[[132,133,48],[[9,[24]]]],0,[55,[[8,[120]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[128,[161,129]]],[[128,[161,129]]]],[[[128,[161,162]],27,137,5],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,129]],52,16],[[128,[161,129]]]],[[[128,[161,162]],27],[[128,[161,162]]]],[[[128,[161,162]],27],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]]],[[9,[[128,[161,162]],17]]]],[[[128,[161,162]],15],[[128,[161,162]]]],[[[128,[126,127]],52],[[9,[[128,[126,127]],17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[128,[161,162]],163],[[128,[161,162]]]],[129,129],[127,127],[[[128,[100]]],[[128,[100]]]],[164,164],[163,163],[[]],[[]],[[]],[[]],[[]],[[164,164],14],[[163,163],14],[[[128,[161,162]],161],[[128,[161,162]]]],[[[128,[161,162]],41],[[128,[161,162]]]],[[],129],[[],127],[[],164],[[],163],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,129]],52],[[128,[161,129]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],165],[[128,[161,162]]]],[[164,164],15],[[163,163],15],[[[128,[161,162]],16],[[128,[161,162]]]],[[[128,[161,162]],3],[[128,[161,162]]]],[[[128,[161,162]]],[[9,[17]]]],[[129,18],19],[[127,18],19],[[[128,[106,106,106]],18],19],[[164,18],19],[[163,18],19],[[]],[[]],[[]],[[]],[[]],[164],[163],[[[128,[161,162]]],[[128,[161,162]]]],[[]],[[]],[[]],[[]],[[]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],166],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]]],[[128,[161,162]]]],[[[128,[161,162]],164],[[128,[161,162]]]],[[164,164],[[28,[14]]]],[[163,163],[[28,[14]]]],[[[128,[161,162]],[86,[30,[8,[5]]]],1],[[128,[161,162]]]],[[[128,[161,129]],8],[[128,[161,129]]]],[[[128,[161,162]],136],[[128,[161,162]]]],[[164,130]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[[128,[161,162]],[8,[27]]],[[128,[161,162]]]],[[[128,[161,162]],167],[[128,[161,162]]]],[[]],[[]],[[]],[[]],[[]]],"p":[[4,"KeychainKind"],[15,"u8"],[3,"FeeRate"],[15,"f32"],[15,"usize"],[3,"u5"],[3,"Global"],[3,"Vec"],[4,"Result"],[3,"LocalUtxo"],[3,"WeightedUtxo"],[4,"Utxo"],[3,"TransactionDetails"],[4,"Ordering"],[15,"bool"],[15,"u64"],[4,"Error"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PolicyError"],[4,"SignerError"],[4,"KeyError"],[4,"Error"],[3,"OutPoint"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[3,"Address"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ScriptContextError"],[3,"DescriptorXKey"],[4,"Wildcard"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"ConversionError"],[4,"DescriptorType"],[3,"Script"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[8,"ScriptContext"],[3,"Range"],[3,"Error"],[3,"Wsh"],[3,"Bare"],[3,"Sh"],[3,"Tr"],[3,"Wpkh"],[3,"Pkh"],[3,"Tree"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[3,"DerivationPath"],[4,"BareCtx"],[4,"TapTree"],[3,"TxIn"],[4,"SigType"],[3,"HashMap"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[3,"BTreeMap"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[6,"ValidNetworks"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[3,"SortedMultiVec"],[3,"SinglePub"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[4,"DescriptorSecretKey"],[3,"SinglePriv"],[3,"ExtendedPubKey"],[4,"ExtendedKey"],[3,"ExtendedPrivKey"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[6,"Update"],[6,"UpdateError"],[3,"ChainGraph"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[3,"CreateTx"],[3,"Transaction"],[3,"AddressInfo"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"AddressIndex"],[4,"NewError"],[3,"PsbtSighashType"],[3,"Input"],[3,"BlockId"],[4,"InsertCheckpointError"],[4,"ConfirmationTime"],[4,"InsertTxError"],[8,"IntoWalletDescriptor"],[8,"Iterator"],[3,"KeychainChangeSet"],[8,"DoubleEndedIterator"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Excess"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[8,"TxBuilderContext"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[3,"Sequence"],[4,"LockTime"],[15,"i32"],[8,"Vbytes"],[13,"InsufficientFunds"],[13,"FeeRateTooLow"],[13,"FeeTooLow"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"Change"],[13,"NoChange"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"]]},\ +"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[3,17,4,13,13,8,8,3,3,4,13,13,11,2,11,11,11,11,11,11,11,11,11,11,0,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,0,11,11,11,11,11,2,11,12,11,11,11,11,11,11,11,11,11,11,0,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,3,3,13,6,4,13,4,3,13,13,4,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,17,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,16,3,8,16,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,8,3,13,4,4,13,3,13,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11],"n":["BlockId","COINBASE_MATURITY","ConfirmationTime","Confirmed","Confirmed","DescriptorExt","ForEachTxOut","FullTxOut","SpkTxOutIndex","TxHeight","Unconfirmed","Unconfirmed","all_spks","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_graph","chain_position","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","default","default","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","hash","hash","hash","height","height","height","index_of_spk","insert_spk","into","into","into","into","into","is_confirmed","is_confirmed","is_mature","is_on_coinbase","is_relevant","is_spendable_at","is_used","keychain","mark_used","max_ord_of_height","max_ord_of_height","min_ord_of_height","min_ord_of_height","miniscript","net_value","outpoint","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","sparse_chain","spent_by","spk_at_index","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","height","time","Chain","Chain","ChainGraph","ChangeSet","Conflict","InsertCheckpointError","InsertTxError","Missing","NewError","UnresolvableConflict","UnresolvableConflict","UnresolvableConflict","UpdateError","already_confirmed_tx","append","apply_changeset","apply_update","as_ref","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","checkpoint_limit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contains_eviction","default","default","deserialize","determine_changeset","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","for_each_txout","from","from","from","from","from","from","from","from","from","from","full_txout","get_tx_in_chain","graph","graph","inflate_update","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into","into","into","invalidate_checkpoints","invalidate_checkpoints_preview","is_empty","is_empty","new","provide","provide","provide","provide","serialize","set_checkpoint_limit","spent_by","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transactions_in_chain","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","tx_conflicts_in_chain","type_id","type_id","type_id","type_id","type_id","type_id","update_tx","vzip","vzip","vzip","vzip","vzip","vzip","a","b","BIP32_MAX_INDEX","Balance","DerivationAdditions","KeychainChangeSet","KeychainScan","KeychainTracker","KeychainTxOutIndex","add","add_keychain","add_keychain","append","append","apply_additions","apply_changeset","apply_update","as_inner","as_ref","as_ref","as_ref","as_ref","as_ref","balance","balance_at","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain_graph","chain_graph","checkpoint_limit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","default","default","default","deref","derivation_indices","deserialize","deserialize","deserialize","determine_changeset","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","from","full_txouts","full_utxos","graph","immature","inner","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","into","into","into","into","into","into","is_empty","is_empty","keychains","keychains","last_active_indices","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead_to_target","lookahead_to_target_multi","lookaheads","mark_used","next_index","next_unused_spk","persist","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_spks_of_all_keychains","revealed_spks_of_keychain","scan","scan_txout","serialize","serialize","serialize","set_checkpoint_limit","set_lookahead","set_lookahead_for_all","spks_of_all_keychains","spks_of_keychain","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","txout_index","txouts_of_keychain","type_id","type_id","type_id","type_id","type_id","type_id","unmark_used","untrusted_pending","unused_spks_of_keychain","update","vzip","vzip","vzip","vzip","vzip","vzip","LoadError","Persist","PersistBackend","WriteError","append_changeset","borrow","borrow_mut","commit","fmt","from","into","load_into_keychain_tracker","new","stage","staged","try_from","try_into","type_id","vzip","ChainPosition","ChangeSet","HashNotMatching","InsertCheckpointError","InsertTxError","NotConnected","SparseChain","TxInconsistent","TxMovedUnexpectedly","TxTooHigh","UpdateError","append","apply_changeset","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset_additions","checkpoint_at","checkpoint_limit","checkpoints","checkpoints","clear_mempool","clear_mempool_preview","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","deserialize","determine_changeset","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_checkpoints","full_txout","height","initial_changeset","insert_checkpoint","insert_checkpoint_preview","insert_tx","insert_tx_preview","into","into","into","into","into","invalidate_checkpoints","invalidate_checkpoints_preview","is_empty","is_empty","latest_checkpoint","max_ord_of_height","min_ord_of_height","provide","provide","provide","range_checkpoints","range_txids","range_txids_by_height","range_txids_by_position","serialize","set_checkpoint_limit","spent_by","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_into","try_into","try_into","try_into","try_into","tx_position","txids","txids","type_id","type_id","type_id","type_id","type_id","unconfirmed","vzip","vzip","vzip","vzip","vzip","height","original_hash","update_hash","original_pos","tip_height","tx_height","txid","txid","update_pos","original_pos","txid","update_pos","Additions","TxDescendants","TxGraph","all_txouts","append","apply_additions","apply_update","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","calculate_fee","checked_sum","checked_sum","clone","clone","clone_into","clone_into","default","default","deserialize","determine_additions","direct_conflicts_of_tx","eq","eq","fmt","fmt","for_each_txout","for_each_txout","from","from","from","full_transactions","get_tx","get_txout","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into_iter","is_empty","is_empty","new","next","outspends","partial_transactions","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","tx","tx_outspends","txout","txouts","txouts","type_id","type_id","type_id","vzip","vzip","vzip","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","bdk_chain::chain_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::chain_graph::NewError","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain::persist","","","","","","","","","","","","","","","","","","","bdk_chain::sparse_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::sparse_chain::InsertCheckpointError","","","bdk_chain::sparse_chain::InsertTxError","","","","","","bdk_chain::sparse_chain::UpdateError","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output …","Block height and timestamp at which a transaction is …","","","A trait to extend the functionality of a miniscript …","Trait to do something with every txout contained in a …","A TxOut with as much data as we can retrieve about it","An index storing TxOuts that have a script pubkey that …","Represents the height at which a transaction is confirmed.","","","The script pubkeys that are being tracked by the index.","","","","","","","","","","","","Module for structures that combine the features of …","The position of the transaction in outpoint in the overall …","","","","","","","","","","","","","","","","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","The provided closure f will be called with each …","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","The hash of the block.","","","The height of the block.","Returns the index associated with the script pubkey.","Adds a script pubkey to scan for. Returns false and does …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a …","Whether the utxo is/was/will be spendable at height.","Returns whether the script pubkey at index has been used …","Module for keychain related structures.","Marks the script pubkey at index as used even though it …","","","","","","Computes the net value that this transaction gives to the …","The location of the TxOut.","Iterates over all the outputs with script pubkeys in an …","","","","Scans an object containing many txouts.","Scan a single TxOut for a matching script pubkey and …","Computes total input value going from script pubkeys in …","","","","Module for structures that maintain sparse (purposely …","The txid and chain position of the transaction (if any) …","Returns the script that has been inserted at the index.","","","","","","","","","","","","","","","","","Module for structures that store and traverse transactions.","Returns the txout and script pubkey index of the TxOut at …","The TxOut.","Iterate over all known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","","","Undoes the effect of mark_used. Returns whether the index …","Iterates over all unused script pubkeys in an index range.","","","","","","","","","The update chain was inconsistent with the existing chain","A consistent combination of a SparseChain<P> and a …","Represents changes to ChainGraph.","Two transactions within the sparse chain conflicted with …","A nice alias of sparse_chain::InsertCheckpointError.","Error that may occur when inserting a transaction.","One or more transactions in the chain were not in the graph","Error that may occur when calling ChainGraph::new.","Represents an unresolvable conflict between an update’s …","","A transaction in the update spent the same input as an …","Represents an update failure.","","Appends the changes in other into self such that applying …","Applies changeset to self.","Applies the update chain graph. Note this is shorthand for …","","","","","","","","","","","","","","","","Returns a reference to the internal SparseChain.","","Gets the checkpoint limit.","","","","","","","","","","","","","Returns true if this ChangeSet contains transaction …","","","","Calculates the difference between self and update in the …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Get the full transaction output at an outpoint if it …","Get a transaction currently in the underlying SparseChain.","Returns a reference to the internal TxGraph.","","Take an update in the form of a SparseChain<P> and attempt …","Inserts checkpoint into Self.","Determines the changes required to insert a block_id (a …","Inserts Transaction at the given chain position.","Determines the changes required to insert a transaction …","Inserts a TxOut into the internal TxGraph.","Determines the changes required to insert a TxOut into the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Invalidate checkpoints from_height (inclusive) and above. …","Determines the changes required to invalidate checkpoints …","Whether the chain graph contains any data whatsoever.","Returns true if this ChangeSet records no changes.","Create a new chain graph from a chain and a graph.","","","","","","Sets the checkpoint limit.","Find the transaction in the chain that spends outpoint.","","","","","","","","","","","Iterate over the full transactions and their position in …","","","","","","","","","","","","","Given a transaction, return an iterator of txids that …","","","","","","","","","","","","","","","","Maximum BIP32 derivation index.","Balance, differentiated into various categories.","Represents updates to the derivation index of a …","Represents changes to a KeychainTracker.","An update that includes the last active indexes of each …","A convenient combination of a KeychainTxOutIndex and a …","A convenient wrapper around SpkTxOutIndex that relates …","","Add a keychain to the tracker’s txout_index with a …","Add a keychain to the tracker’s txout_index with a …","Append another DerivationAdditions into self.","Appends the changes in other into self such that applying …","Applies the derivation additions to the KeychainTxOutIndex…","Applies the changes in changeset to KeychainTracker.","Directly applies a KeychainScan on KeychainTracker.","Get the inner map of the keychain to its new derivation …","","","","","","Returns the balance of the keychain, i.e., the value of …","Returns the balance of all spendable confirmed unspent …","","","","","","","","","","","","","Returns a reference to the internal SparseChain (which is …","Returns a reference to the internal ChainGraph.","The changes that have occurred in the blockchain","Get the checkpoint limit of the internal SparseChain.","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","The changes in local keychain derivation indices","","","","Determines the resultant KeychainChangeSet if the given …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Iterates through FullTxOuts that are considered to exist …","Iterates through FullTxOuts that are unspent outputs.","Returns a reference to the internal TxGraph (which is part …","All coinbase outputs not yet matured","Return a reference to the internal SpkTxOutIndex.","Directly insert a block_id into the tracker.","Determines the changes as a result of inserting block_id …","Directly insert a transaction into the inner ChainGraph …","Determines the changes as a result of inserting a …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the additions are empty.","Returns whether the KeychainChangeSet is empty (no changes …","Get the internal map of keychains to their descriptors. …","Return a reference to the internal map of the keychain to …","The last active indexes of each keychain","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Store lookahead scripts until target_index.","Convenience method to call lookahead_to_target for …","Return the lookahead setting for each keychain.","Marks the script pubkey at index as used even though the …","Get the next derivation index for keychain. The next index …","Gets the next unused script pubkey in the keychain. I.e., …","Persistence for changes made to a KeychainTracker.","Attempts to reveal the next script pubkey for keychain.","Reveals script pubkeys of the keychain’s descriptor up …","Convenience method to call Self::reveal_to_target on …","Convenience method to get revealed_spks_of_keychain of all …","Iterates over the script pubkeys revealed by this index …","Scans an object for relevant outpoints, which are stored …","Scan a single outpoint for a matching script pubkey.","","","","Set the checkpoint limit of the internal SparseChain.","Set the lookahead count for keychain.","Convenience method to call set_lookahead for all keychains.","Generates script pubkey iterators for every keychain. The …","Generates a script pubkey iterator for the given keychain…","","","","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","Index between script pubkeys to transaction outputs","Iterates over all the OutPoint that have a TxOut with a …","","","","","","","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterates over all unused script pubkeys for a keychain …","The update data in the form of a chain that could be …","","","","","","","The error the backend returns when it fails to load.","Persist wraps a PersistBackend to create a convenient …","A persistence backend for Persist.","The error the backend returns when it fails to write.","Appends a new changeset to the persistent backend.","","","Commit the staged changes to the underlying persistence …","","Returns the argument unchanged.","Calls U::from(self).","Applies all the changesets the backend has received to …","Create a new Persist from a PersistBackend.","Stage a changeset to later persistence with commit.","Get the changes that haven’t been committed yet","","","","","Represents a position in which transactions are ordered in …","The return value of determine_changeset.","Occurs when a checkpoint of the same height already exists …","Represents a failure when trying to insert a checkpoint …","Represents a failure when trying to insert a Txid into …","The update cannot be applied to the chain because the …","This is a non-monotone structure that tracks relevant Txid…","The update contains inconsistent tx states (e.g., it …","Occurs when the Txid is already in the SparseChain, and …","Occurs when the Txid is to be inserted at a height higher …","Represents an update failure of SparseChain.","Appends the changes of other into self such that applying …","","Updates SparseChain with another chain that connects to it.","","","","","","","","","","","","Return Txids that would be added to the sparse chain if …","Get the checkpoint at the given height if it exists.","Returns the value set as the checkpoint limit.","Return a BTreeMap of all checkpoints (block hashes by …","","Clears all transactions of height TxHeight::Unconfirmed.","Determines the ChangeSet when all transactions of height …","","","","","","","","","","","","","","Preview changes of updating Self with another chain that …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Creates a new chain from a list of block hashes and …","Attempt to retrieve a FullTxOut of the given outpoint.","Get the transaction height of the position.","Derives a ChangeSet that assumes that there are no …","Insert a checkpoint (BlockId).","Determines the resultant ChangeSet if BlockId was inserted.","Inserts a given Txid at pos.","Determines the resultant ChangeSet if Txid was inserted at …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Invalidate checkpoints from_height (inclusive) and above.","Determines the ChangeSet when checkpoints from_height …","Returns whether the sparse chain contains any checkpoints …","Whether this changeset contains no changes.","Get the checkpoint for the last known tip.","Get the position’s upper bound of a given height.","Get the position’s lower bound of a given height.","","","","Return an iterator over checkpoints in a height range, in …","Iterate over a sub-range of positioned Txids.","Iterate over a sub-range of positioned Txids, where the …","Iterate over a sub-range of positioned Txids, where the …","","Set the checkpoint limit.","Finds the transaction in the chain that spends outpoint.","","","","","","","","","","","","","","","","","","","Return the ChainPosition of a txid.","Iterate over all Txids ordered by their ChainPosition.","","","","","","","Get the unconfirmed position.","","","","","","","","","","","","","","","","","","A structure that represents changes to a TxGraph.","An iterator that traverses transaction descendants.","A graph of transactions and spends.","Iterate over all tx outputs known by TxGraph.","Appends the changes in other into self such that applying …","Applies Additions to TxGraph.","Extends this graph with another so that self becomes the …","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","","","","","","","","","","Previews the resultant Additions when Self is updated …","Given a transaction, return an iterator of txids that …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get a transaction by txid. This only returns Some for full …","Obtains a single tx output (if any) at the specified …","Inserts the given transaction into TxGraph.","Returns the resultant Additions if the given transaction …","Inserts the given TxOut at OutPoint.","Returns the resultant Additions if the given txout is …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Whether the graph has any transactions or outputs in it.","Returns true if the Additions is empty (no transactions or …","Construct a new TxGraph from a list of transactions.","","The transactions spending from this output.","Iterate over all partial transactions (outputs only) in …","","","","","","","","","","","Iterates over the transactions spending from txid.","","Returns a BTreeMap of vout to output of the provided txid.","Iterates over all outpoints contained within Additions.","","","","","","","Creates an iterator that both filters and maps conflicting …","Creates an iterator that filters and maps descendants from …"],"i":[0,0,0,5,6,0,0,0,0,0,5,6,3,0,3,5,6,7,8,3,5,6,7,8,0,8,3,5,6,7,8,3,5,6,7,8,5,6,7,3,5,7,5,6,7,64,5,6,7,8,3,5,5,6,7,8,65,3,5,5,6,7,7,7,8,5,6,7,5,6,7,3,3,3,5,6,7,8,5,6,8,8,3,8,3,0,3,5,6,5,6,0,3,8,3,5,6,7,3,3,3,5,6,7,0,8,3,3,5,6,7,8,5,3,5,6,7,8,3,5,6,7,8,0,3,8,3,3,3,5,6,7,8,3,3,3,5,6,7,8,66,66,40,35,0,0,39,0,0,39,0,0,40,35,0,41,33,34,34,34,34,34,34,33,39,40,35,41,34,33,39,40,35,41,34,33,34,34,33,39,40,35,41,34,33,39,40,35,41,33,34,33,33,34,34,33,39,40,35,41,34,33,39,39,40,40,35,35,41,41,34,33,34,33,39,40,40,40,35,35,35,41,34,34,34,33,34,34,34,34,34,34,34,34,33,39,40,35,41,34,34,34,33,34,39,40,35,41,33,34,34,34,33,39,40,35,41,39,40,35,41,34,34,33,39,40,35,41,34,33,39,40,35,41,34,34,33,39,40,35,41,41,34,33,39,40,35,41,67,67,0,0,0,0,0,0,0,48,49,52,53,54,52,49,49,53,49,49,49,53,55,49,49,49,52,53,55,54,48,49,52,53,55,54,48,49,49,54,49,49,52,53,55,54,48,49,52,53,55,54,48,48,49,52,53,55,54,48,52,54,53,54,48,49,53,55,48,49,52,53,55,54,48,48,54,49,52,53,55,55,54,54,54,48,49,49,49,48,52,49,49,49,49,49,52,53,55,54,48,53,54,49,52,55,52,52,52,52,52,52,52,52,52,52,0,52,52,52,52,52,52,52,53,54,48,49,52,52,52,52,49,52,53,55,54,48,48,48,48,48,49,52,53,55,54,48,49,52,53,55,54,48,49,52,49,52,53,55,54,48,52,48,52,55,49,52,53,55,54,48,68,0,0,68,68,56,56,56,56,56,56,68,56,56,56,56,56,56,56,0,0,58,0,0,43,0,43,42,42,0,57,37,37,37,37,42,58,43,57,37,42,58,43,57,37,37,37,37,57,37,37,37,42,58,43,57,37,42,58,43,57,37,57,57,37,37,42,58,43,57,37,42,42,58,58,43,43,57,37,42,58,43,57,37,37,21,37,37,37,37,37,37,42,58,43,57,37,37,37,57,37,21,21,42,58,43,37,37,37,37,57,37,37,37,42,58,43,57,42,58,43,37,42,58,43,57,37,42,58,43,57,37,37,57,37,42,58,43,57,21,37,42,58,43,57,69,69,69,70,71,71,71,70,70,72,72,72,0,0,0,36,59,36,36,36,62,36,59,62,36,59,36,62,62,36,59,36,59,36,59,59,36,36,36,59,36,59,36,59,62,36,59,36,36,36,36,36,36,36,62,36,59,62,36,59,36,62,36,36,59,36,59,62,36,59,62,36,59,59,36,59,36,59,62,36,59,62,36,59,36,36],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[3,[1]]],[[3,[1]]]],[5,5],[6,6],[7,7],[[[8,[1]]],[[8,[1]]]],[[]],[[]],[[]],[[]],[[]],[[5,5],9],[[6,6],9],[[7,7],9],[[],3],[[],5],[[],7],[[],[[10,[5]]]],[[],[[10,[6]]]],[[],[[10,[7]]]],[[],11],[[5,5],12],[[6,6],12],[[7,7],12],[[[8,[13]],8],12],[[[3,[14]],15],16],[[5,15],16],[[5,15],16],[[6,15],16],[[7,15],16],[[[8,[14]],15],16],[17],[[]],[[[19,[18]]],5],[[]],[[]],[[],7],[[],7],[[]],[[]],[5],[6],0,[5,5],[6,5],0,[[[3,[[0,[1,2]]]],20],19],[[[3,[[0,[1,2]]]],[0,[1,2]],20],12],[[]],[[]],[[]],[[]],[[]],[5,12],[6,12],[[[8,[21]],18],12],0,[[[3,[[0,[1,2]]]],22],12],[[[8,[21]],18],12],[[[3,[[0,[1,2]]]]],12],0,[[[3,[[0,[1,2]]]]],12],[5,5],[5,6],[5,5],[5,6],0,[[[3,[[0,[1,2]]]],22],23],0,[[[3,[[0,[1,2]]]],[24,[[0,[1,2]]]]],25],[[5,5],[[19,[9]]]],[[6,6],[[19,[9]]]],[[7,7],[[19,[9]]]],[[[3,[[0,[1,2]]]]],[[26,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],27,28],19],[[[3,[[0,[1,2]]]],22]],[5,10],[6,10],[7,10],0,0,[[[3,[[0,[1,2]]]]],[[19,[20]]]],[[]],[[]],[[]],[[]],[[]],[[],29],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[[3,[[0,[1,2]]]],27],19],0,[[[3,[[0,[1,2]]]]],[[0,[25,30]]]],[[[3,[[0,[1,2]]]],31],25],[[],32],[[],32],[[],32],[[],32],[[],32],[[[3,[[0,[1,2]]]]],12],[[[3,[[0,[1,2]]]]],25],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[33,33]],[[34,33]],[[34,34],[[10,[33,35]]]],[34,34],[34,36],[34,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[34,37],0,[34,[[19,[38]]]],[[[34,[1]]],[[34,[1]]]],[[[33,[1]]],[[33,[1]]]],[[[39,[1]]],[[39,[1]]]],[[[40,[1]]],[[40,[1]]]],[[[35,[1]]],[[35,[1]]]],[[[41,[1]]],[[41,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[33,12],[[],34],[[],33],[[],[[10,[33]]]],[[34,34],[[10,[33,35]]]],[[[34,[13]],34],12],[[[33,[13]],33],12],[[[39,[13]],39],12],[[[40,[13]],40],12],[[[35,[13]],35],12],[[[41,[13]],41],12],[[[34,[14]],15],16],[[[33,[14]],15],16],[[[39,[14]],15],16],[[[39,[14]],15],16],[[[40,[14]],15],16],[[[40,[14]],15],16],[[[35,[14]],15],16],[[[35,[14]],15],16],[[[41,[14]],15],16],[[[41,[14]],15],16],[[34,17]],[[33,17]],[[]],[[]],[[]],[[]],[41,40],[42,40],[41,35],[43,35],[[]],[[]],[[34,27],[[19,[8]]]],[[34,31],19],[34,36],0,[[34,37,44],[[10,[34,39]]]],[[34,7],[[10,[33,45]]]],[[34,7],[[10,[33,45]]]],[[34,22],[[10,[33,40]]]],[[34,22],[[10,[33,40]]]],[[34,27,28],33],[[34,27,28],33],[[]],[[]],[[]],[[]],[[]],[[]],[[34,18],33],[[34,18],33],[34,12],[33,12],[[37,36],[[10,[34,39]]]],[46],[46],[46],[46],[33,10],[[34,[19,[38]]]],[[34,27],19],[[]],[[]],[[]],[[]],[[]],[[]],[[],29],[[],29],[[],29],[[],29],[34,25],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[34,22],47],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[48,48],48],[[49,[51,[50]]]],[[[52,[[0,[1,2,14]]]],[0,[1,2,14]],[51,[50]]]],[[[53,[2]],[53,[2]]]],[[54,54]],[[[52,[[0,[1,2,14]]]],[53,[[0,[1,2,14]]]]]],[[49,54]],[[49,55],[[10,[54,35]]]],[53,4],[49,37],[49,34],[49,36],[53,4],[55,36],[[49,17],48],[[49,18],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,37],[49,34],0,[49,[[19,[38]]]],[[[49,[1,1]]],[[49,[1,1]]]],[[[52,[1]]],[[52,[1]]]],[[[53,[1]]],[[53,[1]]]],[[[55,[1,1]]],[[55,[1,1]]]],[[[54,[1,1]]],[[54,[1,1]]]],[48,48],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],49],[[],52],[[],53],[[],55],[[],54],[[],48],[52],0,[[],[[10,[53]]]],[[],[[10,[54]]]],[[],[[10,[48]]]],[[49,55],[[10,[54,35]]]],[[[53,[13]],53],12],[[[55,[13,13]],55],12],[[48,48],12],[[[49,[14,14]],15],16],[[[52,[14]],15],16],[[[53,[14]],15],16],[[[55,[14,14]],15],16],[[[54,[14,14]],15],16],[[48,15],16],[[48,15],16],[[54,17]],[[]],[[]],[[]],[[]],[34,55],[[]],[53,54],[33,54],[[]],[49,47],[49,47],[49,36],0,[[[52,[[0,[1,2,14]]]]],3],[[49,7],[[10,[54,45]]]],[[49,7],[[10,[54,45]]]],[[49,22],[[10,[54,40]]]],[[49,22],[[10,[54,40]]]],[[]],[[]],[[]],[[]],[[]],[[]],[53,12],[54,12],[49,4],[[[52,[[0,[1,2,14]]]]],4],0,[[[52,[[0,[1,2,14]]]]],[[19,[18]]]],[[[52,[[0,[1,2,14]]]]],4],[[[52,[[0,[1,2,14]]]]],[[19,[18]]]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],18]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],[4,[[0,[1,2,14]],18]]]],[[[52,[[0,[1,2,14]]]]],4],[[[52,[[0,[1,2,14]]]],18],12],[[[52,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]]]],0,[[[52,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],4]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],[0,[47,1]]]]]],[[[52,[[0,[1,2,14]]]]],[[0,[25,1]]]],[[[52,[[0,[1,2,14]]]]],[[53,[[0,[1,2,14]]]]]],[[[52,[[0,[1,2,14]]]],27,28],[[53,[[0,[1,2,14]]]]]],[53,10],[54,10],[48,10],[[49,[19,[38]]]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]],18]],[[[52,[[0,[1,2,14]]]]],[[4,[[0,[1,2,14]],[0,[47,1]]]]]],[[[52,[[0,[1,2,14]]]]],[[0,[47,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],29],[48,11],0,[48,11],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[[52,[[0,[1,2,14]]]]],25],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[[52,[[0,[1,2,14]]]],18],12],0,[[[52,[[0,[1,2,14]]]]],25],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,[54,10],[[]],[[]],[56,10],[[[56,[14,14,14]],15],16],[[]],[[]],[49,10],[[],56],[[56,54]],[56,54],[[],10],[[],10],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,[[57,57]],[[[37,[21]],[57,[21]]]],[[[37,[21]],[37,[21]]],[[10,[[57,[21]],[43,[21]]]]]],[37,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[37,[21]],57],47],[[[37,[21]],18],[[19,[7]]]],[[[37,[21]]],[[19,[38]]]],[[[37,[21]]],4],0,[[[37,[21]]],[[57,[21]]]],[[[37,[21]]],[[57,[21]]]],[[[37,[1]]],[[37,[1]]]],[[[42,[1]]],[[42,[1]]]],[58,58],[[[43,[1]]],[[43,[1]]]],[[[57,[1]]],[[57,[1]]]],[[]],[[]],[[]],[[]],[[]],[[],37],[[],57],[[],[[10,[57]]]],[[[37,[21]],[37,[21]]],[[10,[[57,[21]],[43,[21]]]]]],[[[37,[13]],37],12],[[[42,[13]],42],12],[[58,58],12],[[[43,[13]],43],12],[[[57,[13]],57],12],[[[37,[14]],15],16],[[[42,[14]],15],16],[[[42,[14]],15],16],[[58,15],16],[[58,15],16],[[[43,[14]],15],16],[[[43,[14]],15],16],[[[57,[14]],15],16],[[]],[[]],[[]],[[]],[[]],[[],[[37,[21]]]],[[[37,[21]],36,27],[[19,[[8,[21]]]]]],[[],5],[[[37,[21]]],[[57,[21]]]],[[[37,[21]],7],[[10,[[57,[21]],58]]]],[[[37,[21]],7],[[10,[[57,[21]],58]]]],[[[37,[21]],31,21],[[10,[[57,[21]],[42,[21]]]]]],[[[37,[21]],31,21],[[10,[[57,[21]],[42,[21]]]]]],[[]],[[]],[[]],[[]],[[]],[[[37,[21]],18],[[57,[21]]]],[[[37,[21]],18],[[57,[21]]]],[[[37,[21]]],12],[57,12],[[[37,[21]]],[[19,[7]]]],[5],[5],[46],[46],[46],[[[37,[21]],[24,[18]]],25],[[[37,[21]]],25],[[[37,[21]]],25],[[[37,[21]]],25],[57,10],[[[37,[21]],[19,[38]]]],[[[37,[21]],36,27],19],[[]],[[]],[[]],[[]],[[]],[[],29],[[],29],[[],29],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[[37,[21]],31],19],[[[37,[21]]],[[0,[25,30]]]],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[36,47],[[59,59]],[[36,59]],[[36,36],59],[36,36],[[]],[[]],[[]],[[]],[[]],[[]],[[36,22],[[19,[23]]]],[[],[[19,[60]]]],[[],[[19,[61]]]],[36,36],[59,59],[[]],[[]],[[],36],[[],59],[[],[[10,[59]]]],[[36,36],59],[[36,22],47],[[36,36],12],[[59,59],12],[[36,15],16],[[59,15],16],[[36,17]],[[59,17]],[[]],[[]],[[]],[36,47],[[36,31],[[19,[22]]]],[[36,27],[[19,[28]]]],[[36,22],59],[[36,22],59],[[36,27,28],59],[[36,27,28],59],[[]],[[]],[[]],[[]],[36,12],[59,12],[44,36],[62,19],[[36,27],63],[36,47],[59,10],[[]],[[]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[36,31],25],0,[[36,31],[[19,[[4,[18,28]]]]]],[59,47],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[36,22],62],[[36,31],62]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[4,"TxHeight"],[4,"ConfirmationTime"],[3,"BlockId"],[3,"FullTxOut"],[4,"Ordering"],[4,"Result"],[15,"u64"],[15,"bool"],[8,"PartialEq"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[8,"FnMut"],[15,"u32"],[4,"Option"],[3,"Script"],[8,"ChainPosition"],[3,"Transaction"],[15,"i64"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[3,"BTreeSet"],[3,"OutPoint"],[3,"TxOut"],[3,"String"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[3,"ChangeSet"],[3,"ChainGraph"],[4,"UpdateError"],[3,"TxGraph"],[3,"SparseChain"],[15,"usize"],[4,"NewError"],[4,"InsertTxError"],[3,"UnresolvableConflict"],[4,"InsertTxError"],[4,"UpdateError"],[8,"IntoIterator"],[6,"InsertCheckpointError"],[3,"Demand"],[8,"Iterator"],[3,"Balance"],[3,"KeychainTracker"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"KeychainTxOutIndex"],[3,"DerivationAdditions"],[3,"KeychainChangeSet"],[3,"KeychainScan"],[3,"Persist"],[3,"ChangeSet"],[4,"InsertCheckpointError"],[3,"Additions"],[3,"Amount"],[3,"SignedAmount"],[3,"TxDescendants"],[3,"HashSet"],[8,"DescriptorExt"],[8,"ForEachTxOut"],[13,"Confirmed"],[13,"Conflict"],[8,"PersistBackend"],[13,"HashNotMatching"],[13,"TxMovedUnexpectedly"],[13,"TxTooHigh"],[13,"TxInconsistent"]]},\ +"bdk_coin_select":{"doc":"","t":[3,3,4,4,3,3,13,6,13,3,4,13,13,13,3,4,3,13,13,17,13,13,13,13,13,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,12,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11],"n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","provide","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":["bdk_coin_select","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Bnb represents the current state of the BnB algorithm.","","Determines how we should limit rounds of branch and bound.","Strategy in which we should branch.","CoinSelector selects and deselects from a set of …","","We continue exploring subtrees of this node, starting with …","Closure to decide the branching strategy, alongside a …","","","","Min absolute fee is not met","Min drain value is not met","","","","","We skip both the inclusion and omission branches of this …","We continue exploring ONLY the omission branch of this …","Txin “base” fields include outpoint (32+4) and …","The target fee (given the feerate) is not met","The target is not met","","","","A WeightedValue represents an input candidate for …","Compare the advertised score with the current best. The …","","","Attempt to backtrack to the previously selected node’s …","The weight of the template transaction, including fixed …","","Returns the ExcessStrategy that results in the least waste.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This is a variation of the Branch and Bound Coin Selection …","Current excess.","Current weight of template tx + selected inputs.","","","","Additional weight if we include the drain (change) output.","This is the effective target value.","Effective value of this input candidate: …","","","","","","Returns feerate in sats/wu.","","","","","","","","","","","","","Continue down this branch and skip the inclusion branch if …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","The total number of inputs; so we can calculate extra …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turns our Bnb state into an iterator.","","","Whether this WeightedValue contains at least one segwit …","","","The feerate","Additional leeway for the target value.","The minimum absolute fee. I.e., needed for RBF.","Minimum value allowed for a drain (change) output.","Creates a new Bnb.","Create a new WeightedValue that represents a single input.","","","","","","","","","","","","","","","","Absolute value sum of all selected inputs.","","Effective value sum of all selected inputs.","","Waste sum of all selected inputs.","Weight sum of all selected inputs.","","Weight of spending the drain (change) output in the future.","The feerate we should try and achieve in sats per weight …","The value we need to select. If the value is None, then …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Total value of the UTXO(s) that this WeightedValue …","","","","","","","","","","","","","","Total weight of including this/these UTXO(s). txin fields: …","",""],"i":[0,0,0,0,0,0,34,0,22,0,0,11,11,22,0,0,0,34,34,0,11,11,12,12,12,0,2,4,5,2,9,2,5,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,9,4,10,11,5,12,13,8,9,4,10,11,5,12,13,12,0,4,4,4,13,9,9,4,8,11,12,5,5,13,13,4,8,9,4,10,10,11,11,5,12,12,13,2,34,2,26,22,22,22,8,9,4,10,11,5,12,13,9,12,8,34,2,26,22,8,9,4,10,11,5,12,13,2,26,4,8,4,9,9,9,9,9,2,8,4,26,4,12,2,2,10,13,2,2,4,4,4,4,5,4,4,4,4,4,4,2,9,9,9,8,9,4,10,11,5,12,13,10,11,12,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,34,2,26,22,8,9,4,10,11,5,12,13,13,8,13,34],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],1],3],[4,3],[5,6],[[[2,[1]]],3],0,0,[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,7],8],0,[8,8],[9,9],[4,4],[10,10],[11,11],[5,5],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,12],14],[4,[[15,[4]]]],[4,16],[4,17],[[4,7],3],0,[9,16],0,[4,16],[[8,18],16],[[11,11],3],[[12,12],3],0,0,0,[13,18],[4,[[19,[5,10]]]],[[8,20],21],[[9,20],21],[[4,20],21],[[10,20],21],[[10,20],21],[[11,20],21],[[11,20],21],[[5,20],21],[[12,20],21],[[12,20],21],[[13,20],21],[[[2,[1]],3]],[[]],[[]],[[]],[[]],[7,22],[23,22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[24,17],9],[12],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[2,[1]],25],[[26,[1]]]],[[]],[4,3],0,[[4,7],3],[9,18],0,0,0,0,[[4,27,1],[[2,[1]]]],[[28,17,3],8],[[27,9],4],[[[26,[[0,[1,29,30]]]]],15],0,[[12,12],[[15,[14]]]],0,0,[31],0,0,0,[[4,7],3],[4],[4,[[19,[5,10]]]],[4,6],0,[4,28],[4,7],[4,16],[4,6],[4,16],[4,17],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[],32],[[],32],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[4,6],[4,6],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[34,3]],"p":[[8,"Ord"],[3,"Bnb"],[15,"bool"],[3,"CoinSelector"],[3,"Selection"],[8,"Iterator"],[15,"usize"],[3,"WeightedValue"],[3,"CoinSelectorOpt"],[3,"SelectionError"],[4,"SelectionConstraint"],[4,"ExcessStrategyKind"],[3,"ExcessStrategy"],[4,"Ordering"],[4,"Option"],[15,"i64"],[15,"u32"],[15,"f32"],[4,"Result"],[3,"Formatter"],[6,"Result"],[4,"BnbLimit"],[3,"Duration"],[3,"TxOut"],[6,"DecideStrategy"],[3,"BnbIter"],[3,"Vec"],[15,"u64"],[8,"Copy"],[8,"Display"],[3,"Demand"],[3,"String"],[3,"TypeId"],[4,"BranchStrategy"]]},\ +"bdk_electrum":{"doc":"This crate is used for updating structures of the bdk_chain…","t":[8,3,11,2,11,11,12,11,2,11,10,11,11,11,12,11,10,11,11,11,11,11],"n":["ElectrumExt","ElectrumUpdate","as_ref","bdk_chain","borrow","borrow_mut","chain_update","default","electrum_client","from","get_tip","into","into_confirmation_time_update","into_keychain_scan","last_active_indices","missing_full_txs","scan","scan_without_keychain","try_from","try_into","type_id","vzip"],"q":["bdk_electrum","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait to extend electrum_client::Client functionality.","The result of ElectrumExt::scan.","","","","","The internal SparseChain update.","","","Returns the argument unchanged.","Fetch the latest block height.","Calls U::from(self).","Creates ElectrumUpdate<K, ConfirmationTime> from …","Transform the ElectrumUpdate into a KeychainScan, which …","The last keychain script pubkey indices, which had …","Return a list of missing full transactions that are …","Scan the blockchain (via electrum) for the data specified. …","Convenience method to call scan without requiring a …","","","",""],"i":[0,0,1,0,1,1,1,1,0,1,21,1,1,1,1,1,21,21,1,1,1,1],"f":[0,0,[1,2],0,[[]],[[]],0,[[],1],0,[[]],[[],[[4,[3]]]],[[]],[[[1,[[0,[5,6,7]],8]],9],[[4,[[1,[[0,[5,6,7]],10]],3]]]],[[[1,[[0,[5,6,7]],11]],[13,[12]]],[[4,[[14,[[0,[5,6,7]],11]],[15,[11]]]]]],0,[[[1,[[0,[5,6,7]],11]]],[[13,[16]]]],[[17,[17,[[0,[5,6]],18]],18,18,19,19],[[4,[[1,[[0,[5,6]],8]],3]]]],[[17,18,18,18,19],[[4,[2,3]]]],[[],4],[[],4],[[],20],[[]]],"p":[[3,"ElectrumUpdate"],[3,"SparseChain"],[4,"Error"],[4,"Result"],[8,"Ord"],[8,"Clone"],[8,"Debug"],[4,"TxHeight"],[3,"Client"],[4,"ConfirmationTime"],[8,"ChainPosition"],[3,"Transaction"],[3,"Vec"],[3,"KeychainScan"],[4,"NewError"],[3,"Txid"],[3,"BTreeMap"],[8,"IntoIterator"],[15,"usize"],[3,"TypeId"],[8,"ElectrumExt"]]},\ "bdk_esplora":{"doc":"BDK Esplora","t":[8,8,2,10,10,11,11,11,11],"n":["EsploraAsyncExt","EsploraExt","esplora_client","scan","scan","scan_without_keychain","scan_without_keychain","scan_without_keychain","scan_without_keychain"],"q":["bdk_esplora","","","","","","","",""],"d":["","Trait to extend esplora_client::BlockingClient …","","Scan the blockchain (via esplora) for the data specified …","Scan the blockchain (via esplora) for the data specified …","Convenience method to call scan without requiring a …","Convenience method to call scan without requiring a …","Convenience method to call scan without requiring a …","Convenience method to call scan without requiring a …"],"i":[0,0,0,15,16,15,15,16,16],"f":[0,0,0,[[1,[1,[[0,[2,3]],4]],4,4,5,5],[[9,[[7,[[0,[2,3]],6]],8]]]],[[1,[1,[[0,[4,10]]]],[0,[4,10]],[0,[4,10]],5,5],[[13,[[12,[11]]]]]],[[1,4,4,4,5],[[9,[[14,[6]],8]]]],[[1,4,4,4,5],[[9,[[14,[6]],8]]]],[[1,[0,[4,10]],[0,[4,10]],[0,[4,10]],5],[[13,[[12,[11]]]]]],[[1,[0,[4,10]],[0,[4,10]],[0,[4,10]],5],[[13,[[12,[11]]]]]]],"p":[[3,"BTreeMap"],[8,"Ord"],[8,"Clone"],[8,"IntoIterator"],[15,"usize"],[4,"ConfirmationTime"],[3,"KeychainScan"],[4,"Error"],[4,"Result"],[8,"Send"],[8,"Future"],[3,"Box"],[3,"Pin"],[3,"ChainGraph"],[8,"EsploraExt"],[8,"EsploraAsyncExt"]]},\ "bdk_esplora_wallet_example":{"doc":"","t":[17,17,17,5],"n":["PARALLEL_REQUESTS","SEND_AMOUNT","STOP_GAP","main"],"q":["bdk_esplora_wallet_example","","",""],"d":["","","",""],"i":[0,0,0,0],"f":[0,0,0,[[],[[3,[[2,[1]]]]]]],"p":[[8,"Error"],[3,"Box"],[4,"Result"]]},\ -"bdk_file_store":{"doc":"BDK File Store","t":[13,3,4,13,13,13,4,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","KeychainStore","aggregate_changeset","append_changeset","append_changeset","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into_iter","iter_changesets","load_into_keychain_tracker","load_into_keychain_tracker","new","new","new_from_path","next","provide","provide","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip"],"q":["bdk_file_store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Failure to decode data from file.","Iterator over entries in a file store.","Error that occurs due to problems encountered with the …","Magic bytes do not match expected.","IO error, this may mean that the file is too short.","Failure to read from file.","Error type for EntryIter.","Persists an append only list of KeychainChangeSet<K,P> to …","Loads all the changesets that have been stored as one …","Append a new changeset to the file and truncate file to …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the stored changeset from first to last …","","Reads and applies all the changesets stored sequentially …","","Creates a new store from a File.","Creates or loads a a store from db_path. If no file exists …","","","","","","","","","","","","","","","","","","","","",""],"i":[9,0,0,8,8,9,0,0,1,1,1,10,1,8,9,10,1,8,9,1,8,8,9,9,10,1,8,8,9,9,10,1,8,9,10,1,1,1,10,1,1,10,8,9,8,9,10,1,8,9,10,1,8,9,10,1,8,9,10,1,8,9],"f":[0,0,0,0,0,0,0,0,[1],[[1,2],[[4,[3]]]],[[1,2],4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[1,[5,5]],6],7],[[8,6],7],[[8,6],7],[[9,6],7],[[9,6],7],[[]],[[]],[[]],[3,8],[3,9],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[4,[[10,[2]],3]]]],[[1,11],4],[[1,11],[[4,[9]]]],[12,10],[12,[[4,[1,8]]]],[[[14,[13]]],[[4,[1,8]]]],[10,15],[16],[16],[[],17],[[],17],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],18],[[],18],[[],18],[[],18],[[]],[[]],[[]],[[]]],"p":[[3,"KeychainStore"],[3,"KeychainChangeSet"],[3,"Error"],[4,"Result"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"FileError"],[4,"IterError"],[3,"EntryIter"],[3,"KeychainTracker"],[3,"File"],[3,"Path"],[8,"AsRef"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TypeId"]]},\ +"bdk_file_store":{"doc":"BDK File Store","t":[13,3,4,13,13,13,4,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","KeychainStore","aggregate_changeset","append_changeset","append_changeset","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into_iter","iter_changesets","load_into_keychain_tracker","load_into_keychain_tracker","new","new","new_from_path","next","provide","provide","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip"],"q":["bdk_file_store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Failure to decode data from the file.","Iterator over entries in a file store.","Error that occurs due to problems encountered with the …","Magic bytes do not match what is expected.","IO error, this may mean that the file is too short.","Failure to read from the file.","Error type for EntryIter.","Persists an append only list of KeychainChangeSet<K,P> to …","Loads all the changesets that have been stored as one …","Append a new changeset to the file and truncate the file …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the stored changeset from first to last, …","","Reads and applies all the changesets stored sequentially …","","Creates a new store from a File.","Creates or loads a store from db_path. If no file exists …","","","","","","","","","","","","","","","","","","","","",""],"i":[9,0,0,8,8,9,0,0,1,1,1,10,1,8,9,10,1,8,9,1,8,8,9,9,10,1,8,8,9,9,10,1,8,9,10,1,1,1,10,1,1,10,8,9,8,9,10,1,8,9,10,1,8,9,10,1,8,9,10,1,8,9],"f":[0,0,0,0,0,0,0,0,[1],[[1,2],[[4,[3]]]],[[1,2],4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[1,[5,5]],6],7],[[8,6],7],[[8,6],7],[[9,6],7],[[9,6],7],[[]],[[]],[[]],[3,8],[3,9],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[4,[[10,[2]],3]]]],[[1,11],4],[[1,11],[[4,[9]]]],[12,10],[12,[[4,[1,8]]]],[[[14,[13]]],[[4,[1,8]]]],[10,15],[16],[16],[[],17],[[],17],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],18],[[],18],[[],18],[[],18],[[]],[[]],[[]],[[]]],"p":[[3,"KeychainStore"],[3,"KeychainChangeSet"],[3,"Error"],[4,"Result"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"FileError"],[4,"IterError"],[3,"EntryIter"],[3,"KeychainTracker"],[3,"File"],[3,"Path"],[8,"AsRef"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TypeId"]]},\ "bdk_tmp_plan":{"doc":"A spending plan or plan for short is a representation of a …","t":[3,8,13,13,13,13,3,3,4,4,3,3,13,13,4,13,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,12,12,12,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12],"n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashError","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","provide","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":["bdk_tmp_plan","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_tmp_plan::PlanState","","bdk_tmp_plan::RequiredSignatures","","","","",""],"d":["","","The plan is complete","","","Legacy ECDSA signatures are required","A plan represents a particular spending path for a …","A plan key contains the asset key originally provided …","The returned value from Plan::try_complete.","The signatures required to complete the plan","Signatures and hash pre-images that must be provided to …","Signatures and hash pre-images that can be used to …","Segwitv0 ECDSA signatures are required","","","A Taproot key spend signature is required","Taproot script path signatures are required","The key the planner will sign with","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A hint from how to get from the asset key to the concrete …","The key that was in the descriptor that we are satisfying …","ECDSA signatures under their keys","The expected satisfaction weight for the plan if it is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","required hash160 pre-images","hash160 pre-images under their images","","required hash256 pre-images","hash256 pre-images under their images","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","The minmum required transaction version required on the …","","","The minimum required locktime height or time on the …","The minimum required sequence (height or time) on the …","","Whether any hash pre-images are required in the plan","","required ripemd160 pre-images","ripemd160 pre-images under their images","Schnorr signautres under their keys","","required sha256 pre-images","SHA256 pre-images under their images","","required signatures","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness version for the plan","The script sig that should be set on the input","The witness that should be set on the input","","","The leaf hash of the script being used","The merkle root of the taproot output","the internal key","The keys in the script that require signatures"],"i":[0,0,33,7,33,6,0,0,0,0,0,0,6,7,0,6,6,8,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,36,5,6,7,8,9,10,11,5,6,7,8,9,10,11,5,6,10,11,8,8,10,9,5,6,7,7,8,9,10,11,33,5,6,7,7,7,8,9,10,11,11,5,10,11,5,10,33,5,6,7,8,9,10,11,11,11,9,0,7,9,9,9,5,11,5,10,10,11,5,10,6,5,5,6,7,8,9,10,11,7,9,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,11,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,9,37,37,38,39,40,41,41,40],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[3,[2]]]],[[[5,[4]]],[[5,[4]]]],[[[6,[4]]],[[6,[4]]]],[7,7],[[[8,[4]]],[[8,[4]]]],[[[9,[4]]],[[9,[4]]]],[10,10],[[[11,[4]]],[[11,[4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],6],[[],10],[[],11],0,0,0,[9,12],[[[5,[13]],14],15],[[[6,[13]],14],15],[[7,14],15],[[7,14],15],[[[8,[13]],14],15],[[[9,[13]],14],15],[[10,14],15],[[[11,[13]],14],15],[[]],[[]],[[]],[16,7],[[]],[17,7],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[9,[[3,[18]]]],[[19,11],[[3,[9]]]],[20],[9,[[3,[21]]]],[9,[[3,[22]]]],[9,5],[5,23],0,0,0,0,0,0,0,[[[6,[24]],12,25,26,[3,[27]],[3,[28]],29,10,30],[[31,[23,7]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[9,10],33],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[3,[35]]]],0,0,0,0,0,0,0,0],"p":[[3,"DefiniteDescriptorKey"],[3,"DerivationPath"],[4,"Option"],[8,"Clone"],[3,"Requirements"],[4,"RequiredSignatures"],[4,"SigningError"],[3,"PlanKey"],[3,"Plan"],[3,"SatisfactionMaterial"],[3,"Assets"],[15,"usize"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[15,"u32"],[4,"Descriptor"],[3,"Demand"],[4,"LockTime"],[3,"Sequence"],[15,"bool"],[4,"DescriptorPublicKey"],[6,"KeyMap"],[4,"Prevouts"],[4,"SchnorrSighashType"],[4,"EcdsaSighashType"],[3,"SighashCache"],[3,"Secp256k1"],[4,"Result"],[3,"String"],[4,"PlanState"],[3,"TypeId"],[4,"WitnessVersion"],[8,"CanDerive"],[13,"Complete"],[13,"Legacy"],[13,"Segwitv0"],[13,"TapScript"],[13,"TapKey"]]},\ -"keychain_tracker_electrum_example":{"doc":"","t":[4,13,3,13,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12],"n":["ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into_app","into_app_for_update","main","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","all_spks","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["keychain_tracker_electrum_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_electrum_example::ElectrumCommands","","","","","",""],"d":["","Scans the addresses in the wallet using esplora API.","","Scans particular addresses using esplora API","","","","","Set batch size for each script_history call to electrum …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Scan every address that you have derived","","","When a gap this large has been found for a keychain it …","Scan unconfirmed transactions for updates","Scan all the unused addresses","Scan unspent outpoints for spends or changes to …"],"i":[0,2,0,2,3,3,2,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,2,3,3,3,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,13,14,13,13,13],"f":[0,0,0,0,[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[2,2],[3,3],[[]],[[]],[[3,3],4],[[2,5],6],[[3,5],6],[[]],[[]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[10,4],[[]],[[]],[[],1],[[],1],[[],11],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],12],[[],12],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[]],[[]],0,0,0,0,0,0,0],"p":[[6,"Command"],[4,"ElectrumCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ -"keychain_tracker_esplora_example":{"doc":"","t":[4,13,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12],"n":["EsploraCommands","Scan","ScanOptions","Sync","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into_app","into_app_for_update","main","parallel_requests","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","all_spks","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["keychain_tracker_esplora_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_esplora_example::EsploraCommands","","","","","",""],"d":["","Scans the addresses in the wallet using esplora API.","","Scans particular addresses using esplora API","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Scan every address that you have derived","","","When a gap this large has been found for a keychain it …","Scan unconfirmed transactions for updates","Scan all the unused addresses","Scan unspent outpoints for spends or changes to …"],"i":[0,2,0,2,3,3,2,2,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,2,3,3,3,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,13,14,13,13,13],"f":[0,0,0,0,[1,1],[1,1],[1,1],[1,1],[[]],[[]],[[]],[[]],[2,2],[3,3],[[]],[[]],[[3,3],4],[[2,5],6],[[3,5],6],[[]],[[]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[10,4],[[]],[[]],[[],1],[[],1],[[],11],0,[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],12],[[],12],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[]],[[]],0,0,0,0,0,0,0],"p":[[6,"Command"],[4,"EsploraCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ -"keychain_tracker_example_cli":{"doc":"","t":[13,4,3,3,13,13,13,4,4,13,13,13,4,13,13,13,13,13,13,13,13,13,13,4,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,12,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","AddrsOutput","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","External","Index","Internal","Keychain","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","Send","SmallestFirst","TxOut","TxOutCmd","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_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db_path","default","descriptor","deserialize","deserialize","eq","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","init","into","into","into","into","into","into","into","into_app","into_app_for_update","network","partial_cmp","planned_utxos","run_address_cmd","run_balance_cmd","run_txo_cmd","serialize","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_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_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","change","addr_cmd","address","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":["keychain_tracker_example_cli","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_example_cli::AddressCmd","keychain_tracker_example_cli::Commands","","","","","keychain_tracker_example_cli::TxOutCmd","","",""],"d":["Address generation and inspection","","A structure defining output of a AddressCmd execution.","","Get the wallet balance","","","","","","","","","","List all addresses","","Get a new address regardless if the existing ones haven’…","","Get the next unused address","","Send coins to an address","","TxOut related commands","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return only confirmed outputs","Return only spent outputs","Return only unconfirmed outputs","Return only unspent outputs"],"i":[4,0,0,0,4,5,4,0,0,8,6,8,0,5,6,7,6,5,6,5,4,5,4,0,22,22,4,6,7,4,6,7,0,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,0,4,5,6,7,8,4,5,6,7,8,8,22,22,0,22,5,22,8,16,8,8,4,5,5,6,7,8,8,22,4,5,6,7,8,16,22,4,6,7,22,4,6,7,5,0,4,6,7,0,22,4,5,6,7,8,16,22,22,22,8,0,0,0,0,8,16,4,5,6,7,8,5,8,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,4,6,7,22,4,6,7,22,4,5,6,7,8,16,33,34,35,35,36,35,37,37,37,37],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[4,[[0,[2,3]]]]],[[4,[[0,[2,3]]]]]],[5,5],[6,6],[7,7],[8,8],[[]],[[]],[[]],[[]],[[]],[[8,8],9],0,0,[[10,11,5,12,13],14],0,[[],5],0,[[],[[15,[8]]]],[[],[[15,[16]]]],[[8,8],17],[[],17],[[[4,[[0,[18,3]]]],19],20],[[5,19],20],[[5,19],20],[[6,19],20],[[7,19],20],[[8,19],20],[[8,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[15,[[22,[3]],23]]]],[21,[[15,[[4,[3]],23]]]],[21,[[15,[6,23]]]],[21,[[15,[7,23]]]],[21,[[15,[[22,[3]],23]]]],[21,[[15,[[4,[3]],23]]]],[21,[[15,[6,23]]]],[21,[[15,[7,23]]]],[24,[[14,[5]]]],[[[4,[3]],25,26,26,27,13],14],[24,17],[24,17],[24,17],[[],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,[[8,8],[[28,[9]]]],[[12,29],30],[[26,26,6,27],14],[26],[[7,26,27]],[8,15],[16,15],[[]],[[]],[[]],[[]],[[]],[[],31],[[],31],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[[22,[3]],21],[[15,[23]]]],[[[4,[3]],21],[[15,[23]]]],[[6,21],[[15,[23]]]],[[7,21],[[15,[23]]]],[[[22,[3]],21],[[15,[23]]]],[[[4,[3]],21],[[15,[23]]]],[[6,21],[[15,[23]]]],[[7,21],[[15,[23]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[15,"u64"],[3,"Address"],[3,"KeychainTracker"],[3,"HashMap"],[6,"Result"],[4,"Result"],[3,"AddrsOutput"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Args"],[3,"Error"],[15,"str"],[8,"FnOnce"],[3,"Mutex"],[4,"Network"],[4,"Option"],[3,"Assets"],[8,"Iterator"],[3,"String"],[3,"TypeId"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\ +"keychain_tracker_electrum_example":{"doc":"","t":[4,13,3,13,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12],"n":["ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into_app","into_app_for_update","main","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","all_spks","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["keychain_tracker_electrum_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_electrum_example::ElectrumCommands","","","","","",""],"d":["","Scans the addresses in the wallet using the esplora API.","","Scans particular addresses using the esplora API.","","","","","Set batch size for each script_history call to electrum …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,2,0,2,3,3,2,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,2,3,3,3,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,13,14,13,13,13],"f":[0,0,0,0,[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[2,2],[3,3],[[]],[[]],[[3,3],4],[[2,5],6],[[3,5],6],[[]],[[]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[10,4],[[]],[[]],[[],1],[[],1],[[],11],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],12],[[],12],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[]],[[]],0,0,0,0,0,0,0],"p":[[6,"Command"],[4,"ElectrumCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ +"keychain_tracker_esplora_example":{"doc":"","t":[4,13,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12],"n":["EsploraCommands","Scan","ScanOptions","Sync","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into_app","into_app_for_update","main","parallel_requests","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","all_spks","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["keychain_tracker_esplora_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_esplora_example::EsploraCommands","","","","","",""],"d":["","Scans the addresses in the wallet using the esplora API.","","Scans particular addresses using esplora API.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,2,0,2,3,3,2,2,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,2,3,3,3,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,13,14,13,13,13],"f":[0,0,0,0,[1,1],[1,1],[1,1],[1,1],[[]],[[]],[[]],[[]],[2,2],[3,3],[[]],[[]],[[3,3],4],[[2,5],6],[[3,5],6],[[]],[[]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[10,4],[[]],[[]],[[],1],[[],1],[[],11],0,[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],12],[[],12],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[]],[[]],0,0,0,0,0,0,0],"p":[[6,"Command"],[4,"EsploraCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ +"keychain_tracker_example_cli":{"doc":"","t":[13,4,3,3,13,13,13,4,4,13,13,13,4,13,13,13,13,13,13,13,13,13,13,4,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,12,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","AddrsOutput","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","External","Index","Internal","Keychain","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","Send","SmallestFirst","TxOut","TxOutCmd","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_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db_path","default","descriptor","deserialize","deserialize","eq","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","init","into","into","into","into","into","into","into","into_app","into_app_for_update","network","partial_cmp","planned_utxos","run_address_cmd","run_balance_cmd","run_txo_cmd","serialize","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_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_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","change","addr_cmd","address","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":["keychain_tracker_example_cli","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","keychain_tracker_example_cli::AddressCmd","keychain_tracker_example_cli::Commands","","","","","keychain_tracker_example_cli::TxOutCmd","","",""],"d":["Address generation and inspection.","","A structure defining the output of an AddressCmd` …","","Get the wallet balance.","","","","","","","","","","List all addresses","","Get a new address regardless of the existing unused …","","Get the next unused address.","","Send coins to an address.","","TxOut related commands.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return only confirmed outputs.","Return only spent outputs.","Return only unconfirmed outputs.","Return only unspent outputs."],"i":[4,0,0,0,4,5,4,0,0,8,6,8,0,5,6,7,6,5,6,5,4,5,4,0,22,22,4,6,7,4,6,7,0,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,0,4,5,6,7,8,4,5,6,7,8,8,22,22,0,22,5,22,8,16,8,8,4,5,5,6,7,8,8,22,4,5,6,7,8,16,22,4,6,7,22,4,6,7,5,0,4,6,7,0,22,4,5,6,7,8,16,22,22,22,8,0,0,0,0,8,16,4,5,6,7,8,5,8,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,4,5,6,7,8,16,22,4,6,7,22,4,6,7,22,4,5,6,7,8,16,33,34,35,35,36,35,37,37,37,37],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[4,[[0,[2,3]]]]],[[4,[[0,[2,3]]]]]],[5,5],[6,6],[7,7],[8,8],[[]],[[]],[[]],[[]],[[]],[[8,8],9],0,0,[[10,11,5,12,13],14],0,[[],5],0,[[],[[15,[8]]]],[[],[[15,[16]]]],[[8,8],17],[[],17],[[[4,[[0,[18,3]]]],19],20],[[5,19],20],[[5,19],20],[[6,19],20],[[7,19],20],[[8,19],20],[[8,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[15,[[22,[3]],23]]]],[21,[[15,[[4,[3]],23]]]],[21,[[15,[6,23]]]],[21,[[15,[7,23]]]],[21,[[15,[[22,[3]],23]]]],[21,[[15,[[4,[3]],23]]]],[21,[[15,[6,23]]]],[21,[[15,[7,23]]]],[24,[[14,[5]]]],[[[4,[3]],25,26,26,27,13],14],[24,17],[24,17],[24,17],[[],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,[[8,8],[[28,[9]]]],[[12,29],30],[[26,26,6,27],14],[26],[[7,26,27]],[8,15],[16,15],[[]],[[]],[[]],[[]],[[]],[[],31],[[],31],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[[22,[3]],21],[[15,[23]]]],[[[4,[3]],21],[[15,[23]]]],[[6,21],[[15,[23]]]],[[7,21],[[15,[23]]]],[[[22,[3]],21],[[15,[23]]]],[[[4,[3]],21],[[15,[23]]]],[[6,21],[[15,[23]]]],[[7,21],[[15,[23]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[15,"u64"],[3,"Address"],[3,"KeychainTracker"],[3,"HashMap"],[6,"Result"],[4,"Result"],[3,"AddrsOutput"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Args"],[3,"Error"],[15,"str"],[8,"FnOnce"],[3,"Mutex"],[4,"Network"],[4,"Option"],[3,"Assets"],[8,"Iterator"],[3,"String"],[3,"TypeId"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\ "wallet_electrum_example":{"doc":"","t":[17,17,17,5],"n":["BATCH_SIZE","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_electrum_example","","",""],"d":["","","",""],"i":[0,0,0,0],"f":[0,0,0,[[],[[3,[[2,[1]]]]]]],"p":[[8,"Error"],[3,"Box"],[4,"Result"]]},\ "wallet_esplora_async":{"doc":"","t":[17,17,17,5],"n":["PARALLEL_REQUESTS","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_esplora_async","","",""],"d":["","","",""],"i":[0,0,0,0],"f":[0,0,0,[[],[[3,[[2,[1]]]]]]],"p":[[8,"Error"],[3,"Box"],[4,"Result"]]}\ }'); 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 d585ff1adf..750c7f639e 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 @@ -223,7 +223,7 @@ COINBASE_MATURITY, }; -/// Represents the height in which a transaction is confirmed at. +/// Represents the height at which a transaction is confirmed. #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[cfg_attr( feature = "serde", @@ -288,7 +288,7 @@ } } -/// Block height and timestamp in which a transaction is confirmed in. +/// Block height and timestamp at which a transaction is confirmed. #[derive(Debug, Clone, PartialEq, Eq, Copy, PartialOrd, Ord, core::hash::Hash)] #[cfg_attr( feature = "serde", @@ -335,7 +335,7 @@ } } -/// A reference to a block in the cannonical chain. +/// A reference to a block in the canonical chain. #[derive(Debug, Clone, PartialEq, Eq, Copy, PartialOrd, Ord)] #[cfg_attr( feature = "serde", @@ -343,9 +343,9 @@ serde(crate = "serde_crate") )] pub struct BlockId { - /// The height the block was confirmed at + /// The height of the block. pub height: u32, - /// The hash of the block + /// The hash of the block. pub hash: BlockHash, } @@ -379,18 +379,18 @@ } } -/// A `TxOut` with as much data as we can retreive about it +/// A `TxOut` with as much data as we can retrieve about it #[derive(Debug, Clone, PartialEq)] pub struct FullTxOut<I> { - /// The location of the `TxOut` + /// The location of the `TxOut`. pub outpoint: OutPoint, - /// The `TxOut` + /// The `TxOut`. pub txout: TxOut, /// The position of the transaction in `outpoint` in the overall chain. pub chain_position: I, /// The txid and chain position of the transaction (if any) that has spent this output. pub spent_by: Option<(I, Txid)>, - /// Whether this output is on a coinbase transaction + /// Whether this output is on a coinbase transaction. pub is_on_coinbase: bool, } @@ -398,7 +398,7 @@ /// Whether the utxo is/was/will be spendable at `height`. /// /// It is spendable if it is not an immature coinbase output and no spending tx has been - /// confirmed by that heigt. + /// confirmed by that height. pub fn is_spendable_at(&self, height: u32) -> bool { if !self.is_mature(height) { return false; @@ -433,6 +433,6 @@ } } -// TOOD: make test +// TODO: make test

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_graph.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_graph.rs.html index 31e986125e..e1facdd822 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_graph.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_graph.rs.html @@ -636,6 +636,7 @@ 636 637 638 +639
//! Module for structures that combine the features of [`sparse_chain`] and [`tx_graph`].
 use crate::{
     collections::HashSet,
@@ -649,14 +650,14 @@
 
 /// A consistent combination of a [`SparseChain<P>`] and a [`TxGraph<T>`].
 ///
-/// `SparseChain` only keeps track of transaction ids and their position in the chain but you often
-/// want to store the full transactions as well. Additionally you want to make sure that everything
+/// `SparseChain` only keeps track of transaction ids and their position in the chain, but you often
+/// want to store the full transactions as well. Additionally, you want to make sure that everything
 /// in the chain is consistent with the full transaction data. `ChainGraph` enforces these two
 /// invariants:
 ///
 /// 1. Every transaction that is in the chain is also in the graph (you always have the full
 /// transaction).
-/// 2. No transactions in the chain conflict with each other i.e. they don't double spend each
+/// 2. No transactions in the chain conflict with each other, i.e., they don't double spend each
 /// other or have ancestors that double spend each other.
 ///
 /// Note that the `ChainGraph` guarantees a 1:1 mapping between transactions in the `chain` and
@@ -717,7 +718,7 @@
     ///
     /// 1. There is a transaction in the `chain` that does not have its corresponding full
     /// transaction in `graph`.
-    /// 2. The `chain` has two transactions that allegedly in it but they conflict in the `graph`
+    /// 2. The `chain` has two transactions that are allegedly in it, but they conflict in the `graph`
     /// (so could not possibly be in the same chain).
     pub fn new(chain: SparseChain<P>, graph: TxGraph) -> Result<Self, NewError<P>> {
         let mut missing = HashSet::default();
@@ -750,8 +751,8 @@
     /// got it from `self`.
     ///
     /// This is useful when interacting with services like an electrum server which returns a list
-    /// of txids and heights when calling [`script_get_history`] which can easily be inserted into a
-    /// [`SparseChain<TxHeight>`][`SparseChain`]. From there you need to figure out which full
+    /// of txids and heights when calling [`script_get_history`], which can easily be inserted into a
+    /// [`SparseChain<TxHeight>`][`SparseChain`]. From there, you need to figure out which full
     /// transactions you are missing in your chain graph and form `new_txs`. You then use
     /// `inflate_update` to turn this into an update `ChainGraph<P, Cow<Transaction>>` and finally
     /// use [`determine_changeset`] to generate the changeset from it.
@@ -776,7 +777,7 @@
 
         // [TODO] @evanlinjin: These need better comments
         // - copy transactions that have changed positions into the graph
-        // - add new transactions to inflated chain
+        // - add new transactions to an inflated chain
         for (pos, txid) in update.txids() {
             match self.chain.tx_position(*txid) {
                 Some(original_pos) => {
@@ -807,7 +808,7 @@
         ChainGraph::new(inflated_chain, inflated_graph)
     }
 
-    /// Sets the checkpoint limit.
+    /// Gets the checkpoint limit.
     ///
     /// Refer to [`SparseChain::checkpoint_limit`] for more.
     pub fn checkpoint_limit(&self) -> Option<usize> {
@@ -844,9 +845,9 @@
         changeset
     }
 
-    /// Get a transaction that is currently in the underlying [`SparseChain`].
+    /// Get a transaction currently in the underlying [`SparseChain`].
     ///
-    /// This does not necessarily mean that it is *confirmed* in the blockchain, it might just be in
+    /// This does not necessarily mean that it is *confirmed* in the blockchain; it might just be in
     /// the unconfirmed transaction list within the [`SparseChain`].
     pub fn get_tx_in_chain(&self, txid: Txid) -> Option<(&P, &Transaction)> {
         let position = self.chain.tx_position(txid)?;
@@ -872,7 +873,7 @@
         Ok(changeset)
     }
 
-    /// Inserts [`Transaction`] at given chain position.
+    /// Inserts [`Transaction`] at the given chain position.
     ///
     /// This is equivalent to calling [`Self::insert_tx_preview`] and [`Self::apply_changeset`] in
     /// sequence.
@@ -903,8 +904,7 @@
     /// Determines the changes required to insert a `block_id` (a height and block hash) into the
     /// chain.
     ///
-    /// If a checkpoint already exists at that height with a different hash this will return
-    /// an error.
+    /// If a checkpoint with a different hash already exists at that height, this will return an error.
     pub fn insert_checkpoint_preview(
         &self,
         block_id: BlockId,
@@ -950,7 +950,7 @@
     }
 
     /// Given a transaction, return an iterator of `txid`s that conflict with it (spends at least
-    /// one of the same inputs). This includes all descendants of conflicting transactions.
+    /// one of the same inputs). This iterator includes all descendants of conflicting transactions.
     ///
     /// This method only returns conflicts that exist in the [`SparseChain`] as transactions that
     /// are not included in [`SparseChain`] are already considered as evicted.
@@ -981,7 +981,7 @@
                     }
                     pos
                 }
-                // Ignore txids that are being delted by the change (they can't conflict)
+                // Ignore txids that are being deleted by the change (they can't conflict)
                 None => continue,
             };
 
@@ -1008,7 +1008,7 @@
             // conflicting tx will be positioned as "unconfirmed" after the update is applied.
             // If so, we will modify the changeset to evict the conflicting txid.
 
-            // determine the position of the conflicting txid after current changeset is applied
+            // determine the position of the conflicting txid after the current changeset is applied
             let conflicting_new_pos = changeset
                 .chain
                 .txids
@@ -1022,7 +1022,7 @@
                 }
                 Some(existing_new_pos) => match existing_new_pos.height() {
                     TxHeight::Confirmed(_) => {
-                        // the new postion of the conflicting tx is "confirmed", therefore cannot be
+                        // the new position of the conflicting tx is "confirmed", therefore cannot be
                         // evicted, return error
                         return Err(UnresolvableConflict {
                             already_confirmed_tx: (conflicting_pos.clone(), conflicting_txid),
@@ -1043,8 +1043,8 @@
 
     /// Applies `changeset` to `self`.
     ///
-    /// **Warning** this method assumes the changeset is assumed to be correctly formed. If it isn't
-    /// then the chain graph may not behave correctly in the future and may panic unexpectedly.
+    /// **Warning** this method assumes that the changeset is correctly formed. If it is not, the
+    /// chain graph may behave incorrectly in the future and panic unexpectedly.
     pub fn apply_changeset(&mut self, changeset: ChangeSet<P>) {
         self.chain.apply_changeset(changeset.chain);
         self.graph.apply_additions(changeset.graph);
@@ -1071,9 +1071,11 @@
             .map(move |(pos, txid)| (pos, self.graph.get_tx(*txid).expect("must exist")))
     }
 
-    /// Finds the transaction in the chain that spends `outpoint` given the input/output
-    /// relationships in `graph`. Note that the transaction including `outpoint` does not need to be
-    /// in the `graph` or the `chain` for this to return `Some(_)`.
+    /// Find the transaction in the chain that spends `outpoint`.
+    ///
+    /// This uses the input/output relationships in the internal `graph`. Note that the transaction
+    /// which includes `outpoint` does not need to be in the `graph` or the `chain` for this to
+    /// return `Some(_)`.
     pub fn spent_by(&self, outpoint: OutPoint) -> Option<(&P, Txid)> {
         self.chain.spent_by(&self.graph, outpoint)
     }
@@ -1119,7 +1121,7 @@
             .any(|(_, new_pos)| new_pos.is_none())
     }
 
-    /// Appends the changes in `other` into self such that applying `self` afterwards has the same
+    /// Appends the changes in `other` into self such that applying `self` afterward has the same
     /// effect as sequentially applying the original `self` and `other`.
     pub fn append(&mut self, other: ChangeSet<P>)
     where
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
index 4843aea1be..06e564d851 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
@@ -18,7 +18,7 @@
 
 /// A trait to extend the functionality of a miniscript descriptor.
 pub trait DescriptorExt {
-    /// Returns the minimum value (in satoshis) that an output should have to be broadcastable.
+    /// Returns the minimum value (in satoshis) at which an output is broadcastable.
     fn dust_value(&self) -> u64;
 }
 
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain.rs.html
index 9865f26fe9..0c9cafc817 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain.rs.html
@@ -307,15 +307,15 @@
 307
 308
 309
-
//! Module for keychain based structures.
+
//! Module for keychain related structures.
 //!
-//! A keychain here is a set of application defined indexes for a minscript descriptor where we can
+//! A keychain here is a set of application-defined indexes for a miniscript descriptor where we can
 //! derive script pubkeys at a particular derivation index. The application's index is simply
 //! anything that implements `Ord`.
 //!
 //! [`KeychainTxOutIndex`] indexes script pubkeys of keychains and scans in relevant outpoints (that
 //! has a `txout` containing an indexed script pubkey). Internally, this uses [`SpkTxOutIndex`], but
-//! also maintains "revealed" and "lookahead" index count per keychain.
+//! also maintains "revealed" and "lookahead" index counts per keychain.
 //!
 //! [`KeychainTracker`] combines [`ChainGraph`] and [`KeychainTxOutIndex`] and enforces atomic
 //! changes between both these structures. [`KeychainScan`] is a structure used to update to
@@ -372,7 +372,7 @@
         self.0.is_empty()
     }
 
-    /// Get the inner map of keychain to its new derivation index.
+    /// Get the inner map of the keychain to its new derivation index.
     pub fn as_inner(&self) -> &BTreeMap<K, u32> {
         &self.0
     }
@@ -381,8 +381,8 @@
 impl<K: Ord> DerivationAdditions<K> {
     /// Append another [`DerivationAdditions`] into self.
     ///
-    /// If keychain already exists, increases the index when other's index > self's index.
-    /// If keychain did not exist, append the new keychain.
+    /// If the keychain already exists, increase the index when the other's index > self's index.
+    /// If the keychain did not exist, append the new keychain.
     pub fn append(&mut self, mut other: Self) {
         self.0.iter_mut().for_each(|(key, index)| {
             if let Some(other_index) = other.0.remove(key) {
@@ -471,11 +471,11 @@
         self.chain_graph.is_empty() && self.derivation_indices.is_empty()
     }
 
-    /// Appends the changes in `other` into `self` such that applying `self` afterwards has the same
+    /// Appends the changes in `other` into `self` such that applying `self` afterward has the same
     /// effect as sequentially applying the original `self` and `other`.
     ///
-    /// Note the derivation indices cannot be decreased so `other` will only change the derivation
-    /// index for a keychain if it's entry is higher than the one in `self`.
+    /// Note the derivation indices cannot be decreased, so `other` will only change the derivation
+    /// index for a keychain, if it's value is higher than the one in `self`.
     pub fn append(&mut self, other: KeychainChangeSet<K, P>)
     where
         K: Ord,
@@ -516,7 +516,7 @@
     }
 }
 
-/// Balance differentiated in various categories.
+/// Balance, differentiated into various categories.
 #[derive(Debug, PartialEq, Eq, Clone, Default)]
 #[cfg_attr(
     feature = "serde",
@@ -606,13 +606,13 @@
 
         lhs.append(rhs);
 
-        // Exiting index doesn't update if new index in `other` is lower than `self`
+        // Exiting index doesn't update if the new index in `other` is lower than `self`.
         assert_eq!(lhs.derivation_indices.0.get(&Keychain::One), Some(&7));
-        // Existing index updates if new index in `other` is higher than `self.
+        // Existing index updates if the new index in `other` is higher than `self`.
         assert_eq!(lhs.derivation_indices.0.get(&Keychain::Two), Some(&5));
-        // Existing index unchanged, if keychain doesn't exist in `other`
+        // Existing index is unchanged if keychain doesn't exist in `other`.
         assert_eq!(lhs.derivation_indices.0.get(&Keychain::Three), Some(&3));
-        // New keychain gets added if keychain is in `other`, but not in `self`.
+        // New keychain gets added if the keychain is in `other` but not in `self`.
         assert_eq!(lhs.derivation_indices.0.get(&Keychain::Four), Some(&4));
     }
 }
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/persist.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/persist.rs.html
index ea255b252e..b3150a37c0 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/persist.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/persist.rs.html
@@ -110,7 +110,7 @@
 //!
 //! BDK's [`KeychainTracker`] needs somewhere to persist changes it makes during operation.
 //! Operations like giving out a new address are crucial to persist so that next time the
-//! application is loaded it can find transactions related to that address.
+//! application is loaded, it can find transactions related to that address.
 //!
 //! Note that the [`KeychainTracker`] does not read this persisted data during operation since it
 //! always has a copy in memory.
@@ -122,7 +122,7 @@
 /// `Persist` wraps a [`PersistBackend`] to create a convenient staging area for changes before they
 /// are persisted. Not all changes made to the [`KeychainTracker`] need to be written to disk right
 /// away so you can use [`Persist::stage`] to *stage* it first and then [`Persist::commit`] to
-/// finally write it to disk.
+/// finally, write it to disk.
 ///
 /// [`KeychainTracker`]: keychain::KeychainTracker
 #[derive(Debug)]
@@ -151,14 +151,14 @@
         self.stage.append(changeset)
     }
 
-    /// Get the changes that haven't been commited yet
+    /// Get the changes that haven't been committed yet
     pub fn staged(&self) -> &keychain::KeychainChangeSet<K, P> {
         &self.stage
     }
 
     /// Commit the staged changes to the underlying persistence backend.
     ///
-    /// Retuns a backend defined error if this fails
+    /// Returns a backend-defined error if this fails.
     pub fn commit(&mut self) -> Result<(), B::WriteError>
     where
         B: PersistBackend<K, P>,
@@ -177,10 +177,10 @@
     /// The error the backend returns when it fails to load.
     type LoadError: core::fmt::Debug;
 
-    /// Appends a new changeset to the persistance backend.
+    /// Appends a new changeset to the persistent backend.
     ///
     /// It is up to the backend what it does with this. It could store every changeset in a list or
-    /// it insert the actual changes to a more structured database. All it needs to guarantee is
+    /// it inserts the actual changes into a more structured database. All it needs to guarantee is
     /// that [`load_into_keychain_tracker`] restores a keychain tracker to what it should be if all
     /// changesets had been applied sequentially.
     ///
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/tracker.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/tracker.rs.html
index c96c5d07d2..796f2a96a6 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/tracker.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/tracker.rs.html
@@ -336,7 +336,7 @@
     P: sparse_chain::ChainPosition,
     K: Ord + Clone + core::fmt::Debug,
 {
-    /// Add a keychain to the tracker's `txout_index` with a descriptor to derive addresses for it.
+    /// Add a keychain to the tracker's `txout_index` with a descriptor to derive addresses.
     /// This is just shorthand for calling [`KeychainTxOutIndex::add_keychain`] on the internal
     /// `txout_index`.
     ///
@@ -391,7 +391,7 @@
 
     /// Directly applies a [`KeychainScan`] on [`KeychainTracker`].
     ///
-    /// This is equivilant to calling [`determine_changeset`] and [`apply_changeset`] in sequence.
+    /// This is equivalent to calling [`determine_changeset`] and [`apply_changeset`] in sequence.
     ///
     /// [`determine_changeset`]: Self::determine_changeset
     /// [`apply_changeset`]: Self::apply_changeset
@@ -454,11 +454,11 @@
         self.chain_graph().chain()
     }
 
-    /// Determines the changes as result of inserting `block_id` (a height and block hash) into the
+    /// Determines the changes as a result of inserting `block_id` (a height and block hash) into the
     /// tracker.
     ///
     /// The caller is responsible for guaranteeing that a block exists at that height. If a
-    /// checkpoint already exists at that height with a different hash this will return an error.
+    /// checkpoint already exists at that height with a different hash; this will return an error.
     /// Otherwise it will return `Ok(true)` if the checkpoint didn't already exist or `Ok(false)`
     /// if it did.
     ///
@@ -490,7 +490,7 @@
         Ok(changeset)
     }
 
-    /// Determines the changes as result of inserting a transaction into the inner [`ChainGraph`]
+    /// Determines the changes as a result of inserting a transaction into the inner [`ChainGraph`]
     /// and optionally into the inner chain at `position`.
     ///
     /// **Warning**: This function modifies the internal state of the chain graph. You are
@@ -509,7 +509,7 @@
     /// Directly insert a transaction into the inner [`ChainGraph`] and optionally into the inner
     /// chain at `position`.
     ///
-    /// This is equivilant of calling [`insert_tx_preview`] and [`apply_changeset`] in sequence.
+    /// This is equivalent of calling [`insert_tx_preview`] and [`apply_changeset`] in sequence.
     ///
     /// [`insert_tx_preview`]: Self::insert_tx_preview
     /// [`apply_changeset`]: Self::apply_changeset
@@ -523,15 +523,15 @@
         Ok(changeset)
     }
 
-    /// Returns the *balance* of the keychain i.e. the value of unspent transaction outputs tracked.
+    /// Returns the *balance* of the keychain, i.e., the value of unspent transaction outputs tracked.
     ///
     /// The caller provides a `should_trust` predicate which must decide whether the value of
     /// unconfirmed outputs on this keychain are guaranteed to be realized or not. For example:
     ///
-    /// - For an *internal* (change) keychain `should_trust` should in general be `true` since even if
-    /// you lose an internal output due to eviction you will always gain back the value from whatever output the
-    /// unconfirmed transaction was spending (since that output is presumeably from your wallet).
-    /// - For an *external* keychain you might want `should_trust` to return  `false` since someone may cancel (by double spending)
+    /// - For an *internal* (change) keychain, `should_trust` should generally be `true` since even if
+    /// you lose an internal output due to eviction, you will always gain back the value from whatever output the
+    /// unconfirmed transaction was spending (since that output is presumably from your wallet).
+    /// - For an *external* keychain, you might want `should_trust` to return  `false` since someone may cancel (by double spending)
     /// a payment made to addresses on that keychain.
     ///
     /// When in doubt set `should_trust` to return false. This doesn't do anything other than change
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
index 5501685586..ac73debf02 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
@@ -608,9 +608,9 @@
 ///
 /// Descriptors are referenced by the provided keychain generic (`K`).
 ///
-/// Script pubkeys for a descriptor are revealed chronologically from index 0. I.e. If the last
-/// revealed index of a descriptor is 5, scripts of indices 0 to 4 are guaranteed to already be
-/// revealed. In addition to revealed scripts, we have a `lookahead` parameter for each keychain
+/// Script pubkeys for a descriptor are revealed chronologically from index 0. I.e., If the last
+/// revealed index of a descriptor is 5; scripts of indices 0 to 4 are guaranteed to be already
+/// revealed. In addition to revealed scripts, we have a `lookahead` parameter for each keychain,
 /// which defines the number of script pubkeys to store ahead of the last revealed index.
 ///
 /// Methods that could update the last revealed index will return [`DerivationAdditions`] to report
@@ -686,12 +686,12 @@
     /// the script pubkey's keychain and the [`DerivationAdditions`] returned will reflect the
     /// change.
     ///
-    /// Typically this method is used in two situations:
+    /// Typically, this method is used in two situations:
     ///
-    /// 1. After loading transaction data from disk you may scan over all the txouts to restore all
+    /// 1. After loading transaction data from the disk, you may scan over all the txouts to restore all
     /// your txouts.
-    /// 2. When getting new data from the chain you usually scan it before incorporating it into
-    /// your chain state (i.e. `SparseChain`, `ChainGraph`).
+    /// 2. When getting new data from the chain, you usually scan it before incorporating it into
+    /// your chain state (i.e., `SparseChain`, `ChainGraph`).
     ///
     /// See [`ForEachTxout`] for the types that support this.
     ///
@@ -704,7 +704,7 @@
 
     /// Scan a single outpoint for a matching script pubkey.
     ///
-    /// If it matches the index will store and index it.
+    /// If it matches, this will store and index it.
     pub fn scan_txout(&mut self, op: OutPoint, txout: &TxOut) -> DerivationAdditions<K> {
         match self.inner.scan_txout(op, txout).cloned() {
             Some((keychain, index)) => self.reveal_to_target(&keychain, index).1,
@@ -717,12 +717,12 @@
         &self.inner
     }
 
-    /// Return a reference to the internal map of keychain to descriptors.
+    /// Return a reference to the internal map of the keychain to descriptors.
     pub fn keychains(&self) -> &BTreeMap<K, Descriptor<DescriptorPublicKey>> {
         &self.keychains
     }
 
-    /// Add a keychain to the tracker's `txout_index` with a descriptor to derive addresses for it.
+    /// Add a keychain to the tracker's `txout_index` with a descriptor to derive addresses.
     ///
     /// Adding a keychain means you will be able to derive new script pubkeys under that keychain
     /// and the txout index will discover transaction outputs with those script pubkeys.
@@ -740,7 +740,7 @@
 
     /// Return the lookahead setting for each keychain.
     ///
-    /// Refer to [`set_lookahead`] for a deeper explanation on `lookahead`.
+    /// Refer to [`set_lookahead`] for a deeper explanation of the `lookahead`.
     ///
     /// [`set_lookahead`]: Self::set_lookahead
     pub fn lookaheads(&self) -> &BTreeMap<K, u32> {
@@ -764,7 +764,7 @@
     ///
     /// # Panics
     ///
-    /// This will panic if `keychain` does not exist.
+    /// This will panic if the `keychain` does not exist.
     ///
     /// [`scan`]: Self::scan
     /// [`scan_txout`]: Self::scan_txout
@@ -840,12 +840,12 @@
             .collect()
     }
 
-    /// Generates a script pubkey iterator for the given `keychain`'s descriptor (if exists). The
+    /// Generates a script pubkey iterator for the given `keychain`'s descriptor (if it exists). The
     /// iterator iterates over all derivable scripts of the keychain's descriptor.
     ///
     /// # Panics
     ///
-    /// This will panic if `keychain` does not exist.
+    /// This will panic if the `keychain` does not exist.
     pub fn spks_of_keychain(&self, keychain: &K) -> impl Iterator<Item = (u32, Script)> + Clone {
         let descriptor = self
             .keychains
@@ -879,7 +879,7 @@
             .map(|((_, derivation_index), spk)| (*derivation_index, spk))
     }
 
-    /// Get the next derivation index for `keychain`. This is the index after the last revealed
+    /// Get the next derivation index for `keychain`. The next index is the index after the last revealed
     /// derivation index.
     ///
     /// The second field in the returned tuple represents whether the next derivation index is new.
@@ -897,20 +897,20 @@
         let descriptor = self.keychains.get(keychain).expect("keychain must exist");
         let last_index = self.last_revealed.get(keychain).cloned();
 
-        // we can only get the next index if wildcard exists
+        // we can only get the next index if the wildcard exists.
         let has_wildcard = descriptor.has_wildcard();
 
         match last_index {
-            // if there is no index, next_index is always 0
+            // if there is no index, next_index is always 0.
             None => (0, true),
-            // descriptors without wildcards can only have one index
+            // descriptors without wildcards can only have one index.
             Some(_) if !has_wildcard => (0, false),
-            // derivation index must be < 2^31 (BIP-32)
+            // derivation index must be < 2^31 (BIP-32).
             Some(index) if index > BIP32_MAX_INDEX => {
                 unreachable!("index is out of bounds")
             }
             Some(index) if index == BIP32_MAX_INDEX => (index, false),
-            // get next derivation index
+            // get the next derivation index.
             Some(index) => (index + 1, true),
         }
     }
@@ -952,13 +952,13 @@
     /// Reveals script pubkeys of the `keychain`'s descriptor **up to and including** the
     /// `target_index`.
     ///
-    /// If the `target_index` cannot be reached (due to the descriptor having no wildcard, and/or
-    /// the `target_index` is in the hardened index range), this method will do a best-effort and
+    /// If the `target_index` cannot be reached (due to the descriptor having no wildcard and/or
+    /// the `target_index` is in the hardened index range), this method will make a best-effort and
     /// reveal up to the last possible index.
     ///
-    /// This returns an iterator of newly revealed indices (along side their scripts), and a
-    /// [`DerivationAdditions`] which reports updates to the latest revealed index. If no new script
-    /// pubkeys are revealed, both of these will be empty.
+    /// This returns an iterator of newly revealed indices (alongside their scripts) and a
+    /// [`DerivationAdditions`], which reports updates to the latest revealed index. If no new script
+    /// pubkeys are revealed, then both of these will be empty.
     ///
     /// # Panics
     ///
@@ -976,12 +976,12 @@
         let next_reveal_index = self.last_revealed.get(keychain).map_or(0, |v| *v + 1);
         let lookahead = self.lookahead.get(keychain).map_or(0, |v| *v);
 
-        // if we are able to reveal new indexes, the latest revealed index goes here
+        // if we can reveal new indexes, the latest revealed index goes here
         let mut revealed_index = None;
 
-        // if target is already surpassed, we have nothing to reveal
+        // if the target is already surpassed, we have nothing to reveal
         if next_reveal_index <= target_index
-            // if target is already stored (due to lookahead), this can be our new revealed index
+            // if the target is already stored (due to lookahead), this can be our newly revealed index
             && target_index < next_reveal_index + lookahead
         {
             revealed_index = Some(target_index);
@@ -1051,13 +1051,13 @@
         ((next_index, script), additions)
     }
 
-    /// Gets the next unused script pubkey in the keychain. I.e. the script pubkey with the lowest
+    /// Gets the next unused script pubkey in the keychain. I.e., the script pubkey with the lowest
     /// index that has not been used yet.
     ///
     /// This will derive and reveal a new script pubkey if no more unused script pubkeys exist.
     ///
-    /// If the descriptor has no wildcard and already has a used script pubkey, or if a descriptor
-    /// has used all scripts up to the derivation bounds, the last derived script pubkey will be
+    /// If the descriptor has no wildcard and already has a used script pubkey or if a descriptor
+    /// has used all scripts up to the derivation bounds, then the last derived script pubkey will be
     /// returned.
     ///
     /// # Panics
@@ -1078,10 +1078,10 @@
         }
     }
 
-    /// Marks the script pubkey at `index` as used even though it hasn't seen an output with it.
+    /// Marks the script pubkey at `index` as used even though the tracker hasn't seen an output with it.
     /// This only has an effect when the `index` had been added to `self` already and was unused.
     ///
-    /// Returns whether the `index` was originally present as `unused`.
+    /// Returns whether the `index` was initially present as `unused`.
     ///
     /// This is useful when you want to reserve a script pubkey for something but don't want to add
     /// the transaction output using it to the index yet. Other callers will consider `index` on
@@ -1095,7 +1095,7 @@
     /// Undoes the effect of [`mark_used`]. Returns whether the `index` is inserted back into
     /// `unused`.
     ///
-    /// Note that if `self` has scanned an output with this script pubkey then this will have no
+    /// Note that if `self` has scanned an output with this script pubkey, then this will have no
     /// effect.
     ///
     /// [`mark_used`]: Self::mark_used
@@ -1103,7 +1103,7 @@
         self.inner.unmark_used(&(keychain.clone(), index))
     }
 
-    /// Iterates over all unused script pubkeys for a `keychain` that have been stored in the index.
+    /// Iterates over all unused script pubkeys for a `keychain` stored in the index.
     pub fn unused_spks_of_keychain(
         &self,
         keychain: &K,
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/lib.rs.html
index 73c3b25bbb..26bc50fece 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/lib.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/lib.rs.html
@@ -89,19 +89,19 @@
 89
 
//! This crate is a collection of core structures for [Bitcoin Dev Kit] (alpha release).
 //!
-//! The goal of this crate is give wallets the mechanisms needed to:
+//! The goal of this crate is to give wallets the mechanisms needed to:
 //!
 //! 1. Figure out what data they need to fetch.
-//! 2. Process that data in a way that never leads to inconsistent states.
-//! 3. Fully index that data and expose it so that it can be consumed without friction.
+//! 2. Process the data in a way that never leads to inconsistent states.
+//! 3. Fully index that data and expose it to be consumed without friction.
 //!
 //! Our design goals for these mechanisms are:
 //!
 //! 1. Data source agnostic -- nothing in `bdk_chain` cares about where you get data from or whether
-//!    you do it synchronously or asynchronously. If you know a fact about the blockchain you can just
-//!    tell `bdk_chain`'s APIs about it and that information will be integrated if it can be done
+//!    you do it synchronously or asynchronously. If you know a fact about the blockchain, you can just
+//!    tell `bdk_chain`'s APIs about it, and that information will be integrated, if it can be done
 //!    consistently.
-//! 2. Error free APIs.
+//! 2. Error-free APIs.
 //! 3. Data persistence agnostic -- `bdk_chain` does not care where you cache on-chain data, what you
 //!    cache or how you fetch it.
 //!
@@ -156,14 +156,14 @@
     pub use alloc::collections::{btree_map as hash_map, *};
 }
 
-// When we have std use `std`'s all collections
+// When we have std, use `std`'s all collections
 #[cfg(all(feature = "std", not(feature = "hashbrown")))]
 #[doc(hidden)]
 pub mod collections {
     pub use std::collections::{hash_map, *};
 }
 
-// With special feature `hashbrown` use `hashbrown`'s hash collections, and else from `alloc`.
+// With this special feature `hashbrown`, use `hashbrown`'s hash collections, and else from `alloc`.
 #[cfg(feature = "hashbrown")]
 #[doc(hidden)]
 pub mod collections {
@@ -174,7 +174,7 @@
     pub use hashbrown::hash_map;
 }
 
-/// How many confirmations are needed for a coinbase output to be spent
+/// How many confirmations are needed f or a coinbase output to be spent.
 pub const COINBASE_MATURITY: u32 = 100;
 
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/sparse_chain.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/sparse_chain.rs.html index 216ff1cebe..105dfcd986 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/sparse_chain.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/sparse_chain.rs.html @@ -1103,9 +1103,9 @@
//! Module for structures that maintain sparse (purposely incomplete) snapshots of blockchain data.
 //!
 //! [`SparseChain`] stores [`Txid`]s ordered by an index that implements [`ChainPosition`] (this
-//! represents the transaction's position in the blockchain, by default [`TxHeight`] is used).
+//! represents the transaction's position in the blockchain; by default, [`TxHeight`] is used).
 //! [`SparseChain`] also contains "checkpoints" which relate block height to block hash. Changes to
-//! a [`SparseChain`] are reported by returning [`ChangeSet`]s.
+//! a [`SparseChain`] is reported by returning [`ChangeSet`]s.
 //!
 //! # Updating [`SparseChain`]
 //!
@@ -1168,7 +1168,7 @@
 //! # let hash_b = new_hash::<BlockHash>("b");
 //! # let hash_c = new_hash::<BlockHash>("c");
 //! # let hash_d = new_hash::<BlockHash>("d");
-//! // our sparsechain has 2 checkpoints
+//! // our sparsechain has two checkpoints
 //! let chain = SparseChain::<TxHeight>::from_checkpoints(vec![
 //!     BlockId {
 //!         height: 1,
@@ -1201,7 +1201,7 @@
 //! /* Example of an update that completely misses the point */
 //!
 //! let disconnected_update = SparseChain::from_checkpoints(vec![
-//!     // the last checkpoint in chain is 2, so 3 and 4 do not connect
+//!     // the last checkpoint in the chain is 2, so 3 and 4 do not connect
 //!     BlockId {
 //!         height: 3,
 //!         hash: hash_c,
@@ -1228,7 +1228,7 @@
 //! # let hash_b = new_hash::<BlockHash>("b");
 //! # let hash_c = new_hash::<BlockHash>("c");
 //! # let hash_d = new_hash::<BlockHash>("d");
-//! // our chain has a single checkpoint at height 11
+//! // our chain has a single checkpoint at height 11.
 //! let mut chain = SparseChain::<TxHeight>::from_checkpoints(vec![BlockId {
 //!     height: 11,
 //!     hash: hash_a,
@@ -1249,10 +1249,10 @@
 //!     .apply_update(update)
 //!     .expect("we can evict/replace checkpoint 11 since it is the only checkpoint");
 //!
-//! // now our `chain` has 2 checkpoints (11:hash_b & 12:hash_c)
-//! // we detect another reorg, this time at height 12...
+//! // now our `chain` has two checkpoints (11:hash_b & 12:hash_c)
+//! // we detect another reorg, this time at height 12.
 //! let update = SparseChain::from_checkpoints(vec![
-//!     // we connect at checkpoint 11 as this is our "point of agreement"
+//!     // we connect at checkpoint 11 as this is our "point of agreement".
 //!     BlockId {
 //!         height: 11,
 //!         hash: hash_b,
@@ -1289,10 +1289,10 @@
 //! # Custom [`ChainPosition`]
 //!
 //! [`SparseChain`] maintains a list of txids ordered by [`ChainPosition`]. By default, [`TxHeight`]
-//! is used, however additional data can be incorporated into the implementation.
+//! is used; however, additional data can be incorporated into the implementation.
 //!
 //! For example, we can have "perfect ordering" of transactions if our positional index is a
-//! combination of block height and transaction position in block.
+//! combination of block height and transaction position in a block.
 //!
 //! ```
 //! # use bdk_chain::{BlockId, TxHeight, sparse_chain::*, example_utils::*};
@@ -1439,7 +1439,7 @@
     ordered_txids: BTreeSet<(P, Txid)>,
     /// Confirmation heights of txids.
     txid_to_pos: HashMap<Txid, P>,
-    /// Limit number of checkpoints.
+    /// Limit the number of checkpoints.
     checkpoint_limit: Option<usize>,
 }
 
@@ -1463,13 +1463,13 @@
 /// Represents a failure when trying to insert a [`Txid`] into [`SparseChain`].
 #[derive(Clone, Debug, PartialEq)]
 pub enum InsertTxError<P> {
-    /// Occurs when the [`Txid`] is to be inserted at a hight higher than the [`SparseChain`]'s tip.
+    /// Occurs when the [`Txid`] is to be inserted at a height higher than the [`SparseChain`]'s tip.
     TxTooHigh {
         txid: Txid,
         tx_height: u32,
         tip_height: Option<u32>,
     },
-    /// Occurs when the [`Txid`] is already in the [`SparseChain`] and the insertion would result in
+    /// Occurs when the [`Txid`] is already in the [`SparseChain`], and the insertion would result in
     /// an unexpected move in [`ChainPosition`].
     TxMovedUnexpectedly {
         txid: Txid,
@@ -1509,7 +1509,7 @@
 /// Represents a failure when trying to insert a checkpoint into [`SparseChain`].
 #[derive(Clone, Debug, PartialEq)]
 pub enum InsertCheckpointError {
-    /// Occurs when checkpoint of the same height already exists with a different [`BlockHash`].
+    /// Occurs when a checkpoint of the same height already exists with a different [`BlockHash`].
     HashNotMatching {
         height: u32,
         original_hash: BlockHash,
@@ -1533,7 +1533,7 @@
     /// connect to the existing chain. This error case contains the checkpoint height to include so
     /// that the chains can connect.
     NotConnected(u32),
-    /// The update contains inconsistent tx states (e.g. it changed the transaction's height). This
+    /// The update contains inconsistent tx states (e.g., it changed the transaction's height). This
     /// error is usually the inconsistency found.
     TxInconsistent {
         txid: Txid,
@@ -1591,7 +1591,7 @@
 
     /// Return the [`ChainPosition`] of a `txid`.
     ///
-    /// This returns [`None`] if the transation does not exist.
+    /// This returns [`None`] if the transaction does not exist.
     pub fn tx_position(&self, txid: Txid) -> Option<&P> {
         self.txid_to_pos.get(&txid)
     }
@@ -1620,8 +1620,8 @@
     /// but different hash. Invalidated checkpoints result in invalidated transactions becoming
     /// "unconfirmed".
     ///
-    /// An error will be returned if an update will result in inconsistencies or if the update does
-    /// not properly connect with `self`.
+    /// An error will be returned if an update results in inconsistencies or if the update does
+    /// not correctly connect with `self`.
     ///
     /// Refer to [module-level documentation] for more.
     ///
@@ -1638,7 +1638,7 @@
 
         // the lower bound of the invalidation range
         let invalid_lb = if last_update_cp.is_none() || last_update_cp == agreement_point {
-            // if agreement point is the last update checkpoint, or there is no update checkpoints,
+            // if the agreement point is the last update checkpoint, or there are no update checkpoints,
             // no invalidation is required
             u32::MAX
         } else {
@@ -1671,7 +1671,7 @@
             }
         }
 
-        // create initial change-set, based on checkpoints and txids that are to be "invalidated"
+        // create initial change-set based on checkpoints and txids that are to be "invalidated".
         let mut changeset = invalid_from
             .map(|from_height| self.invalidate_checkpoints_preview(from_height))
             .unwrap_or_default();
@@ -1827,7 +1827,7 @@
 
     /// Determines the resultant [`ChangeSet`] if [`Txid`] was inserted at position `pos`.
     ///
-    /// Changes to the [`Txid`]'s position is allowed (under the rules noted in
+    /// Changes to the [`Txid`]'s position are allowed (under the rules noted in
     /// [module-level documentation]) and will be reflected in the [`ChangeSet`].
     ///
     /// [module-level documentation]: crate::sparse_chain
@@ -1917,7 +1917,7 @@
 
     /// Insert a checkpoint ([`BlockId`]).
     ///
-    /// This is equivilant to calling [`insert_checkpoint_preview`] and [`apply_changeset`] in
+    /// This is equivalent to calling [`insert_checkpoint_preview`] and [`apply_changeset`] in
     /// sequence.
     ///
     /// [`insert_checkpoint_preview`]: Self::insert_checkpoint_preview
@@ -1972,7 +1972,7 @@
         ))
     }
 
-    /// Iterate over a sub-range of positioned [`Txid`]s, where the range is define by [`TxHeight`]
+    /// Iterate over a sub-range of positioned [`Txid`]s, where the range is defined by [`TxHeight`]
     /// only.
     pub fn range_txids_by_height<R>(
         &self,
@@ -2057,7 +2057,7 @@
     fn prune_checkpoints(&mut self) -> Option<BTreeMap<u32, BlockHash>> {
         let limit = self.checkpoint_limit?;
 
-        // find last height to be pruned
+        // find the last height to be pruned
         let last_height = *self.checkpoints.keys().rev().nth(limit)?;
         // first height to be kept
         let keep_height = last_height + 1;
@@ -2112,7 +2112,7 @@
 }
 
 impl<P> ChangeSet<P> {
-    /// Appends the changes in `other` into self such that applying `self` afterwards has the same
+    /// Appends the changes of `other` into self such that applying `self` afterward has the same
     /// effect as sequentially applying the original `self` and `other`.
     pub fn append(&mut self, mut other: Self)
     where
@@ -2136,16 +2136,16 @@
     Txid::from_inner([0xff; 32])
 }
 
-/// Represents an position in which transactions are ordered in [`SparseChain`].
+/// Represents a position in which transactions are ordered in [`SparseChain`].
 ///
 /// [`ChainPosition`] implementations must be [`Ord`] by [`TxHeight`] first.
 pub trait ChainPosition:
     core::fmt::Debug + Clone + Eq + PartialOrd + Ord + core::hash::Hash + Send + Sync + 'static
 {
-    /// Get the transaction height of the positon.
+    /// Get the transaction height of the position.
     fn height(&self) -> TxHeight;
 
-    /// Get the positon's upper bound of a given height.
+    /// Get the position's upper bound of a given height.
     fn max_ord_of_height(height: TxHeight) -> Self;
 
     /// Get the position's lower bound of a given height.
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
index fb38a4bfdf..cbc8526251 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
@@ -318,17 +318,17 @@
 /// An index storing [`TxOut`]s that have a script pubkey that matches those in a list.
 ///
 /// The basic idea is that you insert script pubkeys you care about into the index with
-/// [`insert_spk`] and then when you call [`scan`] the index will look at any txouts you pass in and
+/// [`insert_spk`] and then when you call [`scan`], the index will look at any txouts you pass in and
 /// store and index any txouts matching one of its script pubkeys.
 ///
-/// Each script pubkey is associated with a application defined index script index `I` which must be
-/// [`Ord`]. Usually this is used to associate the derivation index of the script pubkey or even a
+/// Each script pubkey is associated with an application-defined index script index `I`, which must be
+/// [`Ord`]. Usually, this is used to associate the derivation index of the script pubkey or even a
 /// combination of `(keychain, derivation_index)`.
 ///
 /// Note there is no harm in scanning transactions that disappear from the blockchain or were never
 /// in there in the first place. `SpkTxOutIndex` is intentionally *monotone* -- you cannot delete or
 /// modify txouts that have been indexed. To find out which txouts from the index are actually in the
-/// chain or unspent etc you must use other sources of information like a [`SparseChain`].
+/// chain or unspent, you must use other sources of information like a [`SparseChain`].
 ///
 /// [`TxOut`]: bitcoin::TxOut
 /// [`insert_spk`]: Self::insert_spk
@@ -361,9 +361,9 @@
     }
 }
 
-/// This macro is used instead of a member function of `SpkTxOutIndex` which would result in a
+/// This macro is used instead of a member function of `SpkTxOutIndex`, which would result in a
 /// compiler error[E0521]: "borrowed data escapes out of closure" when we attempt to take a
-/// reference out of the `FprEachTxOut` closure during scanning.
+/// reference out of the `ForEachTxOut` closure during scanning.
 macro_rules! scan_txout {
     ($self:ident, $op:expr, $txout:expr) => {{
         let spk_i = $self.spk_indices.get(&$txout.script_pubkey);
@@ -379,11 +379,11 @@
 impl<I: Clone + Ord> SpkTxOutIndex<I> {
     /// Scans an object containing many txouts.
     ///
-    /// Typically this is used in two situations:
+    /// Typically, this is used in two situations:
     ///
-    /// 1. After loading transaction data from disk you may scan over all the txouts to restore all
+    /// 1. After loading transaction data from the disk, you may scan over all the txouts to restore all
     /// your txouts.
-    /// 2. When getting new data from the chain you usually scan it before incorporating it into your chain state.
+    /// 2. When getting new data from the chain, you usually scan it before incorporating it into your chain state.
     ///
     /// See [`ForEachTxout`] for the types that support this.
     ///
@@ -400,7 +400,7 @@
         scanned_indices
     }
 
-    /// Scan a single `TxOut` for a matching script pubkey, and returns the index that matched the
+    /// Scan a single `TxOut` for a matching script pubkey and returns the index that matches the
     /// script pubkey (if any).
     pub fn scan_txout(&mut self, op: OutPoint, txout: &TxOut) -> Option<&I> {
         scan_txout!(self, op, txout)
@@ -425,7 +425,7 @@
             .map(|(op, (index, txout))| (index, *op, txout))
     }
 
-    /// Iterates over all outputs with script pubkeys in an index range.
+    /// Iterates over all the outputs with script pubkeys in an index range.
     pub fn outputs_in_range(
         &self,
         range: impl RangeBounds<I>,
@@ -467,19 +467,19 @@
 
     /// Returns the script that has been inserted at the `index`.
     ///
-    /// If that index hasn't been inserted yet it will return `None`.
+    /// If that index hasn't been inserted yet, it will return `None`.
     pub fn spk_at_index(&self, index: &I) -> Option<&Script> {
         self.spks.get(index)
     }
 
-    /// The script pubkeys being tracked by the index.
+    /// The script pubkeys that are being tracked by the index.
     pub fn all_spks(&self) -> &BTreeMap<I, Script> {
         &self.spks
     }
 
     /// Adds a script pubkey to scan for. Returns `false` and does nothing if spk already exists in the map
     ///
-    /// the index will look for outputs spending to whenever it scans new data.
+    /// the index will look for outputs spending to this spk whenever it scans new data.
     pub fn insert_spk(&mut self, index: I, spk: Script) -> bool {
         match self.spk_indices.entry(spk.clone()) {
             Entry::Vacant(value) => {
@@ -492,9 +492,9 @@
         }
     }
 
-    /// Iterates over a unused script pubkeys in a index range.
+    /// Iterates over all unused script pubkeys in an index range.
     ///
-    /// Here "unused" means that after the script pubkey was stored in the index, the index has
+    /// Here, "unused" means that after the script pubkey was stored in the index, the index has
     /// never scanned a transaction output with it.
     ///
     /// # Example
@@ -520,19 +520,19 @@
 
     /// Returns whether the script pubkey at `index` has been used or not.
     ///
-    /// Here "unused" means that after the script pubkey was stored in the index, the index has
+    /// Here, "unused" means that after the script pubkey was stored in the index, the index has
     /// never scanned a transaction output with it.
     pub fn is_used(&self, index: &I) -> bool {
         self.unused.get(index).is_none()
     }
 
-    /// Marks the script pubkey at `index` as used even though it hasn't seen an output with it.
-    /// This only has an effect when the `index` had been added to `self` already and was unused.
+    /// Marks the script pubkey at `index` as used even though it hasn't seen an output spending to it.
+    /// This only affects when the `index` had already been added to `self` and was unused.
     ///
-    /// Returns whether the `index` was originally present as `unused`.
+    /// Returns whether the `index` was initially present as `unused`.
     ///
     /// This is useful when you want to reserve a script pubkey for something but don't want to add
-    /// the transaction output using it to the index yet. Other callers will consider `index` used
+    /// the transaction output using it to the index yet. Other callers will consider the `index` used
     /// until you call [`unmark_used`].
     ///
     /// [`unmark_used`]: Self::unmark_used
@@ -548,11 +548,11 @@
     ///
     /// [`mark_used`]: Self::mark_used
     pub fn unmark_used(&mut self, index: &I) -> bool {
-        // we cannot set index as unused when it does not exist
+        // we cannot set the index as unused when it does not exist
         if !self.spks.contains_key(index) {
             return false;
         }
-        // we cannot set index as unused when txouts are indexed under it
+        // we cannot set the index as unused when txouts are indexed under it
         if self.outputs_in_range(index..=index).next().is_some() {
             return false;
         }
@@ -564,10 +564,10 @@
         self.spk_indices.get(script)
     }
 
-    /// Computes total input value going from script pubkeys in the index (sent) and total output
+    /// Computes total input value going from script pubkeys in the index (sent) and the total output
     /// value going to script pubkeys in the index (received) in `tx`. For the `sent` to be computed
-    /// correctly the output being spent must have already been scanned by the index. Calculating
-    /// received just uses the transaction outputs directly so will be correct even if it has not
+    /// correctly, the output being spent must have already been scanned by the index. Calculating
+    /// received just uses the transaction outputs directly, so it will be correct even if it has not
     /// been scanned.
     pub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64) {
         let mut sent = 0;
@@ -601,8 +601,8 @@
     /// matches one of our script pubkeys.
     ///
     /// It is easily possible to misuse this method and get false negatives by calling it before you
-    /// have scanned the `TxOut`s the transaction is spending. For example if you want to filter out
-    /// all the transactions in a block that are irrelevant you **must first scan all the
+    /// have scanned the `TxOut`s the transaction is spending. For example, if you want to filter out
+    /// all the transactions in a block that are irrelevant, you **must first scan all the
     /// transactions in the block** and only then use this method.
     pub fn is_relevant(&self, tx: &Transaction) -> bool {
         let input_matches = tx
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 b9d40adbad..260690eea3 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
@@ -35,10 +35,10 @@
 
 /// Trait to do something with every txout contained in a structure.
 ///
-/// We would prefer just work with things that can give us a `Iterator<Item=(OutPoint, &TxOut)>`
-/// here but rust's type system makes it extremely hard to do this (without trait objects).
+/// We would prefer to just work with things that can give us an `Iterator<Item=(OutPoint, &TxOut)>`
+/// here, but rust's type system makes it extremely hard to do this (without trait objects).
 pub trait ForEachTxOut {
-    /// The provided closure `f` will called with each `outpoint/txout` pair.
+    /// The provided closure `f` will be called with each `outpoint/txout` pair.
     fn for_each_txout(&self, f: impl FnMut((OutPoint, &TxOut)));
 }
 
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
index 566beb7d56..f5f4933dce 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
@@ -581,9 +581,9 @@
 581
 
//! Module for structures that store and traverse transactions.
 //!
-//! [`TxGraph`] is a monotone structure that inserts transactions and indexes spends. The
-//! [`Additions`] structure reports changes of [`TxGraph`], but can also be applied on to a
-//! [`TxGraph`] as well. Lastly, [`TxDescendants`] is an [`Iterator`] which traverses descendants of
+//! [`TxGraph`] is a monotone structure that inserts transactions and indexes the spends. The
+//! [`Additions`] structure reports changes of [`TxGraph`] but can also be applied to a
+//! [`TxGraph`] as well. Lastly, [`TxDescendants`] is an [`Iterator`] that traverses descendants of
 //! a given transaction.
 //!
 //! Conflicting transactions are allowed to coexist within a [`TxGraph`]. This is useful for
@@ -592,7 +592,7 @@
 //! # Previewing and applying changes
 //!
 //! Methods that either preview or apply changes to [`TxGraph`] will return [`Additions`].
-//! [`Additions`] can be applied back on to a [`TxGraph`], or be used to inform persistent storage
+//! [`Additions`] can be applied back to a [`TxGraph`] or be used to inform persistent storage
 //! of the changes to [`TxGraph`].
 //!
 //! ```
@@ -623,7 +623,7 @@
 //! let mut graph = TxGraph::default();
 //! let update = TxGraph::new(vec![tx_a, tx_b]);
 //!
-//! // preview additions as result of the update
+//! // preview additions as the result of the update
 //! let additions = graph.determine_additions(&update);
 //! // apply the additions
 //! graph.apply_additions(additions);
@@ -704,7 +704,7 @@
         }
     }
 
-    /// Obtains a single tx output (if any) at specified outpoint.
+    /// Obtains a single tx output (if any) at the specified outpoint.
     pub fn get_txout(&self, outpoint: OutPoint) -> Option<&TxOut> {
         match self.txs.get(&outpoint.txid)? {
             TxNode::Whole(tx) => tx.output.get(outpoint.vout as usize),
@@ -730,7 +730,7 @@
 
     /// Calculates the fee of a given transaction. Returns 0 if `tx` is a coinbase transaction.
     /// Returns `Some(_)` if we have all the `TxOut`s being spent by `tx` in the graph (either as
-    /// the full transactions or individual txouts). If the returned value is negative then the
+    /// the full transactions or individual txouts). If the returned value is negative, then the
     /// transaction is invalid according to the graph.
     ///
     /// Returns `None` if we're missing an input for the tx in the graph.
@@ -760,7 +760,7 @@
 }
 
 impl TxGraph {
-    /// Contruct a new [`TxGraph`] from a list of transaction.
+    /// Construct a new [`TxGraph`] from a list of transactions.
     pub fn new(txs: impl IntoIterator<Item = Transaction>) -> Self {
         let mut new = Self::default();
         for tx in txs.into_iter() {
@@ -771,7 +771,7 @@
     /// Inserts the given [`TxOut`] at [`OutPoint`].
     ///
     /// Note this will ignore the action if we already have the full transaction that the txout is
-    /// alledged to be on (even if it doesn't match it!).
+    /// alleged to be on (even if it doesn't match it!).
     pub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut) -> Additions {
         let additions = self.insert_txout_preview(outpoint, txout);
         self.apply_additions(additions.clone());
@@ -790,7 +790,7 @@
     /// Extends this graph with another so that `self` becomes the union of the two sets of
     /// transactions.
     ///
-    /// The returned [`Additions`] is the set difference of `update` and `self` (transactions that
+    /// The returned [`Additions`] is the set difference between `update` and `self` (transactions that
     /// exist in `update` but not in `self`).
     pub fn apply_update(&mut self, update: TxGraph) -> Additions {
         let additions = self.determine_additions(&update);
@@ -817,7 +817,7 @@
                 debug_assert_eq!(
                     old_tx.txid(),
                     txid,
-                    "old tx of same txid should not be different"
+                    "old tx of the same txid should not be different."
                 );
             }
         }
@@ -839,7 +839,7 @@
 
     /// Previews the resultant [`Additions`] when [`Self`] is updated against the `update` graph.
     ///
-    /// The [`Additions`] would be the set difference of `update` and `self` (transactions that
+    /// The [`Additions`] would be the set difference between `update` and `self` (transactions that
     /// exist in `update` but not in `self`).
     pub fn determine_additions(&self, update: &TxGraph) -> Additions {
         let mut additions = Additions::default();
@@ -873,7 +873,7 @@
     /// Returns the resultant [`Additions`] if the given transaction is inserted. Does not actually
     /// mutate [`Self`].
     ///
-    /// The [`Additions`] result will be empty if `tx` already existed in `self`.
+    /// The [`Additions`] result will be empty if `tx` already exists in `self`.
     pub fn insert_tx_preview(&self, tx: Transaction) -> Additions {
         let mut update = Self::default();
         update.txs.insert(tx.txid(), TxNode::Whole(tx));
@@ -899,7 +899,7 @@
     /// The transactions spending from this output.
     ///
     /// `TxGraph` allows conflicting transactions within the graph. Obviously the transactions in
-    /// the returned will never be in the same blockchain.
+    /// the returned set will never be in the same active-chain.
     pub fn outspends(&self, outpoint: OutPoint) -> &HashSet<Txid> {
         self.spends.get(&outpoint).unwrap_or(&self.empty_outspends)
     }
@@ -909,7 +909,7 @@
     /// The iterator item is a union of `(vout, txid-set)` where:
     ///
     /// - `vout` is the provided `txid`'s outpoint that is being spent
-    /// - `txid-set` is the set of txids that is spending the `vout`
+    /// - `txid-set` is the set of txids spending the `vout`.
     pub fn tx_outspends(
         &self,
         txid: Txid,
@@ -932,12 +932,12 @@
         })
     }
 
-    /// Creates an iterator that both filters and maps descendants from the starting `txid`.
+    /// Creates an iterator that filters and maps descendants from the starting `txid`.
     ///
     /// The supplied closure takes in two inputs `(depth, descendant_txid)`:
     ///
-    /// * `depth` is the distance between the starting `txid` and the `descendant_txid`. I.e. if the
-    ///     descendant is spending an output of the starting `txid`, the `depth` will be 1.
+    /// * `depth` is the distance between the starting `txid` and the `descendant_txid`. I.e., if the
+    ///     descendant is spending an output of the starting `txid`; the `depth` will be 1.
     /// * `descendant_txid` is the descendant's txid which we are considering to walk.
     ///
     /// The supplied closure returns an `Option<T>`, allowing the caller to map each node it vists
@@ -961,7 +961,7 @@
         TxDescendants::from_multiple_include_root(self, txids, walk_map)
     }
 
-    /// Given a transaction, return an iterator of txids which directly conflict with the given
+    /// Given a transaction, return an iterator of txids that directly conflict with the given
     /// transaction's inputs (spends). The conflicting txids are returned with the given
     /// transaction's vin (in which it conflicts).
     ///
@@ -988,7 +988,7 @@
 
 /// A structure that represents changes to a [`TxGraph`].
 ///
-/// It is named "additions" because [`TxGraph`] is monotone so transactions can only be added and
+/// It is named "additions" because [`TxGraph`] is monotone, so transactions can only be added and
 /// not removed.
 ///
 /// Refer to [module-level documentation] for more.
@@ -1025,7 +1025,7 @@
             .chain(self.txout.iter().map(|(op, txout)| (*op, txout)))
     }
 
-    /// Appends the changes in `other` into self such that applying `self` afterwards has the same
+    /// Appends the changes in `other` into self such that applying `self` afterward has the same
     /// effect as sequentially applying the original `self` and `other`.
     pub fn append(&mut self, mut other: Additions) {
         self.tx.append(&mut other.tx);
@@ -1087,7 +1087,7 @@
         descendants
     }
 
-    /// Creates a `TxDescendants` from multiple starting transactions that includes the starting
+    /// Creates a `TxDescendants` from multiple starting transactions that include the starting
     /// `txid`s when iterating.
     pub(crate) fn from_multiple_include_root<I>(graph: &'g TxGraph, txids: I, filter_map: F) -> Self
     where
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/bnb.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/bnb.rs.html
index 41adf3746c..6a8478e0ec 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/bnb.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/bnb.rs.html
@@ -649,7 +649,7 @@
 pub enum BranchStrategy {
     /// We continue exploring subtrees of this node, starting with the inclusion branch.
     Continue,
-    /// We continue exploring ONY the omission branch of this node, skipping the inclusion branch.
+    /// We continue exploring ONLY the omission branch of this node, skipping the inclusion branch.
     SkipInclusion,
     /// We skip both the inclusion and omission branches of this node.
     SkipBoth,
@@ -699,7 +699,7 @@
     /// Turns our [`Bnb`] state into an iterator.
     ///
     /// `strategy` should assess our current selection/node and determine the branching strategy and
-    /// whether this selection is a candidate solution (if so, return the score of the selection).
+    /// whether this selection is a candidate solution (if so, return the selection score).
     pub fn into_iter<'f>(self, strategy: &'f DecideStrategy<'c, S>) -> BnbIter<'c, 'f, S> {
         BnbIter {
             state: self,
@@ -715,7 +715,7 @@
             let (index, candidate) = self.pool[pos];
 
             if self.selection.is_selected(index) {
-                // deselect last `pos`, so next round will check omission branch
+                // deselect the last `pos`, so the next round will check the omission branch
                 self.pool_pos = pos;
                 self.selection.deselect(index);
                 true
@@ -727,7 +727,7 @@
         })
     }
 
-    /// Continue down this branch, skip inclusion branch if specified.
+    /// Continue down this branch and skip the inclusion branch if specified.
     pub fn forward(&mut self, skip: bool) {
         let (index, candidate) = self.pool[self.pool_pos];
         self.rem_abs -= candidate.value;
@@ -738,7 +738,7 @@
         }
     }
 
-    /// Compare advertised score with current best. New best will be the smaller value. Return true
+    /// Compare the advertised score with the current best. The new best will be the smaller value. Return true
     /// if best is replaced.
     pub fn advertise_new_score(&mut self, score: S) -> bool {
         if score <= self.best_score {
@@ -753,7 +753,7 @@
     state: Bnb<'c, S>,
     done: bool,
 
-    /// Check our current selection (node), and returns the branching strategy, alongside a score
+    /// Check our current selection (node) and returns the branching strategy alongside a score
     /// (if the current selection is a candidate solution).
     strategy: &'f DecideStrategy<'c, S>,
 }
@@ -778,7 +778,7 @@
 
         debug_assert!(
             !strategy.will_continue() || self.state.pool_pos < self.state.pool.len(),
-            "Faulty strategy implementation! Strategy suggested that we continue traversing, however we have already reached the end of the candidates pool! pool_len={}, pool_pos={}",
+            "Faulty strategy implementation! Strategy suggested that we continue traversing, however, we have already reached the end of the candidates pool! pool_len={}, pool_pos={}",
             self.state.pool.len(), self.state.pool_pos,
         );
 
@@ -832,15 +832,15 @@
 /// in Bitcoin Core).
 ///
 /// The differences are as follows:
-/// * In additional to working with effective values, we also work with absolute values.
-///   This way, we can use bounds of absolute values to enforce `min_absolute_fee` (which is used by
+/// * In addition to working with effective values, we also work with absolute values.
+///   This way, we can use bounds of the absolute values to enforce `min_absolute_fee` (which is used by
 ///   RBF), and `max_extra_target` (which can be used to increase the possible solution set, given
 ///   that the sender is okay with sending extra to the receiver).
 ///
 /// Murch's Master Thesis: <https://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf>
 /// Bitcoin Core Implementation: <https://github.com/bitcoin/bitcoin/blob/23.x/src/wallet/coinselection.cpp#L65>
 ///
-/// TODO: Another optimization we could do is figure out candidate with smallest waste, and
+/// TODO: Another optimization we could do is figure out candidates with the smallest waste, and
 /// if we find a result with waste equal to this, we can just break.
 pub fn coin_select_bnb<L>(limit: L, selector: CoinSelector) -> Option<CoinSelector>
 where
@@ -848,7 +848,7 @@
 {
     let opts = selector.opts;
 
-    // prepare pool of candidates to select from:
+    // prepare the pool of candidates to select from:
     // * filter out candidates with negative/zero effective values
     // * sort candidates by descending effective value
     let pool = {
@@ -876,12 +876,12 @@
         let selected_abs = bnb.selection.selected_absolute_value();
         let selected_eff = bnb.selection.selected_effective_value();
 
-        // backtrack if remaining value is not enough to reach target
+        // backtrack if the remaining value is not enough to reach the target
         if selected_abs + bnb.rem_abs < target_abs || selected_eff + bnb.rem_eff < target_eff {
             return (BranchStrategy::SkipBoth, None);
         }
 
-        // backtrack if selected value already surpassed upper bounds
+        // backtrack if the selected value has already surpassed upper bounds
         if selected_abs > upper_bound_abs && selected_eff > upper_bound_eff {
             return (BranchStrategy::SkipBoth, None);
         }
@@ -889,7 +889,7 @@
         let selected_waste = bnb.selection.selected_waste();
 
         // when feerate decreases, waste without excess is guaranteed to increase with each
-        // selection. So if we have already surpassed best score, we can backtrack.
+        // selection. So if we have already surpassed the best score, we can backtrack.
         if feerate_decreases && selected_waste > bnb.best_score {
             return (BranchStrategy::SkipBoth, None);
         }
@@ -915,11 +915,11 @@
             }
         }
 
-        // check out inclusion branch first
+        // check out the inclusion branch first
         (BranchStrategy::Continue, None)
     };
 
-    // determine sum of absolute and effective values for current selection
+    // determine the sum of absolute and effective values for the current selection
     let (selected_abs, selected_eff) = selector.selected().fold((0, 0), |(abs, eff), (_, c)| {
         (
             abs + c.value,
@@ -1021,7 +1021,7 @@
         );
     }
 
-    /// `cost_of_change` acts as the upper-bound in Bnb, we check whether these boundaries are
+    /// `cost_of_change` acts as the upper-bound in Bnb; we check whether these boundaries are
     /// enforced in code
     #[test]
     fn cost_of_change() {
@@ -1057,7 +1057,7 @@
             (lowest_opts, highest_opts)
         };
 
-        // test lowest possible target we are able to select
+        // test lowest possible target we can select
         let lowest_eval = evaluate_bnb(CoinSelector::new(&candidates, &lowest_opts), 10_000);
         assert!(lowest_eval.is_ok());
         let lowest_eval = lowest_eval.unwrap();
@@ -1071,7 +1071,7 @@
             0.0
         );
 
-        // test highest possible target we are able to select
+        // test the highest possible target we can select
         let highest_eval = evaluate_bnb(CoinSelector::new(&candidates, &highest_opts), 10_000);
         assert!(highest_eval.is_ok());
         let highest_eval = highest_eval.unwrap();
@@ -1232,8 +1232,8 @@
         });
     }
 
-    /// For a decreasing feerate (longterm feerate is lower than effective feerate), we should
-    /// select less. For increasing feerate (longterm feerate is higher than effective feerate), we
+    /// For a decreasing feerate (long-term feerate is lower than effective feerate), we should
+    /// select less. For increasing feerate (long-term feerate is higher than effective feerate), we
     /// should select more.
     #[test]
     fn feerate_difference() {
@@ -1284,7 +1284,7 @@
     ///     * We should only have `ExcessStrategy::ToDrain` when `drain_value >= min_drain_value`.
     /// * Fuzz
     ///     * Solution feerate should never be lower than target feerate
-    ///     * Solution fee should never be lower than `min_absolute_fee`
+    ///     * Solution fee should never be lower than `min_absolute_fee`.
     ///     * Preselected should always remain selected
     fn _todo() {}
 }
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
index ab306c9abd..52dfe7fb13 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
@@ -613,7 +613,6 @@
 613
 614
 615
-616
 
use super::*;
 
 /// A [`WeightedValue`] represents an input candidate for [`CoinSelector`]. This can either be a
@@ -626,7 +625,7 @@
     /// `txin` fields: `prevout`, `nSequence`, `scriptSigLen`, `scriptSig`, `scriptWitnessLen`,
     /// `scriptWitness` should all be included.
     pub weight: u32,
-    /// Total number of inputs; so we can calculate extra `varint` weight due to `vin` len changes.
+    /// The total number of inputs; so we can calculate extra `varint` weight due to `vin` length changes.
     pub input_count: usize,
     /// Whether this [`WeightedValue`] contains at least one segwit spend.
     pub is_segwit: bool,
@@ -649,7 +648,7 @@
 
     /// Effective value of this input candidate: `actual_value - input_weight * feerate (sats/wu)`.
     pub fn effective_value(&self, effective_feerate: f32) -> i64 {
-        // We prefer undershooting the candidate's effective value (so we over estimate the fee of a
+        // We prefer undershooting the candidate's effective value (so we over-estimate the fee of a
         // candidate). If we overshoot the candidate's effective value, it may be possible to find a
         // solution which does not meet the target feerate.
         self.value as i64 - (self.weight as f32 * effective_feerate).ceil() as i64
@@ -659,8 +658,8 @@
 #[derive(Debug, Clone, Copy)]
 pub struct CoinSelectorOpt {
     /// The value we need to select.
-    /// If the value is `None` then the selection will be complete if it can pay for the drain
-    /// output and satisfy the other constraints (e.g. minimum fees).
+    /// If the value is `None`, then the selection will be complete if it can pay for the drain
+    /// output and satisfy the other constraints (e.g., minimum fees).
     pub target_value: Option<u64>,
     /// Additional leeway for the target value.
     pub max_extra_target: u64, // TODO: Maybe out of scope here?
@@ -669,10 +668,10 @@
     pub target_feerate: f32,
     /// The feerate
     pub long_term_feerate: Option<f32>, // TODO: Maybe out of scope? (waste)
-    /// The minimum absolute fee. I.e. needed for RBF.
+    /// The minimum absolute fee. I.e., needed for RBF.
     pub min_absolute_fee: u64,
 
-    /// The weight of the template transaction including fixed fields and outputs.
+    /// The weight of the template transaction, including fixed fields and outputs.
     pub base_weight: u32,
     /// Additional weight if we include the drain (change) output.
     pub drain_weight: u32,
@@ -746,7 +745,7 @@
     }
 }
 
-/// [`CoinSelector`] is responsible for selecting and deselecting from a set of canididates.
+/// [`CoinSelector`] selects and deselects from a set of candidates.
 #[derive(Debug, Clone)]
 pub struct CoinSelector<'a> {
     pub opts: &'a CoinSelectorOpt,
@@ -919,7 +918,7 @@
             let target_value = self.opts.target_value.unwrap_or(0);
             let selected = self.selected_absolute_value();
 
-            // find the largest unsatisfied constraint (if any), and return error of that constraint
+            // find the largest unsatisfied constraint (if any), and return the error of that constraint
             // "selected" should always be greater than or equal to these selected values
             [
                 (
@@ -937,8 +936,7 @@
                 (
                     SelectionConstraint::MinDrainValue,
                     // when we have no target value (hence no recipient txouts), we need to ensure
-                    // the selected amount can satisfy requirements for a drain output (so we at
-                    // least have one txout)
+                    // the selected amount can satisfy requirements for a drain output (so we at least have one txout)
                     if self.opts.target_value.is_none() {
                         (fee_with_drain + self.opts.min_drain_value).saturating_sub(selected)
                     } else {
@@ -970,8 +968,8 @@
         let mut excess_strategies = HashMap::new();
 
         // only allow `ToFee` and `ToRecipient` excess strategies when we have a `target_value`,
-        // otherwise we will result in a result with no txouts, or attempt to add value to an output
-        // that does not exist
+        // otherwise, we will result in a result with no txouts, or attempt to add value to an output
+        // that does not exist.
         if self.opts.target_value.is_some() {
             // no drain, excess to fee
             excess_strategies.insert(
@@ -985,7 +983,7 @@
                 },
             );
 
-            // no drain, excess to recipient
+            // no drain, send the excess to the recipient
             // if `excess == 0`, this result will be the same as the previous, so don't consider it
             // if `max_extra_target == 0`, there is no leeway for this strategy
             if excess_without_drain > 0 && self.opts.max_extra_target > 0 {
@@ -1023,7 +1021,7 @@
 
         debug_assert!(
             !excess_strategies.is_empty(),
-            "should have at least one excess strategy"
+            "should have at least one excess strategy."
         );
 
         Ok(Selection {
@@ -1145,7 +1143,7 @@
 
     use super::{CoinSelector, CoinSelectorOpt, WeightedValue};
 
-    /// Ensure `target_value` is respected. Can't have no disrespect.
+    /// Ensure `target_value` is respected. Can't have any disrespect.
     #[test]
     fn target_value_respected() {
         let target_value = 1000_u64;
@@ -1227,7 +1225,7 @@
     /// TODO: Tests to add:
     /// * `finish` should ensure at least `target_value` is selected.
     /// * actual feerate should be equal or higher than `target_feerate`.
-    /// * actual drain value should be equal or higher than `min_drain_value` (or else no drain).
+    /// * actual drain value should be equal to or higher than `min_drain_value` (or else no drain).
     fn _todo() {}
 }
 
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/lib.rs.html index d70e71136b..a855b81065 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/lib.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/lib.rs.html @@ -640,7 +640,7 @@ /// /// - `local_chain`: the most recent block hashes present locally /// - `keychain_spks`: keychains that we want to scan transactions for - /// - `txids`: transactions that we want updated [`ChainPosition`]s for + /// - `txids`: transactions for which we want the updated [`ChainPosition`]s /// - `outpoints`: transactions associated with these outpoints (residing, spending) that we /// want to included in the update fn scan<K: Ord + Clone>( @@ -793,7 +793,7 @@ pub struct ElectrumUpdate<K, P> { /// The internal [`SparseChain`] update. pub chain_update: SparseChain<P>, - /// The last keychain script pubkey indices which had transaction histories. + /// The last keychain script pubkey indices, which had transaction histories. pub last_active_indices: BTreeMap<K, u32>, } @@ -827,7 +827,7 @@ .collect() } - /// Transform the [`ElectrumUpdate`] into a [`KeychainScan`] which can be applied to a + /// Transform the [`ElectrumUpdate`] into a [`KeychainScan`], which can be applied to a /// `tracker`. /// /// This will fail if there are missing full transactions not provided via `new_txs`. @@ -922,7 +922,7 @@ ) -> Result<SparseChain, Error> { let mut update = SparseChain::default(); - // Find local chain block that is still there so our update can connect to the local chain. + // Find the local chain block that is still there so our update can connect to the local chain. for (&existing_height, &existing_hash) in local_chain.iter().rev() { // TODO: a batch request may be safer, as a reorg that happens when we are obtaining // `block_header`s will result in inconsistencies @@ -939,7 +939,7 @@ } } - // Insert the new tip so new transactions will be accepted into the sparse chain. + // Insert the new tip so new transactions will be accepted into the sparsechain. let tip = { let (height, hash) = get_tip(client)?; BlockId { height, hash } @@ -957,10 +957,10 @@ Ok(update) } -/// This atrocity is required because electrum thinks height of 0 means "unconfirmed", but there is +/// This atrocity is required because electrum thinks a height of 0 means "unconfirmed", but there is /// such thing as a genesis block. /// -/// We contain an expection for the genesis coinbase txid to always have a chain position of +/// We contain an expectation for the genesis coinbase txid to always have a chain position of /// [`TxHeight::Confirmed(0)`]. fn determine_tx_height(raw_height: i32, tip_height: u32, txid: Txid) -> TxHeight { if txid @@ -993,8 +993,8 @@ /// of the provided `outpoints` (this is the tx which contains the outpoint and the one spending the /// outpoint). /// -/// Unfortunately this is awkward to implement as electrum does not provide such an API. Instead, we -/// will get the tx history of the outpoint's spk, and try to find the containing tx and the +/// Unfortunately, this is awkward to implement as electrum does not provide such an API. Instead, we +/// will get the tx history of the outpoint's spk and try to find the containing tx and the /// spending tx. fn populate_with_outpoints( client: &Client, @@ -1115,7 +1115,7 @@ } /// Populate an update [`SparseChain`] with transactions (and associated block positions) from -/// the transaction history of the provided `spks`. +/// the transaction history of the provided `spk`s. fn populate_with_spks<K, I, S>( client: &Client, update: &mut SparseChain, 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 0907486e53..8e59b1d440 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 @@ -329,7 +329,7 @@ /// /// - `local_chain`: the most recent block hashes present locally /// - `keychain_spks`: keychains that we want to scan transactions for - /// - `txids`: transactions that we want updated [`ChainPosition`]s for + /// - `txids`: transactions for which we want updated [`ChainPosition`]s /// - `outpoints`: transactions associated with these outpoints (residing, spending) that we /// want to included in the update /// @@ -429,7 +429,7 @@ if let Err(failure) = update.insert_checkpoint(tip_at_start) { match failure { sparse_chain::InsertCheckpointError::HashNotMatching { .. } => { - // there has been a re-org before we started scanning. We haven't consumed any iterators so it's safe to recursively call. + // there was a re-org before we started scanning. We haven't consumed any iterators, so calling this function recursively is safe. return EsploraAsyncExt::scan( self, local_chain, @@ -460,7 +460,7 @@ let n_confirmed = related_txs.iter().filter(|tx| tx.status.confirmed).count(); - // esplora pages on 25 confirmed transactions. If there's 25 or more we + // esplora pages on 25 confirmed transactions. If there are 25 or more we // keep requesting to see if there's more. if n_confirmed >= 25 { loop { @@ -509,7 +509,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -543,7 +543,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -579,7 +579,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -595,7 +595,7 @@ }; if reorg_occurred { - // A reorg occurred so lets find out where all the txids we found are in the chain now. + // A reorg occurred, so let's find out where all the txids we found are in the chain now. // XXX: collect required because of weird type naming issues let txids_found = update .chain() 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 864634ddf2..19b5f4c452 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 @@ -310,7 +310,7 @@ /// /// - `local_chain`: the most recent block hashes present locally /// - `keychain_spks`: keychains that we want to scan transactions for - /// - `txids`: transactions that we want updated [`ChainPosition`]s for + /// - `txids`: transactions for which we want updated [`ChainPosition`]s /// - `outpoints`: transactions associated with these outpoints (residing, spending) that we /// want to included in the update /// @@ -396,7 +396,7 @@ if let Err(failure) = update.insert_checkpoint(tip_at_start) { match failure { sparse_chain::InsertCheckpointError::HashNotMatching { .. } => { - // there has been a re-org before we started scanning. We haven't consumed any iterators so it's safe to recursively call. + // there was a re-org before we started scanning. We haven't consumed any iterators, so calling this function recursively is safe. return EsploraExt::scan( self, local_chain, @@ -427,7 +427,7 @@ let n_confirmed = related_txs.iter().filter(|tx| tx.status.confirmed).count(); - // esplora pages on 25 confirmed transactions. If there's 25 or more we + // esplora pages on 25 confirmed transactions. If there are 25 or more we // keep requesting to see if there's more. if n_confirmed >= 25 { loop { @@ -474,7 +474,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -507,7 +507,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -542,7 +542,7 @@ } InsertTxError::Chain(TxMovedUnexpectedly { .. }) | InsertTxError::UnresolvableConflict(_) => { - /* implies reorg during scan. We deal with that below */ + /* implies reorg during a scan. We deal with that below */ } } } @@ -558,7 +558,7 @@ }; if reorg_occurred { - // A reorg occurred so lets find out where all the txids we found are in the chain now. + // A reorg occurred, so let's find out where all the txids we found are now in the chain. // XXX: collect required because of weird type naming issues let txids_found = update .chain() diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/file_store.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/file_store.rs.html index 268da4f35b..bb493637a6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/file_store.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/file_store.rs.html @@ -402,9 +402,9 @@ 402 403 404 -
//! Module for persisting data on-disk.
+
//! Module for persisting data on disk.
 //!
-//! The star of the show is [`KeychainStore`] which maintains an append-only file of
+//! The star of the show is [`KeychainStore`], which maintains an append-only file of
 //! [`KeychainChangeSet`]s which can be used to restore a [`KeychainTracker`].
 use bdk_chain::{
     keychain::{KeychainChangeSet, KeychainTracker},
@@ -444,7 +444,7 @@
 {
     /// Creates a new store from a [`File`].
     ///
-    /// The file must have been opened with read, write permissions.
+    /// The file must have been opened with read and write permissions.
     ///
     /// [`File`]: std::fs::File
     pub fn new(mut file: File) -> Result<Self, FileError> {
@@ -463,7 +463,7 @@
         })
     }
 
-    /// Creates or loads a a store from `db_path`. If no file exists there it will be created.
+    /// Creates or loads a store from `db_path`. If no file exists there, it will be created.
     pub fn new_from_path<D: AsRef<Path>>(db_path: D) -> Result<Self, FileError> {
         let already_exists = db_path.as_ref().exists();
 
@@ -480,15 +480,15 @@
         Self::new(db_file)
     }
 
-    /// Iterates over the stored changeset from first to last changing the seek position at each
+    /// Iterates over the stored changeset from first to last, changing the seek position at each
     /// iteration.
     ///
-    /// The iterator may fail to read an entry and therefore return an error. However the first time
-    /// it returns an error will be the last. After doing so the iterator will always yield `None`.
+    /// The iterator may fail to read an entry and therefore return an error. However, the first time
+    /// it returns an error will be the last. After doing so, the iterator will always yield `None`.
     ///
     /// **WARNING**: This method changes the write position in the underlying file. You should
     /// always iterate over all entries until `None` is returned if you want your next write to go
-    /// at the end, otherwise you will write over existing enties.
+    /// at the end; otherwise, you will write over existing entries.
     pub fn iter_changesets(&mut self) -> Result<EntryIter<'_, KeychainChangeSet<K, P>>, io::Error> {
         self.db_file
             .seek(io::SeekFrom::Start(MAGIC_BYTES_LEN as _))?;
@@ -498,13 +498,13 @@
 
     /// Loads all the changesets that have been stored as one giant changeset.
     ///
-    /// This function returns a tuple of the aggregate changeset and a result which indicates
+    /// This function returns a tuple of the aggregate changeset and a result that indicates
     /// whether an error occurred while reading or deserializing one of the entries. If so the
     /// changeset will consist of all of those it was able to read.
     ///
-    /// You should usually check the error. In many applications it may make sense to do a full
-    /// wallet scan with a stop gap after getting an error since it is likely that one of the
-    /// changesets it was unable to read changed the derivation indicies of the tracker.
+    /// You should usually check the error. In many applications, it may make sense to do a full
+    /// wallet scan with a stop-gap after getting an error, since it is likely that one of the
+    /// changesets it was unable to read changed the derivation indices of the tracker.
     ///
     /// **WARNING**: This method changes the write position of the underlying file. The next
     /// changeset will be written over the erroring entry (or the end of the file if none existed).
@@ -521,7 +521,7 @@
         (changeset, result)
     }
 
-    /// Reads and applies all the changesets stored sequentially to tracker, stopping when it fails
+    /// Reads and applies all the changesets stored sequentially to the tracker, stopping when it fails
     /// to read the next one.
     ///
     /// **WARNING**: This method changes the write position of the underlying file. The next
@@ -536,9 +536,9 @@
         Ok(())
     }
 
-    /// Append a new changeset to the file and truncate file to the end of the appended changeset.
+    /// Append a new changeset to the file and truncate the file to the end of the appended changeset.
     ///
-    /// The truncation is to avoid the possibility of having a valid, but inconsistent changeset
+    /// The truncation is to avoid the possibility of having a valid but inconsistent changeset
     /// directly after the appended changeset.
     pub fn append_changeset(
         &mut self,
@@ -557,12 +557,12 @@
 
         // truncate file after this changeset addition
         // if this is not done, data after this changeset may represent valid changesets, however
-        // applying those changesets on top of this one may result in inconsistent state
+        // applying those changesets on top of this one may result in an inconsistent state
         let pos = self.db_file.stream_position()?;
         self.db_file.set_len(pos)?;
 
-        // We want to make sure that derivation indexe changes are written to disk as soon as
-        // possible so you know about the write failure before you give ou the address in the application.
+        // We want to make sure that derivation indices changes are written to disk as soon as
+        // possible, so you know about the write failure before you give out the address in the application.
         if !changeset.derivation_indices.is_empty() {
             self.db_file.sync_data()?;
         }
@@ -576,7 +576,7 @@
 pub enum FileError {
     /// IO error, this may mean that the file is too short.
     Io(io::Error),
-    /// Magic bytes do not match expected.
+    /// Magic bytes do not match what is expected.
     InvalidMagicBytes([u8; MAGIC_BYTES_LEN]),
 }
 
@@ -604,9 +604,9 @@
 /// Error type for [`EntryIter`].
 #[derive(Debug)]
 pub enum IterError {
-    /// Failure to read from file.
+    /// Failure to read from the file.
     Io(io::Error),
-    /// Failure to decode data from file.
+    /// Failure to decode data from the file.
     Bincode(bincode::ErrorKind),
 }
 
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_electrum_example/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_electrum_example/main.rs.html
index 1119bfca1b..c9c87e06bf 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_electrum_example/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_electrum_example/main.rs.html
@@ -258,26 +258,26 @@
 
 #[derive(Subcommand, Debug, Clone)]
 enum ElectrumCommands {
-    /// Scans the addresses in the wallet using esplora API.
+    /// Scans the addresses in the wallet using the esplora API.
     Scan {
-        /// When a gap this large has been found for a keychain it will stop.
+        /// When a gap this large has been found for a keychain, it will stop.
         #[clap(long, default_value = "5")]
         stop_gap: usize,
         #[clap(flatten)]
         scan_options: ScanOptions,
     },
-    /// Scans particular addresses using esplora API
+    /// Scans particular addresses using the esplora API.
     Sync {
-        /// Scan all the unused addresses
+        /// Scan all the unused addresses.
         #[clap(long)]
         unused_spks: bool,
-        /// Scan every address that you have derived
+        /// Scan every address that you have derived.
         #[clap(long)]
         all_spks: bool,
-        /// Scan unspent outpoints for spends or changes to confirmation status of residing tx
+        /// Scan unspent outpoints for spends or changes to confirmation status of residing tx.
         #[clap(long)]
         utxos: bool,
-        /// Scan unconfirmed transactions for updates
+        /// Scan unconfirmed transactions for updates.
         #[clap(long)]
         unconfirmed: bool,
         #[clap(flatten)]
@@ -287,7 +287,7 @@
 
 #[derive(Parser, Debug, Clone, PartialEq)]
 pub struct ScanOptions {
-    /// Set batch size for each script_history call to electrum client
+    /// Set batch size for each script_history call to electrum client.
     #[clap(long, default_value = "25")]
     pub batch_size: usize,
 }
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_esplora_example/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_esplora_example/main.rs.html
index f96b84d48e..4a2e03436e 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_esplora_example/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_esplora_example/main.rs.html
@@ -254,27 +254,27 @@
 
 #[derive(Subcommand, Debug, Clone)]
 enum EsploraCommands {
-    /// Scans the addresses in the wallet using esplora API.
+    /// Scans the addresses in the wallet using the esplora API.
     Scan {
-        /// When a gap this large has been found for a keychain it will stop.
+        /// When a gap this large has been found for a keychain, it will stop.
         #[clap(long, default_value = "5")]
         stop_gap: usize,
 
         #[clap(flatten)]
         scan_options: ScanOptions,
     },
-    /// Scans particular addresses using esplora API
+    /// Scans particular addresses using esplora API.
     Sync {
-        /// Scan all the unused addresses
+        /// Scan all the unused addresses.
         #[clap(long)]
         unused_spks: bool,
-        /// Scan every address that you have derived
+        /// Scan every address that you have derived.
         #[clap(long)]
         all_spks: bool,
-        /// Scan unspent outpoints for spends or changes to confirmation status of residing tx
+        /// Scan unspent outpoints for spends or changes to confirmation status of residing tx.
         #[clap(long)]
         utxos: bool,
-        /// Scan unconfirmed transactions for updates
+        /// Scan unconfirmed transactions for updates.
         #[clap(long)]
         unconfirmed: bool,
 
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_example_cli/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_example_cli/lib.rs.html
index 5dd9021c2c..e4ed16e664 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_example_cli/lib.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/keychain_tracker_example_cli/lib.rs.html
@@ -743,20 +743,20 @@
 pub enum Commands<C: clap::Subcommand> {
     #[clap(flatten)]
     ChainSpecific(C),
-    /// Address generation and inspection
+    /// Address generation and inspection.
     Address {
         #[clap(subcommand)]
         addr_cmd: AddressCmd,
     },
-    /// Get the wallet balance
+    /// Get the wallet balance.
     Balance,
-    /// TxOut related commands
+    /// TxOut related commands.
     #[clap(name = "txout")]
     TxOut {
         #[clap(subcommand)]
         txout_cmd: TxOutCmd,
     },
-    /// Send coins to an address
+    /// Send coins to an address.
     Send {
         value: u64,
         address: Address,
@@ -815,9 +815,9 @@
 
 #[derive(Subcommand, Debug, Clone)]
 pub enum AddressCmd {
-    /// Get the next unused address
+    /// Get the next unused address.
     Next,
-    /// Get a new address regardless if the existing ones haven't been used
+    /// Get a new address regardless of the existing unused addresses.
     New,
     /// List all addresses
     List {
@@ -830,16 +830,16 @@
 #[derive(Subcommand, Debug, Clone)]
 pub enum TxOutCmd {
     List {
-        /// Return only spent outputs
+        /// Return only spent outputs.
         #[clap(short, long)]
         spent: bool,
-        /// Return only unspent outputs
+        /// Return only unspent outputs.
         #[clap(short, long)]
         unspent: bool,
-        /// Return only confirmed outputs
+        /// Return only confirmed outputs.
         #[clap(long)]
         confirmed: bool,
-        /// Return only unconfirmed outputs
+        /// Return only unconfirmed outputs.
         #[clap(long)]
         unconfirmed: bool,
     },
@@ -862,7 +862,7 @@
     }
 }
 
-/// A structure defining output of a AddressCmd execution.
+/// A structure defining the output of an [`AddressCmd`]` execution.
 #[derive(serde::Serialize, serde::Deserialize)]
 pub struct AddrsOutput {
     keychain: String,
@@ -1040,7 +1040,7 @@
         CoinSelectionAlgo::BranchAndBound => {}
     }
 
-    // turn the txos we chose into a weight and value
+    // turn the txos we chose into weight and value
     let wv_candidates = candidates
         .iter()
         .map(|(plan, utxo)| {
@@ -1112,7 +1112,7 @@
     let mut coin_selector = CoinSelector::new(&wv_candidates, &cs_opts);
 
     // just select coins in the order provided until we have enough
-    // only use first result (least waste)
+    // only use the first result (least waste)
     let selection = match coin_select {
         CoinSelectionAlgo::BranchAndBound => {
             coin_select_bnb(Duration::from_secs(10), coin_selector.clone())
@@ -1127,7 +1127,7 @@
 
     if let Some(drain_value) = selection_meta.drain_value {
         change_output.value = drain_value;
-        // if the selection tells us to use change and the change value is sufficient we add it as an output
+        // if the selection tells us to use change and the change value is sufficient, we add it as an output
         outputs.push(change_output)
     }
 
@@ -1156,7 +1156,7 @@
         .collect::<Vec<_>>();
     let sighash_prevouts = Prevouts::All(&prevouts);
 
-    // first set tx values for plan so that we don't change them while signing
+    // first, set tx values for the plan so that we don't change them while signing
     for (i, (plan, _)) in selected_txos.iter().enumerate() {
         if let Some(sequence) = plan.required_sequence() {
             transaction.input[i].sequence = sequence
@@ -1172,7 +1172,7 @@
         let mut auth_data = bdk_tmp_plan::SatisfactionMaterial::default();
         assert!(
             !requirements.requires_hash_preimages(),
-            "can't have hash pre-images since we didn't provide any"
+            "can't have hash pre-images since we didn't provide any."
         );
         assert!(
             requirements.signatures.sign_with_keymap(
@@ -1185,7 +1185,7 @@
                 &mut auth_data,
                 &Secp256k1::default(),
             )?,
-            "we should have signed with this input"
+            "we should have signed with this input."
         );
 
         match plan.try_complete(&auth_data) {
@@ -1203,7 +1203,7 @@
             }
             bdk_tmp_plan::PlanState::Incomplete(_) => {
                 return Err(anyhow!(
-                    "we weren't able to complete the plan with our keys"
+                    "we weren't able to complete the plan with our keys."
                 ));
             }
         }
@@ -1221,8 +1221,8 @@
 pub fn handle_commands<C: clap::Subcommand, P>(
     command: Commands<C>,
     broadcast: impl FnOnce(&Transaction) -> Result<()>,
-    // we Mutexes around these not because we need them for a simple CLI app but to demonsrate how
-    // all the stuff we're doing can be thread safe and also not keep locks up over an IO bound.
+    // we Mutex around these not because we need them for a simple CLI app but to demonstrate how
+    // all the stuff we're doing can be made thread-safe and not keep locks up over an IO bound.
     tracker: &Mutex<KeychainTracker<Keychain, P>>,
     store: &Mutex<KeychainStore<Keychain, P>>,
     network: Network,
@@ -1257,7 +1257,7 @@
                 if let Some((change_derivation_changes, (change_keychain, index))) = change_info {
                     // We must first persist to disk the fact that we've got a new address from the
                     // change keychain so future scans will find the tx we're about to broadcast.
-                    // If we're unable to persist this then we don't want to broadcast.
+                    // If we're unable to persist this, then we don't want to broadcast.
                     let store = &mut *store.lock().unwrap();
                     store.append_changeset(&change_derivation_changes.into())?;
 
@@ -1278,15 +1278,15 @@
                     match tracker.insert_tx(transaction.clone(), P::unconfirmed()) {
                         Ok(changeset) => {
                             let store = &mut *store.lock().unwrap();
-                            // We know the tx is at least unconfirmed now. Note if persisting here
-                            // fails it's not a big deal since we can always find it again form
+                            // We know the tx is at least unconfirmed now. Note if persisting here fails,
+                            // it's not a big deal since we can always find it again form
                             // blockchain.
                             store.append_changeset(&changeset)?;
                             Ok(())
                         }
                         Err(e) => match e {
                             InsertTxError::Chain(e) => match e {
-                                // TODO: add insert_unconfirmed_tx to chain graph and sparse chain
+                                // TODO: add insert_unconfirmed_tx to the chaingraph and sparsechain
                                 sparse_chain::InsertTxError::TxTooHigh { .. } => unreachable!("we are inserting at unconfirmed position"),
                                 sparse_chain::InsertTxError::TxMovedUnexpectedly { txid, original_pos, ..} => Err(anyhow!("the tx we created {} has already been confirmed at block {:?}", txid, original_pos)),
                             },
@@ -1297,7 +1297,7 @@
                 Err(e) => {
                     let tracker = &mut *tracker.lock().unwrap();
                     if let Some((keychain, index)) = change_index {
-                        // We failed to broadcast so allow our change address to be used in the future
+                        // We failed to broadcast, so allow our change address to be used in the future
                         tracker.txout_index.unmark_used(&keychain, index);
                     }
                     Err(e)
@@ -1314,8 +1314,8 @@
 pub fn init<C: clap::Subcommand, P>() -> anyhow::Result<(
     Args<C>,
     KeyMap,
-    // These don't need to have mutexes around them but we want the cli example code to make it obvious how they
-    // are thread safe so this forces the example developer to show where they would lock and unlock things.
+    // These don't need to have mutexes around them, but we want the cli example code to make it obvious how they
+    // are thread-safe, forcing the example developers to show where they would lock and unlock things.
     Mutex<KeychainTracker<Keychain, P>>,
     Mutex<KeychainStore<Keychain, P>>,
 )>
-- 
2.49.0