Enum bdk::wallet::ApplyBlockError
source · pub enum ApplyBlockError {
+ 
ApplyBlockError
Enum bdk::wallet::ApplyBlockError
source · pub enum ApplyBlockError {
CannotConnect(CannotConnectError),
UnexpectedConnectedToHash {
connected_to_hash: BlockHash,
@@ -10,7 +10,7 @@
UnexpectedConnectedToHash
Fields
connected_to_hash: BlockHashBlock hash of connected_to.
expected_hash: BlockHashExpected block hash of connected_to, as derived from block.
Occurs when the connected_to hash does not match the hash derived from block.
Trait Implementations§
source§impl Debug for ApplyBlockError
impl Debug for ApplyBlockError
source§impl Display for ApplyBlockError
impl Display for ApplyBlockError
source§impl Error for ApplyBlockError
impl Error for ApplyBlockError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl RefUnwindSafe for ApplyBlockError
impl Send for ApplyBlockError
impl Sync for ApplyBlockError
impl Unpin for ApplyBlockError
impl UnwindSafe for ApplyBlockError
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Trait Implementations§
source§impl Debug for ApplyBlockError
impl Debug for ApplyBlockError
source§impl Display for ApplyBlockError
impl Display for ApplyBlockError
source§impl Error for ApplyBlockError
impl Error for ApplyBlockError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl RefUnwindSafe for ApplyBlockError
impl Send for ApplyBlockError
impl Sync for ApplyBlockError
impl Unpin for ApplyBlockError
impl UnwindSafe for ApplyBlockError
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
Enum bdk::wallet::InsertTxError
source · pub enum InsertTxError {
+ 
InsertTxError
Enum bdk::wallet::InsertTxError
source · The error variant that occurs when the caller attempts to insert a transaction with a confirmation height that is greater than the internal chain tip.
-Trait Implementations§
source§impl Debug for InsertTxError
impl Debug for InsertTxError
source§impl Display for InsertTxError
impl Display for InsertTxError
source§impl Error for InsertTxError
impl Error for InsertTxError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl RefUnwindSafe for InsertTxError
impl Send for InsertTxError
impl Sync for InsertTxError
impl Unpin for InsertTxError
impl UnwindSafe for InsertTxError
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Trait Implementations§
source§impl Debug for InsertTxError
impl Debug for InsertTxError
source§impl Display for InsertTxError
impl Display for InsertTxError
source§impl Error for InsertTxError
impl Error for InsertTxError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl RefUnwindSafe for InsertTxError
impl Send for InsertTxError
impl Sync for InsertTxError
impl Unpin for InsertTxError
impl UnwindSafe for InsertTxError
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
pub enum LoadError {
+ 
LoadError
pub enum LoadError {
Descriptor(DescriptorError),
Persist(Error),
NotInitialized,
@@ -12,7 +12,7 @@
NotInitialized
Wallet not initialized, persistence backend is empty.
MissingNetwork
Data loaded from persistence is missing network type.
MissingGenesis
Data loaded from persistence is missing genesis hash.
-Trait Implementations§
source§impl Error for LoadError
impl Error for LoadError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for LoadError
impl Send for LoadError
impl Sync for LoadError
impl Unpin for LoadError
impl !UnwindSafe for LoadError
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Trait Implementations§
source§impl Error for LoadError
impl Error for LoadError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for LoadError
impl Send for LoadError
impl Sync for LoadError
impl Unpin for LoadError
impl !UnwindSafe for LoadError
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
pub enum NewError {
+ 
NewError
pub enum NewError {
NonEmptyDatabase,
Descriptor(DescriptorError),
Persist(Error),
@@ -8,7 +8,7 @@
Variants§
NonEmptyDatabase
Database already has data.
Descriptor(DescriptorError)
There was problem with the passed-in descriptor(s).
Persist(Error)
We were unable to write the walletâs data to the persistence backend.
-Trait Implementations§
source§impl Error for NewError
impl Error for NewError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for NewError
impl Send for NewError
impl Sync for NewError
impl Unpin for NewError
impl !UnwindSafe for NewError
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Trait Implementations§
source§impl Error for NewError
impl Error for NewError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for NewError
impl Send for NewError
impl Sync for NewError
impl Unpin for NewError
impl !UnwindSafe for NewError
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
Enum bdk::wallet::NewOrLoadError
source · pub enum NewOrLoadError {
+ 
NewOrLoadError
Enum bdk::wallet::NewOrLoadError
source · pub enum NewOrLoadError {
Descriptor(DescriptorError),
Persist(Error),
NotInitialized,
@@ -22,7 +22,7 @@
LoadedNetworkDoesNotMatch
Fields
expected: NetworkThe expected network type.
The loaded network type does not match what was provided.
-Trait Implementations§
source§impl Debug for NewOrLoadError
impl Debug for NewOrLoadError
source§impl Display for NewOrLoadError
impl Display for NewOrLoadError
source§impl Error for NewOrLoadError
impl Error for NewOrLoadError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for NewOrLoadError
impl Send for NewOrLoadError
impl Sync for NewOrLoadError
impl Unpin for NewOrLoadError
impl !UnwindSafe for NewOrLoadError
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Trait Implementations§
source§impl Debug for NewOrLoadError
impl Debug for NewOrLoadError
source§impl Display for NewOrLoadError
impl Display for NewOrLoadError
source§impl Error for NewOrLoadError
impl Error for NewOrLoadError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl !RefUnwindSafe for NewOrLoadError
impl Send for NewOrLoadError
impl Sync for NewOrLoadError
impl Unpin for NewOrLoadError
impl !UnwindSafe for NewOrLoadError
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
Function bdk::wallet::wallet_name_from_descriptor
source · pub fn wallet_name_from_descriptor<T>(
descriptor: T,
change_descriptor: Option<T>,
network: Network,
secp: &Secp256k1<All>
) -> Result<String, DescriptorError>where
T: IntoWalletDescriptor,Expand description
Deterministically generate a unique name given the descriptors defining the wallet
+
Function bdk::wallet::wallet_name_from_descriptor
source · pub fn wallet_name_from_descriptor<T>(
descriptor: T,
change_descriptor: Option<T>,
network: Network,
secp: &Secp256k1<All>
) -> Result<String, DescriptorError>where
T: IntoWalletDescriptor,Expand description
Deterministically generate a unique name given the descriptors defining the wallet
Compatible with wallet_name_from_descriptor
Expand description
Wallet
+
Module wallet
Expand description
Wallet
This module defines the Wallet.
Modules
Structs
AddressEnums
Wallet.Wallet.Wallet from persistence and creating it if non-existent.Traits
Struct bdk::wallet::AddressInfo
source · pub struct AddressInfo {
+ 
AddressInfo
Struct bdk::wallet::AddressInfo
source · pub struct AddressInfo {
pub index: u32,
pub address: Address,
pub keychain: KeychainKind,
@@ -68,9 +68,9 @@ network a simple comparison is not enough anymore. Instead this function can be
let address: Address<NetworkUnchecked> = "32iVBEu4dxkUQk9dJbZUiBiQdmypcEyJRf".parse().unwrap();
assert!(address.is_valid_for_network(Network::Bitcoin));
assert_eq!(address.is_valid_for_network(Network::Testnet), false);Trait Implementations§
source§impl Debug for AddressInfo
impl Debug for AddressInfo
source§impl Deref for AddressInfo
impl Deref for AddressInfo
source§impl Display for AddressInfo
impl Display for AddressInfo
source§impl PartialEq<AddressInfo> for AddressInfo
impl PartialEq<AddressInfo> for AddressInfo
source§fn eq(&self, other: &AddressInfo) -> bool
fn eq(&self, other: &AddressInfo) -> bool
self and other values to be equal, and is used
+Trait Implementations§
source§impl Debug for AddressInfo
impl Debug for AddressInfo
source§impl Deref for AddressInfo
impl Deref for AddressInfo
source§impl Display for AddressInfo
impl Display for AddressInfo
source§impl PartialEq<AddressInfo> for AddressInfo
impl PartialEq<AddressInfo> for AddressInfo
source§fn eq(&self, other: &AddressInfo) -> bool
fn eq(&self, other: &AddressInfo) -> bool
impl Eq for AddressInfo
impl StructuralEq for AddressInfo
impl StructuralPartialEq for AddressInfo
Auto Trait Implementations§
impl RefUnwindSafe for AddressInfo
impl Send for AddressInfo
impl Sync for AddressInfo
impl Unpin for AddressInfo
impl UnwindSafe for AddressInfo
Blanket Implementations§
impl Eq for AddressInfo
impl StructuralEq for AddressInfo
impl StructuralPartialEq for AddressInfo
Auto Trait Implementations§
impl RefUnwindSafe for AddressInfo
impl Send for AddressInfo
impl Sync for AddressInfo
impl Unpin for AddressInfo
impl UnwindSafe for AddressInfo
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
This is the balance you can spend right now that shouldnât get cancelled via another party double spending it.
Trait Implementations§
§impl<'de> Deserialize<'de> for Balance
impl<'de> Deserialize<'de> for Balance
§fn deserialize<__D>(
__deserializer: __D
) -> Result<Balance, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Balance, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Trait Implementations§
§impl<'de> Deserialize<'de> for Balance
impl<'de> Deserialize<'de> for Balance
§fn deserialize<__D>(
__deserializer: __D
) -> Result<Balance, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Balance, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for Balance
impl Serialize for Balance
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for Balance
impl StructuralEq for Balance
impl StructuralPartialEq for Balance
Auto Trait Implementations§
impl RefUnwindSafe for Balance
impl Send for Balance
impl Sync for Balance
impl Unpin for Balance
impl UnwindSafe for Balance
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
pub struct ChangeSet {
+ 
ChangeSet
pub struct ChangeSet {
pub chain: ChangeSet,
pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>,
pub network: Option<Network>,
@@ -7,9 +7,9 @@
Fields§
§chain: ChangeSetChanges to the LocalChain.
indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>Changes to IndexedTxGraph.
network: Option<Network>Stores the network type of the wallet.
-Trait Implementations§
source§impl<'de> Deserialize<'de> for ChangeSet
impl<'de> Deserialize<'de> for ChangeSet
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet
impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet
source§fn from(
indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>
) -> Self
fn from(
indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>
) -> Self
source§impl PartialEq<ChangeSet> for ChangeSet
impl PartialEq<ChangeSet> for ChangeSet
source§fn eq(&self, other: &ChangeSet) -> bool
fn eq(&self, other: &ChangeSet) -> bool
self and other values to be equal, and is used
+Trait Implementations§
source§impl<'de> Deserialize<'de> for ChangeSet
impl<'de> Deserialize<'de> for ChangeSet
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet
impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet
source§fn from(
indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>
) -> Self
fn from(
indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>
) -> Self
impl StructuralPartialEq for ChangeSet
Auto Trait Implementations§
impl RefUnwindSafe for ChangeSet
impl Send for ChangeSet
impl Sync for ChangeSet
impl Unpin for ChangeSet
impl UnwindSafe for ChangeSet
Blanket Implementations§
impl StructuralPartialEq for ChangeSet
Auto Trait Implementations§
impl RefUnwindSafe for ChangeSet
impl Send for ChangeSet
impl Sync for ChangeSet
impl Unpin for ChangeSet
impl UnwindSafe for ChangeSet
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
pub struct Update {
+ 
Update
pub struct Update {
pub last_active_indices: BTreeMap<KeychainKind, u32>,
pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
pub chain: Option<CheckPoint>,
@@ -9,7 +9,7 @@
[KeychainTxOutIndex].
graph: TxGraph<ConfirmationTimeHeightAnchor>Update for the walletâs internal [TxGraph].
chain: Option<CheckPoint>Update for the walletâs internal LocalChain.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Update
impl Send for Update
impl Sync for Update
impl Unpin for Update
impl UnwindSafe for Update
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
fn from(t: T) -> T
Returns the argument unchanged.
+Trait Implementations§
source§impl From<FullScanResult<KeychainKind>> for Update
impl From<FullScanResult<KeychainKind>> for Update
source§fn from(value: FullScanResult<KeychainKind>) -> Self
fn from(value: FullScanResult<KeychainKind>) -> Self
Auto Trait Implementations§
impl RefUnwindSafe for Update
impl Send for Update
impl Sync for Update
impl Unpin for Update
impl UnwindSafe for Update
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
pub struct Wallet { /* private fields */ }Expand description
A Bitcoin wallet
+
Wallet
pub struct Wallet { /* private fields */ }Expand description
A Bitcoin wallet
The Wallet acts as a way of coherently interfacing with output descriptors and related transactions.
Its main components are:
- output descriptors from which it can derive addresses.
signers that can contribute signatures to addresses instantiated from the descriptors.
Implementations§
source§impl Wallet
impl Wallet
sourcepub fn new_no_persist<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network
) -> Result<Self, DescriptorError>
pub fn new_no_persist<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network
) -> Result<Self, DescriptorError>
Creates a wallet that does not persist data.
-sourcepub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, DescriptorError>
pub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, DescriptorError>
Creates a wallet that does not persist data, with a custom genesis hash.
-source§impl Wallet
impl Wallet
sourcepub fn new<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewError>
pub fn new<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewError>
Initialize an empty Wallet.
sourcepub fn new_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewError>
pub fn new_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewError>
Initialize an empty Wallet with a custom genesis hash.
Implementations§
source§impl Wallet
impl Wallet
sourcepub fn new_no_persist<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network
) -> Result<Self, DescriptorError>
pub fn new_no_persist<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network
) -> Result<Self, DescriptorError>
Creates a wallet that does not persist data.
+sourcepub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, DescriptorError>
pub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, DescriptorError>
Creates a wallet that does not persist data, with a custom genesis hash.
+source§impl Wallet
impl Wallet
sourcepub fn new<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewError>
pub fn new<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewError>
Initialize an empty Wallet.
sourcepub fn new_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewError>
pub fn new_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewError>
Initialize an empty Wallet with a custom genesis hash.
This is like Wallet::new with an additional genesis_hash parameter. This is useful
for syncing from alternative networks.
sourcepub fn load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static
) -> Result<Self, LoadError>
pub fn load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static
) -> Result<Self, LoadError>
Load Wallet from the given persistence backend.
sourcepub fn new_or_load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewOrLoadError>
pub fn new_or_load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewOrLoadError>
Either loads Wallet from persistence, or initializes it if it does not exist.
sourcepub fn load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static
) -> Result<Self, LoadError>
pub fn load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static
) -> Result<Self, LoadError>
Load Wallet from the given persistence backend.
sourcepub fn new_or_load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewOrLoadError>
pub fn new_or_load<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network
) -> Result<Self, NewOrLoadError>
sourcepub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewOrLoadError>
pub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewOrLoadError>
Either loads Wallet from persistence, or initializes it if it does not exist (with a
+
sourcepub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewOrLoadError>
pub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
descriptor: E,
change_descriptor: Option<E>,
db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
network: Network,
genesis_hash: BlockHash
) -> Result<Self, NewOrLoadError>
Either loads Wallet from persistence, or initializes it if it does not exist (with a
custom genesis hash).
This method will fail if the loaded Wallet has different parameters to those provided.
This is like Wallet::new_or_load with an additional genesis_hash parameter. This is
useful for syncing from alternative networks.
sourcepub fn keychains(&self) -> &BTreeMap<KeychainKind, ExtendedDescriptor>
pub fn keychains(&self) -> &BTreeMap<KeychainKind, ExtendedDescriptor>
Iterator over all keychains in this wallet
-sourcepub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo
pub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo
Peek an address of the given keychain at index without revealing it.
sourcepub fn keychains(&self) -> &BTreeMap<KeychainKind, ExtendedDescriptor>
pub fn keychains(&self) -> &BTreeMap<KeychainKind, ExtendedDescriptor>
Iterator over all keychains in this wallet
+sourcepub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo
pub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo
sourcepub fn reveal_next_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
pub fn reveal_next_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
Attempt to reveal the next address of the given keychain.
sourcepub fn reveal_next_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
pub fn reveal_next_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
Attempt to reveal the next address of the given keychain.
This will increment the internal derivation index. If the keychainâs descriptor doesnât contain a wildcard or every address is already revealed up to the maximum derivation index defined in BIP32, then returns the last revealed address.
Errors
If writing to persistent storage fails.
-sourcepub fn reveal_addresses_to(
&mut self,
keychain: KeychainKind,
index: u32
) -> Result<impl Iterator<Item = AddressInfo> + '_>
pub fn reveal_addresses_to(
&mut self,
keychain: KeychainKind,
index: u32
) -> Result<impl Iterator<Item = AddressInfo> + '_>
Reveal addresses up to and including the target index and return an iterator
+
sourcepub fn reveal_addresses_to(
&mut self,
keychain: KeychainKind,
index: u32
) -> Result<impl Iterator<Item = AddressInfo> + '_>
pub fn reveal_addresses_to(
&mut self,
keychain: KeychainKind,
index: u32
) -> Result<impl Iterator<Item = AddressInfo> + '_>
Reveal addresses up to and including the target index and return an iterator
of newly revealed addresses.
If the target index is unreachable, we make a best effort to reveal up to the last
possible index. If all addresses up to the given index are already revealed, then
no new addresses are returned.
Errors
If writing to persistent storage fails.
-sourcepub fn next_unused_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
pub fn next_unused_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
Get the next unused address for the given keychain, i.e. the address with the lowest
+
sourcepub fn next_unused_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
pub fn next_unused_address(
&mut self,
keychain: KeychainKind
) -> Result<AddressInfo>
Get the next unused address for the given keychain, i.e. the address with the lowest
derivation index that hasnât been used.
This will attempt to derive and reveal a new address if no newly revealed addresses
are available. See also reveal_next_address.
Errors
If writing to persistent storage fails.
-sourcepub fn mark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
pub fn mark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
Marks an address used of the given keychain at index.
sourcepub fn mark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
pub fn mark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
Marks an address used of the given keychain at index.
Returns whether the given index was present and then removed from the unused set.
-sourcepub fn unmark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
pub fn unmark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
Undoes the effect of mark_used and returns whether the index was inserted
+
sourcepub fn unmark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
pub fn unmark_used(&mut self, keychain: KeychainKind, index: u32) -> bool
Undoes the effect of mark_used and returns whether the index was inserted
back into the unused set.
Since this is only a superficial marker, it will have no effect if the address at the given
index was actually used, i.e. the wallet has previously indexed a tx output for the
derived spk.
sourcepub fn list_unused_addresses(
&self,
keychain: KeychainKind
) -> impl DoubleEndedIterator<Item = AddressInfo> + '_
pub fn list_unused_addresses(
&self,
keychain: KeychainKind
) -> impl DoubleEndedIterator<Item = AddressInfo> + '_
List addresses that are revealed but unused.
+sourcepub fn list_unused_addresses(
&self,
keychain: KeychainKind
) -> impl DoubleEndedIterator<Item = AddressInfo> + '_
pub fn list_unused_addresses(
&self,
keychain: KeychainKind
) -> impl DoubleEndedIterator<Item = AddressInfo> + '_
List addresses that are revealed but unused.
Note if the returned iterator is empty you can reveal more addresses
by using reveal_next_address or
reveal_addresses_to.
sourcepub fn is_mine(&self, script: &Script) -> bool
pub fn is_mine(&self, script: &Script) -> bool
Return whether or not a script is part of this wallet (either internal or external)
sourcepub fn derivation_of_spk(&self, spk: &Script) -> Option<(KeychainKind, u32)>
pub fn derivation_of_spk(&self, spk: &Script) -> Option<(KeychainKind, u32)>
Finds how the wallet derived the script pubkey spk.
sourcepub fn is_mine(&self, script: &Script) -> bool
pub fn is_mine(&self, script: &Script) -> bool
Return whether or not a script is part of this wallet (either internal or external)
sourcepub fn derivation_of_spk(&self, spk: &Script) -> Option<(KeychainKind, u32)>
pub fn derivation_of_spk(&self, spk: &Script) -> Option<(KeychainKind, u32)>
Finds how the wallet derived the script pubkey spk.
Will only return Some(_) if the wallet has given out the spk.
sourcepub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_
pub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_
Return the list of unspent outputs of this wallet
-sourcepub fn list_output(&self) -> impl Iterator<Item = LocalOutput> + '_
pub fn list_output(&self) -> impl Iterator<Item = LocalOutput> + '_
List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).
+sourcepub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_
pub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_
Return the list of unspent outputs of this wallet
+sourcepub fn list_output(&self) -> impl Iterator<Item = LocalOutput> + '_
pub fn list_output(&self) -> impl Iterator<Item = LocalOutput> + '_
List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).
To list only unspent outputs (UTXOs), use Wallet::list_unspent instead.
sourcepub fn checkpoints(&self) -> CheckPointIter
pub fn checkpoints(&self) -> CheckPointIter
Get all the checkpoints the wallet is currently storing indexed by height.
-sourcepub fn latest_checkpoint(&self) -> CheckPoint
pub fn latest_checkpoint(&self) -> CheckPoint
Returns the latest checkpoint.
-sourcepub fn all_unbounded_spk_iters(
&self
) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, ScriptBuf)> + Clone>
pub fn all_unbounded_spk_iters(
&self
) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, ScriptBuf)> + Clone>
Get unbounded script pubkey iterators for both Internal and External keychains.
sourcepub fn checkpoints(&self) -> CheckPointIter
pub fn checkpoints(&self) -> CheckPointIter
Get all the checkpoints the wallet is currently storing indexed by height.
+sourcepub fn latest_checkpoint(&self) -> CheckPoint
pub fn latest_checkpoint(&self) -> CheckPoint
Returns the latest checkpoint.
+sourcepub fn all_unbounded_spk_iters(
&self
) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, ScriptBuf)> + Clone>
pub fn all_unbounded_spk_iters(
&self
) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, ScriptBuf)> + Clone>
Get unbounded script pubkey iterators for both Internal and External keychains.
This is intended to be used when doing a full scan of your addresses (e.g. after restoring
from seed words). You pass the BTreeMap of iterators to a blockchain data source (e.g.
electrum server) which will go through each address until it reaches a stop gap.
Note carefully that iterators go over all script pubkeys on the keychains (not what script pubkeys the wallet is storing internally).
-sourcepub fn unbounded_spk_iter(
&self,
keychain: KeychainKind
) -> impl Iterator<Item = (u32, ScriptBuf)> + Clone
pub fn unbounded_spk_iter(
&self,
keychain: KeychainKind
) -> impl Iterator<Item = (u32, ScriptBuf)> + Clone
Get an unbounded script pubkey iterator for the given keychain.
sourcepub fn unbounded_spk_iter(
&self,
keychain: KeychainKind
) -> impl Iterator<Item = (u32, ScriptBuf)> + Clone
pub fn unbounded_spk_iter(
&self,
keychain: KeychainKind
) -> impl Iterator<Item = (u32, ScriptBuf)> + Clone
Get an unbounded script pubkey iterator for the given keychain.
See all_unbounded_spk_iters for more documentation
sourcepub fn get_utxo(&self, op: OutPoint) -> Option<LocalOutput>
pub fn get_utxo(&self, op: OutPoint) -> Option<LocalOutput>
Returns the utxo owned by this wallet corresponding to outpoint if it exists in the
+
sourcepub fn get_utxo(&self, op: OutPoint) -> Option<LocalOutput>
pub fn get_utxo(&self, op: OutPoint) -> Option<LocalOutput>
Returns the utxo owned by this wallet corresponding to outpoint if it exists in the
walletâs database.
sourcepub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut)
pub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut)
Inserts a [TxOut] at [OutPoint] into the walletâs transaction graph.
sourcepub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut)
pub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut)
Inserts a [TxOut] at [OutPoint] into the walletâs transaction graph.
This is used for providing a previous outputâs value so that we can use calculate_fee
or calculate_fee_rate on a given transaction. Outputs inserted with this method will
not be returned in list_unspent or list_output.
Any inserted TxOuts are not persisted until commit is called.
WARNING: This should only be used to add TxOuts that the wallet does not own. Only
insert TxOuts that you trust the values for!
sourcepub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError>
pub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError>
Calculates the fee of a given transaction. Returns 0 if tx is a coinbase transaction.
sourcepub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError>
pub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError>
Calculates the fee of a given transaction. Returns 0 if tx is a coinbase transaction.
To calculate the fee for a [Transaction] with inputs not owned by this wallet you must
manually insert the TxOut(s) into the tx graph using the insert_txout function.
Note tx does not have to be in the graph for this to work.
let tx = &psbt.clone().extract_tx().expect("tx");
let fee = wallet.calculate_fee(tx).expect("fee");sourcepub fn calculate_fee_rate(
&self,
tx: &Transaction
) -> Result<FeeRate, CalculateFeeError>
pub fn calculate_fee_rate(
&self,
tx: &Transaction
) -> Result<FeeRate, CalculateFeeError>
Calculate the [FeeRate] for a given transaction.
sourcepub fn calculate_fee_rate(
&self,
tx: &Transaction
) -> Result<FeeRate, CalculateFeeError>
pub fn calculate_fee_rate(
&self,
tx: &Transaction
) -> Result<FeeRate, CalculateFeeError>
Calculate the [FeeRate] for a given transaction.
To calculate the fee rate for a [Transaction] with inputs not owned by this wallet you must
manually insert the TxOut(s) into the tx graph using the insert_txout function.
Note tx does not have to be in the graph for this to work.
let tx = &psbt.clone().extract_tx().expect("tx");
let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");sourcepub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64)
pub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64)
Compute the txâs sent and received amounts (in satoshis).
sourcepub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64)
pub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64)
Compute the txâs sent and received amounts (in satoshis).
This method returns a tuple (sent, received). Sent is the sum of the txin amounts
that spend from previous txouts tracked by this wallet. Received is the summation
of this txâs outputs that send to script pubkeys tracked by this wallet.
let tx = &psbt.clone().extract_tx().expect("tx");
let (sent, received) = wallet.sent_and_received(tx);sourcepub fn get_tx(
&self,
txid: Txid
) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>
pub fn get_tx(
&self,
txid: Txid
) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>
Get a single transaction from the wallet as a [CanonicalTx] (if the transaction exists).
sourcepub fn get_tx(
&self,
txid: Txid
) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>
pub fn get_tx(
&self,
txid: Txid
) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>
Get a single transaction from the wallet as a [CanonicalTx] (if the transaction exists).
CanonicalTx contains the full transaction alongside meta-data such as:
- Blocks that the transaction is
Anchored in. These may or may not be blocks that exist @@ -151,11 +151,11 @@ the transaction was last seen in the mempool is provided.
last_seen,
),
}
sourcepub fn insert_checkpoint(
&mut self,
block_id: BlockId
) -> Result<bool, AlterCheckPointError>
pub fn insert_checkpoint(
&mut self,
block_id: BlockId
) -> Result<bool, AlterCheckPointError>
Add a new checkpoint to the walletâs internal view of the chain. +
sourcepub fn insert_checkpoint(
&mut self,
block_id: BlockId
) -> Result<bool, AlterCheckPointError>
pub fn insert_checkpoint(
&mut self,
block_id: BlockId
) -> Result<bool, AlterCheckPointError>
Add a new checkpoint to the walletâs internal view of the chain.
This stages but does not commit the change.
Returns whether anything changed with the insertion (e.g. false if checkpoint was already
there).
sourcepub fn insert_tx(
&mut self,
tx: Transaction,
position: ConfirmationTime
) -> Result<bool, InsertTxError>
pub fn insert_tx(
&mut self,
tx: Transaction,
position: ConfirmationTime
) -> Result<bool, InsertTxError>
Add a transaction to the walletâs internal view of the chain. This stages but does not +
sourcepub fn insert_tx(
&mut self,
tx: Transaction,
position: ConfirmationTime
) -> Result<bool, InsertTxError>
pub fn insert_tx(
&mut self,
tx: Transaction,
position: ConfirmationTime
) -> Result<bool, InsertTxError>
Add a transaction to the walletâs internal view of the chain. This stages but does not
commit the change.
Returns whether anything changed with the transaction insertion (e.g. false if the
transaction was already inserted at the same position).
WARNING: If position is confirmed, we anchor the tx to a the lowest checkpoint that
is >= the positionâs height. The caller is responsible for ensuring the tx exists in our
local view of the best chainâs history.
sourcepub fn transactions(
&self
) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_
pub fn transactions(
&self
) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_
Iterate over the transactions in the wallet.
-sourcepub fn get_balance(&self) -> Balance
pub fn get_balance(&self) -> Balance
Return the balance, separated into available, trusted-pending, untrusted-pending and immature +
sourcepub fn transactions(
&self
) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_
pub fn transactions(
&self
) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_
Iterate over the transactions in the wallet.
+sourcepub fn get_balance(&self) -> Balance
pub fn get_balance(&self) -> Balance
Return the balance, separated into available, trusted-pending, untrusted-pending and immature values.
-sourcepub fn add_signer(
&mut self,
keychain: KeychainKind,
ordering: SignerOrdering,
signer: Arc<dyn TransactionSigner>
)
pub fn add_signer(
&mut self,
keychain: KeychainKind,
ordering: SignerOrdering,
signer: Arc<dyn TransactionSigner>
)
Add an external signer
+sourcepub fn add_signer(
&mut self,
keychain: KeychainKind,
ordering: SignerOrdering,
signer: Arc<dyn TransactionSigner>
)
pub fn add_signer(
&mut self,
keychain: KeychainKind,
ordering: SignerOrdering,
signer: Arc<dyn TransactionSigner>
)
Add an external signer
See the signer module for an example.
sourcepub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>
pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>
Get the signers
+sourcepub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>
pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>
Get the signers
Example
let wallet = Wallet::new_no_persist("wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*)", None, Network::Testnet)?;
for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
@@ -179,7 +179,7 @@ values.
}
Ok::<(), Box<dyn std::error::Error>>(())sourcepub fn build_tx(
&mut self
) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm, CreateTx>
pub fn build_tx(
&mut self
) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm, CreateTx>
Start building a transaction.
+sourcepub fn build_tx(
&mut self
) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm, CreateTx>
pub fn build_tx(
&mut self
) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm, CreateTx>
sourcepub fn build_fee_bump(
&mut self,
txid: Txid
) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError>
pub fn build_fee_bump(
&mut self,
txid: Txid
) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError>
Bump the fee of a transaction previously created with this wallet.
+sourcepub fn build_fee_bump(
&mut self,
txid: Txid
) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError>
pub fn build_fee_bump(
&mut self,
txid: Txid
) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError>
Bump the fee of a transaction previously created with this wallet.
Returns an error if the transaction is already confirmed or doesnât explicitly signal
replace by fee (RBF). If the transaction can be fee bumped then it returns a TxBuilder
pre-populated with the inputs and outputs of the original transaction.
sourcepub fn sign(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
pub fn sign(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
Sign a transaction with all the walletâs signers, in the order specified by every signerâs +
sourcepub fn sign(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
pub fn sign(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
Sign a transaction with all the walletâs signers, in the order specified by every signerâs
SignerOrdering. This function returns the Result type with an encapsulated bool that has the value true if the PSBT was finalized, or false otherwise.
The SignOptions can be used to tweak the behavior of the software signers, and the way
the transaction is finalized at the end. Note that it canât be guaranteed that every
@@ -229,52 +229,63 @@ in this library will.
sourcepub fn policies(
&self,
keychain: KeychainKind
) -> Result<Option<Policy>, DescriptorError>
pub fn policies(
&self,
keychain: KeychainKind
) -> Result<Option<Policy>, DescriptorError>
Return the spending policies for the walletâs descriptor
-sourcepub fn public_descriptor(
&self,
keychain: KeychainKind
) -> Option<&ExtendedDescriptor>
pub fn public_descriptor(
&self,
keychain: KeychainKind
) -> Option<&ExtendedDescriptor>
Return the âpublicâ version of the walletâs descriptor, meaning a new descriptor that has +
sourcepub fn policies(
&self,
keychain: KeychainKind
) -> Result<Option<Policy>, DescriptorError>
pub fn policies(
&self,
keychain: KeychainKind
) -> Result<Option<Policy>, DescriptorError>
Return the spending policies for the walletâs descriptor
+sourcepub fn public_descriptor(
&self,
keychain: KeychainKind
) -> Option<&ExtendedDescriptor>
pub fn public_descriptor(
&self,
keychain: KeychainKind
) -> Option<&ExtendedDescriptor>
Return the âpublicâ version of the walletâs descriptor, meaning a new descriptor that has the same structure but with every secret key removed
This can be used to build a watch-only version of a wallet
-sourcepub fn finalize_psbt(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
pub fn finalize_psbt(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass +
sourcepub fn finalize_psbt(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
pub fn finalize_psbt(
&self,
psbt: &mut Psbt,
sign_options: SignOptions
) -> Result<bool, SignerError>
Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass
validation and construct the respective scriptSig or scriptWitness. Please refer to
BIP174
for further information.
Returns true if the PSBT could be finalized, and false otherwise.
The SignOptions can be used to tweak the behavior of the finalizer.
sourcepub fn secp_ctx(&self) -> &Secp256k1<All>
pub fn secp_ctx(&self) -> &Secp256k1<All>
Return the secp256k1 context used for all signing operations
-sourcepub fn get_descriptor_for_keychain(
&self,
keychain: KeychainKind
) -> &ExtendedDescriptor
pub fn get_descriptor_for_keychain(
&self,
keychain: KeychainKind
) -> &ExtendedDescriptor
Returns the descriptor used to create addresses for a particular keychain.
sourcepub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>
pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>
The derivation index of this wallet. It will return None if it has not derived any addresses.
+
sourcepub fn secp_ctx(&self) -> &Secp256k1<All>
pub fn secp_ctx(&self) -> &Secp256k1<All>
Return the secp256k1 context used for all signing operations
+sourcepub fn get_descriptor_for_keychain(
&self,
keychain: KeychainKind
) -> &ExtendedDescriptor
pub fn get_descriptor_for_keychain(
&self,
keychain: KeychainKind
) -> &ExtendedDescriptor
Returns the descriptor used to create addresses for a particular keychain.
sourcepub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>
pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>
The derivation index of this wallet. It will return None if it has not derived any addresses.
Otherwise, it will return the index of the highest address it has derived.
sourcepub fn next_derivation_index(&self, keychain: KeychainKind) -> u32
pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32
The index of the next address that you would get if you were to ask the wallet for a new address
-sourcepub fn cancel_tx(&mut self, tx: &Transaction)
pub fn cancel_tx(&mut self, tx: &Transaction)
Informs the wallet that you no longer intend to broadcast a tx that was built from it.
+sourcepub fn next_derivation_index(&self, keychain: KeychainKind) -> u32
pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32
The index of the next address that you would get if you were to ask the wallet for a new address
+sourcepub fn cancel_tx(&mut self, tx: &Transaction)
pub fn cancel_tx(&mut self, tx: &Transaction)
Informs the wallet that you no longer intend to broadcast a tx that was built from it.
This frees up the change address used when creating the tx for use in future transactions.
-sourcepub fn get_psbt_input(
&self,
utxo: LocalOutput,
sighash_type: Option<PsbtSighashType>,
only_witness_utxo: bool
) -> Result<Input, CreateTxError>
pub fn get_psbt_input(
&self,
utxo: LocalOutput,
sighash_type: Option<PsbtSighashType>,
only_witness_utxo: bool
) -> Result<Input, CreateTxError>
get the corresponding PSBT Input for a LocalUtxo
-sourcepub fn descriptor_checksum(&self, keychain: KeychainKind) -> String
pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String
Return the checksum of the public descriptor associated to keychain
sourcepub fn get_psbt_input(
&self,
utxo: LocalOutput,
sighash_type: Option<PsbtSighashType>,
only_witness_utxo: bool
) -> Result<Input, CreateTxError>
pub fn get_psbt_input(
&self,
utxo: LocalOutput,
sighash_type: Option<PsbtSighashType>,
only_witness_utxo: bool
) -> Result<Input, CreateTxError>
get the corresponding PSBT Input for a LocalUtxo
+sourcepub fn descriptor_checksum(&self, keychain: KeychainKind) -> String
pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String
Return the checksum of the public descriptor associated to keychain
Internally calls Self::get_descriptor_for_keychain to fetch the right descriptor
sourcepub fn apply_update(&mut self, update: Update) -> Result<(), CannotConnectError>
pub fn apply_update(&mut self, update: Update) -> Result<(), CannotConnectError>
Applies an update to the wallet and stages the changes (but does not commit them).
sourcepub fn apply_update(
&mut self,
update: impl Into<Update>
) -> Result<(), CannotConnectError>
pub fn apply_update(
&mut self,
update: impl Into<Update>
) -> Result<(), CannotConnectError>
Applies an update to the wallet and stages the changes (but does not commit them).
Usually you create an update by interacting with some blockchain data source and inserting
transactions related to your wallet into it.
sourcepub fn commit(&mut self) -> Result<bool>
pub fn commit(&mut self) -> Result<bool>
Commits all currently staged changed to the persistence backend returning and error when
+
sourcepub fn commit(&mut self) -> Result<bool>
pub fn commit(&mut self) -> Result<bool>
Commits all currently staged changed to the persistence backend returning and error when
this fails.
This returns whether the update resulted in any changes.
sourcepub fn staged(&self) -> &ChangeSet
pub fn staged(&self) -> &ChangeSet
Returns the changes that will be committed with the next call to commit.
sourcepub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>
pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>
Get a reference to the inner [TxGraph].
sourcepub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>
pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>
Get a reference to the inner [KeychainTxOutIndex].
sourcepub fn local_chain(&self) -> &LocalChain
pub fn local_chain(&self) -> &LocalChain
Get a reference to the inner [LocalChain].
sourcepub fn apply_block(
&mut self,
block: &Block,
height: u32
) -> Result<(), CannotConnectError>
pub fn apply_block(
&mut self,
block: &Block,
height: u32
) -> Result<(), CannotConnectError>
Introduces a block of height to the wallet, and tries to connect it to the
+
sourcepub fn staged(&self) -> &ChangeSet
pub fn staged(&self) -> &ChangeSet
Returns the changes that will be committed with the next call to commit.
sourcepub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>
pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>
Get a reference to the inner [TxGraph].
sourcepub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>
pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>
Get a reference to the inner [KeychainTxOutIndex].
sourcepub fn local_chain(&self) -> &LocalChain
pub fn local_chain(&self) -> &LocalChain
Get a reference to the inner [LocalChain].
sourcepub fn apply_block(
&mut self,
block: &Block,
height: u32
) -> Result<(), CannotConnectError>
pub fn apply_block(
&mut self,
block: &Block,
height: u32
) -> Result<(), CannotConnectError>
Introduces a block of height to the wallet, and tries to connect it to the
prev_blockhash of the blockâs header.
This is a convenience method that is equivalent to calling apply_block_connected_to
with prev_blockhash and height-1 as the connected_to parameter.
sourcepub fn apply_block_connected_to(
&mut self,
block: &Block,
height: u32,
connected_to: BlockId
) -> Result<(), ApplyHeaderError>
pub fn apply_block_connected_to(
&mut self,
block: &Block,
height: u32,
connected_to: BlockId
) -> Result<(), ApplyHeaderError>
Applies relevant transactions from block of height to the wallet, and connects the
+
sourcepub fn apply_block_connected_to(
&mut self,
block: &Block,
height: u32,
connected_to: BlockId
) -> Result<(), ApplyHeaderError>
pub fn apply_block_connected_to(
&mut self,
block: &Block,
height: u32,
connected_to: BlockId
) -> Result<(), ApplyHeaderError>
Applies relevant transactions from block of height to the wallet, and connects the
block to the internal chain.
The connected_to parameter informs the wallet how this block connects to the internal
[LocalChain]. Relevant transactions are filtered from the block and inserted into the
internal [TxGraph].
sourcepub fn apply_unconfirmed_txs<'t>(
&mut self,
unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)>
)
pub fn apply_unconfirmed_txs<'t>(
&mut self,
unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)>
)
Apply relevant unconfirmed transactions to the wallet.
+sourcepub fn apply_unconfirmed_txs<'t>(
&mut self,
unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)>
)
pub fn apply_unconfirmed_txs<'t>(
&mut self,
unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)>
)
Apply relevant unconfirmed transactions to the wallet.
Transactions that are not relevant are filtered out.
This method takes in an iterator of (tx, last_seen) where last_seen is the timestamp of
when the transaction was last seen in the mempool. This is used for conflict resolution
when there is conflicting unconfirmed transactions. The transaction with the later
last_seen is prioritized.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Wallet
impl Send for Wallet
impl Sync for Wallet
impl Unpin for Wallet
impl !UnwindSafe for Wallet
Blanket Implementations§
source§impl Wallet
impl Wallet
Methods to construct sync/full-scan requests for spk-based chain sources.
+sourcepub fn start_sync_with_revealed_spks(&self) -> SyncRequest
pub fn start_sync_with_revealed_spks(&self) -> SyncRequest
Create a partial [SyncRequest] for this wallet for all revealed spks.
This is the first step when performing a spk-based wallet partial sync, the returned
+[SyncRequest] collects all revealed script pubkeys from the wallet keychain needed to
+start a blockchain sync with a spk based blockchain client.
sourcepub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>
pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>
Create a [`FullScanRequest] for this wallet.
+This is the first step when performing a spk-based wallet full scan, the returned +[`FullScanRequest] collects iterators for the walletâs keychain script pub keys needed to +start a blockchain full scan with a spk based blockchain client.
+This operation is generally only used when importing or restoring a previously used wallet +in which the list of used scripts is not known.
+Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Wallet
impl Send for Wallet
impl Sync for Wallet
impl Unpin for Wallet
impl !UnwindSafe for Wallet
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
List of all items
Structs
- BlockId
- ConfirmationHeightAnchor
- ConfirmationTimeHeightAnchor
- FullTxOut
- SpkIterator
- SpkTxOutIndex
- indexed_tx_graph::ChangeSet
- indexed_tx_graph::IndexedTxGraph
- keychain::Balance
- keychain::ChangeSet
- keychain::KeychainTxOutIndex
- local_chain::AlterCheckPointError
- local_chain::CannotConnectError
- local_chain::CheckPoint
- local_chain::CheckPointIter
- local_chain::LocalChain
- local_chain::MissingGenesisError
- tx_graph::CanonicalTx
- tx_graph::ChangeSet
- tx_graph::TxAncestors
- tx_graph::TxDescendants
- tx_graph::TxGraph
- tx_graph::TxNode
Enums
Traits
Type Definitions
Constants
List of all items
Structs
- BlockId
- ConfirmationHeightAnchor
- ConfirmationTimeHeightAnchor
- FullTxOut
- SpkIterator
- SpkTxOutIndex
- indexed_tx_graph::ChangeSet
- indexed_tx_graph::IndexedTxGraph
- keychain::Balance
- keychain::ChangeSet
- keychain::KeychainTxOutIndex
- local_chain::AlterCheckPointError
- local_chain::CannotConnectError
- local_chain::CheckPoint
- local_chain::CheckPointIter
- local_chain::LocalChain
- local_chain::MissingGenesisError
- spk_client::FullScanRequest
- spk_client::FullScanResult
- spk_client::SyncRequest
- spk_client::SyncResult
- tx_graph::CanonicalTx
- tx_graph::ChangeSet
- tx_graph::TxAncestors
- tx_graph::TxDescendants
- tx_graph::TxGraph
- tx_graph::TxNode
Enums
Traits
Type Definitions
Constants
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.
+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.
Expand description
This crate is a collection of core structures for Bitcoin Dev Kit.
+Expand description
This crate is a collection of core structures for Bitcoin Dev Kit.
The goal of this crate is to give wallets the mechanisms needed to:
- Figure out what data they need to fetch. @@ -15,6 +15,6 @@ consistently. cache or how you retrieve it from persistent storage.
Re-exports
pub extern crate serde_crate as serde;pub use bitcoin;pub use indexed_tx_graph::IndexedTxGraph;pub use tx_graph::TxGraph;pub use miniscript;Modules
IndexedTxGraph and associated types. Refer to the
-IndexedTxGraph documentation for more.LocalChain is a local implementation of ChainOracle.Structs
Anchor implementation that also records the exact confirmation height of the transaction.Anchor implementation that also records the exact confirmation time and height of the
+IndexedTxGraph documentation for more.LocalChain is a local implementation of ChainOracle.Structs
Anchor implementation that also records the exact confirmation height of the transaction.Anchor implementation that also records the exact confirmation time and height of the
transaction.TxOut with as much data as we can retrieve about itTxOuts that have a script pubkey that matches those in a list.Enums
Constants
Traits
Anchor that can be constructed from a given block, block height and transaction position
within the block.Module bdk_chain::spk_client
source · Expand description
Helper types for spk-based blockchain clients.
+Structs
Struct bdk_chain::spk_client::FullScanRequest
source · pub struct FullScanRequest<K> {
+ pub chain_tip: CheckPoint,
+ pub spks_by_keychain: BTreeMap<K, Box<dyn Iterator<Item = (u32, ScriptBuf)> + Send>>,
+}Expand description
Data required to perform a spk-based blockchain client full scan.
+A client full scan iterates through all the scripts for the given keychains, fetching relevant
+data until some stop gap number of scripts is found that have no data. This operation is
+generally only used when importing or restoring previously used keychains in which the list of
+used scripts is not known. The full scan process also updates the chain from the given CheckPoint.
Fields§
§chain_tip: CheckPointA checkpoint for the current LocalChain::tip.
+The full scan process will return a new chain update that extends this tip.
spks_by_keychain: BTreeMap<K, Box<dyn Iterator<Item = (u32, ScriptBuf)> + Send>>Iterators of script pubkeys indexed by the keychain index.
+Implementations§
source§impl<K: Ord + Clone> FullScanRequest<K>
impl<K: Ord + Clone> FullScanRequest<K>
sourcepub fn from_chain_tip(chain_tip: CheckPoint) -> Self
pub fn from_chain_tip(chain_tip: CheckPoint) -> Self
Construct a new FullScanRequest from a given chain_tip.
sourcepub fn from_keychain_txout_index(
chain_tip: CheckPoint,
index: &KeychainTxOutIndex<K>
) -> Selfwhere
K: Debug,
pub fn from_keychain_txout_index(
chain_tip: CheckPoint,
index: &KeychainTxOutIndex<K>
) -> Selfwhere
K: Debug,
Construct a new FullScanRequest from a given chain_tip and index.
Unbounded script pubkey iterators for each keychain (K) are extracted using
+KeychainTxOutIndex::all_unbounded_spk_iters and is used to populate the
+FullScanRequest.
sourcepub fn set_spks_for_keychain(
self,
keychain: K,
spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>
) -> Self
pub fn set_spks_for_keychain(
self,
keychain: K,
spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>
) -> Self
Set the [Script]s for a given keychain.
This consumes the FullScanRequest and returns the updated one.
sourcepub fn chain_spks_for_keychain(
self,
keychain: K,
spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>
) -> Self
pub fn chain_spks_for_keychain(
self,
keychain: K,
spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>
) -> Self
Chain on additional [Script]s that will be synced against.
This consumes the FullScanRequest and returns the updated one.
sourcepub fn inspect_spks_for_all_keychains(
self,
inspect: impl FnMut(K, u32, &Script) + Send + Sync + Clone + 'static
) -> Selfwhere
K: Send + 'static,
pub fn inspect_spks_for_all_keychains(
self,
inspect: impl FnMut(K, u32, &Script) + Send + Sync + Clone + 'static
) -> Selfwhere
K: Send + 'static,
Add a closure that will be called for every [Script] previously added to any keychain in
+this request.
This consumes the SyncRequest and returns the updated one.
sourcepub fn inspect_spks_for_keychain(
self,
keychain: K,
inspect: impl FnMut(u32, &Script) + Send + Sync + 'static
) -> Selfwhere
K: Send + 'static,
pub fn inspect_spks_for_keychain(
self,
keychain: K,
inspect: impl FnMut(u32, &Script) + Send + Sync + 'static
) -> Selfwhere
K: Send + 'static,
Add a closure that will be called for every [Script] previously added to a given
+keychain in this request.
This consumes the SyncRequest and returns the updated one.
Auto Trait Implementations§
impl<K> !RefUnwindSafe for FullScanRequest<K>
impl<K> Send for FullScanRequest<K>where
K: Send,
impl<K> !Sync for FullScanRequest<K>
impl<K> Unpin for FullScanRequest<K>
impl<K> !UnwindSafe for FullScanRequest<K>
Blanket Implementations§
Struct bdk_chain::spk_client::FullScanResult
source · pub struct FullScanResult<K> {
+ pub graph_update: TxGraph<ConfirmationTimeHeightAnchor>,
+ pub chain_update: CheckPoint,
+ pub last_active_indices: BTreeMap<K, u32>,
+}Expand description
Data returned from a spk-based blockchain client full scan.
+See also FullScanRequest.
Fields§
§graph_update: TxGraph<ConfirmationTimeHeightAnchor>The update to apply to the receiving LocalChain.
chain_update: CheckPointThe update to apply to the receiving TxGraph.
last_active_indices: BTreeMap<K, u32>Last active indices for the corresponding keychains (K).
Auto Trait Implementations§
impl<K> RefUnwindSafe for FullScanResult<K>where
K: RefUnwindSafe,
impl<K> Send for FullScanResult<K>where
K: Send,
impl<K> Sync for FullScanResult<K>where
K: Sync,
impl<K> Unpin for FullScanResult<K>
impl<K> UnwindSafe for FullScanResult<K>where
K: RefUnwindSafe,
Blanket Implementations§
Struct bdk_chain::spk_client::SyncRequest
source · pub struct SyncRequest {
+ pub chain_tip: CheckPoint,
+ pub spks: Box<dyn ExactSizeIterator<Item = ScriptBuf> + Send>,
+ pub txids: Box<dyn ExactSizeIterator<Item = Txid> + Send>,
+ pub outpoints: Box<dyn ExactSizeIterator<Item = OutPoint> + Send>,
+}Expand description
Data required to perform a spk-based blockchain client sync.
+A client sync fetches relevant chain data for a known list of scripts, transaction ids and
+outpoints. The sync process also updates the chain from the given CheckPoint.
Fields§
§chain_tip: CheckPointA checkpoint for the current chain LocalChain::tip.
+The sync process will return a new chain update that extends this tip.
spks: Box<dyn ExactSizeIterator<Item = ScriptBuf> + Send>Transactions that spend from or to these indexed script pubkeys.
+txids: Box<dyn ExactSizeIterator<Item = Txid> + Send>Transactions with these txids.
+outpoints: Box<dyn ExactSizeIterator<Item = OutPoint> + Send>Transactions with these outpoints or spent from these outpoints.
+Implementations§
source§impl SyncRequest
impl SyncRequest
sourcepub fn from_chain_tip(cp: CheckPoint) -> Self
pub fn from_chain_tip(cp: CheckPoint) -> Self
Construct a new SyncRequest from a given cp tip.
sourcepub fn set_spks(
self,
spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static>
) -> Self
pub fn set_spks(
self,
spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static>
) -> Self
Set the [Script]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn set_txids(
self,
txids: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static>
) -> Self
pub fn set_txids(
self,
txids: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static>
) -> Self
Set the [Txid]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn set_outpoints(
self,
outpoints: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static>
) -> Self
pub fn set_outpoints(
self,
outpoints: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static>
) -> Self
Set the [OutPoint]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn chain_spks(
self,
spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static, Item = ScriptBuf>
) -> Self
pub fn chain_spks(
self,
spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static, Item = ScriptBuf>
) -> Self
Chain on additional [Script]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn chain_txids(
self,
txids: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static, Item = Txid>
) -> Self
pub fn chain_txids(
self,
txids: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static, Item = Txid>
) -> Self
Chain on additional [Txid]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn chain_outpoints(
self,
outpoints: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static, Item = OutPoint>
) -> Self
pub fn chain_outpoints(
self,
outpoints: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static, Item = OutPoint>
) -> Self
Chain on additional [OutPoint]s that will be synced against.
This consumes the SyncRequest and returns the updated one.
sourcepub fn inspect_spks(
self,
inspect: impl FnMut(&Script) + Send + Sync + 'static
) -> Self
pub fn inspect_spks(
self,
inspect: impl FnMut(&Script) + Send + Sync + 'static
) -> Self
Add a closure that will be called for [Script]s previously added to this request.
This consumes the SyncRequest and returns the updated one.
sourcepub fn inspect_txids(
self,
inspect: impl FnMut(&Txid) + Send + Sync + 'static
) -> Self
pub fn inspect_txids(
self,
inspect: impl FnMut(&Txid) + Send + Sync + 'static
) -> Self
Add a closure that will be called for [Txid]s previously added to this request.
This consumes the SyncRequest and returns the updated one.
sourcepub fn inspect_outpoints(
self,
inspect: impl FnMut(&OutPoint) + Send + Sync + 'static
) -> Self
pub fn inspect_outpoints(
self,
inspect: impl FnMut(&OutPoint) + Send + Sync + 'static
) -> Self
Add a closure that will be called for [OutPoint]s previously added to this request.
This consumes the SyncRequest and returns the updated one.
sourcepub fn populate_with_revealed_spks<K: Clone + Ord + Debug + Send + Sync>(
self,
index: &KeychainTxOutIndex<K>,
spk_range: impl RangeBounds<K>
) -> Self
pub fn populate_with_revealed_spks<K: Clone + Ord + Debug + Send + Sync>(
self,
index: &KeychainTxOutIndex<K>,
spk_range: impl RangeBounds<K>
) -> Self
Populate the request with revealed script pubkeys from index with the given spk_range.
This consumes the SyncRequest and returns the updated one.
Auto Trait Implementations§
impl !RefUnwindSafe for SyncRequest
impl Send for SyncRequest
impl !Sync for SyncRequest
impl Unpin for SyncRequest
impl !UnwindSafe for SyncRequest
Blanket Implementations§
Struct bdk_chain::spk_client::SyncResult
source · pub struct SyncResult<A = ConfirmationTimeHeightAnchor> {
+ pub graph_update: TxGraph<A>,
+ pub chain_update: CheckPoint,
+}Expand description
Data returned from a spk-based blockchain client sync.
+See also SyncRequest.
Fields§
§graph_update: TxGraph<A>The update to apply to the receiving TxGraph.
chain_update: CheckPointThe update to apply to the receiving LocalChain.
Auto Trait Implementations§
impl<A> RefUnwindSafe for SyncResult<A>where
A: RefUnwindSafe,
impl<A> Send for SyncResult<A>where
A: Send,
impl<A> Sync for SyncResult<A>where
A: Sync,
impl<A> Unpin for SyncResult<A>
impl<A> UnwindSafe for SyncResult<A>where
A: RefUnwindSafe,
Blanket Implementations§
List of all items
Structs
Traits
Type Definitions
List of all items
Traits
Type Definitions
Crate bdk_esplora
source ·Expand description
BDK Esplora
+Crate bdk_esplora
source ·Expand description
BDK Esplora
BDK Esplora extends esplora-client to update bdk_chain structures
from an Esplora server.
Usage
@@ -29,4 +29,4 @@ scan all keychain scripts until a number (the âstop gapâ) of unused scripts sync or full scan the user receives relevant blockchain data and output updates forbdk_chain
via a new TxGraph to be appended to any existing TxGraph data.
Refer to example_esplora for a complete example.
Re-exports
pub use esplora_client;Structs
Traits
esplora_client::AsyncClient].esplora_client::BlockingClient].Type Definitions
esplora_client::Error]Re-exports
pub use esplora_client;Traits
esplora_client::AsyncClient].esplora_client::BlockingClient].Type Definitions
esplora_client::Error]Struct bdk_esplora::FullScanUpdate
source · pub struct FullScanUpdate<K> {
- pub local_chain: CheckPoint,
- pub tx_graph: TxGraph<ConfirmationTimeHeightAnchor>,
- pub last_active_indices: BTreeMap<K, u32>,
-}Expand description
Update returns from a full scan.
-Fields§
§local_chain: CheckPointThe update to apply to the receiving LocalChain.
tx_graph: TxGraph<ConfirmationTimeHeightAnchor>The update to apply to the receiving [TxGraph].
last_active_indices: BTreeMap<K, u32>Last active indices for the corresponding keychains (K).
Auto Trait Implementations§
impl<K> RefUnwindSafe for FullScanUpdate<K>where
K: RefUnwindSafe,
impl<K> Send for FullScanUpdate<K>where
K: Send,
impl<K> Sync for FullScanUpdate<K>where
K: Sync,
impl<K> Unpin for FullScanUpdate<K>
impl<K> UnwindSafe for FullScanUpdate<K>where
K: RefUnwindSafe,
Blanket Implementations§
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
-if into_left is true.
-Converts self into a Right variant of Either<Self, Self>
-otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
-if into_left(&self) returns true.
-Converts self into a Right variant of Either<Self, Self>
-otherwise. Read more§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Subscriber to this type, returning a
-[WithDispatch] wrapper. Read moreStruct bdk_esplora::SyncUpdate
source · pub struct SyncUpdate {
- pub local_chain: CheckPoint,
- pub tx_graph: TxGraph<ConfirmationTimeHeightAnchor>,
-}Expand description
Update returned from a sync.
-Fields§
§local_chain: CheckPointThe update to apply to the receiving LocalChain.
tx_graph: TxGraph<ConfirmationTimeHeightAnchor>The update to apply to the receiving [TxGraph].
Auto Trait Implementations§
impl RefUnwindSafe for SyncUpdate
impl Send for SyncUpdate
impl Sync for SyncUpdate
impl Unpin for SyncUpdate
impl UnwindSafe for SyncUpdate
Blanket Implementations§
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
-if into_left is true.
-Converts self into a Right variant of Either<Self, Self>
-otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
-if into_left(&self) returns true.
-Converts self into a Right variant of Either<Self, Self>
-otherwise. Read more§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Subscriber to this type, returning a
-[WithDispatch] wrapper. Read moreTrait bdk_esplora::EsploraAsyncExt
source · pub trait EsploraAsyncExt {
- fn full_scan<'life0, 'async_trait, K>(
&'life0 self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, ScriptBuf)> + Send> + Send>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanUpdate<K>, Box<Error>>> + Send + 'async_trait>>
where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait;
- fn sync<'life0, 'async_trait>(
&'life0 self,
local_tip: CheckPoint,
misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = ScriptBuf> + Send> + Send,
txids: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Txid> + Send> + Send,
outpoints: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = OutPoint> + Send> + Send,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncUpdate, Box<Error>>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
+EsploraAsyncExt in bdk_esplora - Rust Trait bdk_esplora::EsploraAsyncExt
source · pub trait EsploraAsyncExt {
+ fn full_scan<'life0, 'async_trait, K>(
&'life0 self,
request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanResult<K>, Box<Error>>> + Send + 'async_trait>>
where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait;
+ fn sync<'life0, 'async_trait>(
&'life0 self,
request: SyncRequest,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncResult, Box<Error>>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
Trait to extend the functionality of [esplora_client::AsyncClient].
Refer to crate-level documentation for more.
-Required Methods§
sourcefn full_scan<'life0, 'async_trait, K>(
&'life0 self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, ScriptBuf)> + Send> + Send>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanUpdate<K>, Box<Error>>> + Send + 'async_trait>>where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait,
Scan keychain scripts for transactions against Esplora, returning an update that can be
+
Required Methods§
sourcefn full_scan<'life0, 'async_trait, K>(
&'life0 self,
request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanResult<K>, Box<Error>>> + Send + 'async_trait>>where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait,
Scan keychain scripts for transactions against Esplora, returning an update that can be
applied to the receiving structures.
local_tip: the previously seen tip from LocalChain::tip.
@@ -21,7 +21,7 @@ such as BTCPay Server,
and Sparrow.
A stop_gap of 0 will be treated as a stop_gap of 1.
-
sourcefn sync<'life0, 'async_trait>(
&'life0 self,
local_tip: CheckPoint,
misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = ScriptBuf> + Send> + Send,
txids: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Txid> + Send> + Send,
outpoints: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = OutPoint> + Send> + Send,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncUpdate, Box<Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sync a set of scripts with the blockchain (via an Esplora client) for the data
+
sourcefn sync<'life0, 'async_trait>(
&'life0 self,
request: SyncRequest,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncResult, Box<Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sync a set of scripts with the blockchain (via an Esplora client) for the data
specified and return a [TxGraph].
local_tip: the previously seen tip from LocalChain::tip.
@@ -32,4 +32,4 @@ want to include in the update
If the scripts to sync are unknown, such as when restoring or importing a keychain that
may include scripts that have been used, use full_scan with the keychain.
-Implementations on Foreign Types§
source§impl EsploraAsyncExt for AsyncClient
source§fn full_scan<'life0, 'async_trait, K>(
&'life0 self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, ScriptBuf)> + Send> + Send>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanUpdate<K>, Box<Error>>> + Send + 'async_trait>>where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait,
source§fn sync<'life0, 'async_trait>(
&'life0 self,
local_tip: CheckPoint,
misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = ScriptBuf> + Send> + Send,
txids: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Txid> + Send> + Send,
outpoints: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = OutPoint> + Send> + Send,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncUpdate, Box<Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Implementors§
\ No newline at end of file
+Implementations on Foreign Types§
source§impl EsploraAsyncExt for AsyncClient
impl EsploraAsyncExt for AsyncClient
fn full_scan<'life0, 'async_trait, K>(
&'life0 self,
request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<FullScanResult<K>, Box<Error>>> + Send + 'async_trait>>where
K: 'async_trait + Ord + Clone + Send,
Self: 'async_trait,
'life0: 'async_trait,
fn sync<'life0, 'async_trait>(
&'life0 self,
request: SyncRequest,
parallel_requests: usize
) -> Pin<Box<dyn Future<Output = Result<SyncResult, Box<Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Implementors§
Trait bdk_esplora::EsploraExt
source · pub trait EsploraExt {
- fn full_scan<K: Ord + Clone>(
&self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
stop_gap: usize,
parallel_requests: usize
) -> Result<FullScanUpdate<K>, Error>;
- fn sync(
&self,
local_tip: CheckPoint,
misc_spks: impl IntoIterator<Item = ScriptBuf>,
txids: impl IntoIterator<Item = Txid>,
outpoints: impl IntoIterator<Item = OutPoint>,
parallel_requests: usize
) -> Result<SyncUpdate, Error>;
+EsploraExt in bdk_esplora - Rust Trait bdk_esplora::EsploraExt
source · pub trait EsploraExt {
+ fn full_scan<K: Ord + Clone>(
&self,
request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize
) -> Result<FullScanResult<K>, Error>;
+ fn sync(
&self,
request: SyncRequest,
parallel_requests: usize
) -> Result<SyncResult, Error>;
}
Expand description
Trait to extend the functionality of [esplora_client::BlockingClient].
Refer to crate-level documentation for more.
-Required Methods§
sourcefn full_scan<K: Ord + Clone>(
&self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
stop_gap: usize,
parallel_requests: usize
) -> Result<FullScanUpdate<K>, Error>
Scan keychain scripts for transactions against Esplora, returning an update that can be
+
Required Methods§
sourcefn full_scan<K: Ord + Clone>(
&self,
request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize
) -> Result<FullScanResult<K>, Error>
Scan keychain scripts for transactions against Esplora, returning an update that can be
applied to the receiving structures.
local_tip: the previously seen tip from LocalChain::tip.
@@ -21,7 +21,7 @@ such as BTCPay Server,
and Sparrow.
A stop_gap of 0 will be treated as a stop_gap of 1.
-
sourcefn sync(
&self,
local_tip: CheckPoint,
misc_spks: impl IntoIterator<Item = ScriptBuf>,
txids: impl IntoIterator<Item = Txid>,
outpoints: impl IntoIterator<Item = OutPoint>,
parallel_requests: usize
) -> Result<SyncUpdate, Error>
Sync a set of scripts with the blockchain (via an Esplora client) for the data
+
sourcefn sync(
&self,
request: SyncRequest,
parallel_requests: usize
) -> Result<SyncResult, Error>
Sync a set of scripts with the blockchain (via an Esplora client) for the data
specified and return a [TxGraph].
local_tip: the previously seen tip from LocalChain::tip.
@@ -32,4 +32,4 @@ want to include in the update
If the scripts to sync are unknown, such as when restoring or importing a keychain that
may include scripts that have been used, use full_scan with the keychain.
-Implementations on Foreign Types§
source§impl EsploraExt for BlockingClient
source§fn full_scan<K: Ord + Clone>(
&self,
local_tip: CheckPoint,
keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
stop_gap: usize,
parallel_requests: usize
) -> Result<FullScanUpdate<K>, Error>
source§fn sync(
&self,
local_tip: CheckPoint,
misc_spks: impl IntoIterator<Item = ScriptBuf>,
txids: impl IntoIterator<Item = Txid>,
outpoints: impl IntoIterator<Item = OutPoint>,
parallel_requests: usize
) -> Result<SyncUpdate, Error>
Implementors§
\ No newline at end of file
+Implementations on Foreign Types§
source§impl EsploraExt for BlockingClient
impl EsploraExt for BlockingClient
Implementors§
Type Definition bdk_esplora::Error
source · pub type Error = Box<Error>;Expand description
[esplora_client::Error]
Type Definition bdk_esplora::Error
source · pub type Error = Box<Error>;Expand description
[esplora_client::Error]
Constant example_esplora::DB_MAGIC
source · pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_esplora";Constant example_esplora::DB_MAGIC
source · pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_esplora";Constant example_esplora::DB_PATH
source · pub(crate) const DB_PATH: &str = ".bdk_esplora_example.db";Constant example_esplora::DB_PATH
source · pub(crate) const DB_PATH: &str = ".bdk_esplora_example.db";Enum example_esplora::EsploraCommands
source · pub(crate) enum EsploraCommands {
+EsploraCommands in example_esplora - Rust Enum example_esplora::EsploraCommands
source · pub(crate) enum EsploraCommands {
Scan {
stop_gap: usize,
scan_options: ScanOptions,
@@ -19,7 +19,7 @@
§scan_options: ScanOptions§esplora_args: EsploraArgsScan for particular addresses and unconfirmed transactions using the esplora API.
-Implementations§
source§impl EsploraCommands
impl EsploraCommands
pub(crate) fn esplora_args(&self) -> EsploraArgs
Trait Implementations§
source§impl Clone for EsploraCommands
impl Clone for EsploraCommands
source§fn clone(&self) -> EsploraCommands
fn clone(&self) -> EsploraCommands
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for EsploraCommands
impl Debug for EsploraCommands
source§impl FromArgMatches for EsploraCommands
impl FromArgMatches for EsploraCommands
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
ArgMatches to self.source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
ArgMatches to self.source§impl Subcommand for EsploraCommands
impl Subcommand for EsploraCommands
source§fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>
fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandAuto Trait Implementations§
impl RefUnwindSafe for EsploraCommands
impl Send for EsploraCommands
impl Sync for EsploraCommands
impl Unpin for EsploraCommands
impl UnwindSafe for EsploraCommands
Blanket Implementations§
source§impl<T> From<T> for T
impl<T> From<T> for T
Implementations§
source§impl EsploraCommands
impl EsploraCommands
pub(crate) fn esplora_args(&self) -> EsploraArgs
Trait Implementations§
source§impl Clone for EsploraCommands
impl Clone for EsploraCommands
source§fn clone(&self) -> EsploraCommands
fn clone(&self) -> EsploraCommands
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for EsploraCommands
impl Debug for EsploraCommands
source§impl FromArgMatches for EsploraCommands
impl FromArgMatches for EsploraCommands
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
ArgMatches to self.source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
ArgMatches to self.source§impl Subcommand for EsploraCommands
impl Subcommand for EsploraCommands
source§fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>
fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandAuto Trait Implementations§
impl RefUnwindSafe for EsploraCommands
impl Send for EsploraCommands
impl Sync for EsploraCommands
impl Unpin for EsploraCommands
impl UnwindSafe for EsploraCommands
Blanket Implementations§
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
Function example_esplora::main
source · Function example_esplora::main
source · Crate example_esplora
source ·Structs
Enums
Constants
Functions
Type Definitions
Crate example_esplora
source ·Structs
Enums
Constants
Functions
Type Definitions
Struct example_esplora::EsploraArgs
source · pub struct EsploraArgs {
+EsploraArgs in example_esplora - Rust Struct example_esplora::EsploraArgs
source · Fields§
§esplora_url: Option<String>The esplora url endpoint to connect to e.g. <https://blockstream.info/api>
If not provided itâll be set to a default for the network provided
-Implementations§
Trait Implementations§
source§impl Args for EsploraArgs
source§fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§impl Clone for EsploraArgs
source§fn clone(&self) -> EsploraArgs
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read moresource§impl Debug for EsploraArgs
source§impl FromArgMatches for EsploraArgs
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.Auto Trait Implementations§
§impl RefUnwindSafe for EsploraArgs
§impl Send for EsploraArgs
§impl Sync for EsploraArgs
§impl Unpin for EsploraArgs
§impl UnwindSafe for EsploraArgs
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Implementations§
Trait Implementations§
source§impl Args for EsploraArgs
source§fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§impl Clone for EsploraArgs
source§fn clone(&self) -> EsploraArgs
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read moresource§impl Debug for EsploraArgs
source§impl FromArgMatches for EsploraArgs
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.Auto Trait Implementations§
§impl RefUnwindSafe for EsploraArgs
§impl Send for EsploraArgs
§impl Sync for EsploraArgs
§impl Unpin for EsploraArgs
§impl UnwindSafe for EsploraArgs
Blanket Implementations§
§impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.ScanOptions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.ScanOptions.html
index deb17bf78c..e35146c5ad 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.ScanOptions.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.ScanOptions.html
@@ -1,9 +1,9 @@
-ScanOptions in example_esplora - Rust Struct example_esplora::ScanOptions
source · pub struct ScanOptions {
+ScanOptions in example_esplora - Rust Struct example_esplora::ScanOptions
source · pub struct ScanOptions {
pub parallel_requests: usize,
}
Fields§
§parallel_requests: usizeMax number of concurrent esplora server requests.
-Trait Implementations§
source§impl Args for ScanOptions
source§fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§impl Clone for ScanOptions
source§fn clone(&self) -> ScanOptions
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read moresource§impl CommandFactory for ScanOptions
source§fn into_app_for_update<'b>() -> Command<'b>
Deprecated, replaced with CommandFactory::command_for_update§fn command_for_update<'help>() -> App<'help>
source§impl Debug for ScanOptions
source§impl FromArgMatches for ScanOptions
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§impl Parser for ScanOptions
§fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, exit on error§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, return Err on error.§fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, exit on error§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, return Err on error.source§impl PartialEq<ScanOptions> for ScanOptions
source§fn eq(&self, other: &ScanOptions) -> bool
This method tests for self and other values to be equal, and is used
+Trait Implementations§
source§impl Args for ScanOptions
source§fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>
source§fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>
source§impl Clone for ScanOptions
source§fn clone(&self) -> ScanOptions
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read moresource§impl CommandFactory for ScanOptions
source§fn into_app_for_update<'b>() -> Command<'b>
Deprecated, replaced with CommandFactory::command_for_update§fn command_for_update<'help>() -> App<'help>
source§impl Debug for ScanOptions
source§impl FromArgMatches for ScanOptions
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
Assign values from ArgMatches to self.source§impl Parser for ScanOptions
§fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, exit on error§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, return Err on error.§fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, exit on error§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, return Err on error.source§impl PartialEq<ScanOptions> for ScanOptions
source§fn eq(&self, other: &ScanOptions) -> bool
source§impl StructuralPartialEq for ScanOptions
Auto Trait Implementations§
§impl RefUnwindSafe for ScanOptions
§impl Send for ScanOptions
§impl Sync for ScanOptions
§impl Unpin for ScanOptions
§impl UnwindSafe for ScanOptions
Blanket Implementations§
source§impl StructuralPartialEq for ScanOptions
Auto Trait Implementations§
§impl RefUnwindSafe for ScanOptions
§impl Send for ScanOptions
§impl Sync for ScanOptions
§impl Unpin for ScanOptions
§impl UnwindSafe for ScanOptions
Blanket Implementations§
§impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html
index 17a9a772b4..6e45f6925b 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html
@@ -1 +1 @@
-ChangeSet in example_esplora - Rust Type Definition example_esplora::ChangeSet
source · pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
\ No newline at end of file
+ChangeSet in example_esplora - Rust Type Definition example_esplora::ChangeSet
source · pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js
index 1df93a1b35..06e27d8ef3 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js
@@ -1,5 +1,5 @@
(function() {var implementors = {
-"bdk":[["impl From<KeyError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<HexToBytesError> for Error"],["impl From<PolicyError> for Error"],["impl From<bool> for Satisfaction"],["impl From<SatisfiableItem> for Policy"],["impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>"],["impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>"],["impl From<Error> for KeyError"],["impl From<Error> for KeyError"],["impl From<Hash> for SignerId"],["impl From<Fingerprint> for SignerId"],["impl From<Error> for SignerError"],["impl From<Error> for CreateTxError"],["impl From<PolicyError> for CreateTxError"],["impl From<MiniscriptPsbtError> for CreateTxError"],["impl From<Error> for CreateTxError"],["impl From<Error> for CreateTxError"],["impl From<BTreeMap<u32, Option<BlockHash>, Global>> for ChangeSet"],["impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet"]],
+"bdk":[["impl From<KeyError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<HexToBytesError> for Error"],["impl From<PolicyError> for Error"],["impl From<bool> for Satisfaction"],["impl From<SatisfiableItem> for Policy"],["impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>"],["impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>"],["impl From<Error> for KeyError"],["impl From<Error> for KeyError"],["impl From<Hash> for SignerId"],["impl From<Fingerprint> for SignerId"],["impl From<Error> for SignerError"],["impl From<Error> for CreateTxError"],["impl From<PolicyError> for CreateTxError"],["impl From<MiniscriptPsbtError> for CreateTxError"],["impl From<Error> for CreateTxError"],["impl From<Error> for CreateTxError"],["impl From<FullScanResult<KeychainKind>> for Update"],["impl From<SyncResult<ConfirmationTimeHeightAnchor>> for Update"],["impl From<BTreeMap<u32, Option<BlockHash>, Global>> for ChangeSet"],["impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet"]],
"bdk_chain":[["impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<(&u32, &BlockHash)> for BlockId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"]],
"bdk_coin_select":[["impl From<usize> for BnbLimit"],["impl From<Duration> for BnbLimit"]],
"bdk_file_store":[["impl From<Error> for IterError"],["impl From<Error> for FileError"]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js
index 8f3def699e..eba2e9eb9d 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Freeze.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl Freeze for Error",1,["bdk::descriptor::error::Error"]],["impl Freeze for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl Freeze for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl Freeze for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl Freeze for Policy",1,["bdk::descriptor::policy::Policy"]],["impl Freeze for Condition",1,["bdk::descriptor::policy::Condition"]],["impl Freeze for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> Freeze for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> Freeze for P2Pkh<K>where
K: Freeze,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> Freeze for P2Wpkh_P2Sh<K>where
K: Freeze,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Freeze for P2Wpkh<K>where
K: Freeze,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> Freeze for P2TR<K>where
K: Freeze,",1,["bdk::descriptor::template::P2TR"]],["impl<K> Freeze for Bip44<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip44"]],["impl<K> Freeze for Bip44Public<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> Freeze for Bip49<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip49"]],["impl<K> Freeze for Bip49Public<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> Freeze for Bip84<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip84"]],["impl<K> Freeze for Bip84Public<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> Freeze for Bip86<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip86"]],["impl<K> Freeze for Bip86Public<K>where
K: Freeze,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> Freeze for DescriptorKey<Ctx>",1,["bdk::keys::DescriptorKey"]],["impl Freeze for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> Freeze for ExtendedKey<Ctx>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> Freeze for GeneratedKey<K, Ctx>where
K: Freeze,",1,["bdk::keys::GeneratedKey"]],["impl Freeze for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl Freeze for KeyError",1,["bdk::keys::KeyError"]],["impl Freeze for KeychainKind",1,["bdk::types::KeychainKind"]],["impl Freeze for LocalOutput",1,["bdk::types::LocalOutput"]],["impl Freeze for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl Freeze for Utxo",1,["bdk::types::Utxo"]],["impl Freeze for Error",1,["bdk::wallet::coin_selection::Error"]],["impl Freeze for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl Freeze for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl Freeze for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Freeze for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Freeze for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Freeze for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl Freeze for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl Freeze for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl Freeze for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> Freeze for SignerWrapper<S>where
S: Freeze,",1,["bdk::wallet::signer::SignerWrapper"]],["impl Freeze for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl Freeze for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl Freeze for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl Freeze for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl Freeze for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl Freeze for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> Freeze for TxBuilder<'a, Cs, Ctx>where
Cs: Freeze,",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl Freeze for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl Freeze for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl Freeze for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl Freeze for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl Freeze for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl Freeze for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl Freeze for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl Freeze for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl Freeze for Wallet",1,["bdk::wallet::Wallet"]],["impl Freeze for Update",1,["bdk::wallet::Update"]],["impl Freeze for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl Freeze for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl Freeze for NewError",1,["bdk::wallet::NewError"]],["impl Freeze for LoadError",1,["bdk::wallet::LoadError"]],["impl Freeze for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl Freeze for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl Freeze for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> Freeze for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Freeze for BlockEvent<B>where
B: Freeze,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Freeze for ChainPosition<A>where
A: Freeze,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Freeze for FullTxOut<A>where
A: Freeze,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>where
I: Freeze,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>where
IA: Freeze,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::keychain::ChangeSet"]],["impl Freeze for Balance",1,["bdk_chain::keychain::Balance"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>where
T: Freeze,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>where
T: Freeze,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>where
F: Freeze,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>where
F: Freeze,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Freeze for SpkIterator<D>where
D: Freeze,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Freeze for ChainPosition<A>where
A: Freeze,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Freeze for FullTxOut<A>where
A: Freeze,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>where
I: Freeze,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>where
IA: Freeze,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::keychain::ChangeSet"]],["impl Freeze for Balance",1,["bdk_chain::keychain::Balance"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>where
T: Freeze,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>where
T: Freeze,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>where
F: Freeze,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>where
F: Freeze,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Freeze for SpkIterator<D>where
D: Freeze,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl Freeze for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> Freeze for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> Freeze for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Freeze for FullScanResult<K>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl Freeze for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl Freeze for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> Freeze for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl Freeze for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Freeze for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Freeze for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Freeze for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Freeze for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Freeze for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> Freeze for Bnb<'c, S>where
S: Freeze,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> Freeze for BnbIter<'c, 'f, S>where
S: Freeze,",1,["bdk_coin_select::bnb::BnbIter"]],["impl Freeze for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl Freeze for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl Freeze for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> Freeze for FullScanUpdate<K>",1,["bdk_esplora::FullScanUpdate"]],["impl Freeze for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> Freeze for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl Freeze for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> Freeze for Store<C>",1,["bdk_file_store::store::Store"]],["impl<C> Freeze for AggregateChangesetsError<C>where
C: Freeze,",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl Freeze for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl Freeze for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> Freeze for Persist<C>where
C: Freeze,",1,["bdk_persist::persist::Persist"]]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js
index c89dbccb70..373c3a153f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Send.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl Send for Error",1,["bdk::descriptor::error::Error"]],["impl Send for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl Send for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl Send for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl Send for Policy",1,["bdk::descriptor::policy::Policy"]],["impl Send for Condition",1,["bdk::descriptor::policy::Condition"]],["impl Send for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> Send for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> Send for P2Pkh<K>where
K: Send,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> Send for P2Wpkh_P2Sh<K>where
K: Send,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Send for P2Wpkh<K>where
K: Send,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> Send for P2TR<K>where
K: Send,",1,["bdk::descriptor::template::P2TR"]],["impl<K> Send for Bip44<K>where
K: Send,",1,["bdk::descriptor::template::Bip44"]],["impl<K> Send for Bip44Public<K>where
K: Send,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> Send for Bip49<K>where
K: Send,",1,["bdk::descriptor::template::Bip49"]],["impl<K> Send for Bip49Public<K>where
K: Send,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> Send for Bip84<K>where
K: Send,",1,["bdk::descriptor::template::Bip84"]],["impl<K> Send for Bip84Public<K>where
K: Send,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> Send for Bip86<K>where
K: Send,",1,["bdk::descriptor::template::Bip86"]],["impl<K> Send for Bip86Public<K>where
K: Send,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> Send for DescriptorKey<Ctx>where
Ctx: Send,",1,["bdk::keys::DescriptorKey"]],["impl Send for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> Send for ExtendedKey<Ctx>where
Ctx: Send,",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> Send for GeneratedKey<K, Ctx>where
Ctx: Send,
K: Send,",1,["bdk::keys::GeneratedKey"]],["impl Send for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl Send for KeyError",1,["bdk::keys::KeyError"]],["impl Send for KeychainKind",1,["bdk::types::KeychainKind"]],["impl Send for LocalOutput",1,["bdk::types::LocalOutput"]],["impl Send for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl Send for Utxo",1,["bdk::types::Utxo"]],["impl Send for Error",1,["bdk::wallet::coin_selection::Error"]],["impl Send for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl Send for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl Send for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Send for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Send for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Send for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl Send for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl Send for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl Send for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> Send for SignerWrapper<S>where
S: Send,",1,["bdk::wallet::signer::SignerWrapper"]],["impl Send for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl Send for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl Send for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl Send for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl Send for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl Send for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !Send for TxBuilder<'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl Send for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl Send for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl Send for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl Send for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl Send for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl Send for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl Send for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl Send for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl Send for Wallet",1,["bdk::wallet::Wallet"]],["impl Send for Update",1,["bdk::wallet::Update"]],["impl Send for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl Send for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl Send for NewError",1,["bdk::wallet::NewError"]],["impl Send for LoadError",1,["bdk::wallet::LoadError"]],["impl Send for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl Send for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl Send for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> Send for Emitter<'c, C>where
C: Sync,",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Send for BlockEvent<B>where
B: Send,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> Send for SpkTxOutIndex<I>where
I: Send,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Send for ChainPosition<A>where
A: Send,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Send for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Send for FullTxOut<A>where
A: Send,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Send for IndexedTxGraph<A, I>where
A: Send,
I: Send,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>where
A: Send,
IA: Send,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>where
K: Send,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Send for ChangeSet<K>where
K: Send,",1,["bdk_chain::keychain::ChangeSet"]],["impl Send for Balance",1,["bdk_chain::keychain::Balance"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Send for TxGraph<A>where
A: Send,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Send for TxNode<'a, T, A>where
A: Sync,
T: Send,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>where
A: Sync,
T: Send,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Send for ChangeSet<A>where
A: Send,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>where
A: Sync,
F: Send,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>where
A: Sync,
F: Send,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Send for SpkIterator<D>where
D: Send,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> Send for SpkTxOutIndex<I>where
I: Send,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Send for ChainPosition<A>where
A: Send,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Send for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Send for FullTxOut<A>where
A: Send,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Send for IndexedTxGraph<A, I>where
A: Send,
I: Send,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>where
A: Send,
IA: Send,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>where
K: Send,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Send for ChangeSet<K>where
K: Send,",1,["bdk_chain::keychain::ChangeSet"]],["impl Send for Balance",1,["bdk_chain::keychain::Balance"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Send for TxGraph<A>where
A: Send,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Send for TxNode<'a, T, A>where
A: Sync,
T: Send,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>where
A: Sync,
T: Send,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Send for ChangeSet<A>where
A: Send,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>where
A: Sync,
F: Send,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>where
A: Sync,
F: Send,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Send for SpkIterator<D>where
D: Send,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl Send for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> Send for SyncResult<A>where
A: Send,",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> Send for FullScanRequest<K>where
K: Send,",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Send for FullScanResult<K>where
K: Send,",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl Send for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl Send for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> Send for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl Send for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Send for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Send for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Send for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Send for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Send for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> Send for Bnb<'c, S>where
S: Send,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !Send for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl Send for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl Send for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl Send for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> Send for FullScanUpdate<K>where
K: Send,",1,["bdk_esplora::FullScanUpdate"]],["impl Send for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> Send for EntryIter<'t, T>where
T: Send,",1,["bdk_file_store::entry_iter::EntryIter"]],["impl Send for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> Send for Store<C>",1,["bdk_file_store::store::Store"]],["impl<C> Send for AggregateChangesetsError<C>where
C: Send,",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl Send for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl Send for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> Send for Persist<C>where
C: Send,",1,["bdk_persist::persist::Persist"]]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js
index 0ea0c63a90..85278dde73 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Sync.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl Sync for Error",1,["bdk::descriptor::error::Error"]],["impl Sync for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl Sync for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl Sync for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl Sync for Policy",1,["bdk::descriptor::policy::Policy"]],["impl Sync for Condition",1,["bdk::descriptor::policy::Condition"]],["impl Sync for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> Sync for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> Sync for P2Pkh<K>where
K: Sync,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> Sync for P2Wpkh_P2Sh<K>where
K: Sync,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Sync for P2Wpkh<K>where
K: Sync,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> Sync for P2TR<K>where
K: Sync,",1,["bdk::descriptor::template::P2TR"]],["impl<K> Sync for Bip44<K>where
K: Sync,",1,["bdk::descriptor::template::Bip44"]],["impl<K> Sync for Bip44Public<K>where
K: Sync,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> Sync for Bip49<K>where
K: Sync,",1,["bdk::descriptor::template::Bip49"]],["impl<K> Sync for Bip49Public<K>where
K: Sync,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> Sync for Bip84<K>where
K: Sync,",1,["bdk::descriptor::template::Bip84"]],["impl<K> Sync for Bip84Public<K>where
K: Sync,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> Sync for Bip86<K>where
K: Sync,",1,["bdk::descriptor::template::Bip86"]],["impl<K> Sync for Bip86Public<K>where
K: Sync,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> Sync for DescriptorKey<Ctx>where
Ctx: Sync,",1,["bdk::keys::DescriptorKey"]],["impl Sync for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> Sync for ExtendedKey<Ctx>where
Ctx: Sync,",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> Sync for GeneratedKey<K, Ctx>where
Ctx: Sync,
K: Sync,",1,["bdk::keys::GeneratedKey"]],["impl Sync for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl Sync for KeyError",1,["bdk::keys::KeyError"]],["impl Sync for KeychainKind",1,["bdk::types::KeychainKind"]],["impl Sync for LocalOutput",1,["bdk::types::LocalOutput"]],["impl Sync for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl Sync for Utxo",1,["bdk::types::Utxo"]],["impl Sync for Error",1,["bdk::wallet::coin_selection::Error"]],["impl Sync for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl Sync for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl Sync for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Sync for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Sync for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Sync for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl Sync for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl Sync for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl Sync for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> Sync for SignerWrapper<S>where
S: Sync,",1,["bdk::wallet::signer::SignerWrapper"]],["impl Sync for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl Sync for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl Sync for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl Sync for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl Sync for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl Sync for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !Sync for TxBuilder<'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl Sync for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl Sync for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl Sync for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl Sync for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl Sync for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl Sync for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl Sync for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl Sync for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl Sync for Wallet",1,["bdk::wallet::Wallet"]],["impl Sync for Update",1,["bdk::wallet::Update"]],["impl Sync for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl Sync for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl Sync for NewError",1,["bdk::wallet::NewError"]],["impl Sync for LoadError",1,["bdk::wallet::LoadError"]],["impl Sync for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl Sync for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl Sync for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> Sync for Emitter<'c, C>where
C: Sync,",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Sync for BlockEvent<B>where
B: Sync,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> Sync for SpkTxOutIndex<I>where
I: Sync,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Sync for ChainPosition<A>where
A: Sync,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Sync for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Sync for FullTxOut<A>where
A: Sync,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Sync for IndexedTxGraph<A, I>where
A: Sync,
I: Sync,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>where
A: Sync,
IA: Sync,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>where
K: Sync,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Sync for ChangeSet<K>where
K: Sync,",1,["bdk_chain::keychain::ChangeSet"]],["impl Sync for Balance",1,["bdk_chain::keychain::Balance"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Sync for TxGraph<A>where
A: Sync,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>where
A: Sync,
T: Sync,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>where
A: Sync,
T: Sync,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Sync for ChangeSet<A>where
A: Sync,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>where
A: Sync,
F: Sync,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>where
A: Sync,
F: Sync,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Sync for SpkIterator<D>where
D: Sync,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> Sync for SpkTxOutIndex<I>where
I: Sync,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Sync for ChainPosition<A>where
A: Sync,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Sync for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Sync for FullTxOut<A>where
A: Sync,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Sync for IndexedTxGraph<A, I>where
A: Sync,
I: Sync,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>where
A: Sync,
IA: Sync,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>where
K: Sync,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Sync for ChangeSet<K>where
K: Sync,",1,["bdk_chain::keychain::ChangeSet"]],["impl Sync for Balance",1,["bdk_chain::keychain::Balance"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Sync for TxGraph<A>where
A: Sync,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>where
A: Sync,
T: Sync,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>where
A: Sync,
T: Sync,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Sync for ChangeSet<A>where
A: Sync,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>where
A: Sync,
F: Sync,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>where
A: Sync,
F: Sync,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Sync for SpkIterator<D>where
D: Sync,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !Sync for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> Sync for SyncResult<A>where
A: Sync,",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !Sync for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Sync for FullScanResult<K>where
K: Sync,",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl Sync for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl Sync for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> Sync for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl Sync for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Sync for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Sync for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Sync for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Sync for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Sync for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> Sync for Bnb<'c, S>where
S: Sync,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !Sync for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl Sync for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl Sync for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl Sync for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> Sync for FullScanUpdate<K>where
K: Sync,",1,["bdk_esplora::FullScanUpdate"]],["impl Sync for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> Sync for EntryIter<'t, T>where
T: Sync,",1,["bdk_file_store::entry_iter::EntryIter"]],["impl Sync for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> Sync for Store<C>",1,["bdk_file_store::store::Store"]],["impl<C> Sync for AggregateChangesetsError<C>where
C: Sync,",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl Sync for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl Sync for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> Sync for Persist<C>where
C: Sync,",1,["bdk_persist::persist::Persist"]]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js
index ab3d033bb1..1ee76b31db 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.Unpin.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl Unpin for Error",1,["bdk::descriptor::error::Error"]],["impl Unpin for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl Unpin for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl Unpin for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl Unpin for Policy",1,["bdk::descriptor::policy::Policy"]],["impl Unpin for Condition",1,["bdk::descriptor::policy::Condition"]],["impl Unpin for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> Unpin for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> Unpin for P2Pkh<K>where
K: Unpin,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> Unpin for P2Wpkh_P2Sh<K>where
K: Unpin,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Unpin for P2Wpkh<K>where
K: Unpin,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> Unpin for P2TR<K>where
K: Unpin,",1,["bdk::descriptor::template::P2TR"]],["impl<K> Unpin for Bip44<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip44"]],["impl<K> Unpin for Bip44Public<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> Unpin for Bip49<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip49"]],["impl<K> Unpin for Bip49Public<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> Unpin for Bip84<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip84"]],["impl<K> Unpin for Bip84Public<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> Unpin for Bip86<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip86"]],["impl<K> Unpin for Bip86Public<K>where
K: Unpin,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> Unpin for DescriptorKey<Ctx>where
Ctx: Unpin,",1,["bdk::keys::DescriptorKey"]],["impl Unpin for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> Unpin for ExtendedKey<Ctx>where
Ctx: Unpin,",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> Unpin for GeneratedKey<K, Ctx>where
Ctx: Unpin,
K: Unpin,",1,["bdk::keys::GeneratedKey"]],["impl Unpin for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl Unpin for KeyError",1,["bdk::keys::KeyError"]],["impl Unpin for KeychainKind",1,["bdk::types::KeychainKind"]],["impl Unpin for LocalOutput",1,["bdk::types::LocalOutput"]],["impl Unpin for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl Unpin for Utxo",1,["bdk::types::Utxo"]],["impl Unpin for Error",1,["bdk::wallet::coin_selection::Error"]],["impl Unpin for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl Unpin for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl Unpin for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Unpin for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Unpin for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Unpin for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl Unpin for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl Unpin for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl Unpin for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> Unpin for SignerWrapper<S>where
S: Unpin,",1,["bdk::wallet::signer::SignerWrapper"]],["impl Unpin for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl Unpin for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl Unpin for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl Unpin for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl Unpin for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl Unpin for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> Unpin for TxBuilder<'a, Cs, Ctx>where
Cs: Unpin,
Ctx: Unpin,",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl Unpin for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl Unpin for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl Unpin for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl Unpin for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl Unpin for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl Unpin for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl Unpin for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl Unpin for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl Unpin for Wallet",1,["bdk::wallet::Wallet"]],["impl Unpin for Update",1,["bdk::wallet::Update"]],["impl Unpin for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl Unpin for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl Unpin for NewError",1,["bdk::wallet::NewError"]],["impl Unpin for LoadError",1,["bdk::wallet::LoadError"]],["impl Unpin for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl Unpin for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl Unpin for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> Unpin for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Unpin for BlockEvent<B>where
B: Unpin,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> Unpin for SpkTxOutIndex<I>where
I: Unpin,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Unpin for ChainPosition<A>where
A: Unpin,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Unpin for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Unpin for FullTxOut<A>where
A: Unpin,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>where
I: Unpin,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>where
IA: Unpin,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>where
K: Unpin,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::keychain::ChangeSet"]],["impl Unpin for Balance",1,["bdk_chain::keychain::Balance"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>where
T: Unpin,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>where
T: Unpin,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>where
F: Unpin,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>where
F: Unpin,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Unpin for SpkIterator<D>where
D: Unpin,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> Unpin for SpkTxOutIndex<I>where
I: Unpin,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Unpin for ChainPosition<A>where
A: Unpin,",1,["bdk_chain::chain_data::ChainPosition"]],["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Unpin for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Unpin for FullTxOut<A>where
A: Unpin,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>where
I: Unpin,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>where
IA: Unpin,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>where
K: Unpin,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::keychain::ChangeSet"]],["impl Unpin for Balance",1,["bdk_chain::keychain::Balance"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>where
T: Unpin,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>where
T: Unpin,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>where
F: Unpin,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>where
F: Unpin,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> Unpin for SpkIterator<D>where
D: Unpin,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl Unpin for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> Unpin for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> Unpin for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Unpin for FullScanResult<K>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl Unpin for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl Unpin for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> Unpin for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl Unpin for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Unpin for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Unpin for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Unpin for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Unpin for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Unpin for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> Unpin for Bnb<'c, S>where
S: Unpin,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> Unpin for BnbIter<'c, 'f, S>where
S: Unpin,
'c: 'f,",1,["bdk_coin_select::bnb::BnbIter"]],["impl Unpin for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl Unpin for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl Unpin for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> Unpin for FullScanUpdate<K>",1,["bdk_esplora::FullScanUpdate"]],["impl Unpin for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> Unpin for EntryIter<'t, T>where
T: Unpin,",1,["bdk_file_store::entry_iter::EntryIter"]],["impl Unpin for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> Unpin for Store<C>where
C: Unpin,",1,["bdk_file_store::store::Store"]],["impl<C> Unpin for AggregateChangesetsError<C>where
C: Unpin,",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl Unpin for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl Unpin for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> Unpin for Persist<C>where
C: Unpin,",1,["bdk_persist::persist::Persist"]]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
index aaa9ff9634..cd3fa7e1d9 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl RefUnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl RefUnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl RefUnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl RefUnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl RefUnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl RefUnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl RefUnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> RefUnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> RefUnwindSafe for P2Pkh<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> RefUnwindSafe for P2Wpkh_P2Sh<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> RefUnwindSafe for P2Wpkh<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> RefUnwindSafe for P2TR<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::P2TR"]],["impl<K> RefUnwindSafe for Bip44<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip44"]],["impl<K> RefUnwindSafe for Bip44Public<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> RefUnwindSafe for Bip49<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip49"]],["impl<K> RefUnwindSafe for Bip49Public<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> RefUnwindSafe for Bip84<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip84"]],["impl<K> RefUnwindSafe for Bip84Public<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> RefUnwindSafe for Bip86<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip86"]],["impl<K> RefUnwindSafe for Bip86Public<K>where
K: RefUnwindSafe,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> RefUnwindSafe for DescriptorKey<Ctx>where
Ctx: RefUnwindSafe,",1,["bdk::keys::DescriptorKey"]],["impl RefUnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>where
Ctx: RefUnwindSafe,",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> RefUnwindSafe for GeneratedKey<K, Ctx>where
Ctx: RefUnwindSafe,
K: RefUnwindSafe,",1,["bdk::keys::GeneratedKey"]],["impl RefUnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl RefUnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl RefUnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl RefUnwindSafe for LocalOutput",1,["bdk::types::LocalOutput"]],["impl RefUnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl RefUnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl RefUnwindSafe for Error",1,["bdk::wallet::coin_selection::Error"]],["impl RefUnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl RefUnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl RefUnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl RefUnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl RefUnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl RefUnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl RefUnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl RefUnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl RefUnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> RefUnwindSafe for SignerWrapper<S>where
S: RefUnwindSafe,",1,["bdk::wallet::signer::SignerWrapper"]],["impl RefUnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !RefUnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl RefUnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl RefUnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl RefUnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl RefUnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !RefUnwindSafe for TxBuilder<'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl RefUnwindSafe for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl RefUnwindSafe for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl RefUnwindSafe for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl RefUnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl RefUnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl RefUnwindSafe for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl !RefUnwindSafe for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl RefUnwindSafe for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl !RefUnwindSafe for Wallet",1,["bdk::wallet::Wallet"]],["impl RefUnwindSafe for Update",1,["bdk::wallet::Update"]],["impl RefUnwindSafe for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl RefUnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl !RefUnwindSafe for NewError",1,["bdk::wallet::NewError"]],["impl !RefUnwindSafe for LoadError",1,["bdk::wallet::LoadError"]],["impl !RefUnwindSafe for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl RefUnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl RefUnwindSafe for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> RefUnwindSafe for Emitter<'c, C>where
C: RefUnwindSafe,",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> RefUnwindSafe for BlockEvent<B>where
B: RefUnwindSafe,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> RefUnwindSafe for SpkTxOutIndex<I>where
I: RefUnwindSafe,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> RefUnwindSafe for ChainPosition<A>where
A: RefUnwindSafe,",1,["bdk_chain::chain_data::ChainPosition"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> RefUnwindSafe for FullTxOut<A>where
A: RefUnwindSafe,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>where
A: RefUnwindSafe,
I: RefUnwindSafe,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>where
A: RefUnwindSafe,
IA: RefUnwindSafe,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for ChangeSet<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::ChangeSet"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> RefUnwindSafe for TxGraph<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>where
A: RefUnwindSafe,
T: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>where
A: RefUnwindSafe,
T: RefUnwindSafe,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> RefUnwindSafe for ChangeSet<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> RefUnwindSafe for SpkIterator<D>where
D: RefUnwindSafe,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> RefUnwindSafe for SpkTxOutIndex<I>where
I: RefUnwindSafe,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> RefUnwindSafe for ChainPosition<A>where
A: RefUnwindSafe,",1,["bdk_chain::chain_data::ChainPosition"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> RefUnwindSafe for FullTxOut<A>where
A: RefUnwindSafe,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>where
A: RefUnwindSafe,
I: RefUnwindSafe,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>where
A: RefUnwindSafe,
IA: RefUnwindSafe,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for ChangeSet<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::ChangeSet"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> RefUnwindSafe for TxGraph<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>where
A: RefUnwindSafe,
T: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>where
A: RefUnwindSafe,
T: RefUnwindSafe,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> RefUnwindSafe for ChangeSet<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> RefUnwindSafe for SpkIterator<D>where
D: RefUnwindSafe,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !RefUnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> RefUnwindSafe for SyncResult<A>where
A: RefUnwindSafe,",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !RefUnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> RefUnwindSafe for FullScanResult<K>where
K: RefUnwindSafe,",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl RefUnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl RefUnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> RefUnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl RefUnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl RefUnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl RefUnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl RefUnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl RefUnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl RefUnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> RefUnwindSafe for Bnb<'c, S>where
S: RefUnwindSafe,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !RefUnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl RefUnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl RefUnwindSafe for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl RefUnwindSafe for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> RefUnwindSafe for FullScanUpdate<K>where
K: RefUnwindSafe,",1,["bdk_esplora::FullScanUpdate"]],["impl RefUnwindSafe for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> RefUnwindSafe for EntryIter<'t, T>where
T: RefUnwindSafe,",1,["bdk_file_store::entry_iter::EntryIter"]],["impl !RefUnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> RefUnwindSafe for Store<C>where
C: RefUnwindSafe,",1,["bdk_file_store::store::Store"]],["impl<C> !RefUnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl !RefUnwindSafe for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl !RefUnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> !RefUnwindSafe for Persist<C>",1,["bdk_persist::persist::Persist"]]],
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
index f5a11d3912..33e67e8beb 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,10 +1,9 @@
(function() {var implementors = {
"bdk":[["impl UnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl UnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl UnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl UnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl UnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl UnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl UnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> UnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> UnwindSafe for P2Pkh<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> UnwindSafe for P2Wpkh_P2Sh<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> UnwindSafe for P2Wpkh<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> UnwindSafe for P2TR<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::P2TR"]],["impl<K> UnwindSafe for Bip44<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip44"]],["impl<K> UnwindSafe for Bip44Public<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> UnwindSafe for Bip49<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip49"]],["impl<K> UnwindSafe for Bip49Public<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> UnwindSafe for Bip84<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip84"]],["impl<K> UnwindSafe for Bip84Public<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> UnwindSafe for Bip86<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip86"]],["impl<K> UnwindSafe for Bip86Public<K>where
K: UnwindSafe,",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> UnwindSafe for DescriptorKey<Ctx>where
Ctx: UnwindSafe,",1,["bdk::keys::DescriptorKey"]],["impl UnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> UnwindSafe for ExtendedKey<Ctx>where
Ctx: UnwindSafe,",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> UnwindSafe for GeneratedKey<K, Ctx>where
Ctx: UnwindSafe,
K: UnwindSafe,",1,["bdk::keys::GeneratedKey"]],["impl UnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl UnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl UnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl UnwindSafe for LocalOutput",1,["bdk::types::LocalOutput"]],["impl UnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl UnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl UnwindSafe for Error",1,["bdk::wallet::coin_selection::Error"]],["impl UnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl UnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl UnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl UnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl UnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl UnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl UnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl UnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl UnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> UnwindSafe for SignerWrapper<S>where
S: UnwindSafe,",1,["bdk::wallet::signer::SignerWrapper"]],["impl UnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !UnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl UnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl UnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl UnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl UnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !UnwindSafe for TxBuilder<'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl UnwindSafe for AddUtxoError",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl UnwindSafe for AddForeignUtxoError",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl UnwindSafe for AllowShrinkingError",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl UnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl UnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl UnwindSafe for MiniscriptPsbtError",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl !UnwindSafe for CreateTxError",1,["bdk::wallet::error::CreateTxError"]],["impl UnwindSafe for BuildFeeBumpError",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl !UnwindSafe for Wallet",1,["bdk::wallet::Wallet"]],["impl UnwindSafe for Update",1,["bdk::wallet::Update"]],["impl UnwindSafe for ChangeSet",1,["bdk::wallet::ChangeSet"]],["impl UnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl !UnwindSafe for NewError",1,["bdk::wallet::NewError"]],["impl !UnwindSafe for LoadError",1,["bdk::wallet::LoadError"]],["impl !UnwindSafe for NewOrLoadError",1,["bdk::wallet::NewOrLoadError"]],["impl UnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]],["impl UnwindSafe for ApplyBlockError",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> UnwindSafe for Emitter<'c, C>where
C: RefUnwindSafe,",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> UnwindSafe for BlockEvent<B>where
B: UnwindSafe,",1,["bdk_bitcoind_rpc::BlockEvent"]]],
-"bdk_chain":[["impl<I> UnwindSafe for SpkTxOutIndex<I>where
I: UnwindSafe + RefUnwindSafe,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> UnwindSafe for ChainPosition<A>where
A: UnwindSafe,",1,["bdk_chain::chain_data::ChainPosition"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> UnwindSafe for FullTxOut<A>where
A: UnwindSafe,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>where
A: RefUnwindSafe,
I: UnwindSafe,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>where
A: RefUnwindSafe,
IA: UnwindSafe,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>where
K: UnwindSafe + RefUnwindSafe,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> UnwindSafe for ChangeSet<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::ChangeSet"]],["impl UnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> UnwindSafe for TxGraph<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>where
A: RefUnwindSafe,
T: UnwindSafe,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>where
A: RefUnwindSafe,
T: UnwindSafe,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> UnwindSafe for ChangeSet<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>where
A: RefUnwindSafe,
F: UnwindSafe,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>where
A: RefUnwindSafe,
F: UnwindSafe,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> UnwindSafe for SpkIterator<D>where
D: UnwindSafe,",1,["bdk_chain::spk_iter::SpkIterator"]]],
+"bdk_chain":[["impl<I> UnwindSafe for SpkTxOutIndex<I>where
I: UnwindSafe + RefUnwindSafe,",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> UnwindSafe for ChainPosition<A>where
A: UnwindSafe,",1,["bdk_chain::chain_data::ChainPosition"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> UnwindSafe for FullTxOut<A>where
A: UnwindSafe,",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>where
A: RefUnwindSafe,
I: UnwindSafe,",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>where
A: RefUnwindSafe,
IA: UnwindSafe,",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>where
K: UnwindSafe + RefUnwindSafe,",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> UnwindSafe for ChangeSet<K>where
K: RefUnwindSafe,",1,["bdk_chain::keychain::ChangeSet"]],["impl UnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> UnwindSafe for TxGraph<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>where
A: RefUnwindSafe,
T: UnwindSafe,",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>where
A: RefUnwindSafe,
T: UnwindSafe,",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> UnwindSafe for ChangeSet<A>where
A: RefUnwindSafe,",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>where
A: RefUnwindSafe,
F: UnwindSafe,",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>where
A: RefUnwindSafe,
F: UnwindSafe,",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<D> UnwindSafe for SpkIterator<D>where
D: UnwindSafe,",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !UnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> UnwindSafe for SyncResult<A>where
A: RefUnwindSafe,",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !UnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> UnwindSafe for FullScanResult<K>where
K: RefUnwindSafe,",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl UnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl UnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> UnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl UnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl UnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl UnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl UnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl UnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl UnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> UnwindSafe for Bnb<'c, S>where
S: UnwindSafe,",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !UnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl UnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_electrum":[["impl UnwindSafe for RelevantTxids",1,["bdk_electrum::electrum_ext::RelevantTxids"]],["impl UnwindSafe for ElectrumUpdate",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]],
-"bdk_esplora":[["impl<K> UnwindSafe for FullScanUpdate<K>where
K: RefUnwindSafe,",1,["bdk_esplora::FullScanUpdate"]],["impl UnwindSafe for SyncUpdate",1,["bdk_esplora::SyncUpdate"]]],
"bdk_file_store":[["impl<'t, T> !UnwindSafe for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl !UnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<C> UnwindSafe for Store<C>where
C: UnwindSafe,",1,["bdk_file_store::store::Store"]],["impl<C> !UnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl !UnwindSafe for FileError",1,["bdk_file_store::FileError"]]],
"bdk_hwi":[["impl UnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]],
"bdk_persist":[["impl<C> !UnwindSafe for Persist<C>",1,["bdk_persist::persist::Persist"]]],
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 73e600bdee..1f7bc40b2f 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,10 +1,10 @@
var searchIndex = JSON.parse('{\
-"bdk":{"doc":"bdk","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,3,4,3,13,3,13,13,13,13,4,8,4,13,13,13,13,4,4,13,13,13,13,13,13,13,3,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Persist","Persist","Persist","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","get_balance","get_descriptor_for_keychain","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load","local_chain","mark_used","network","network","new","new_no_persist","new_no_persist_with_genesis_hash","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","provide","provide","provide","provide","provide","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::ApplyBlockError","","bdk::wallet::InsertTxError","","bdk::wallet::NewOrLoadError","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Error","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::error::CreateTxError","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","","","An unspent transaction output (UTXO).","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls 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 Psbt structure.","The weight of the witness data and scriptSig expressed in â¦","Get the sequence number if an explicit sequence number has â¦","","","","","","","","","","","","","","","","","Get the TxOut of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","The location of the output.","The information about the input we require to add it to a â¦","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy â¦","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a Descriptor that can contain extended keys â¦","Trait implemented on Descriptors to add a method to â¦","Alias for the type of maps that represent derivation paths â¦","Trait for types which can be converted into an â¦","The consensus key associated with the type. Must be a â¦","Legacy ScriptContext To be used as P2SH scripts For â¦","The top-level miniscript abstract syntax tree (AST).","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type â¦","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key â¦","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one â¦","","","Get a reference to the inner AstElem representing the root â¦","","Replaces all wildcards (i.e. /*) in the descriptor with a â¦","","","","","","","","","Enumerates all child nodes of the current AST node (self) â¦","Attempt to produce a non-malleable witness template given â¦","Attempt to produce a malleable witness template given the â¦","","Depending on script Context, some of the Terminals might â¦","","","Depending on script Context, some of the script resource â¦","","Check the consensus + policy(if not disabled) rules that â¦","Consensus rules at the Miniscript satisfaction time. It is â¦","","","Policy rules at the Miniscript satisfaction time. It is â¦","","","Check the consensus + policy(if not disabled) rules â¦","Each context has slightly different rules on what Pks are â¦","","","Depending on ScriptContext, fragments can be malleable. â¦","","","Check whether the given satisfaction is valid under the â¦","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for Self::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.","Add type information(Type and Extdata) to Miniscript based â¦","Create a new Miniscript from a Terminal node and a Type â¦","","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).","Extracts the AstElem representing the root of the â¦","Get as many descriptors as different paths in this â¦","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple â¦","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all â¦","Creates a new PkIter iterator that will iterate over all â¦","","","Lifting corresponds to conversion of a miniscript into a â¦","Depending on script context, the size of a satifaction â¦","","","Maximum size, in bytes, of a satisfying witness. For â¦","Computes an upper bound on the weight of a satisfying â¦","Maximum number of witness elements used to satisfy the â¦","Computes an upper bound on the difference between a â¦","Local helper function to display error messages with â¦","","","Create a new bare descriptor from witness script Errors â¦","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when â¦","Create a new sh sortedmulti descriptor with threshold 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 AST.","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts donât clear sanity â¦","Attempt to parse an miniscript with extra features that â¦","","","","","Get the len of public key when serialized based on context â¦","","","Returns a plan if the provided assets are sufficient to â¦","Returns a plan if the provided assets are sufficient to â¦","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the â¦","Attempts to produce a non-malleable satisfying witness and â¦","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the â¦","Computes the 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","","","Substitutes raw public keys hashes with the public keys as â¦","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using â¦","Translates a struct from one generic to another where the â¦","","","","","","","","","The correctness and malleability type information for the â¦","","","","","Computes the scriptSig that will be in place for an â¦","","","","","Whether the miniscript can exceed the resource â¦","Compute the checksum of a descriptor, excludes any â¦","Compute the checksum bytes of a descriptor, excludes any â¦","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on â¦","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesnât match its checksum","Invalid HD Key path, such as having a wildcard but a â¦","Error thrown while working with keys","Miniscript error","The descriptor contains multipath keys","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}/*)","BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)","BIP86 public template. Expands to tr(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)","P2TR template. Expands to a descriptor tr(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.","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).","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","Multiple extended private keys.","Multiple extended public keys.","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 â¦","","","","","","","","","","","","","","","","","","","","","","","","","Attempt to produce a witness template given the assets â¦","Depending on script Context, some of the Terminals might â¦","Depending on script Context, some of the script resource â¦","Check the consensus + policy(if not disabled) rules that â¦","Consensus rules at the Miniscript satisfaction time. It is â¦","Policy rules at the Miniscript satisfaction time. It is â¦","Check the consensus + policy(if not disabled) rules â¦","Each context has slightly different rules on what Pks are â¦","Depending on ScriptContext, fragments can be malleable. â¦","Check whether the given satisfaction is valid under the â¦","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be âcompressedâ or not","","","Deprecated name for Self::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","Returns a vector containing the full derivation paths from â¦","Generate a key given the options with a random entropy","Generate a key with the default options and a random â¦","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls 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","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the ExtendedKey into an Xpriv for the given â¦","Transform the ExtendedKey into an Xpub for the given â¦","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is â¦","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is 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ââ¦","A derived address and the index it was found at. For â¦","An error that may occur when applying a block to Wallet.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original â¦","The changes made to a wallet by applying an Update.","The error variant that occurs when the caller attempts to â¦","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into â¦","Trait to check if a value is below the dust limit. We are â¦","The error type when loading a Wallet from persistence.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","The error type when constructing a fresh Wallet.","Error type for when we try load a Wallet from persistence â¦","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","We were unable to write the walletâs data to the â¦","Loading data from the persistence backend failed.","Either writing to or loading from the persistence backend â¦","Occurs when the connected_to hash does not match the hash â¦","An update to Wallet.","A Bitcoin wallet","","Add an external signer","Address","Get unbounded script pubkey iterators for both Internal â¦","","Introduces a block of height to the wallet, and tries to â¦","Applies relevant transactions from block of height to the â¦","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes â¦","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this â¦","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if tx â¦","Calculate the FeeRate for a given transaction.","Informs the wallet that you no longer intend to broadcast â¦","Update for the walletâs internal LocalChain.","Changes to the LocalChain.","Get all the checkpoints the wallet is currently storing â¦","","","","","","","Coin selection","Commits all currently 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 â¦","","","","","","Errors that can be thrown by the Wallet","Wallet export","Finalize a PSBT, i.e., for each input determine if â¦","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the balance, separated into available, â¦","Returns the descriptor used to create addresses for a â¦","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a CanonicalTx â¦","Returns the utxo owned by this wallet corresponding to â¦","Update for the walletâs internal TxGraph.","All coinbase outputs not yet matured","Child index of this address","Changes to IndexedTxGraph.","Add a new checkpoint to the walletâs internal view of â¦","Add a transaction to the walletâs internal view of the â¦","Inserts a TxOut at OutPoint into the walletâs â¦","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).","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","Contains the last active derivation indices per keychain (Kâ¦","Returns the latest checkpoint.","List all relevant outputs (includes both spent and â¦","Return the list of unspent outputs of this wallet","List addresses that are revealed but unused.","Load Wallet from the given persistence backend.","Get a reference to the inner LocalChain.","Marks an address used of the given keychain at index.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty Wallet.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom â¦","Either loads Wallet from persistence, or initializes it if â¦","Either loads Wallet from persistence, or initializes it if â¦","Initialize an empty Wallet with a custom genesis hash.","The index of the next address that you would get if you â¦","Get the next unused address for the given keychain, i.e. â¦","Peek an address of the given keychain at index without â¦","Return the spending policies for the walletâs descriptor","","","","","","Return the âpublicâ version of the walletâs â¦","Reveal addresses up to and including the target index and â¦","Attempt to reveal the next address of the given keychain.","Return the secp256k1 context used for all signing â¦","Compute the txâs sent and received amounts (in satoshis).","","","Sign a transaction with all the walletâs signers, in the â¦","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns the changes that will be committed with the next â¦","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","","","","","Get an unbounded script pubkey iterator for the given â¦","Undoes the effect of mark_used and returns whether the â¦","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","Deterministically generate a unique name given the â¦","Block hash of connected_to.","Expected block hash of connected_to, as derived from block.","The internal chainâs tip height.","The introduced transactionâs confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","Branch and bound coin selection tries to avoid needing a â¦","Branch and bound coin selection possible attempts with â¦","Branch and bound coin selection","Itâs possible to create spendable output from excess â¦","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not â¦","Errors that can be thrown by the coin_selection module","Remaining amount after performing coin selection","Walletâs UTXO set is not enough to cover recipientâs â¦","Simple and dumb coin selection","Itâs not possible to create spendable output from excess â¦","OldestFirstCoinSelection always picks the utxo with the â¦","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after â¦","The calculated fee for the drain TxOut with the selected â¦","Threshold to consider amount as dust for this particular â¦","The deducted change output fee","Exceeding amount of current selection over outgoing value â¦","Error returned from Wallet::build_fee_bump","The change_policy was set but the wallet does not have a â¦","There was an error with coin selection","Descriptor key conversion error","Error returned from TxBuilder::finish","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than â¦","Node doesnât have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than â¦","Walletâs UTXO set is not enough to cover recipientâs â¦","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Requested LockTime is less than is required to spend from â¦","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent â¦","In order to use the TxBuilder::add_global_xpubs option â¦","Missing non_witness_utxo on foreign utxo for given OutPoint","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","Return error type for â¦","We were unable to load wallet data from or write wallet â¦","There was a problem while extracting and manipulating â¦","Partially signed bitcoin transaction error","Cannot enable RBF with a Sequence >= 0xFFFFFFFE","Cannot enable RBF with Sequence given a required OP_CSV","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already â¦","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the â¦","Happens when trying to spend an UTXO that is not in the â¦","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version â0â","Requested transaction version 1, but at least 2 is needed â¦","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV Sequence","Sats needed for some transaction","Given RBF Sequence","Requested LockTime","Required LockTime","Required fee absolute value (satoshi)","Required fee rate","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.","To be used only by external libraries implementing â¦","The fingerprint of a BIP32 extended key","The signer wonât sign leaves other than the ones â¦","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but â¦","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the â¦","The private key is missing for the required public key","The 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 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 â¦","Whether to remove taproot specific fields from the PSBT on â¦","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with â¦","Returns the list of signers in the container, sorted by â¦","Specifies which Taproot script-spend leaves we should sign â¦","","","","","","","","","Whether the signer should trust the 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","Error returned from TxBuilder::add_foreign_utxo.","Error returned from TxBuilder::add_utxo and â¦","Error returned from TxBuilder::allow_shrinking","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 â¦","Requested outpoint doesnât exist in the tx (vout greater â¦","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transactionâs inputs and outputs","Happens when trying to spend an UTXO that is not in the â¦","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence â¦","Fill-in the 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 The fee_absolute method refers to the â¦","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the 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).","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","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,5,0,1,0,5,0,0,0,0,0,0,1,1,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,4,5,1,3,3,0,0,1,3,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,1,3,4,5,3,3,0,5,3,1,0,4,5,1,3,0,0,1,3,4,5,1,3,4,5,1,3,4,5,5,3,1,3,4,5,4,0,1,3,4,5,0,202,202,202,17,0,0,0,0,0,0,0,0,48,0,0,26,17,0,0,0,17,26,0,17,17,17,26,17,35,36,23,23,17,17,35,36,23,17,35,36,23,23,23,23,0,48,35,36,48,36,48,48,35,36,48,35,36,48,48,35,36,48,35,36,48,35,36,0,17,35,36,23,17,35,36,23,17,35,36,23,23,17,17,17,17,17,23,17,23,17,35,36,23,0,17,23,23,203,17,23,17,17,17,35,36,23,23,17,23,17,17,17,17,17,17,17,35,36,23,23,23,17,23,23,23,17,23,23,23,17,17,23,23,17,17,35,36,23,17,35,36,23,23,17,167,62,17,17,23,23,23,17,23,23,48,35,36,23,17,23,17,48,35,36,17,17,17,17,17,17,17,17,17,17,17,17,17,17,23,48,23,17,23,23,17,35,36,23,48,35,36,17,17,0,23,17,23,17,23,23,17,17,23,17,23,48,35,36,23,0,17,35,36,23,17,23,17,48,48,17,23,17,35,36,23,17,35,36,23,23,17,35,36,23,17,17,35,36,23,23,0,0,47,47,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,83,80,80,0,84,0,0,83,82,0,83,83,80,80,80,83,84,45,80,84,84,0,0,0,45,45,82,83,83,0,0,83,83,83,82,82,83,84,46,85,80,45,82,83,84,46,85,80,45,82,83,84,46,85,45,82,83,84,46,85,45,46,85,85,82,83,84,46,85,80,82,83,84,46,85,80,80,45,82,83,84,84,46,46,85,80,45,46,82,85,83,46,82,83,84,46,85,80,45,83,84,85,46,85,80,46,46,82,83,84,46,85,85,82,83,84,46,85,45,80,82,83,84,46,85,80,45,82,83,84,46,85,80,45,82,83,84,46,85,80,45,82,83,84,46,85,80,45,204,204,204,205,206,207,206,207,206,207,206,207,206,207,208,209,210,211,212,213,213,212,214,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,216,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,86,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,76,0,0,0,0,217,217,0,0,110,0,0,0,0,76,76,76,48,0,0,22,76,76,107,26,217,114,0,114,0,0,22,26,107,0,0,0,0,22,0,110,107,26,0,218,26,114,105,112,22,106,76,103,26,107,108,109,110,114,105,112,22,106,76,103,26,107,108,109,110,103,48,48,48,48,48,48,48,48,48,105,22,106,103,26,107,108,109,110,105,22,106,103,26,107,108,109,110,103,26,108,110,106,106,105,26,26,103,22,103,26,107,108,109,110,112,22,106,76,76,103,103,26,26,107,107,108,109,110,103,114,114,114,105,112,22,106,76,76,76,103,26,26,107,108,109,110,112,112,26,107,103,26,26,217,219,217,219,114,26,103,26,108,110,114,105,112,22,106,76,103,26,107,108,109,110,26,87,93,105,105,112,26,107,93,114,105,105,26,107,114,114,26,218,22,26,107,218,22,218,22,26,26,103,108,109,103,0,26,48,103,103,0,48,103,26,108,109,48,112,103,26,108,110,48,103,76,103,103,103,26,48,103,0,105,22,106,103,26,107,108,109,110,107,76,103,26,107,48,48,103,114,105,112,22,106,76,103,26,107,108,109,110,114,105,112,22,106,76,103,26,107,108,109,110,114,105,112,22,106,76,103,26,107,108,109,110,114,105,112,22,106,76,103,26,107,108,109,110,0,220,220,220,0,0,0,154,0,153,150,151,152,0,0,0,152,152,151,151,0,0,150,151,152,150,151,152,154,0,0,122,123,146,123,128,123,123,123,123,123,122,123,134,128,146,150,151,152,153,154,122,123,134,128,146,150,151,152,153,154,123,123,123,123,123,134,128,123,122,134,128,122,134,128,0,123,122,122,134,128,146,123,123,123,122,128,122,128,146,0,0,123,122,122,123,134,128,146,146,150,150,151,151,152,152,153,153,154,154,122,123,134,128,128,128,146,150,151,152,153,154,123,123,123,123,123,123,134,122,146,128,123,123,123,122,123,134,128,146,150,151,152,153,154,221,128,123,146,123,134,123,123,123,123,123,123,123,123,128,123,123,123,123,123,123,123,123,123,123,150,151,152,153,154,123,123,123,123,123,122,128,123,0,123,123,122,134,128,122,146,150,151,152,153,154,122,123,122,122,122,123,134,128,146,150,151,152,153,154,122,123,134,128,146,150,151,152,153,154,0,123,122,123,134,128,146,150,151,152,153,154,123,123,122,122,123,134,128,146,150,151,152,153,154,0,222,222,223,223,224,225,224,225,178,178,0,179,0,0,0,0,0,178,0,179,0,178,179,177,174,175,176,178,179,177,174,175,176,174,175,176,174,175,176,194,174,175,176,0,174,175,176,177,177,178,178,179,177,174,175,176,178,179,177,174,175,176,178,179,177,174,175,176,177,176,178,177,177,174,175,176,178,178,179,177,174,175,176,178,179,177,174,175,176,178,179,177,174,175,176,178,179,177,174,175,176,226,226,227,228,228,227,228,0,161,161,180,0,161,161,140,161,161,140,161,161,0,161,161,161,161,161,180,161,161,161,161,161,161,140,140,161,140,180,161,161,180,161,140,180,161,140,180,180,180,180,161,161,140,140,180,161,161,161,161,161,161,140,180,161,140,180,161,140,180,180,161,140,180,161,140,180,161,140,180,161,140,180,161,140,229,230,229,230,231,231,232,233,0,0,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,188,183,188,149,183,188,149,0,149,149,149,185,149,149,149,149,149,149,149,188,183,185,149,0,0,0,0,0,0,0,0,185,0,0,149,44,148,148,44,148,183,149,185,187,124,44,148,188,183,149,185,187,124,44,148,188,44,183,185,187,124,44,148,188,183,185,187,124,44,148,188,183,124,124,44,148,188,187,234,187,187,187,183,185,124,188,44,183,149,149,185,187,124,44,148,188,183,183,183,149,149,185,187,124,44,148,188,183,234,187,187,187,44,183,149,185,187,124,44,148,188,187,44,183,124,149,44,148,148,235,187,187,187,125,187,148,44,148,183,185,187,124,44,148,188,149,148,148,183,149,185,187,124,44,148,188,183,149,185,187,124,44,148,188,183,149,185,187,124,44,148,188,183,149,185,187,124,44,148,188,236,0,0,0,199,0,198,198,0,0,195,195,197,195,198,199,0,0,0,196,199,139,139,139,139,139,139,139,139,139,139,141,138,139,196,195,197,199,198,141,138,139,196,195,197,199,198,139,141,138,139,199,198,141,138,139,199,198,199,198,139,139,141,138,199,198,139,139,139,139,139,199,198,139,139,139,141,138,139,196,196,195,195,197,197,199,198,141,138,139,196,195,197,199,198,199,198,139,141,138,139,196,195,197,199,198,139,139,139,139,139,199,198,139,196,195,197,139,139,199,141,138,139,199,198,196,195,197,141,138,139,196,195,197,199,198,141,138,139,196,195,197,199,198,141,138,139,196,195,197,199,198,139,139,141,138,139,196,195,197,199,198,237,237],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[1,1],[3,3],[4,4],[5,5],[[]],[[]],[[]],[[]],[[1,1],6],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[3]]]],[[1,1],8],[[3,3],8],[[4,4],8],[[5,5],8],[[1,9],10],[[3,9],10],[[4,9],10],[[5,9],10],0,[[]],[[]],[[]],[[]],[1],[3],[[]],[[]],[[]],[[]],0,0,0,[5,11],0,[[1,1],[[12,[6]]]],0,0,[5,[[12,[13]]]],[1,7],[3,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[5,14],0,[[],15],[[],15],[[],15],[[],15],0,[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,18],[[7,[[20,[19]],21]]]],[[],22],[[],22],[23,24],[23,[[25,[23]]]],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23,[[31,[23,30]]]],[23,[[33,[32]]]],[23,[[33,[32]]]],0,[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],0,[17,17],[35,35],[36,36],[23,23],[[]],[[]],[[]],[[]],[[17,17],6],[[35,35],6],[[36,36],6],[[23,23],6],[23,8],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[[17,[28]],37],[[7,[[17,[38]],29]]]],[[[17,[26]],37,27],[[7,[[17,[38]],29]]]],[17,39],[[],[[7,[17]]]],[[],[[7,[23]]]],[[[17,[26]]],40],[23,41],[[17,17],8],[[35,35],8],[[36,36],8],[[23,23],8],0,[17,[[7,[41,21]]]],0,[[23,42],[[7,[43]]]],[[44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],44,45,37],[[7,[[12,[46]],47]]]],[[[23,[26,48]],44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],37,49,[50,[27]]],[[7,[12,29]]]],[[17,9],[[7,[51]]]],[[17,9],[[7,[51]]]],[[35,9],[[7,[51]]]],[[36,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[17,8],[23,8],[52,17],[53,17],[54,17],[55,17],[56,17],[57,17],[[]],[[]],[[]],[[]],[24,[[7,[23,21]]]],[[24,58,59],23],[16,[[7,[17,21]]]],[16,[[7,[23,21]]]],[[16,42],[[7,[23,21]]]],[16,[[7,[23,21]]]],[60,[[7,[17,21]]]],[60,[[7,[23,21]]]],[[23,61],[[12,[23]]]],[[23,61],12],[17,[[7,[21]]]],[17,[[7,[21]]]],[23,8],[23,8],[[[17,[26]]],8],[17],[35],[36],[23],[[]],[[]],[[]],[[]],[23,24],[[[17,[26]]],[[7,[[31,[[17,[26]],30]],21]]]],[[37,18],[[7,[47]]]],[[62,37,18],[[7,[47]]]],[[[17,[26]]],8],[[[17,[26]]],8],[23,8],[23,63],[23,64],[17,[[7,[65,21]]]],[23,[[7,[65,21]]]],[23,[[7,[66]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[[],16],[[],16],[[],16],[[[23,[67]]],[[7,[17,21]]]],[[],17],[[],[[7,[17,21]]]],[[[23,[35]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[55,17],[53,17],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[[[12,[68]]],[[7,[17,21]]]],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],0,[23,[[7,[21]]]],[49,[[7,[23,21]]]],[[37,16],[[7,[21]]]],[49,[[7,[23,21]]]],[[49,42],[[7,[23,21]]]],[[17,17],[[12,[6]]]],[[35,35],[[12,[6]]]],[[36,36],[[12,[6]]]],[[23,23],[[12,[6]]]],[[],61],[[],61],[[],61],[[[17,[28]]],[[7,[69,[17,[28]]]]]],[[[17,[28]]],[[7,[69,[17,[28]]]]]],0,[23,8],[17,[[7,[21]]]],[23,[[7,[43]]]],[[17,70],[[7,[21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[17,[[7,[41,21]]]],[17,41],[23,61],[17,7],[23,7],[[],71],[[],71],[[],71],[[23,72],23],0,[[]],[[]],[[]],[[]],[[],73],[[],73],[[[17,[26]],72],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[17,[[7,[74]]]],[23,[[7,[74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],15],[[],15],[[],15],[[],15],[17,41],[[]],[[]],[[]],[[]],[23,8],[16,[[7,[73,47]]]],[16,[[7,[47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[47,9],10],[[47,9],10],[75,47],[[]],[76,47],[77,47],[78,47],[79,47],[21,47],[80,47],[[]],[81],[[],73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[46,46],[85,85],[45,45],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],8],[[83,83],8],[[84,84],8],[[46,46],8],[[85,85],8],[[80,80],8],[[82,9],10],[[83,9],10],[[84,9],10],[[46,9],10],[[85,9],10],[[80,9],10],[[80,9],10],[[45,9],10],[[]],[[]],[[]],[8,84],[[]],[83,46],[[]],[[]],[[]],[[46,72],[[7,[85,80]]]],[82],[85],[83,73],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,8],[84,8],[85,8],0,[[85,85],[[12,[6]]]],[81],[46,8],0,[82,7],[83,7],[84,7],[46,7],[85,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[7,[86,47]]]],[[[88,[[87,[35]]]],18],[[7,[86,47]]]],[[[89,[[87,[36]]]],18],[[7,[86,47]]]],[[[90,[[87,[36]]]],18],[[7,[86,47]]]],[[[92,[[87,[91]]]],18],[[7,[86,47]]]],[[[94,[[93,[35]]]],18],[[7,[86,47]]]],[[[95,[[93,[35]]]],18],[[7,[86,47]]]],[[[96,[[93,[36]]]],18],[[7,[86,47]]]],[[[97,[[93,[36]]]],18],[[7,[86,47]]]],[[[98,[[93,[36]]]],18],[[7,[86,47]]]],[[[99,[[93,[36]]]],18],[[7,[86,47]]]],[[[100,[[93,[91]]]],18],[[7,[86,47]]]],[[[101,[[93,[91]]]],18],[[7,[86,47]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[86,37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],102],[[],22],[[26,27],[[7,[28,29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[103,[[33,[32]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[[105,[104,48]]],[[105,[104,48]]]],[22,22],[106,106],[103,103],[26,26],[107,107],[108,108],[109,109],[110,110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[103,103],6],[[26,26],6],[[108,108],6],[[110,110],6],0,[[],106],[[[105,[48]]]],[[26,27],[[7,[28,29]]]],[[],[[7,[26]]]],[103,41],[[22,22],8],[[103,103],8],[[26,26],8],[[107,107],8],[[108,108],8],[[109,109],8],[[110,110],8],[[[112,[[0,[111,48]]]],9],10],[[22,9],10],[[106,9],10],[[76,9],10],[[76,9],10],[[103,9],[[7,[51]]]],[[103,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[108,9],[[7,[51]]]],[[109,9],[[7,[51]]]],[[110,9],[[7,[51]]]],[103,8],[[]],[113,[[114,[48]]]],[115,[[114,[48]]]],[[]],[[]],[[]],[[]],[77,76],[21,76],[[]],[[]],[28,26],[[]],[[]],[[]],[[]],[[]],[[26,102],[[112,[48]]]],[[107,102],[[112,[48]]]],[16,[[7,[26]]]],[16,[[7,[107]]]],[60,[[7,[103,21]]]],[26,[[12,[116]]]],[26,[[31,[116,30]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[[114,[48]]],8],[26,8],[103],[26],[108],[110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,117],[[],[[7,[112,76]]]],[[[12,[118]],116],[[7,[112,76]]]],[[105,[12,[118]],116],[[7,[112,76]]]],[105,[[7,[112,76]]]],[[[112,[48]]],[[7,[[112,[48]],76]]]],[26,[[7,[[112,[48]],76]]]],[107,[[7,[[112,[48]],76]]]],[[],[[7,[114,76]]]],[[[114,[48]]],[[7,[[114,[48]],76]]]],[105,[[7,[114,76]]]],[[[105,[48]]]],[26,[[31,[26,30]]]],[107,[[31,[107,30]]]],[[[114,[48]],18],[[12,[113]]]],[[[114,[48]],18,37],115],[26,8],[[],8],[22,8],[26,8],[107,8],[[],8],[22,8],[[],8],[22,8],[26,8],[26,8],0,0,0,[103,[[7,[65,21]]]],[[],102],[26,119],[23,[[12,[61]]]],[103,61],[103,61],[[102,102],102],[[],16],[[61,[31,[30]]],[[7,[103,21]]]],[26,61],0,0,[23,[[7,[21]]]],[[[112,[48]],102],[[112,[48]]]],[[103,103],[[12,[6]]]],[[26,26],[[12,[6]]]],[[108,108],[[12,[6]]]],[[110,110],[[12,[6]]]],[[],61],0,[81],[103,[[7,[21]]]],[103,[[7,[[31,[[31,[2,30]],30]],21]]]],[103,61],[26,7],[[],71],[103,24],[[],102],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[107,37],[[7,[26,120]]]],[[],73],[[],73],[[],73],[[],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[103,[[7,[103,74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[12,[40]]]],[[],[[12,[121]]]],[61,[[12,[14]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[122,122],122],[[123,1,124,[126,[125]]]],0,[123,[[72,[1,[0,[127,104]]]]]],[[128,128]],[[123,129,27],[[7,[130]]]],[[123,129,27,131],[[7,[132]]]],[[123,133]],[[123,134],[[7,[130]]]],[123,135],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[123,136],[[7,[[139,[137,138]],140]]]],[123,[[139,[137,141]]]],[[123,142],[[7,[40,143]]]],[[123,142],[[7,[121,143]]]],[[123,142]],0,0,[123,144],[122,122],[134,134],[128,128],[[]],[[]],[[]],0,[123,[[145,[8]]]],0,[[],122],[[],134],[[],128],[146],[[123,1],[[12,[27]]]],[[123,49],12],[[123,1],73],[[],[[7,[122]]]],[[],[[7,[128]]]],[[122,122],8],[[128,128],8],[[146,146],8],0,0,[[123,147,148],[[7,[8,149]]]],[[122,9],[[7,[51]]]],[[122,9],[[7,[51]]]],[[123,9],10],[[134,9],10],[[128,9],10],[[146,9],10],[[146,9],10],[[150,9],10],[[150,9],10],[[151,9],10],[[151,9],10],[[152,9],10],[[152,9],10],[[153,9],10],[[153,9],10],[[154,9],10],[[154,9],10],[[]],[[]],[[]],[155,128],[[[158,[156,[157,[1]]]]],128],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[123,122],[[123,1],62],[[123,3,[12,[159]],8],[[7,[160,161]]]],[[123,1],[[126,[44]]]],[[123,136],[[12,[[162,[[126,[142]],156]]]]]],[[123,11],[[12,[3]]]],0,0,0,0,[[123,131],[[7,[8,163]]]],[[123,142,164],[[7,[8,153]]]],[[123,11,14]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,8],[128,8],[[123,49],8],0,[123,72],0,[123,165],[123,127],[123,127],[[123,1],166],[[167,[12,[167]],[0,[[168,[128]],169,170]]],[[7,[123,151]]]],[123,171],[[123,1,27],8],[123,18],0,[[167,[12,[167]],[0,[[168,[128]],169,170]],18],[[7,[123,150]]]],[[167,[12,[167]],18],[[7,[123,47]]]],[[167,[12,[167]],18,172],[[7,[123,47]]]],[[167,[12,[167]],[0,[[168,[128]],169,170]],18],[[7,[123,152]]]],[[167,[12,[167]],[0,[[168,[128]],169,170]],18,172],[[7,[123,152]]]],[[167,[12,[167]],[0,[[168,[128]],169,170]],18,172],[[7,[123,150]]]],[[123,1],27],[[123,1],[[145,[146]]]],[[123,1,27],146],[[123,1],[[7,[[12,[46]],47]]]],[81],[81],[81],[81],[81],[[123,1],[[12,[62]]]],[[123,1,27],[[145,[127]]]],[[123,1],[[145,[146]]]],[123,37],[[123,142]],[122,7],[128,7],[[123,147,148],[[7,[8,149]]]],0,[123,173],[123,128],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[122,40],[123,127],0,[122,40],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[123,135],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[123,1],[[0,[127,104]]]],[[123,1,27],8],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,18,37],[[7,[73,47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[174,174],[175,175],[176,176],[[]],[[]],[[]],[[[31,[4]],[31,[4]],121,40,49],[[7,[177,178]]]],[[174,[31,[4]],[31,[4]],121,40,49],[[7,[177,178]]]],[[175,[31,[4]],[31,[4]],121,40,49],[[7,[177,178]]]],[[176,[31,[4]],[31,[4]],121,40,49],[[7,[177,178]]]],[[40,121,49],179],[[],174],[[],175],[[],176],0,0,[[178,9],10],[[178,9],10],[[179,9],10],[[177,9],10],[[174,9],10],[[175,9],10],[[176,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[177,40],[40,176],[81],0,[177,40],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[180,180],[[]],[[180,9],10],[[180,9],10],[[161,9],10],[[161,9],10],[[140,9],10],[[140,9],10],[[]],[178,161],[181,161],[180,161],[80,161],[47,161],[[]],[[]],[[]],[[]],[[]],[81],[81],[81],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[182,[[12,[73]]]],[182,73],[[],[[7,[182]]]],[[123,16,8],[[7,[182,16]]]],[[182,9],10],[[]],[16,[[7,[182]]]],[[]],0,[182,7],[182,73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[44,183,124,[126,[125]]],[[12,[[126,[125]]]]]],0,0,[[44,37],184],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[184,17,37],44],[183,183],[185,185],[[[187,[[0,[104,186,111,104]]]]],[[187,[[0,[104,186,111,104]]]]]],[124,124],[44,44],[148,148],[188,188],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[183,183],6],[[124,124],6],[[],124],[[],44],[[],148],[[],188],[[[187,[[0,[186,111,104]]]]]],[[],[[12,[107]]]],[[[187,[[189,[113]]]]],[[12,[107]]]],[[[187,[[190,[113]]]]],[[12,[107]]]],[[[187,[191]]],[[12,[107]]]],[[183,183],8],[[185,185],8],[[124,124],8],[[188,188],8],[[44,183],[[12,[126]]]],[[183,9],10],[[149,9],10],[[149,9],10],[[185,9],10],[[[187,[[0,[111,186,111,104]]]],9],10],[[124,9],10],[[44,9],10],[[148,9],10],[[188,9],10],[[]],[119,183],[192,183],[193,149],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[183],[37,183],[[[187,[[190,[113]]]],37],183],[[[187,[191]],37],183],[[[187,[[189,[113]]]],37],183],[44,[[31,[183]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[186,111,104]],185],[[187,[[0,[186,111,104]]]]]],[[],44],[[183,183],[[12,[6]]]],[[124,124],[[12,[6]]]],[81],[[44,183,124],[[12,[[126,[125]]]]]],0,0,[[147,61,148,37],[[7,[149]]]],[[[187,[[190,[113]]]],147,61,148,37],[[7,[149]]]],[[[187,[[189,[113]]]],147,61,148,37],[[7,[149]]]],[[[187,[191]],147,61,148,37],[[7,[149]]]],[[147,148,37],[[7,[149]]]],[[147,148,37],[[7,[149]]]],0,[44,[[31,[126]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],73],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[139,[194,141]]],[[139,[194,141]]]],[[139,11,160,61],[[7,[139,195]]]],[[139,11,160,61,13],[[7,[139,195]]]],[139,139],[[[139,[194,141]],41,40],[[139,[194,141]]]],[[139,11],139],[[139,11],[[7,[139,196]]]],[139,[[7,[139,196]]]],[[139,8],139],[[[139,[137,138]],41],[[7,[[139,[137,138]],197]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[139,198],139],[141,141],[138,138],[[[139,[104]]],[[139,[104]]]],[199,199],[198,198],[[]],[[]],[[]],[[]],[[]],[[199,199],6],[[198,198],6],[[139,194],[[139,[194]]]],[[139,27],139],[[],141],[[],138],[[],199],[[],198],[139,139],[[[139,[194,141]],41],[[139,[194,141]]]],[139,139],[139,139],[[139,13],139],[[199,199],8],[[198,198],8],[[139,40],139],[[139,121],139],[[[139,[194]]],[[7,[147,161]]]],[[141,9],10],[[138,9],10],[[[139,[111,111]],9],10],[[196,9],10],[[196,9],10],[[195,9],10],[[195,9],10],[[197,9],10],[[197,9],10],[[199,9],10],[[198,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[199],[198],[139,139],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[139,139],[[139,200],139],[139,139],[139,139],[[139,199],139],[[199,199],[[12,[6]]]],[[198,198],[[12,[6]]]],[[139,[72,[73,[31,[61]]]],1],139],[81],[81],[81],[[[139,[194,141]],31],[[139,[194,141]]]],[[139,159],139],[[199,142]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[139,[31,[11]]],139],[[139,201],139],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[4,"Result"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"Tree"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[3,"Global"],[3,"Vec"],[4,"Placeholder"],[3,"Satisfaction"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Tr"],[3,"Wsh"],[3,"Sh"],[3,"Wpkh"],[3,"Pkh"],[3,"Bare"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[15,"usize"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"Plan"],[3,"TxIn"],[4,"SigType"],[3,"BTreeMap"],[3,"String"],[4,"TranslateErr"],[4,"HexToBytesError"],[4,"KeyError"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PolicyError"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[3,"SortedMultiVec"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"Xpriv"],[4,"ExtendedKey"],[3,"Xpub"],[3,"DerivationPath"],[3,"Assets"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[6,"Result"],[3,"AddressInfo"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[6,"ChangeSet"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"DoubleEndedIterator"],[8,"IntoWalletDescriptor"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"LocalChain"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"DescriptorXKey"],[3,"DescriptorMultiXKey"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\
+"bdk":{"doc":"bdk","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,3,4,3,13,3,13,13,13,13,4,8,4,13,13,13,13,4,4,13,13,13,13,13,13,13,3,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Persist","Persist","Persist","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_balance","get_descriptor_for_keychain","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load","local_chain","mark_used","network","network","new","new_no_persist","new_no_persist_with_genesis_hash","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","provide","provide","provide","provide","provide","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::ApplyBlockError","","bdk::wallet::InsertTxError","","bdk::wallet::NewOrLoadError","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Error","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::error::CreateTxError","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","","","An unspent transaction output (UTXO).","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls 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 Psbt structure.","The weight of the witness data and scriptSig expressed in â¦","Get the sequence number if an explicit sequence number has â¦","","","","","","","","","","","","","","","","","Get the TxOut of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","The location of the output.","The information about the input we require to add it to a â¦","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy â¦","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a Descriptor that can contain extended keys â¦","Trait implemented on Descriptors to add a method to â¦","Alias for the type of maps that represent derivation paths â¦","Trait for types which can be converted into an â¦","The consensus key associated with the type. Must be a â¦","Legacy ScriptContext To be used as P2SH scripts For â¦","The top-level miniscript abstract syntax tree (AST).","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type â¦","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key â¦","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one â¦","","","Get a reference to the inner AstElem representing the root â¦","","Replaces all wildcards (i.e. /*) in the descriptor with a â¦","","","","","","","","","Enumerates all child nodes of the current AST node (self) â¦","Attempt to produce a non-malleable witness template given â¦","Attempt to produce a malleable witness template given the â¦","","Depending on script Context, some of the Terminals might â¦","","","Depending on script Context, some of the script resource â¦","","Check the consensus + policy(if not disabled) rules that â¦","Consensus rules at the Miniscript satisfaction time. It is â¦","","","Policy rules at the Miniscript satisfaction time. It is â¦","","","Check the consensus + policy(if not disabled) rules â¦","Each context has slightly different rules on what Pks are â¦","","","Depending on ScriptContext, fragments can be malleable. â¦","","","Check whether the given satisfaction is valid under the â¦","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for Self::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.","Add type information(Type and Extdata) to Miniscript based â¦","Create a new Miniscript from a Terminal node and a Type â¦","","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).","Extracts the AstElem representing the root of the â¦","Get as many descriptors as different paths in this â¦","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple â¦","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all â¦","Creates a new PkIter iterator that will iterate over all â¦","","","Lifting corresponds to conversion of a miniscript into a â¦","Depending on script context, the size of a satifaction â¦","","","Maximum size, in bytes, of a satisfying witness. For â¦","Computes an upper bound on the weight of a satisfying â¦","Maximum number of witness elements used to satisfy the â¦","Computes an upper bound on the difference between a â¦","Local helper function to display error messages with â¦","","","Create a new bare descriptor from witness script Errors â¦","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when â¦","Create a new sh sortedmulti descriptor with threshold 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 AST.","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts donât clear sanity â¦","Attempt to parse an miniscript with extra features that â¦","","","","","Get the len of public key when serialized based on context â¦","","","Returns a plan if the provided assets are sufficient to â¦","Returns a plan if the provided assets are sufficient to â¦","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the â¦","Attempts to produce a non-malleable satisfying witness and â¦","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the â¦","Computes the 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","","","Substitutes raw public keys hashes with the public keys as â¦","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using â¦","Translates a struct from one generic to another where the â¦","","","","","","","","","The correctness and malleability type information for the â¦","","","","","Computes the scriptSig that will be in place for an â¦","","","","","Whether the miniscript can exceed the resource â¦","Compute the checksum of a descriptor, excludes any â¦","Compute the checksum bytes of a descriptor, excludes any â¦","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on â¦","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesnât match its checksum","Invalid HD Key path, such as having a wildcard but a â¦","Error thrown while working with keys","Miniscript error","The descriptor contains multipath keys","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}/*)","BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)","BIP86 public template. Expands to tr(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)","P2TR template. Expands to a descriptor tr(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.","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).","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","Multiple extended private keys.","Multiple extended public keys.","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 â¦","","","","","","","","","","","","","","","","","","","","","","","","","Attempt to produce a witness template given the assets â¦","Depending on script Context, some of the Terminals might â¦","Depending on script Context, some of the script resource â¦","Check the consensus + policy(if not disabled) rules that â¦","Consensus rules at the Miniscript satisfaction time. It is â¦","Policy rules at the Miniscript satisfaction time. It is â¦","Check the consensus + policy(if not disabled) rules â¦","Each context has slightly different rules on what Pks are â¦","Depending on ScriptContext, fragments can be malleable. â¦","Check whether the given satisfaction is valid under the â¦","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be âcompressedâ or not","","","Deprecated name for Self::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","Returns a vector containing the full derivation paths from â¦","Generate a key given the options with a random entropy","Generate a key with the default options and a random â¦","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls 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","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the ExtendedKey into an Xpriv for the given â¦","Transform the ExtendedKey into an Xpub for the given â¦","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is â¦","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is 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ââ¦","A derived address and the index it was found at. For â¦","An error that may occur when applying a block to Wallet.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original â¦","The changes made to a wallet by applying an Update.","The error variant that occurs when the caller attempts to â¦","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into â¦","Trait to check if a value is below the dust limit. We are â¦","The error type when loading a Wallet from persistence.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","The error type when constructing a fresh Wallet.","Error type for when we try load a Wallet from persistence â¦","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","We were unable to write the walletâs data to the â¦","Loading data from the persistence backend failed.","Either writing to or loading from the persistence backend â¦","Occurs when the connected_to hash does not match the hash â¦","An update to Wallet.","A Bitcoin wallet","","Add an external signer","Address","Get unbounded script pubkey iterators for both Internal â¦","","Introduces a block of height to the wallet, and tries to â¦","Applies relevant transactions from block of height to the â¦","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes â¦","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this â¦","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if tx â¦","Calculate the FeeRate for a given transaction.","Informs the wallet that you no longer intend to broadcast â¦","Update for the walletâs internal LocalChain.","Changes to the LocalChain.","Get all the checkpoints the wallet is currently storing â¦","","","","","","","Coin selection","Commits all currently 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 â¦","","","","","","Errors that can be thrown by the Wallet","Wallet export","Finalize a PSBT, i.e., for each input determine if â¦","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the balance, separated into available, â¦","Returns the descriptor used to create addresses for a â¦","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a CanonicalTx â¦","Returns the utxo owned by this wallet corresponding to â¦","Update for the walletâs internal TxGraph.","All coinbase outputs not yet matured","Child index of this address","Changes to IndexedTxGraph.","Add a new checkpoint to the walletâs internal view of â¦","Add a transaction to the walletâs internal view of the â¦","Inserts a TxOut at OutPoint into the walletâs â¦","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).","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","Contains the last active derivation indices per keychain (Kâ¦","Returns the latest checkpoint.","List all relevant outputs (includes both spent and â¦","Return the list of unspent outputs of this wallet","List addresses that are revealed but unused.","Load Wallet from the given persistence backend.","Get a reference to the inner LocalChain.","Marks an address used of the given keychain at index.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty Wallet.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom â¦","Either loads Wallet from persistence, or initializes it if â¦","Either loads Wallet from persistence, or initializes it if â¦","Initialize an empty Wallet with a custom genesis hash.","The index of the next address that you would get if you â¦","Get the next unused address for the given keychain, i.e. â¦","Peek an address of the given keychain at index without â¦","Return the spending policies for the walletâs descriptor","","","","","","Return the âpublicâ version of the walletâs â¦","Reveal addresses up to and including the target index and â¦","Attempt to reveal the next address of the given keychain.","Return the secp256k1 context used for all signing â¦","Compute the txâs sent and received amounts (in satoshis).","","","Sign a transaction with all the walletâs signers, in the â¦","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns the changes that will be committed with the next â¦","Create a `FullScanRequest for this wallet.","Create a partial SyncRequest for this wallet for all â¦","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","","","","","Get an unbounded script pubkey iterator for the given â¦","Undoes the effect of mark_used and returns whether the â¦","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","Deterministically generate a unique name given the â¦","Block hash of connected_to.","Expected block hash of connected_to, as derived from block.","The internal chainâs tip height.","The introduced transactionâs confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","Branch and bound coin selection tries to avoid needing a â¦","Branch and bound coin selection possible attempts with â¦","Branch and bound coin selection","Itâs possible to create spendable output from excess â¦","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not â¦","Errors that can be thrown by the coin_selection module","Remaining amount after performing coin selection","Walletâs UTXO set is not enough to cover recipientâs â¦","Simple and dumb coin selection","Itâs not possible to create spendable output from excess â¦","OldestFirstCoinSelection always picks the utxo with the â¦","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after â¦","The calculated fee for the drain TxOut with the selected â¦","Threshold to consider amount as dust for this particular â¦","The deducted change output fee","Exceeding amount of current selection over outgoing value â¦","Error returned from Wallet::build_fee_bump","The change_policy was set but the wallet does not have a â¦","There was an error with coin selection","Descriptor key conversion error","Error returned from TxBuilder::finish","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than â¦","Node doesnât have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than â¦","Walletâs UTXO set is not enough to cover recipientâs â¦","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Requested LockTime is less than is required to spend from â¦","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent â¦","In order to use the TxBuilder::add_global_xpubs option â¦","Missing non_witness_utxo on foreign utxo for given OutPoint","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","Return error type for â¦","We were unable to load wallet data from or write wallet â¦","There was a problem while extracting and manipulating â¦","Partially signed bitcoin transaction error","Cannot enable RBF with a Sequence >= 0xFFFFFFFE","Cannot enable RBF with Sequence given a required OP_CSV","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already â¦","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the â¦","Happens when trying to spend an UTXO that is not in the â¦","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version â0â","Requested transaction version 1, but at least 2 is needed â¦","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV Sequence","Sats needed for some transaction","Given RBF Sequence","Requested LockTime","Required LockTime","Required fee absolute value (satoshi)","Required fee rate","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.","To be used only by external libraries implementing â¦","The fingerprint of a BIP32 extended key","The signer wonât sign leaves other than the ones â¦","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but â¦","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the â¦","The private key is missing for the required public key","The 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 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 â¦","Whether to remove taproot specific fields from the PSBT on â¦","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with â¦","Returns the list of signers in the container, sorted by â¦","Specifies which Taproot script-spend leaves we should sign â¦","","","","","","","","","Whether the signer should trust the 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","Error returned from TxBuilder::add_foreign_utxo.","Error returned from TxBuilder::add_utxo and â¦","Error returned from TxBuilder::allow_shrinking","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 â¦","Requested outpoint doesnât exist in the tx (vout greater â¦","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transactionâs inputs and outputs","Happens when trying to spend an UTXO that is not in the â¦","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence â¦","Fill-in the 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 The fee_absolute method refers to the â¦","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the 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).","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","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,5,0,1,0,5,0,0,0,0,0,0,1,1,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,4,5,1,3,3,0,0,1,3,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,1,3,4,5,3,3,0,5,3,1,0,4,5,1,3,0,0,1,3,4,5,1,3,4,5,1,3,4,5,5,3,1,3,4,5,4,0,1,3,4,5,0,207,207,207,17,0,0,0,0,0,0,0,0,48,0,0,26,17,0,0,0,17,26,0,17,17,17,26,17,35,36,23,23,17,17,35,36,23,17,35,36,23,23,23,23,0,48,35,36,48,36,48,48,35,36,48,35,36,48,48,35,36,48,35,36,48,35,36,0,17,35,36,23,17,35,36,23,17,35,36,23,23,17,17,17,17,17,23,17,23,17,35,36,23,0,17,23,23,208,17,23,17,17,17,35,36,23,23,17,23,17,17,17,17,17,17,17,35,36,23,23,23,17,23,23,23,17,23,23,23,17,17,23,23,17,17,35,36,23,17,35,36,23,23,17,170,62,17,17,23,23,23,17,23,23,48,35,36,23,17,23,17,48,35,36,17,17,17,17,17,17,17,17,17,17,17,17,17,17,23,48,23,17,23,23,17,35,36,23,48,35,36,17,17,0,23,17,23,17,23,23,17,17,23,17,23,48,35,36,23,0,17,35,36,23,17,23,17,48,48,17,23,17,35,36,23,17,35,36,23,23,17,35,36,23,17,17,35,36,23,23,0,0,47,47,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,83,76,76,0,84,0,0,83,82,0,83,83,76,76,76,83,84,45,76,84,84,0,0,0,45,45,82,83,83,0,0,83,83,83,82,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,45,82,83,84,46,85,45,46,85,85,82,83,84,46,85,76,82,83,84,46,85,76,76,45,82,83,84,84,46,46,85,76,45,46,82,85,83,46,82,83,84,46,85,76,45,83,84,85,46,85,76,46,46,82,83,84,46,85,85,82,83,84,46,85,45,76,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,76,45,209,209,209,210,211,212,211,212,211,212,211,212,211,212,213,214,215,216,217,218,218,217,219,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,221,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,86,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,80,0,0,0,0,222,222,0,0,110,0,0,0,0,80,80,80,48,0,0,22,80,80,107,26,222,114,0,114,0,0,22,26,107,0,0,0,0,22,0,110,107,26,0,223,26,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,103,48,48,48,48,48,48,48,48,48,105,22,106,103,26,107,108,109,110,105,22,106,103,26,107,108,109,110,103,26,108,110,106,106,105,26,26,103,22,103,26,107,108,109,110,112,22,106,80,80,103,103,26,26,107,107,108,109,110,103,114,114,114,105,112,22,106,80,80,80,103,26,26,107,108,109,110,112,112,26,107,103,26,26,222,224,222,224,114,26,103,26,108,110,114,105,112,22,106,80,103,26,107,108,109,110,26,87,93,105,105,112,26,107,93,114,105,105,26,107,114,114,26,223,22,26,107,223,22,223,22,26,26,103,108,109,103,0,26,48,103,103,0,48,103,26,108,109,48,112,103,26,108,110,48,103,80,103,103,103,26,48,103,0,105,22,106,103,26,107,108,109,110,107,80,103,26,107,48,48,103,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,0,225,225,225,0,0,0,155,0,154,151,152,153,0,0,0,153,153,152,152,0,0,151,152,153,151,152,153,155,0,0,122,123,147,123,128,123,123,123,123,123,122,123,134,128,147,151,152,153,154,155,122,123,134,128,147,151,152,153,154,155,123,123,123,123,123,134,128,123,122,134,128,122,134,128,0,123,122,122,134,128,147,123,123,123,122,128,122,128,147,0,0,123,122,122,123,134,128,147,147,151,151,152,152,153,153,154,154,155,155,122,123,134,134,134,128,128,128,147,151,152,153,154,155,123,123,123,123,123,123,134,122,147,128,123,123,123,122,123,134,128,147,151,152,153,154,155,226,128,123,147,123,134,123,123,123,123,123,123,123,123,128,123,123,123,123,123,123,123,123,123,123,151,152,153,154,155,123,123,123,123,123,122,128,123,0,123,123,123,123,122,134,128,122,147,151,152,153,154,155,122,123,122,122,122,123,134,128,147,151,152,153,154,155,122,123,134,128,147,151,152,153,154,155,0,123,122,123,134,128,147,151,152,153,154,155,123,123,122,122,123,134,128,147,151,152,153,154,155,0,227,227,228,228,229,230,229,230,183,183,0,184,0,0,0,0,0,183,0,184,0,183,184,182,179,180,181,183,184,182,179,180,181,179,180,181,179,180,181,199,179,180,181,0,179,180,181,182,182,183,183,184,182,179,180,181,183,184,182,179,180,181,183,184,182,179,180,181,182,181,183,182,182,179,180,181,183,183,184,182,179,180,181,183,184,182,179,180,181,183,184,182,179,180,181,183,184,182,179,180,181,231,231,232,233,233,232,233,0,164,164,185,0,164,164,141,164,164,141,164,164,0,164,164,164,164,164,185,164,164,164,164,164,164,141,141,164,141,185,164,164,185,164,141,185,164,141,185,185,185,185,164,164,141,141,185,164,164,164,164,164,164,141,185,164,141,185,164,141,185,185,164,141,185,164,141,185,164,141,185,164,141,185,164,141,234,235,234,235,236,236,237,238,0,0,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,193,188,193,150,188,193,150,0,150,150,150,190,150,150,150,150,150,150,150,193,188,190,150,0,0,0,0,0,0,0,0,190,0,0,150,44,149,149,44,149,188,150,190,192,124,44,149,193,188,150,190,192,124,44,149,193,44,188,190,192,124,44,149,193,188,190,192,124,44,149,193,188,124,124,44,149,193,192,239,192,192,192,188,190,124,193,44,188,150,150,190,192,124,44,149,193,188,188,188,150,150,190,192,124,44,149,193,188,239,192,192,192,44,188,150,190,192,124,44,149,193,192,44,188,124,150,44,149,149,240,192,192,192,125,192,149,44,149,188,190,192,124,44,149,193,150,149,149,188,150,190,192,124,44,149,193,188,150,190,192,124,44,149,193,188,150,190,192,124,44,149,193,188,150,190,192,124,44,149,193,241,0,0,0,204,0,203,203,0,0,200,200,202,200,203,204,0,0,0,201,204,140,140,140,140,140,140,140,140,140,140,142,139,140,201,200,202,204,203,142,139,140,201,200,202,204,203,140,142,139,140,204,203,142,139,140,204,203,204,203,140,140,142,139,204,203,140,140,140,140,140,204,203,140,140,140,142,139,140,201,201,200,200,202,202,204,203,142,139,140,201,200,202,204,203,204,203,140,142,139,140,201,200,202,204,203,140,140,140,140,140,204,203,140,201,200,202,140,140,204,142,139,140,204,203,201,200,202,142,139,140,201,200,202,204,203,142,139,140,201,200,202,204,203,142,139,140,201,200,202,204,203,140,140,142,139,140,201,200,202,204,203,242,242],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[1,1],[3,3],[4,4],[5,5],[[]],[[]],[[]],[[]],[[1,1],6],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[3]]]],[[1,1],8],[[3,3],8],[[4,4],8],[[5,5],8],[[1,9],10],[[3,9],10],[[4,9],10],[[5,9],10],0,[[]],[[]],[[]],[[]],[1],[3],[[]],[[]],[[]],[[]],0,0,0,[5,11],0,[[1,1],[[12,[6]]]],0,0,[5,[[12,[13]]]],[1,7],[3,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[5,14],0,[[],15],[[],15],[[],15],[[],15],0,[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,18],[[7,[[20,[19]],21]]]],[[],22],[[],22],[23,24],[23,[[25,[23]]]],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23,[[31,[23,30]]]],[23,[[33,[32]]]],[23,[[33,[32]]]],0,[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],0,[17,17],[35,35],[36,36],[23,23],[[]],[[]],[[]],[[]],[[17,17],6],[[35,35],6],[[36,36],6],[[23,23],6],[23,8],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[[17,[26]],37,27],[[7,[[17,[38]],29]]]],[[[17,[28]],37],[[7,[[17,[38]],29]]]],[17,39],[[],[[7,[17]]]],[[],[[7,[23]]]],[[[17,[26]]],40],[23,41],[[17,17],8],[[35,35],8],[[36,36],8],[[23,23],8],0,[17,[[7,[41,21]]]],0,[[23,42],[[7,[43]]]],[[44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],44,45,37],[[7,[[12,[46]],47]]]],[[[23,[26,48]],44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],37,49,[50,[27]]],[[7,[12,29]]]],[[17,9],[[7,[51]]]],[[17,9],[[7,[51]]]],[[35,9],[[7,[51]]]],[[36,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[17,8],[23,8],[52,17],[53,17],[54,17],[[]],[55,17],[56,17],[57,17],[[]],[[]],[[]],[24,[[7,[23,21]]]],[[24,58,59],23],[16,[[7,[17,21]]]],[16,[[7,[23,21]]]],[[16,42],[[7,[23,21]]]],[16,[[7,[23,21]]]],[60,[[7,[17,21]]]],[60,[[7,[23,21]]]],[[23,61],[[12,[23]]]],[[23,61],12],[17,[[7,[21]]]],[17,[[7,[21]]]],[23,8],[23,8],[[[17,[26]]],8],[17],[35],[36],[23],[[]],[[]],[[]],[[]],[23,24],[[[17,[26]]],[[7,[[31,[[17,[26]],30]],21]]]],[[37,18],[[7,[47]]]],[[62,37,18],[[7,[47]]]],[[[17,[26]]],8],[[[17,[26]]],8],[23,8],[23,63],[23,64],[17,[[7,[65,21]]]],[23,[[7,[65,21]]]],[23,[[7,[66]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[[],16],[[],16],[[],16],[[[23,[67]]],[[7,[17,21]]]],[[],17],[[],[[7,[17,21]]]],[[[23,[35]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[55,17],[56,17],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[[[12,[68]]],[[7,[17,21]]]],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],0,[23,[[7,[21]]]],[49,[[7,[23,21]]]],[[37,16],[[7,[21]]]],[49,[[7,[23,21]]]],[[49,42],[[7,[23,21]]]],[[17,17],[[12,[6]]]],[[35,35],[[12,[6]]]],[[36,36],[[12,[6]]]],[[23,23],[[12,[6]]]],[[],61],[[],61],[[],61],[[[17,[28]]],[[7,[69,[17,[28]]]]]],[[[17,[28]]],[[7,[69,[17,[28]]]]]],0,[23,8],[17,[[7,[21]]]],[23,[[7,[43]]]],[[17,70],[[7,[21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[17,[[7,[41,21]]]],[17,41],[23,61],[17,7],[23,7],[[],71],[[],71],[[],71],[[23,72],23],0,[[]],[[]],[[]],[[]],[[],73],[[],73],[[[17,[26]],72],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[17,[[7,[74]]]],[23,[[7,[74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],15],[[],15],[[],15],[[],15],[17,41],[[]],[[]],[[]],[[]],[23,8],[16,[[7,[73,47]]]],[16,[[7,[47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[47,9],10],[[47,9],10],[75,47],[[]],[76,47],[21,47],[77,47],[78,47],[79,47],[80,47],[[]],[81],[[],73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[46,46],[85,85],[45,45],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],8],[[83,83],8],[[84,84],8],[[46,46],8],[[85,85],8],[[76,76],8],[[82,9],10],[[83,9],10],[[84,9],10],[[46,9],10],[[85,9],10],[[76,9],10],[[76,9],10],[[45,9],10],[[]],[[]],[[]],[8,84],[[]],[83,46],[[]],[[]],[[]],[[46,72],[[7,[85,76]]]],[82],[85],[83,73],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,8],[84,8],[85,8],0,[[85,85],[[12,[6]]]],[81],[46,8],0,[82,7],[83,7],[84,7],[46,7],[85,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[7,[86,47]]]],[[[88,[[87,[35]]]],18],[[7,[86,47]]]],[[[89,[[87,[36]]]],18],[[7,[86,47]]]],[[[90,[[87,[36]]]],18],[[7,[86,47]]]],[[[92,[[87,[91]]]],18],[[7,[86,47]]]],[[[94,[[93,[35]]]],18],[[7,[86,47]]]],[[[95,[[93,[35]]]],18],[[7,[86,47]]]],[[[96,[[93,[36]]]],18],[[7,[86,47]]]],[[[97,[[93,[36]]]],18],[[7,[86,47]]]],[[[98,[[93,[36]]]],18],[[7,[86,47]]]],[[[99,[[93,[36]]]],18],[[7,[86,47]]]],[[[100,[[93,[91]]]],18],[[7,[86,47]]]],[[[101,[[93,[91]]]],18],[[7,[86,47]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[86,37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],102],[[],22],[[26,27],[[7,[28,29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[103,[[33,[32]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[[105,[104,48]]],[[105,[104,48]]]],[22,22],[106,106],[103,103],[26,26],[107,107],[108,108],[109,109],[110,110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[103,103],6],[[26,26],6],[[108,108],6],[[110,110],6],0,[[],106],[[[105,[48]]]],[[26,27],[[7,[28,29]]]],[[],[[7,[26]]]],[103,41],[[22,22],8],[[103,103],8],[[26,26],8],[[107,107],8],[[108,108],8],[[109,109],8],[[110,110],8],[[[112,[[0,[111,48]]]],9],10],[[22,9],10],[[106,9],10],[[80,9],10],[[80,9],10],[[103,9],[[7,[51]]]],[[103,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[108,9],[[7,[51]]]],[[109,9],[[7,[51]]]],[[110,9],[[7,[51]]]],[103,8],[113,[[114,[48]]]],[115,[[114,[48]]]],[[]],[[]],[[]],[[]],[[]],[79,80],[[]],[21,80],[[]],[[]],[28,26],[[]],[[]],[[]],[[]],[[26,102],[[112,[48]]]],[[107,102],[[112,[48]]]],[16,[[7,[26]]]],[16,[[7,[107]]]],[60,[[7,[103,21]]]],[26,[[12,[116]]]],[26,[[31,[116,30]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[[114,[48]]],8],[26,8],[103],[26],[108],[110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,117],[[],[[7,[112,80]]]],[[[12,[118]],116],[[7,[112,80]]]],[[105,[12,[118]],116],[[7,[112,80]]]],[105,[[7,[112,80]]]],[[[112,[48]]],[[7,[[112,[48]],80]]]],[26,[[7,[[112,[48]],80]]]],[107,[[7,[[112,[48]],80]]]],[[],[[7,[114,80]]]],[[[114,[48]]],[[7,[[114,[48]],80]]]],[105,[[7,[114,80]]]],[[[105,[48]]]],[26,[[31,[26,30]]]],[107,[[31,[107,30]]]],[[[114,[48]],18],[[12,[113]]]],[[[114,[48]],18,37],115],[26,8],[[],8],[22,8],[26,8],[107,8],[[],8],[22,8],[[],8],[22,8],[26,8],[26,8],0,0,0,[103,[[7,[65,21]]]],[[],102],[26,119],[23,[[12,[61]]]],[103,61],[103,61],[[102,102],102],[[],16],[[61,[31,[30]]],[[7,[103,21]]]],[26,61],0,0,[23,[[7,[21]]]],[[[112,[48]],102],[[112,[48]]]],[[103,103],[[12,[6]]]],[[26,26],[[12,[6]]]],[[108,108],[[12,[6]]]],[[110,110],[[12,[6]]]],[[],61],0,[81],[103,[[7,[21]]]],[103,[[7,[[31,[[31,[2,30]],30]],21]]]],[103,61],[26,7],[[],71],[103,24],[[],102],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[107,37],[[7,[26,120]]]],[[],73],[[],73],[[],73],[[],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[103,[[7,[103,74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[12,[40]]]],[[],[[12,[121]]]],[61,[[12,[14]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[122,122],122],[[123,1,124,[126,[125]]]],0,[123,[[72,[1,[0,[127,104]]]]]],[[128,128]],[[123,129,27],[[7,[130]]]],[[123,129,27,131],[[7,[132]]]],[[123,133]],[[123,[135,[134]]],[[7,[130]]]],[123,136],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[123,137],[[7,[[140,[138,139]],141]]]],[123,[[140,[138,142]]]],[[123,143],[[7,[40,144]]]],[[123,143],[[7,[121,144]]]],[[123,143]],0,0,[123,145],[122,122],[134,134],[128,128],[[]],[[]],[[]],0,[123,[[146,[8]]]],0,[[],122],[[],134],[[],128],[147],[[123,1],[[12,[27]]]],[[123,49],12],[[123,1],73],[[],[[7,[122]]]],[[],[[7,[128]]]],[[122,122],8],[[128,128],8],[[147,147],8],0,0,[[123,148,149],[[7,[8,150]]]],[[122,9],[[7,[51]]]],[[122,9],[[7,[51]]]],[[123,9],10],[[134,9],10],[[128,9],10],[[147,9],10],[[147,9],10],[[151,9],10],[[151,9],10],[[152,9],10],[[152,9],10],[[153,9],10],[[153,9],10],[[154,9],10],[[154,9],10],[[155,9],10],[[155,9],10],[[]],[[]],[156,134],[[[157,[1]]],134],[[]],[[[160,[158,[159,[1]]]]],128],[161,128],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[123,122],[[123,1],62],[[123,3,[12,[162]],8],[[7,[163,164]]]],[[123,1],[[126,[44]]]],[[123,137],[[12,[[165,[[126,[143]],158]]]]]],[[123,11],[[12,[3]]]],0,0,0,0,[[123,131],[[7,[8,166]]]],[[123,143,167],[[7,[8,154]]]],[[123,11,14]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,8],[128,8],[[123,49],8],0,[123,72],0,[123,168],[123,127],[123,127],[[123,1],169],[[170,[12,[170]],[0,[[171,[128]],172,173]]],[[7,[123,152]]]],[123,174],[[123,1,27],8],[123,18],0,[[170,[12,[170]],[0,[[171,[128]],172,173]],18],[[7,[123,151]]]],[[170,[12,[170]],18],[[7,[123,47]]]],[[170,[12,[170]],18,175],[[7,[123,47]]]],[[170,[12,[170]],[0,[[171,[128]],172,173]],18],[[7,[123,153]]]],[[170,[12,[170]],[0,[[171,[128]],172,173]],18,175],[[7,[123,153]]]],[[170,[12,[170]],[0,[[171,[128]],172,173]],18,175],[[7,[123,151]]]],[[123,1],27],[[123,1],[[146,[147]]]],[[123,1,27],147],[[123,1],[[7,[[12,[46]],47]]]],[81],[81],[81],[81],[81],[[123,1],[[12,[62]]]],[[123,1,27],[[146,[127]]]],[[123,1],[[146,[147]]]],[123,37],[[123,143]],[122,7],[128,7],[[123,148,149],[[7,[8,150]]]],0,[123,176],[123,128],[123,[[177,[1]]]],[123,178],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[122,40],[123,127],0,[122,40],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[123,136],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[123,1],[[0,[127,104]]]],[[123,1,27],8],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,18,37],[[7,[73,47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[179,179],[180,180],[181,181],[[]],[[]],[[]],[[[31,[4]],[31,[4]],121,40,49],[[7,[182,183]]]],[[179,[31,[4]],[31,[4]],121,40,49],[[7,[182,183]]]],[[180,[31,[4]],[31,[4]],121,40,49],[[7,[182,183]]]],[[181,[31,[4]],[31,[4]],121,40,49],[[7,[182,183]]]],[[40,121,49],184],[[],179],[[],180],[[],181],0,0,[[183,9],10],[[183,9],10],[[184,9],10],[[182,9],10],[[179,9],10],[[180,9],10],[[181,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[182,40],[40,181],[81],0,[182,40],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[185,185],[[]],[[185,9],10],[[185,9],10],[[164,9],10],[[164,9],10],[[141,9],10],[[141,9],10],[[]],[76,164],[[]],[185,164],[186,164],[183,164],[47,164],[[]],[[]],[[]],[[]],[81],[81],[81],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[187,[[12,[73]]]],[187,73],[[],[[7,[187]]]],[[123,16,8],[[7,[187,16]]]],[[187,9],10],[[]],[16,[[7,[187]]]],[[]],0,[187,7],[187,73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[44,188,124,[126,[125]]],[[12,[[126,[125]]]]]],0,0,[[44,37],189],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[189,17,37],44],[188,188],[190,190],[[[192,[[0,[104,191,111,104]]]]],[[192,[[0,[104,191,111,104]]]]]],[124,124],[44,44],[149,149],[193,193],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[188,188],6],[[124,124],6],[[],124],[[],44],[[],149],[[],193],[[[192,[[0,[191,111,104]]]]]],[[],[[12,[107]]]],[[[192,[[194,[113]]]]],[[12,[107]]]],[[[192,[[195,[113]]]]],[[12,[107]]]],[[[192,[196]]],[[12,[107]]]],[[188,188],8],[[190,190],8],[[124,124],8],[[193,193],8],[[44,188],[[12,[126]]]],[[188,9],10],[[150,9],10],[[150,9],10],[[190,9],10],[[[192,[[0,[111,191,111,104]]]],9],10],[[124,9],10],[[44,9],10],[[149,9],10],[[193,9],10],[[]],[197,188],[119,188],[[]],[198,150],[[]],[[]],[[]],[[]],[[]],[[]],[188],[37,188],[[[192,[[194,[113]]]],37],188],[[[192,[196]],37],188],[[[192,[[195,[113]]]],37],188],[44,[[31,[188]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[191,111,104]],190],[[192,[[0,[191,111,104]]]]]],[[],44],[[188,188],[[12,[6]]]],[[124,124],[[12,[6]]]],[81],[[44,188,124],[[12,[[126,[125]]]]]],0,0,[[148,61,149,37],[[7,[150]]]],[[[192,[[195,[113]]]],148,61,149,37],[[7,[150]]]],[[[192,[[194,[113]]]],148,61,149,37],[[7,[150]]]],[[[192,[196]],148,61,149,37],[[7,[150]]]],[[148,149,37],[[7,[150]]]],[[148,149,37],[[7,[150]]]],0,[44,[[31,[126]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],73],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[140,[199,142]]],[[140,[199,142]]]],[[140,11,163,61],[[7,[140,200]]]],[[140,11,163,61,13],[[7,[140,200]]]],[140,140],[[[140,[199,142]],41,40],[[140,[199,142]]]],[[140,11],140],[[140,11],[[7,[140,201]]]],[140,[[7,[140,201]]]],[[140,8],140],[[[140,[138,139]],41],[[7,[[140,[138,139]],202]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[140,203],140],[142,142],[139,139],[[[140,[104]]],[[140,[104]]]],[204,204],[203,203],[[]],[[]],[[]],[[]],[[]],[[204,204],6],[[203,203],6],[[140,199],[[140,[199]]]],[[140,27],140],[[],142],[[],139],[[],204],[[],203],[140,140],[[[140,[199,142]],41],[[140,[199,142]]]],[140,140],[140,140],[[140,13],140],[[204,204],8],[[203,203],8],[[140,40],140],[[140,121],140],[[[140,[199]]],[[7,[148,164]]]],[[142,9],10],[[139,9],10],[[[140,[111,111]],9],10],[[201,9],10],[[201,9],10],[[200,9],10],[[200,9],10],[[202,9],10],[[202,9],10],[[204,9],10],[[203,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[204],[203],[140,140],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[140,140],[[140,205],140],[140,140],[140,140],[[140,204],140],[[204,204],[[12,[6]]]],[[203,203],[[12,[6]]]],[[140,[72,[73,[31,[61]]]],1],140],[81],[81],[81],[[[140,[199,142]],31],[[140,[199,142]]]],[[140,162],140],[[204,143]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[140,[31,[11]]],140],[[140,206],140],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[4,"Result"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"Tree"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[3,"Global"],[3,"Vec"],[4,"Placeholder"],[3,"Satisfaction"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Sh"],[3,"Tr"],[3,"Pkh"],[3,"Wpkh"],[3,"Wsh"],[3,"Bare"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[15,"usize"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"Plan"],[3,"TxIn"],[4,"SigType"],[3,"BTreeMap"],[3,"String"],[4,"TranslateErr"],[4,"HexToBytesError"],[4,"PolicyError"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"KeyError"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[3,"SortedMultiVec"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"Xpriv"],[4,"ExtendedKey"],[3,"Xpub"],[3,"DerivationPath"],[3,"Assets"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[8,"Into"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[6,"Result"],[3,"AddressInfo"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[3,"SyncResult"],[3,"FullScanResult"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[6,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"DoubleEndedIterator"],[8,"IntoWalletDescriptor"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"LocalChain"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"FullScanRequest"],[3,"SyncRequest"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"DescriptorXKey"],[3,"DescriptorMultiXKey"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\
"bdk_bitcoind_rpc":{"doc":"This crate is used for emitting blockchain data from the â¦","t":[8,3,3,2,12,11,11,11,11,11,11,12,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11],"n":["BitcoindRpcErrorExt","BlockEvent","Emitter","bitcoincore_rpc","block","block_hash","block_height","borrow","borrow","borrow_mut","borrow_mut","checkpoint","connected_to","fmt","from","from","into","into","is_not_found_error","mempool","new","next_block","next_header","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["bdk_bitcoind_rpc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Extends bitcoincore_rpc::Error.","A newly emitted block from Emitter.","The Emitter is used to emit data sourced from â¦","","Either a full Block or Header of the new block.","The block hash of this new block.","The block height of this new block.","","","","","The checkpoint of the new block.","The BlockId of a previous block that this block connects â¦","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Returns whether the error is a ânot foundâ error.","Emit mempool transactions, alongside their first-seen unix â¦","Construct a new Emitter.","Emit the next block height and block (if any).","Emit the next block height and header (if any).","","","","","","","",""],"i":[0,0,0,0,1,1,1,10,1,10,1,1,1,1,10,1,10,1,19,10,10,10,10,10,1,10,1,10,1,10,1],"f":[0,0,0,0,0,[1,2],[1,3],[[]],[[]],[[]],[[]],0,[1,4],[[[1,[5]],6],7],[[]],[[]],[[]],[[]],[[],8],[[[10,[9]]],[[13,[11,12]]]],[[14,3],[[10,[9]]]],[[[10,[9]]],[[13,[[16,[[1,[15]]]],12]]]],[[[10,[9]]],[[13,[[16,[[1,[17]]]],12]]]],[[],13],[[],13],[[],13],[[],13],[[],18],[[],18],[[]],[[]]],"p":[[3,"BlockEvent"],[3,"BlockHash"],[15,"u32"],[3,"BlockId"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"bool"],[8,"RpcApi"],[3,"Emitter"],[3,"Vec"],[4,"Error"],[4,"Result"],[3,"CheckPoint"],[3,"Block"],[4,"Option"],[3,"Header"],[3,"TypeId"],[8,"BitcoindRpcErrorExt"]]},\
-"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin â¦","t":[8,8,8,17,3,17,8,4,3,4,3,13,13,8,16,3,2,3,3,2,13,13,11,10,11,11,11,12,12,10,11,2,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,12,12,11,11,11,11,11,12,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,10,11,11,11,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,0,11,2,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,16,3,8,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,4,13,3,6,3,3,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,4,3,3,13,13,3,3,3,3,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","Error","FullTxOut","IndexedTxGraph","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_position","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into_iter","is_block_in_chain","is_confirmed","is_confirmed","is_confirmed_and_spendable","is_empty","is_mature","is_on_coinbase","is_relevant","is_tx_relevant","is_used","keychain","local_chain","mark_used","miniscript","net_value","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","serialize","spent_by","spk_at_index","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","KeychainTxOutIndex","add","add_keychain","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","as_inner","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","from","from","from","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","net_value","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_keychain_spks","revealed_spks","sent_and_received","serialize","serialize","spk_at_index","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_block_ids","from_blocks","from_changeset","from_genesis_hash","from_header","from_tip","genesis_hash","get","get","get_chain_tip","hash","height","height","initial_changeset","insert","insert_block","into","into","into","into","into","into","into","into_iter","into_iter","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","provide","provide","push","range","range","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_include_height","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","new","next","next","outspends","partial_cmp","partial_cmp","provide","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","","bdk_chain::indexed_tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::local_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait that âanchorsâ blockchain data to a specific â¦","An Anchor that can be constructed from a given block, â¦","Trait that makes an object appendable.","Maximum BIP32 derivation index.","A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output â¦","Represents a service that tracks the blockchain.","Represents the observed position of some chain data.","An Anchor implementation that also records the exact â¦","Block height and timestamp at which a transaction is â¦","An Anchor implementation that also records the exact â¦","The chain data is seen as confirmed, and in anchored by A.","The transaction is confirmed","A trait to extend the functionality of a miniscript â¦","Error type.","A TxOut with as much data as we can retrieve about it","","An iterator for derived script pubkeys.","An index storing TxOuts that have a script pubkey that â¦","","The chain data is not confirmed and last seen in the â¦","The transaction is unconfirmed","The script pubkeys that are being tracked by the index.","Returns the BlockId that the associated blockchain data is â¦","","","","The anchor block.","The anchor block.","Append another object of the same type onto self.","","","","","","","","","","","","","","","","","","","The position of the transaction in outpoint in the overall â¦","","","","","","","","","","","","","","","","","Maps a ChainPosition<&A> into a ChainPosition<A> by â¦","","","","","","","The exact confirmation height of the transaction.","The confirmation height of the transaction being anchored.","Get the upper bound of the chain dataâs confirmation â¦","Get the upper bound of the chain dataâs confirmation â¦","Determines the upper bound of the confirmation height.","","","The confirmation time of the transaction being anchored.","","","","","Get a reference to the internal descriptor.","","","","","Returns the minimum value (in satoshis) at which an output â¦","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct the anchor from a given block, block height and â¦","","","","Get the best chainâs chain tip.","","","","","","The hash of the block.","The height of the block.","Returns the index associated with the script pubkey.","","","Contains the IndexedTxGraph and associated types. Refer to â¦","","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Determines whether block of BlockId exists as an ancestor â¦","Returns whether ChainPosition is confirmed or not.","Returns whether ConfirmationTime is the confirmed variant.","Whether the utxo is/was/will be spendable with chain tip.","Returns whether the structure is considered empty.","Whether the txout is considered mature.","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a â¦","","Returns whether the script pubkey at index has been used â¦","Module for keychain related structures.","The LocalChain is a local implementation of ChainOracle.","Marks the script pubkey at index as used even though it â¦","","Computes the net value transfer effect of tx on the script â¦","Create a new script pubkey iterator from descriptor.","Create a new script pubkey iterator from descriptor and a â¦","","","The location of the TxOut.","Get a reference to the set of indexed outpoints.","Iterates over all the outputs with script pubkeys in an â¦","","","","","","","Scans a transactionâs outputs for matching script â¦","Scan a single TxOut for a matching script pubkey and â¦","Computes the total value transfer effect tx has on the â¦","","","","","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 â¦","","","","","","","","","Construct an unconfirmed variant using the given last_seen â¦","Undoes the effect of mark_used. Returns whether the index â¦","Iterates over all unused script pubkeys in an index range.","","","","","","","","","Confirmation height.","The last-seen timestamp in unix seconds.","Confirmation time in unix seconds.","Represents changes to an IndexedTxGraph.","The resultant âchangesetâ when new transaction data is â¦","The IndexedTxGraph combines a TxGraph and an Indexer â¦","Utilities for indexing transaction data.","","Batch insert all transactions of the given block of height.","Batch insert all transactions of the given block of heightâ¦","Apply changeset to itself.","Applies the ChangeSet to the IndexedTxGraph.","Apply an update directly.","Batch insert transactions, filtering out those that are â¦","Batch insert unconfirmed transactions, filtering out those â¦","Batch insert unconfirmed transactions.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a reference of the internal transaction graph.","TxGraph changeset.","Transaction index.","Scans a transaction for relevant outpoints, which are â¦","Scan and index the given outpoint and txout.","Indexer changeset.","Determines the ChangeSet between self and an empty Indexer.","Determines the ChangeSet between self and an empty â¦","Insert an anchor for a given transaction.","Insert a unix timestamp of when a transaction is seen in â¦","Insert and index a transaction into the graph.","Insert a floating txout of given outpoint.","Calls U::from(self).","Calls U::from(self).","","Determines whether the transaction should be included in â¦","Construct a new IndexedTxGraph with a given index.","","","","","","","","","","","Balance, differentiated into various categories.","Represents updates to the derivation index of a â¦","KeychainTxOutIndex controls how script pubkeys are â¦","","Add a keychain to the trackerâs txout_index with a â¦","Get unbounded spk iterators for all keychains.","Append another ChangeSet into self.","","Applies the derivation changeset to the KeychainTxOutIndexâ¦","Get the inner map of the keychain to its new derivation â¦","","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","All coinbase outputs not yet matured","Returns the keychain and keychain index associated with â¦","","","","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the changeset are empty.","","Returns whether the spk under the keychainâs index has â¦","Iterate over all OutPoints that have TxOuts with script â¦","Iterate over OutPoints that have script pubkeys derived â¦","Return a reference to the internal map of keychain to â¦","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 â¦","Get the lookahead setting.","Store lookahead scripts until target_index (inclusive).","Marks the script pubkey at index as used even though the â¦","Computes the net value that this transaction gives to the â¦","Construct a KeychainTxOutIndex with the given lookahead.","Get the next derivation index for keychain. The next index â¦","Gets the next unused script pubkey in the keychain. I.e., â¦","Get a reference to the set of indexed outpoints.","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 â¦","Iterate over revealed spks of the given keychain.","Iterate over revealed spks of keychains in range","Computes the total value transfer effect tx has on the â¦","","","Return the script that exists under the given keychainâs â¦","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","Return the TxOut of outpoint if it has been indexed.","Iterate over known txouts that spend to tracked script â¦","Finds all txouts on a transaction that has previously been â¦","","","","Get an unbounded spk iterator over a given keychain.","Undoes the effect of mark_used. Returns whether the index â¦","Unconfirmed UTXOs received from an external wallet","Iterate over revealed, but unused, spks of the given â¦","Iterate over revealed, but unused, spks of all keychains.","","","","Represents a failure when trying to insert/remove a â¦","The error type for LocalChain::apply_header_connected_to.","Occurs when the update cannot connect with the original â¦","Occurs when an update does not have a common checkpoint â¦","The ChangeSet represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement â¦","Iterates over checkpoints backwards.","Occurs when connected_to block conflicts with either the â¦","This is a local implementation of ChainOracle.","An error which occurs when a LocalChain is constructed â¦","Apply the given changeset.","Update the chain with a given Header connecting it with â¦","Update the chain with a given Header at height which you â¦","Applies the given update to the chain.","Get the BlockId of the checkpoint.","","","","","","","","","","","","","","","","","","","","","","","","","","","Removes blocks from (and inclusive of) the given block_id.","","","","","","","Extends the checkpoint linked list by a iterator of block â¦","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a checkpoint from a list of BlockIds in â¦","Constructs a LocalChain from a BTreeMap of height to â¦","Construct a LocalChain from an initial changeset.","Construct LocalChain from genesis hash.","Construct a checkpoint from the given header and block â¦","Construct a LocalChain from a given checkpoint tip.","Get the genesis hash.","Get checkpoint at height.","Get checkpoint at given height (if it exists).","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpointâs height.","Derives an initial ChangeSet, meaning that it can be â¦","Inserts block_id at its height within the chain.","Insert a BlockId.","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).","","","","Iterate from this checkpoint in descending height.","Iterate over checkpoints in descending height order.","Construct a new base block at the front of a linked list.","","The original checkpointâs block hash which cannot be â¦","Get the previous checkpoint in the chain","","","","","Puts another checkpoint onto the linked list representing â¦","Iterate checkpoints over a height range.","Iterate checkpoints over a height range.","Get the highest checkpoint.","","","","","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two â¦","","","","","","","","","","","","","","","The attempted update to the original_block hash.","","","","","","","","Errors returned by TxGraph::calculate_fee.","A transaction that is included in the chain, or is still â¦","The ChangeSet represents changes to a TxGraph.","Missing TxOut for one or more of the inputs of the tx","When the transaction is invalid according to the graph it â¦","An iterator that traverses ancestors of a given root â¦","An iterator that traverses transaction descendants.","A graph of transactions and spends.","A transaction node in the TxGraph.","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","Iterates over the heights of that the new transaction â¦","The blocks that the transaction is âanchoredâ in.","Added anchors.","","Applies ChangeSet to TxGraph.","Extends this graph with another so that self becomes the â¦","","Get the total balance of outpoints that are in chain of â¦","Batch insert unconfirmed transactions.","","","","","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx â¦","How the transaction is observed as (confirmed or â¦","","","","","","","","","","","","","","","","","","","Given a transaction, return an iterator of txids that â¦","","","","","","Get a filtered list of outputs from the given outpoints â¦","Get a filtered list of unspent outputs (UTXOs) from the â¦","Iterate over floating txouts known by TxGraph.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get the position of the transaction in chain with tip â¦","Get the txid of the spending transaction and where the â¦","Get a transaction by txid. This only returns Some for full â¦","Get a transaction node by txid. This only returns Some for â¦","Obtains a single tx output (if any) at the specified â¦","Determines the ChangeSet between self and an empty TxGraph.","Inserts the given anchor into TxGraph.","Inserts the given seen_at for txid into TxGraph.","Inserts the given transaction into TxGraph.","Inserts the given TxOut at OutPoint.","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 the graph has any transactions or outputs in it.","","Added last-seen unix timestamps of transactions.","The last-seen unix timestamp of the transaction as â¦","List graph transactions that are in chain with chain_tip.","Transform the TxGraph to have Anchors of another type.","Transform the ChangeSet to have Anchors of another type.","Construct a new TxGraph from a list of transactions.","","","The transactions spending from this output.","","","","","","","","","","Get the total balance of outpoints that are in chain of â¦","Get a filtered list of outputs from the given outpoints â¦","Get a filtered list of unspent outputs (UTXOs) from the â¦","","","","","","","","Get the position of the transaction in chain with tip â¦","Get the txid of the spending transaction and where the â¦","","","","","","","","List graph transactions that are in chain with chain_tip.","A partial or full representation of the transaction.","The transaction node (as part of the graph).","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within ChangeSet.","Added txouts.","Added transactions.","","","","","","","","Update the last seen time for all unconfirmed transactions.","","","","","","","","Creates an iterator that filters and maps ancestor â¦","Creates an iterator that both filters and maps conflicting â¦","Creates an iterator that filters and maps descendants from â¦"],"i":[0,0,0,0,0,0,0,0,0,0,0,8,9,0,75,0,0,0,0,0,8,9,3,14,5,6,7,6,7,39,3,0,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,10,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,8,8,9,5,6,7,10,6,7,14,14,8,6,7,7,3,5,6,7,11,9,5,6,7,76,8,9,5,6,7,10,3,8,9,5,6,7,10,3,8,9,9,5,5,5,6,7,10,11,77,5,6,7,75,8,9,5,6,7,5,5,3,3,3,0,3,3,3,8,9,5,6,7,10,11,11,75,8,9,10,39,10,10,3,3,3,0,0,3,0,3,11,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,0,3,10,3,3,3,8,9,5,6,7,10,11,9,3,3,3,8,9,5,6,7,10,11,78,79,78,0,41,0,0,40,42,42,41,42,42,42,42,42,42,40,42,40,40,40,42,40,40,40,42,40,42,40,40,40,42,40,42,41,41,40,41,42,42,42,42,42,42,40,40,41,42,40,40,42,40,42,40,42,40,42,40,0,0,0,48,49,49,46,49,49,46,46,49,46,48,49,46,48,49,46,48,49,46,48,48,49,46,48,46,48,46,48,49,46,48,48,49,46,48,48,49,49,49,49,49,49,46,48,46,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,46,48,49,49,46,48,48,48,48,48,49,46,48,49,46,48,49,49,49,49,46,48,49,49,48,49,49,49,46,48,0,0,58,0,0,0,0,58,0,0,53,53,53,53,59,62,59,53,55,60,57,58,62,59,53,55,60,57,58,59,53,55,60,57,58,59,53,55,60,57,58,53,59,53,55,60,57,58,59,59,53,55,55,60,60,57,57,58,58,62,59,53,55,60,57,58,59,53,53,53,59,53,53,59,53,53,59,59,60,53,59,53,62,59,53,55,60,57,58,62,59,53,59,53,59,62,60,59,55,60,57,58,59,59,53,53,59,53,55,60,57,58,55,60,57,58,62,59,53,55,60,57,58,57,62,59,53,55,60,57,58,62,59,53,55,60,57,58,60,62,59,53,55,60,57,58,0,0,0,66,66,0,0,0,0,43,43,47,69,47,47,43,43,43,43,43,72,73,43,69,70,66,47,72,73,43,69,70,66,47,43,70,72,72,73,73,43,69,70,47,43,69,70,47,69,70,43,47,69,47,43,43,69,70,66,47,43,43,43,43,69,70,66,66,47,72,73,43,69,70,66,47,43,43,43,43,43,43,43,43,43,43,43,72,73,43,69,70,66,47,72,73,43,47,47,69,43,43,47,43,72,73,43,69,70,66,47,43,69,70,47,66,43,43,43,72,73,43,69,70,66,47,43,43,72,73,43,69,70,66,47,43,69,70,43,43,69,47,47,47,72,73,43,69,70,66,47,43,72,73,43,69,70,66,47,43,43,43],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],5],[5,5],[6,5],[7,5],0,0,[[]],[[[3,[[0,[1,2]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[3,[1]]],[[3,[1]]]],[[[8,[1]]],[[8,[1]]]],[9,9],[5,5],[6,6],[7,7],[[[10,[1]]],[[10,[1]]]],[[[11,[1]]],[[11,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[8,[[8,[1]]]],[[[8,[2]],8],12],[[9,9],12],[[5,5],12],[[6,6],12],[[7,7],12],[[[10,[2]],10],12],0,0,[[],13],[[],13],[[[8,[14]]],[[15,[13]]]],[6,13],[7,13],0,[[],3],[[],5],[[],6],[[],7],[11],[[],[[16,[9]]]],[[],[[16,[5]]]],[[],[[16,[6]]]],[[],[[16,[7]]]],[[],17],[[[8,[18]],8],19],[[9,9],19],[[5,5],19],[[6,6],19],[[7,7],19],[[[10,[18]],10],19],[[[3,[20]],21],22],[[[8,[20]],21],22],[[9,21],22],[[5,21],22],[[6,21],22],[[7,21],22],[[[10,[20]],21],22],[[]],[[]],[[]],[[[8,[7]]],9],[[]],[[],5],[[],5],[[]],[[]],[[]],[[]],[[23,5,24]],[[23,5,24],5],[[23,5,24],6],[[23,5,24],7],[[],[[16,[5]]]],[[[8,[25]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],26],15],[[[3,[[0,[1,2]]]],27]],[[[3,[[0,[1,2]]]],28,29]],0,[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[0,[1,2]],30],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[16,[[15,[19]]]]]],[8,19],[9,19],[[[10,[14]],13],19],[[],19],[[[10,[14]],13],19],0,[[[3,[[0,[1,2]]]],27],19],[[[3,[[0,[1,2]]]],27],19],[[[3,[[0,[1,2]]]]],19],0,0,[[[3,[[0,[1,2]]]]],19],0,[[[3,[[0,[1,2]]]],27,[31,[[0,[1,2]]]]],32],[[],11],[[],11],[11,15],[[11,24],15],0,[[[3,[[0,[1,2]]]]],33],[[[3,[[0,[1,2]]]],[31,[[0,[1,2]]]]],34],[[[8,[35]],8],[[15,[12]]]],[[9,9],[[15,[12]]]],[[5,5],[[15,[12]]]],[[6,6],[[15,[12]]]],[[7,7],[[15,[12]]]],[[[10,[35]],10],[[15,[12]]]],[[[3,[[0,[1,2]]]],27],[[33,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],28,29],15],[[[3,[[0,[1,2]]]],27,[31,[[0,[1,2]]]]]],[9,16],[5,16],[6,16],[7,16],0,[[[3,[[0,[1,2]]]]],[[15,[26]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[[3,[[0,[1,2]]]],28],15],0,[[[3,[[0,[1,2]]]]],[[0,[34,36]]]],[[[3,[[0,[1,2]]]],37],34],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[17,9],[[[3,[[0,[1,2]]]]],19],[[[3,[[0,[1,2]]]]],[[0,[34,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[[40,[14,39]],[40,[14,39]]]],[[[42,[41]],23,13],40],[[[42,[41]],23,13],40],[[]],[[[42,[14,41]],[40,[14]]]],[[[42,[14,41]],[43,[14]]],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[]],[[]],[[]],[[]],[[[40,[1,1]]],[[40,[1,1]]]],[[]],[[],[[42,[45]]]],[[],[[40,[45]]]],[[],[[16,[40]]]],[[[40,[18,18]],40],19],[[[42,[20,20]],21],22],[[[40,[20,20]],21],22],[[]],[[]],[46,[[40,[46]]]],[47,[[40,[45]]]],[42,43],0,0,[27],[[28,29]],0,[[]],[[[42,[14,41]]],[[40,[14]]]],[[[42,[14,41]],37,14],[[40,[14]]]],[[[42,[14,41]],37,17],[[40,[14]]]],[[[42,[14,41]],27],[[40,[14]]]],[[[42,[14,41]],28,29],[[40,[14]]]],[[]],[[]],[[[40,[14,39]]],19],[27,19],[[],42],[40,16],[[]],[[],16],[[],16],[[],16],[[],16],[[],38],[[],38],[[]],[[]],0,0,0,[[48,48],48],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],[51,[50]]]],[[[49,[[0,[1,2,20]]]]],[[4,[[0,[1,2,20]],[11,[[51,[50]]]]]]]],[[[46,[2]],[46,[2]]]],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]],[46,[[0,[1,2,20]]]]]],[46,4],[46,4],[[]],[[]],[[]],[[]],[[]],[[]],[[[49,[1]]],[[49,[1]]]],[[[46,[1]]],[[46,[1]]]],[48,48],[[]],[[]],[[]],0,[[],49],[[],46],[[],48],[[],[[16,[46]]]],[[],[[16,[48]]]],[[[46,[18]],46],19],[[48,48],19],[[[49,[20]],21],22],[[[46,[20]],21],22],[[48,21],22],[[48,21],22],[[]],[[]],[[]],0,[[[49,[[0,[1,2,20]]]],26],15],[[[49,[[0,[1,2,20]]]],27]],[[[49,[[0,[1,2,20]]]],28,29]],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]],3],[[]],[[]],[[]],[[[46,[2]]],19],[[[49,[[0,[1,2,20]]]],27],19],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],[[[49,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]],[31,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]]],4],[[[49,[[0,[1,2,20]]]]],[[15,[13]]]],[[[49,[[0,[1,2,20]]]]],4],[[[49,[[0,[1,2,20]]]]],[[15,[13]]]],[[[49,[[0,[1,2,20]]]]],[[4,[[0,[1,2,20]],13]]]],[[[49,[[0,[1,2,20]]]]],13],[[[49,[[0,[1,2,20]]]],13]],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],[[[49,[[0,[1,2,20]]]],27,[31,[[0,[1,2,20]]]]],32],[13,49],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]],33],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]],13]],[[[49,[[0,[1,2,20]]]],4]],[[[49,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]],[31,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[[49,[[0,[1,2,20]]]],27,[31,[[0,[1,2,20]]]]]],[46,16],[48,16],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],[[15,[26]]]],[[]],[[]],[[]],[[],52],[48,17],0,[48,17],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[49,[[0,[1,2,20]]]],28],15],[[[49,[[0,[1,2,20]]]]],[[0,[34,36]]]],[[[49,[[0,[1,2,20]]]],37],34],[[],38],[[],38],[[],38],[[[49,[[0,[1,2,20]]]]],[[11,[[51,[50]]]]]],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],0,[[[49,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[[49,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[53,54],[[16,[55]]]],[[53,56,13],[[16,[54,57]]]],[[53,56,13,5],[[16,[54,58]]]],[[53,59],[[16,[54,57]]]],[59,5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[59,59],[53,53],[55,55],[60,60],[57,57],[58,58],[[]],[[]],[[]],[[]],[[]],[[]],[[53,5],[[16,[54,55]]]],[[59,59],19],[[53,53],19],[[55,55],19],[[60,60],19],[[57,57],19],[[58,58],19],[[59,44],[[16,[59,59]]]],[[59,21],22],[[53,21],22],[[55,21],22],[[55,21],22],[[60,21],22],[[60,21],22],[[57,21],22],[[57,21],22],[[58,21],22],[[58,21],22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,[[16,[59,[15,[59]]]]]],[[[4,[13,61]]],[[16,[53,55]]]],[54,[[16,[53,55]]]],[61],[[56,13],59],[59,[[16,[53,55]]]],[53,61],[[59,13],[[15,[59]]]],[[53,13],[[15,[59]]]],[53,[[16,[5]]]],[59,61],[59,13],0,[53,54],[[59,5],59],[[53,5],[[16,[54,60]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[59],[[53,5,5],[[16,[[15,[19]]]]]],[59,62],[53,62],[5,59],[62,15],0,[59,[[15,[59]]]],[63],[63],[63],[63],[[59,5],[[16,[59,59]]]],[59,64],[53,64],[53,59],[[]],[[]],[[]],[[]],[[]],[[]],[[],52],[[],52],[[],52],[[],52],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[43,33],[43,64],[47,64],0,0,[[[47,[2]],[47,[2]]]],[[[43,[[0,[1,2]]]],[47,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],[43,[[0,[1,2]]]]],[[47,[[0,[1,2]]]]]],[43,43],[[[43,[14]],5,44,65],48],[[[43,[[0,[1,2]]]],44],[[47,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[43,27],[[16,[17,66]]]],0,[[],[[15,[67]]]],[[],[[15,[68]]]],[[],[[15,[67]]]],[[],[[15,[68]]]],[[[43,[1]]],[[43,[1]]]],[[[69,[1,1]]],[[69,[1,1]]]],[[[70,[1,1]]],[[70,[1,1]]]],[[[47,[1]]],[[47,[1]]]],[[]],[[]],[[]],[[]],[[[69,[2,2]],69],12],[[[70,[2,2]],70],12],[[],43],[[],47],[69],[[],[[16,[47]]]],[[43,27],64],[[[43,[18]],43],19],[[[69,[18,18]],69],19],[[[70,[18,18]],70],19],[[66,66],19],[[[47,[18]],47],19],[[[43,[14]],5,44],64],[[[43,[14]],5,44],64],[43,64],[[[43,[20]],21],22],[[[69,[20,20]],21],22],[[[70,[20,20]],21],22],[[66,21],22],[[66,21],22],[[[47,[20]],21],22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,64],[[[43,[14]],5,37],[[15,[8]]]],[[[43,[14]],5,28],15],[[43,37],[[15,[[71,[27]]]]]],[[43,37],[[15,[[69,[[71,[27]]]]]]]],[[43,28],[[15,[29]]]],[[[43,[[0,[1,2]]]]],[[47,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,[0,[1,2]]],[[47,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,17],[[47,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],27],[[47,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],28,29],[[47,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,19],[[[47,[2]]],19],0,0,[[[43,[14]],5],64],[[[43,[[0,[1,2]]]]],[[43,[[0,[1,2]]]]]],[[[47,[2]]],[[47,[2]]]],[44,[[43,[[0,[1,2]]]]]],[72,15],[73,15],[[43,28],74],[[[69,[35,35]],69],[[15,[12]]]],[[[70,[35,35]],70],[[15,[12]]]],[63],[47,16],[[]],[[]],[[]],[[]],[[],52],[[[43,[14]],5,44,65],[[16,[48]]]],[[[43,[14]],5,44],64],[[[43,[14]],5,44],64],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[43,[14]],5,37],[[16,[[15,[8]]]]]],[[[43,[14]],5,28],[[16,[15]]]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[43,[14]],5],64],0,0,[[43,37],[[15,[[4,[13,29]]]]]],[[43,37],34],0,[47,64],0,0,[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[[43,[[0,[1,2]]]],17],[[47,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[43,[[0,[1,2]]]]],[[72,[[0,[1,2]]]]]],[[43,27],73],[[[43,[[0,[1,2]]]],37],[[73,[[0,[1,2]]]]]]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeHeightAnchor"],[4,"ChainPosition"],[4,"ConfirmationTime"],[3,"FullTxOut"],[3,"SpkIterator"],[4,"Ordering"],[15,"u32"],[8,"Anchor"],[4,"Option"],[4,"Result"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Block"],[15,"usize"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[8,"RangeBounds"],[15,"i64"],[3,"BTreeSet"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"ChangeSet"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"IntoIterator"],[8,"Default"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"String"],[3,"LocalChain"],[6,"ChangeSet"],[3,"MissingGenesisError"],[3,"Header"],[3,"CannotConnectError"],[4,"ApplyHeaderError"],[3,"CheckPoint"],[3,"AlterCheckPointError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[8,"Iterator"],[8,"FnMut"],[4,"CalculateFeeError"],[3,"Amount"],[3,"SignedAmount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"Arc"],[3,"TxAncestors"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"DescriptorExt"],[8,"AnchorFromBlockPosition"],[13,"Confirmed"],[13,"Unconfirmed"]]},\
+"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin â¦","t":[8,8,8,17,3,17,8,4,3,4,3,13,13,8,16,3,2,3,3,2,13,13,11,10,11,11,11,12,12,10,11,2,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,12,12,11,11,11,11,11,12,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,10,11,11,11,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,0,11,2,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,16,3,8,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,4,13,3,6,3,3,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,4,3,3,13,13,3,3,3,3,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","Error","FullTxOut","IndexedTxGraph","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_position","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into_iter","is_block_in_chain","is_confirmed","is_confirmed","is_confirmed_and_spendable","is_empty","is_mature","is_on_coinbase","is_relevant","is_tx_relevant","is_used","keychain","local_chain","mark_used","miniscript","net_value","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","serialize","spent_by","spk_at_index","spk_client","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","KeychainTxOutIndex","add","add_keychain","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","as_inner","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","from","from","from","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","net_value","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_keychain_spks","revealed_spks","sent_and_received","serialize","serialize","spk_at_index","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_block_ids","from_blocks","from_changeset","from_genesis_hash","from_header","from_tip","genesis_hash","get","get","get_chain_tip","hash","height","height","initial_changeset","insert","insert_block","into","into","into","into","into","into","into","into_iter","into_iter","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","provide","provide","push","range","range","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_include_height","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","FullScanRequest","FullScanResult","SyncRequest","SyncResult","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_outpoints","chain_spks","chain_spks_for_keychain","chain_tip","chain_tip","chain_txids","chain_update","chain_update","from","from","from","from","from_chain_tip","from_chain_tip","from_keychain_txout_index","graph_update","graph_update","inspect_outpoints","inspect_spks","inspect_spks_for_all_keychains","inspect_spks_for_keychain","inspect_txids","into","into","into","into","last_active_indices","outpoints","populate_with_revealed_spks","set_outpoints","set_spks","set_spks_for_keychain","set_txids","spks","spks_by_keychain","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txids","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","new","next","next","outspends","partial_cmp","partial_cmp","provide","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","","bdk_chain::indexed_tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::local_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::spk_client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait that âanchorsâ blockchain data to a specific â¦","An Anchor that can be constructed from a given block, â¦","Trait that makes an object appendable.","Maximum BIP32 derivation index.","A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output â¦","Represents a service that tracks the blockchain.","Represents the observed position of some chain data.","An Anchor implementation that also records the exact â¦","Block height and timestamp at which a transaction is â¦","An Anchor implementation that also records the exact â¦","The chain data is seen as confirmed, and in anchored by A.","The transaction is confirmed","A trait to extend the functionality of a miniscript â¦","Error type.","A TxOut with as much data as we can retrieve about it","","An iterator for derived script pubkeys.","An index storing TxOuts that have a script pubkey that â¦","","The chain data is not confirmed and last seen in the â¦","The transaction is unconfirmed","The script pubkeys that are being tracked by the index.","Returns the BlockId that the associated blockchain data is â¦","","","","The anchor block.","The anchor block.","Append another object of the same type onto self.","","","","","","","","","","","","","","","","","","","The position of the transaction in outpoint in the overall â¦","","","","","","","","","","","","","","","","","Maps a ChainPosition<&A> into a ChainPosition<A> by â¦","","","","","","","The exact confirmation height of the transaction.","The confirmation height of the transaction being anchored.","Get the upper bound of the chain dataâs confirmation â¦","Get the upper bound of the chain dataâs confirmation â¦","Determines the upper bound of the confirmation height.","","","The confirmation time of the transaction being anchored.","","","","","Get a reference to the internal descriptor.","","","","","Returns the minimum value (in satoshis) at which an output â¦","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct the anchor from a given block, block height and â¦","","","","Get the best chainâs chain tip.","","","","","","The hash of the block.","The height of the block.","Returns the index associated with the script pubkey.","","","Contains the IndexedTxGraph and associated types. Refer to â¦","","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Determines whether block of BlockId exists as an ancestor â¦","Returns whether ChainPosition is confirmed or not.","Returns whether ConfirmationTime is the confirmed variant.","Whether the utxo is/was/will be spendable with chain tip.","Returns whether the structure is considered empty.","Whether the txout is considered mature.","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a â¦","","Returns whether the script pubkey at index has been used â¦","Module for keychain related structures.","The LocalChain is a local implementation of ChainOracle.","Marks the script pubkey at index as used even though it â¦","","Computes the net value transfer effect of tx on the script â¦","Create a new script pubkey iterator from descriptor.","Create a new script pubkey iterator from descriptor and a â¦","","","The location of the TxOut.","Get a reference to the set of indexed outpoints.","Iterates over all the outputs with script pubkeys in an â¦","","","","","","","Scans a transactionâs outputs for matching script â¦","Scan a single TxOut for a matching script pubkey and â¦","Computes the total value transfer effect tx has on the â¦","","","","","The txid and chain position of the transaction (if any) â¦","Returns the script that has been inserted at the index.","Helper types for spk-based blockchain clients.","","","","","","","","","","","","","","","","","","","","","","","","","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 â¦","","","","","","","","","Construct an unconfirmed variant using the given last_seen â¦","Undoes the effect of mark_used. Returns whether the index â¦","Iterates over all unused script pubkeys in an index range.","","","","","","","","","Confirmation height.","The last-seen timestamp in unix seconds.","Confirmation time in unix seconds.","Represents changes to an IndexedTxGraph.","The resultant âchangesetâ when new transaction data is â¦","The IndexedTxGraph combines a TxGraph and an Indexer â¦","Utilities for indexing transaction data.","","Batch insert all transactions of the given block of height.","Batch insert all transactions of the given block of heightâ¦","Apply changeset to itself.","Applies the ChangeSet to the IndexedTxGraph.","Apply an update directly.","Batch insert transactions, filtering out those that are â¦","Batch insert unconfirmed transactions, filtering out those â¦","Batch insert unconfirmed transactions.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a reference of the internal transaction graph.","TxGraph changeset.","Transaction index.","Scans a transaction for relevant outpoints, which are â¦","Scan and index the given outpoint and txout.","Indexer changeset.","Determines the ChangeSet between self and an empty Indexer.","Determines the ChangeSet between self and an empty â¦","Insert an anchor for a given transaction.","Insert a unix timestamp of when a transaction is seen in â¦","Insert and index a transaction into the graph.","Insert a floating txout of given outpoint.","Calls U::from(self).","Calls U::from(self).","","Determines whether the transaction should be included in â¦","Construct a new IndexedTxGraph with a given index.","","","","","","","","","","","Balance, differentiated into various categories.","Represents updates to the derivation index of a â¦","KeychainTxOutIndex controls how script pubkeys are â¦","","Add a keychain to the trackerâs txout_index with a â¦","Get unbounded spk iterators for all keychains.","Append another ChangeSet into self.","Applies the derivation changeset to the KeychainTxOutIndexâ¦","","Get the inner map of the keychain to its new derivation â¦","","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","All coinbase outputs not yet matured","Returns the keychain and keychain index associated with â¦","","","","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the changeset are empty.","","Returns whether the spk under the keychainâs index has â¦","Iterate over all OutPoints that have TxOuts with script â¦","Iterate over OutPoints that have script pubkeys derived â¦","Return a reference to the internal map of keychain to â¦","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 â¦","Get the lookahead setting.","Store lookahead scripts until target_index (inclusive).","Marks the script pubkey at index as used even though the â¦","Computes the net value that this transaction gives to the â¦","Construct a KeychainTxOutIndex with the given lookahead.","Get the next derivation index for keychain. The next index â¦","Gets the next unused script pubkey in the keychain. I.e., â¦","Get a reference to the set of indexed outpoints.","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 â¦","Iterate over revealed spks of the given keychain.","Iterate over revealed spks of keychains in range","Computes the total value transfer effect tx has on the â¦","","","Return the script that exists under the given keychainâs â¦","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","Return the TxOut of outpoint if it has been indexed.","Iterate over known txouts that spend to tracked script â¦","Finds all txouts on a transaction that has previously been â¦","","","","Get an unbounded spk iterator over a given keychain.","Undoes the effect of mark_used. Returns whether the index â¦","Unconfirmed UTXOs received from an external wallet","Iterate over revealed, but unused, spks of the given â¦","Iterate over revealed, but unused, spks of all keychains.","","","","Represents a failure when trying to insert/remove a â¦","The error type for LocalChain::apply_header_connected_to.","Occurs when the update cannot connect with the original â¦","Occurs when an update does not have a common checkpoint â¦","The ChangeSet represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement â¦","Iterates over checkpoints backwards.","Occurs when connected_to block conflicts with either the â¦","This is a local implementation of ChainOracle.","An error which occurs when a LocalChain is constructed â¦","Apply the given changeset.","Update the chain with a given Header connecting it with â¦","Update the chain with a given Header at height which you â¦","Applies the given update to the chain.","Get the BlockId of the checkpoint.","","","","","","","","","","","","","","","","","","","","","","","","","","","Removes blocks from (and inclusive of) the given block_id.","","","","","","","Extends the checkpoint linked list by a iterator of block â¦","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a checkpoint from a list of BlockIds in â¦","Constructs a LocalChain from a BTreeMap of height to â¦","Construct a LocalChain from an initial changeset.","Construct LocalChain from genesis hash.","Construct a checkpoint from the given header and block â¦","Construct a LocalChain from a given checkpoint tip.","Get the genesis hash.","Get checkpoint at height.","Get checkpoint at given height (if it exists).","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpointâs height.","Derives an initial ChangeSet, meaning that it can be â¦","Inserts block_id at its height within the chain.","Insert a BlockId.","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).","","","","Iterate from this checkpoint in descending height.","Iterate over checkpoints in descending height order.","Construct a new base block at the front of a linked list.","","The original checkpointâs block hash which cannot be â¦","Get the previous checkpoint in the chain","","","","","Puts another checkpoint onto the linked list representing â¦","Iterate checkpoints over a height range.","Iterate checkpoints over a height range.","Get the highest checkpoint.","","","","","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two â¦","","","","","","","","","","","","","","","The attempted update to the original_block hash.","","","","","","","","Data required to perform a spk-based blockchain client â¦","Data returned from a spk-based blockchain client full scan.","Data required to perform a spk-based blockchain client â¦","Data returned from a spk-based blockchain client sync.","","","","","","","","","Chain on additional OutPoints that will be synced against.","Chain on additional Scripts that will be synced against.","Chain on additional Scripts that will be synced against.","A checkpoint for the current chain LocalChain::tip. The â¦","A checkpoint for the current LocalChain::tip. The full â¦","Chain on additional Txids that will be synced against.","The update to apply to the receiving LocalChain.","The update to apply to the receiving TxGraph.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a new SyncRequest from a given cp tip.","Construct a new FullScanRequest from a given chain_tip.","Construct a new FullScanRequest from a given chain_tip and â¦","The update to apply to the receiving TxGraph.","The update to apply to the receiving LocalChain.","Add a closure that will be called for OutPoints previously â¦","Add a closure that will be called for Scripts previously â¦","Add a closure that will be called for every Script â¦","Add a closure that will be called for every Script â¦","Add a closure that will be called for Txids previously â¦","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Last active indices for the corresponding keychains (K).","Transactions with these outpoints or spent from these â¦","Populate the request with revealed script pubkeys from â¦","Set the OutPoints that will be synced against.","Set the Scripts that will be synced against.","Set the Scripts for a given keychain.","Set the Txids that will be synced against.","Transactions that spend from or to these indexed script â¦","Iterators of script pubkeys indexed by the keychain index.","","","","","","","","","Transactions with these txids.","","","","","","","","","Errors returned by TxGraph::calculate_fee.","A transaction that is included in the chain, or is still â¦","The ChangeSet represents changes to a TxGraph.","Missing TxOut for one or more of the inputs of the tx","When the transaction is invalid according to the graph it â¦","An iterator that traverses ancestors of a given root â¦","An iterator that traverses transaction descendants.","A graph of transactions and spends.","A transaction node in the TxGraph.","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","Iterates over the heights of that the new transaction â¦","The blocks that the transaction is âanchoredâ in.","Added anchors.","","Applies ChangeSet to TxGraph.","Extends this graph with another so that self becomes the â¦","","Get the total balance of outpoints that are in chain of â¦","Batch insert unconfirmed transactions.","","","","","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx â¦","How the transaction is observed as (confirmed or â¦","","","","","","","","","","","","","","","","","","","Given a transaction, return an iterator of txids that â¦","","","","","","Get a filtered list of outputs from the given outpoints â¦","Get a filtered list of unspent outputs (UTXOs) from the â¦","Iterate over floating txouts known by TxGraph.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get the position of the transaction in chain with tip â¦","Get the txid of the spending transaction and where the â¦","Get a transaction by txid. This only returns Some for full â¦","Get a transaction node by txid. This only returns Some for â¦","Obtains a single tx output (if any) at the specified â¦","Determines the ChangeSet between self and an empty TxGraph.","Inserts the given anchor into TxGraph.","Inserts the given seen_at for txid into TxGraph.","Inserts the given transaction into TxGraph.","Inserts the given TxOut at OutPoint.","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 the graph has any transactions or outputs in it.","","Added last-seen unix timestamps of transactions.","The last-seen unix timestamp of the transaction as â¦","List graph transactions that are in chain with chain_tip.","Transform the TxGraph to have Anchors of another type.","Transform the ChangeSet to have Anchors of another type.","Construct a new TxGraph from a list of transactions.","","","The transactions spending from this output.","","","","","","","","","","Get the total balance of outpoints that are in chain of â¦","Get a filtered list of outputs from the given outpoints â¦","Get a filtered list of unspent outputs (UTXOs) from the â¦","","","","","","","","Get the position of the transaction in chain with tip â¦","Get the txid of the spending transaction and where the â¦","","","","","","","","List graph transactions that are in chain with chain_tip.","A partial or full representation of the transaction.","The transaction node (as part of the graph).","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within ChangeSet.","Added txouts.","Added transactions.","","","","","","","","Update the last seen time for all unconfirmed transactions.","","","","","","","","Creates an iterator that filters and maps ancestor â¦","Creates an iterator that both filters and maps conflicting â¦","Creates an iterator that filters and maps descendants from â¦"],"i":[0,0,0,0,0,0,0,0,0,0,0,8,9,0,79,0,0,0,0,0,8,9,3,14,5,6,7,6,7,39,3,0,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,10,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,8,8,9,5,6,7,10,6,7,14,14,8,6,7,7,3,5,6,7,11,9,5,6,7,80,8,9,5,6,7,10,3,8,9,5,6,7,10,3,8,9,9,5,5,5,6,7,10,11,81,5,6,7,79,8,9,5,6,7,5,5,3,3,3,0,3,3,3,8,9,5,6,7,10,11,11,79,8,9,10,39,10,10,3,3,3,0,0,3,0,3,11,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,0,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,0,3,10,3,3,3,8,9,5,6,7,10,11,9,3,3,3,8,9,5,6,7,10,11,82,83,82,0,41,0,0,40,42,42,41,42,42,42,42,42,42,40,42,40,40,40,42,40,40,40,42,40,42,40,40,40,42,40,42,41,41,40,41,42,42,42,42,42,42,40,40,41,42,40,40,42,40,42,40,42,40,42,40,0,0,0,48,49,49,47,49,49,47,47,49,47,48,49,47,48,49,47,48,49,47,48,48,49,47,48,47,48,47,48,49,47,48,48,49,47,48,48,49,49,49,49,49,49,47,48,47,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,47,48,49,49,47,48,48,48,48,48,49,47,48,49,47,48,49,49,49,49,47,48,49,49,48,49,49,49,47,48,0,0,58,0,0,0,0,58,0,0,53,53,53,53,59,62,59,53,55,60,57,58,62,59,53,55,60,57,58,59,53,55,60,57,58,59,53,55,60,57,58,53,59,53,55,60,57,58,59,59,53,55,55,60,60,57,57,58,58,62,59,53,55,60,57,58,59,53,53,53,59,53,53,59,53,53,59,59,60,53,59,53,62,59,53,55,60,57,58,62,59,53,59,53,59,62,60,59,55,60,57,58,59,59,53,53,59,53,55,60,57,58,55,60,57,58,62,59,53,55,60,57,58,57,62,59,53,55,60,57,58,62,59,53,55,60,57,58,60,62,59,53,55,60,57,58,0,0,0,0,65,84,66,85,65,84,66,85,65,65,66,65,66,65,84,85,65,84,66,85,65,66,66,84,85,65,65,66,66,65,65,84,66,85,85,65,65,65,65,66,65,65,66,65,84,66,85,65,84,66,85,65,65,84,66,85,65,84,66,85,0,0,0,70,70,0,0,0,0,43,43,46,73,46,46,43,43,43,43,43,76,77,43,73,74,70,46,76,77,43,73,74,70,46,43,74,76,76,77,77,43,73,74,46,43,73,74,46,73,74,43,46,73,46,43,43,73,74,70,46,43,43,43,43,73,74,70,70,46,76,77,43,73,74,70,46,43,43,43,43,43,43,43,43,43,43,43,76,77,43,73,74,70,46,76,77,43,46,46,73,43,43,46,43,76,77,43,73,74,70,46,43,73,74,46,70,43,43,43,76,77,43,73,74,70,46,43,43,76,77,43,73,74,70,46,43,73,74,43,43,73,46,46,46,76,77,43,73,74,70,46,43,76,77,43,73,74,70,46,43,43,43],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],5],[5,5],[6,5],[7,5],0,0,[[]],[[[3,[[0,[1,2]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[3,[1]]],[[3,[1]]]],[[[8,[1]]],[[8,[1]]]],[9,9],[5,5],[6,6],[7,7],[[[10,[1]]],[[10,[1]]]],[[[11,[1]]],[[11,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[8,[[8,[1]]]],[[[8,[2]],8],12],[[9,9],12],[[5,5],12],[[6,6],12],[[7,7],12],[[[10,[2]],10],12],0,0,[[],13],[[],13],[[[8,[14]]],[[15,[13]]]],[6,13],[7,13],0,[[],3],[[],5],[[],6],[[],7],[11],[[],[[16,[9]]]],[[],[[16,[5]]]],[[],[[16,[6]]]],[[],[[16,[7]]]],[[],17],[[[8,[18]],8],19],[[9,9],19],[[5,5],19],[[6,6],19],[[7,7],19],[[[10,[18]],10],19],[[[3,[20]],21],22],[[[8,[20]],21],22],[[9,21],22],[[5,21],22],[[6,21],22],[[7,21],22],[[[10,[20]],21],22],[[]],[[]],[[[8,[7]]],9],[[]],[[]],[[],5],[[],5],[[]],[[]],[[]],[[]],[[23,5,24]],[[23,5,24],5],[[23,5,24],6],[[23,5,24],7],[[],[[16,[5]]]],[[[8,[25]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],26],15],[[[3,[[0,[1,2]]]],27]],[[[3,[[0,[1,2]]]],28,29]],0,[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[0,[1,2]],30],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[16,[[15,[19]]]]]],[8,19],[9,19],[[[10,[14]],13],19],[[],19],[[[10,[14]],13],19],0,[[[3,[[0,[1,2]]]],27],19],[[[3,[[0,[1,2]]]],27],19],[[[3,[[0,[1,2]]]]],19],0,0,[[[3,[[0,[1,2]]]]],19],0,[[[3,[[0,[1,2]]]],27,[31,[[0,[1,2]]]]],32],[[],11],[[],11],[11,15],[[11,24],15],0,[[[3,[[0,[1,2]]]]],33],[[[3,[[0,[1,2]]]],[31,[[0,[1,2]]]]],34],[[[8,[35]],8],[[15,[12]]]],[[9,9],[[15,[12]]]],[[5,5],[[15,[12]]]],[[6,6],[[15,[12]]]],[[7,7],[[15,[12]]]],[[[10,[35]],10],[[15,[12]]]],[[[3,[[0,[1,2]]]],27],[[33,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],28,29],15],[[[3,[[0,[1,2]]]],27,[31,[[0,[1,2]]]]]],[9,16],[5,16],[6,16],[7,16],0,[[[3,[[0,[1,2]]]]],[[15,[26]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[[3,[[0,[1,2]]]],28],15],0,[[[3,[[0,[1,2]]]]],[[0,[34,36]]]],[[[3,[[0,[1,2]]]],37],34],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[17,9],[[[3,[[0,[1,2]]]]],19],[[[3,[[0,[1,2]]]]],[[0,[34,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[[40,[14,39]],[40,[14,39]]]],[[[42,[41]],23,13],40],[[[42,[41]],23,13],40],[[]],[[[42,[14,41]],[40,[14]]]],[[[42,[14,41]],[43,[14]]],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[[42,[14,41]],44],[[40,[14]]]],[[]],[[]],[[]],[[]],[[[40,[1,1]]],[[40,[1,1]]]],[[]],[[],[[42,[45]]]],[[],[[40,[45]]]],[[],[[16,[40]]]],[[[40,[18,18]],40],19],[[[42,[20,20]],21],22],[[[40,[20,20]],21],22],[[]],[[]],[46,[[40,[45]]]],[47,[[40,[47]]]],[42,43],0,0,[27],[[28,29]],0,[[]],[[[42,[14,41]]],[[40,[14]]]],[[[42,[14,41]],37,14],[[40,[14]]]],[[[42,[14,41]],37,17],[[40,[14]]]],[[[42,[14,41]],27],[[40,[14]]]],[[[42,[14,41]],28,29],[[40,[14]]]],[[]],[[]],[[[40,[14,39]]],19],[27,19],[[],42],[40,16],[[]],[[],16],[[],16],[[],16],[[],16],[[],38],[[],38],[[]],[[]],0,0,0,[[48,48],48],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],[51,[50]]]],[[[49,[[0,[1,2,20]]]]],[[4,[[0,[1,2,20]],[11,[[51,[50]]]]]]]],[[[47,[2]],[47,[2]]]],[[[49,[[0,[1,2,20]]]],[47,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]]],[47,4],[47,4],[[]],[[]],[[]],[[]],[[]],[[]],[[[49,[1]]],[[49,[1]]]],[[[47,[1]]],[[47,[1]]]],[48,48],[[]],[[]],[[]],0,[[],49],[[],47],[[],48],[[],[[16,[47]]]],[[],[[16,[48]]]],[[[47,[18]],47],19],[[48,48],19],[[[49,[20]],21],22],[[[47,[20]],21],22],[[48,21],22],[[48,21],22],[[]],[[]],[[]],0,[[[49,[[0,[1,2,20]]]],26],15],[[[49,[[0,[1,2,20]]]],27]],[[[49,[[0,[1,2,20]]]],28,29]],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]],3],[[]],[[]],[[]],[[[47,[2]]],19],[[[49,[[0,[1,2,20]]]],27],19],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],[[[49,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]],[31,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]]],4],[[[49,[[0,[1,2,20]]]]],[[15,[13]]]],[[[49,[[0,[1,2,20]]]]],4],[[[49,[[0,[1,2,20]]]]],[[15,[13]]]],[[[49,[[0,[1,2,20]]]]],[[4,[[0,[1,2,20]],13]]]],[[[49,[[0,[1,2,20]]]]],13],[[[49,[[0,[1,2,20]]]],13]],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],[[[49,[[0,[1,2,20]]]],27,[31,[[0,[1,2,20]]]]],32],[13,49],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]]],33],[[[49,[[0,[1,2,20]]]]]],[[[49,[[0,[1,2,20]]]],13]],[[[49,[[0,[1,2,20]]]],4]],[[[49,[[0,[1,2,20]]]]],34],[[[49,[[0,[1,2,20]]]],[31,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[[49,[[0,[1,2,20]]]],27,[31,[[0,[1,2,20]]]]]],[47,16],[48,16],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],[[15,[26]]]],[[]],[[]],[[]],[[],52],[48,17],0,[48,17],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[49,[[0,[1,2,20]]]],28],15],[[[49,[[0,[1,2,20]]]]],[[0,[34,36]]]],[[[49,[[0,[1,2,20]]]],37],34],[[],38],[[],38],[[],38],[[[49,[[0,[1,2,20]]]]],[[11,[[51,[50]]]]]],[[[49,[[0,[1,2,20]]]],[0,[1,2,20]],13],19],0,[[[49,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[[49,[[0,[1,2,20]]]]],[[0,[34,1]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[53,54],[[16,[55]]]],[[53,56,13],[[16,[54,57]]]],[[53,56,13,5],[[16,[54,58]]]],[[53,59],[[16,[54,57]]]],[59,5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[59,59],[53,53],[55,55],[60,60],[57,57],[58,58],[[]],[[]],[[]],[[]],[[]],[[]],[[53,5],[[16,[54,55]]]],[[59,59],19],[[53,53],19],[[55,55],19],[[60,60],19],[[57,57],19],[[58,58],19],[[59,44],[[16,[59,59]]]],[[59,21],22],[[53,21],22],[[55,21],22],[[55,21],22],[[60,21],22],[[60,21],22],[[57,21],22],[[57,21],22],[[58,21],22],[[58,21],22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,[[16,[59,[15,[59]]]]]],[[[4,[13,61]]],[[16,[53,55]]]],[54,[[16,[53,55]]]],[61],[[56,13],59],[59,[[16,[53,55]]]],[53,61],[[59,13],[[15,[59]]]],[[53,13],[[15,[59]]]],[53,[[16,[5]]]],[59,61],[59,13],0,[53,54],[[59,5],59],[[53,5],[[16,[54,60]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[59],[[53,5,5],[[16,[[15,[19]]]]]],[59,62],[53,62],[5,59],[62,15],0,[59,[[15,[59]]]],[63],[63],[63],[63],[[59,5],[[16,[59,59]]]],[59,64],[53,64],[53,59],[[]],[[]],[[]],[[]],[[]],[[]],[[],52],[[],52],[[],52],[[],52],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[65,44],65],[[65,44],65],[[[66,[[0,[2,1]]]],[0,[2,1]],44],[[66,[[0,[2,1]]]]]],0,0,[[65,44],65],0,0,[[]],[[]],[[]],[[]],[59,65],[59,[[66,[[0,[2,1]]]]]],[[59,49],[[66,[[0,[2,1]]]]]],0,0,[[65,[0,[67,68,69]]],65],[[65,[0,[67,68,69]]],65],[[[66,[[0,[2,1]]]],[0,[67,68,69,1]]],[[66,[[0,[2,1]]]]]],[[[66,[[0,[2,1]]]],[0,[2,1]],[0,[67,68,69]]],[[66,[[0,[2,1]]]]]],[[65,[0,[67,68,69]]],65],[[]],[[]],[[]],[[]],0,0,[[65,49,[31,[[0,[1,2,20,68,69]]]]],65],[[65,44],65],[[65,44],65],[[[66,[[0,[2,1]]]],[0,[2,1]],44],[[66,[[0,[2,1]]]]]],[[65,44],65],0,0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],38],[[],38],[[],38],[[],38],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[43,33],[43,64],[46,64],0,0,[[[46,[2]],[46,[2]]]],[[[43,[[0,[1,2]]]],[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],[43,[[0,[1,2]]]]],[[46,[[0,[1,2]]]]]],[43,43],[[[43,[14]],5,44,67],48],[[[43,[[0,[1,2]]]],44],[[46,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[43,27],[[16,[17,70]]]],0,[[],[[15,[71]]]],[[],[[15,[72]]]],[[],[[15,[72]]]],[[],[[15,[71]]]],[[[43,[1]]],[[43,[1]]]],[[[73,[1,1]]],[[73,[1,1]]]],[[[74,[1,1]]],[[74,[1,1]]]],[[[46,[1]]],[[46,[1]]]],[[]],[[]],[[]],[[]],[[[73,[2,2]],73],12],[[[74,[2,2]],74],12],[[],43],[[],46],[73],[[],[[16,[46]]]],[[43,27],64],[[[43,[18]],43],19],[[[73,[18,18]],73],19],[[[74,[18,18]],74],19],[[70,70],19],[[[46,[18]],46],19],[[[43,[14]],5,44],64],[[[43,[14]],5,44],64],[43,64],[[[43,[20]],21],22],[[[73,[20,20]],21],22],[[[74,[20,20]],21],22],[[70,21],22],[[70,21],22],[[[46,[20]],21],22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,64],[[[43,[14]],5,37],[[15,[8]]]],[[[43,[14]],5,28],15],[[43,37],[[15,[[75,[27]]]]]],[[43,37],[[15,[[73,[[75,[27]]]]]]]],[[43,28],[[15,[29]]]],[[[43,[[0,[1,2]]]]],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,[0,[1,2]]],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,17],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],27],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],28,29],[[46,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,19],[[[46,[2]]],19],0,0,[[[43,[14]],5],64],[[[43,[[0,[1,2]]]]],[[43,[[0,[1,2]]]]]],[[[46,[2]]],[[46,[2]]]],[44,[[43,[[0,[1,2]]]]]],[76,15],[77,15],[[43,28],78],[[[73,[35,35]],73],[[15,[12]]]],[[[74,[35,35]],74],[[15,[12]]]],[63],[46,16],[[]],[[]],[[]],[[]],[[],52],[[[43,[14]],5,44,67],[[16,[48]]]],[[[43,[14]],5,44],64],[[[43,[14]],5,44],64],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[43,[14]],5,37],[[16,[[15,[8]]]]]],[[[43,[14]],5,28],[[16,[15]]]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[43,[14]],5],64],0,0,[[43,37],[[15,[[4,[13,29]]]]]],[[43,37],34],0,[46,64],0,0,[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[[43,[[0,[1,2]]]],17],[[46,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[43,[[0,[1,2]]]]],[[76,[[0,[1,2]]]]]],[[43,27],77],[[[43,[[0,[1,2]]]],37],[[77,[[0,[1,2]]]]]]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeHeightAnchor"],[4,"ChainPosition"],[4,"ConfirmationTime"],[3,"FullTxOut"],[3,"SpkIterator"],[4,"Ordering"],[15,"u32"],[8,"Anchor"],[4,"Option"],[4,"Result"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Block"],[15,"usize"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[8,"RangeBounds"],[15,"i64"],[3,"BTreeSet"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"ChangeSet"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"IntoIterator"],[8,"Default"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"String"],[3,"LocalChain"],[6,"ChangeSet"],[3,"MissingGenesisError"],[3,"Header"],[3,"CannotConnectError"],[4,"ApplyHeaderError"],[3,"CheckPoint"],[3,"AlterCheckPointError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[8,"Iterator"],[3,"SyncRequest"],[3,"FullScanRequest"],[8,"FnMut"],[8,"Send"],[8,"Sync"],[4,"CalculateFeeError"],[3,"SignedAmount"],[3,"Amount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"Arc"],[3,"TxAncestors"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"DescriptorExt"],[8,"AnchorFromBlockPosition"],[13,"Confirmed"],[13,"Unconfirmed"],[3,"SyncResult"],[3,"FullScanResult"]]},\
"bdk_coin_select":{"doc":"","t":[3,3,4,4,3,3,13,6,13,3,4,13,13,13,3,4,3,13,13,17,13,13,13,13,13,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,12,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11],"n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","provide","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":["bdk_coin_select","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["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 bdk_chain â¦","t":[8,3,3,2,11,11,11,11,12,11,11,11,2,11,11,11,11,10,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11],"n":["ElectrumExt","ElectrumUpdate","RelevantTxids","bdk_chain","borrow","borrow","borrow_mut","borrow_mut","chain_update","clone","clone_into","default","electrum_client","fmt","fmt","from","from","full_scan","into","into","into_confirmation_time_tx_graph","into_tx_graph","missing_full_txs","relevant_txids","sync","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["bdk_electrum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait to extend Client functionality.","Combination of chain and transactions updates from electrum","Represents updates fetched from an Electrum server, but â¦","","","","","","Chain update","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Full scan the keychain scripts specified with the â¦","Calls U::from(self).","Calls U::from(self).","Finalizes the update by fetching missing txids from the â¦","Finalizes the TxGraph update by fetching missing txids â¦","Determine the full transactions that are missing from graphâ¦","Transaction updates from electrum","Sync a set of scripts with the blockchain (via an Electrum â¦","","","","","","","","",""],"i":[0,0,0,0,1,4,1,4,4,1,1,1,0,1,4,1,4,20,1,4,1,1,1,4,20,1,1,4,1,4,1,4,1,4],"f":[0,0,0,0,[[]],[[]],[[]],[[]],0,[1,1],[[]],[[],1],0,[[1,2],3],[[4,2],3],[[]],[[]],[[5,[9,[[0,[6,7]],8]],10,10],[[12,[11]]]],[[]],[[]],[[1,13,[15,[14]]],[[12,[[17,[16]],11]]]],[[1,13,[15,[14]]],[[12,[[17,[18]],11]]]],[[1,17],[[15,[14]]]],0,[[5,8,8,8,10],[[12,[4,11]]]],[[]],[[],12],[[],12],[[],12],[[],12],[[],19],[[],19],[[]],[[]]],"p":[[3,"RelevantTxids"],[3,"Formatter"],[6,"Result"],[3,"ElectrumUpdate"],[3,"CheckPoint"],[8,"Ord"],[8,"Clone"],[8,"IntoIterator"],[3,"BTreeMap"],[15,"usize"],[4,"Error"],[4,"Result"],[3,"Client"],[3,"Txid"],[3,"Vec"],[3,"ConfirmationTimeHeightAnchor"],[3,"TxGraph"],[3,"ConfirmationHeightAnchor"],[3,"TypeId"],[8,"ElectrumExt"]]},\
-"bdk_esplora":{"doc":"BDK Esplora","t":[6,8,8,3,3,11,11,11,11,2,11,11,10,10,11,11,12,12,12,10,10,11,11,11,11,12,12,11,11,11,11],"n":["Error","EsploraAsyncExt","EsploraExt","FullScanUpdate","SyncUpdate","borrow","borrow","borrow_mut","borrow_mut","esplora_client","from","from","full_scan","full_scan","into","into","last_active_indices","local_chain","local_chain","sync","sync","try_from","try_from","try_into","try_into","tx_graph","tx_graph","type_id","type_id","vzip","vzip"],"q":["bdk_esplora","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["esplora_client::Error","Trait to extend the functionality of â¦","Trait to extend the functionality of â¦","Update returns from a full scan.","Update returned from a sync.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Scan keychain scripts for transactions against Esplora, â¦","Scan keychain scripts for transactions against Esplora, â¦","Calls U::from(self).","Calls U::from(self).","Last active indices for the corresponding keychains (K).","The update to apply to the receiving LocalChain.","The update to apply to the receiving LocalChain.","Sync a set of scripts with the blockchain (via an Esplora â¦","Sync a set of scripts with the blockchain (via an Esplora â¦","","","","","The update to apply to the receiving TxGraph.","The update to apply to the receiving TxGraph.","","","",""],"i":[0,0,0,0,0,7,14,7,14,0,7,14,16,17,7,14,7,7,14,16,17,7,14,7,14,7,14,7,14,7,14],"f":[0,0,0,0,0,[[]],[[]],[[]],[[]],0,[[]],[[]],[[1,[5,[[0,[2,3]],4]],6,6],[[9,[[7,[[0,[2,3]]]],8]]]],[[1,[5,[[0,[4,10]]]],6,6],[[13,[[12,[11]]]]]],[[]],[[]],0,0,0,[[1,4,4,4,6],[[9,[14,8]]]],[[1,[0,[4,10]],[0,[4,10]],[0,[4,10]],6],[[13,[[12,[11]]]]]],[[],9],[[],9],[[],9],[[],9],0,0,[[],15],[[],15],[[]],[[]]],"p":[[3,"CheckPoint"],[8,"Ord"],[8,"Clone"],[8,"IntoIterator"],[3,"BTreeMap"],[15,"usize"],[3,"FullScanUpdate"],[6,"Error"],[4,"Result"],[8,"Send"],[8,"Future"],[3,"Box"],[3,"Pin"],[3,"SyncUpdate"],[3,"TypeId"],[8,"EsploraExt"],[8,"EsploraAsyncExt"]]},\
+"bdk_esplora":{"doc":"BDK Esplora","t":[6,8,8,2,10,10,10,10],"n":["Error","EsploraAsyncExt","EsploraExt","esplora_client","full_scan","full_scan","sync","sync"],"q":["bdk_esplora","","","","","","",""],"d":["esplora_client::Error","Trait to extend the functionality of â¦","Trait to extend the functionality of â¦","","Scan keychain scripts for transactions against Esplora, â¦","Scan keychain scripts for transactions against Esplora, â¦","Sync a set of scripts with the blockchain (via an Esplora â¦","Sync a set of scripts with the blockchain (via an Esplora â¦"],"i":[0,0,0,0,13,14,13,14],"f":[0,0,0,0,[[[3,[[0,[1,2]]]],4,4],[[7,[[5,[[0,[1,2]]]],6]]]],[[3,4,4],[[10,[[9,[8]]]]]],[[11,4],[[7,[12,6]]]],[[11,4],[[10,[[9,[8]]]]]]],"p":[[8,"Ord"],[8,"Clone"],[3,"FullScanRequest"],[15,"usize"],[3,"FullScanResult"],[6,"Error"],[4,"Result"],[8,"Future"],[3,"Box"],[3,"Pin"],[3,"SyncRequest"],[3,"SyncResult"],[8,"EsploraExt"],[8,"EsploraAsyncExt"]]},\
"bdk_file_store":{"doc":"BDK File Store","t":[3,13,3,4,13,13,13,4,3,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,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["AggregateChangesetsError","Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset","create_new","drop","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into_iter","iter_changesets","iter_error","load_from_persistence","new","next","open","open_or_create_new","provide","provide","provide","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":["bdk_file_store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_file_store::FileError",""],"d":["Error type for Store::aggregate_changesets.","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.","Failure to read from the file.","IO error, this may mean that the file is too short.","Error type for EntryIter.","Persists an append-only list of changesets (C) to a single â¦","Loads all the changesets that have been stored as one â¦","Append a new changeset to the file and truncate the file â¦","","","","","","","","","","","The partially-aggregated changeset.","Create a new Store file in write-only mode; error if the â¦","","","","","","","","","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).","","Iterates over the stored changeset from first to last, â¦","The error returned by EntryIter.","","","","Open an existing Store.","Attempt to open existing Store file; create it if the file â¦","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,8,0,0,6,8,6,0,0,1,1,7,8,1,3,6,7,8,1,3,6,3,1,7,8,8,1,3,3,6,6,7,8,8,1,3,6,6,7,8,1,3,6,7,1,3,1,7,7,1,1,8,3,6,8,3,6,7,8,1,3,6,7,8,1,3,6,7,8,1,3,6,7,8,1,3,6,1,18,18],"f":[0,0,0,0,0,0,0,0,0,[1,[[4,[2,3]]]],[1,[[4,[5]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[4,[1,6]]]],[7],[[8,9],10],[[8,9],10],[[1,9],10],[[[3,[11]],9],10],[[3,9],10],[[6,9],10],[[6,9],10],[[]],[[]],[5,8],[[]],[[]],[[]],[5,6],[[]],[[]],[[]],[[]],[[]],[[]],[1,7],0,[1,[[12,[2]]]],[[13,14],7],[7,2],[[],[[4,[1,6]]]],[[],[[4,[1,6]]]],[15],[15],[15],[[],16],[[],16],[[],16],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],17],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[]],[1,12],0,0],"p":[[3,"Store"],[4,"Option"],[3,"AggregateChangesetsError"],[4,"Result"],[3,"Error"],[4,"FileError"],[3,"EntryIter"],[4,"IterError"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[6,"Result"],[15,"u64"],[3,"File"],[3,"Demand"],[3,"String"],[3,"TypeId"],[13,"InvalidMagicBytes"]]},\
"bdk_hwi":{"doc":"HWI Signer","t":[3,11,11,11,11,11,11,11,11,11,11,11,11],"n":["HWISigner","borrow","borrow_mut","fmt","from","from_device","id","into","sign_transaction","try_from","try_into","type_id","vzip"],"q":["bdk_hwi","","","","","","","","","","","",""],"d":["Custom signer for Hardware Wallets","","","","Returns the argument unchanged.","Create a instance from the specified device and chain","","Calls U::from(self).","","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,[[]],[[]],[[1,2],3],[[]],[[4,5],[[7,[1,6]]]],[[1,8],9],[[]],[[1,10,11,8],[[7,[12]]]],[[],7],[[],7],[[],13],[[]]],"p":[[3,"HWISigner"],[3,"Formatter"],[6,"Result"],[3,"HWIDevice"],[3,"HWIChain"],[4,"Error"],[4,"Result"],[3,"Secp256k1"],[4,"SignerId"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[3,"TypeId"]]},\
"bdk_persist":{"doc":"BDK Persist","t":[3,8,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,10],"n":["Persist","PersistBackend","borrow","borrow_mut","commit","fmt","from","into","load_from_persistence","new","stage","stage_and_commit","staged","try_from","try_into","type_id","vzip","write_changes"],"q":["bdk_persist","","","","","","","","","","","","","","","","",""],"d":["Persist wraps a PersistBackend to create a convenient â¦","A persistence backend for Persist.","","","Commit the staged changes to the underlying persistence â¦","","Returns the argument unchanged.","Calls U::from(self).","Return the aggregate changeset C from persistence.","Create a new Persist from PersistBackend.","Stage a changeset to be committed later with commit.","Stages a new changeset and commits it (along with any â¦","Get the changes that have not been committed yet.","","","","","Writes a changeset to the persistence backend."],"i":[0,0,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,8],"f":[0,0,[[]],[[]],[1,[[3,[2]]]],[[[1,[4]],5],[[7,[6]]]],[[]],[[]],[[],[[3,[2]]]],[[[0,[8,9,10]]],1],[1],[1,[[3,[2]]]],[1],[[],7],[[],7],[[],11],[[]],[[],3]],"p":[[3,"Persist"],[4,"Option"],[6,"Result"],[8,"Debug"],[3,"Formatter"],[3,"Error"],[4,"Result"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"TypeId"]]},\
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/source-files.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/source-files.js
index d72e5a2d5d..b7e6fb64d7 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/source-files.js
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/source-files.js
@@ -1,7 +1,7 @@
var sourcesIndex = JSON.parse('{\
"bdk":["",[["descriptor",[],["checksum.rs","dsl.rs","error.rs","mod.rs","policy.rs","template.rs"]],["keys",[],["mod.rs"]],["psbt",[],["mod.rs"]],["wallet",[],["coin_selection.rs","error.rs","export.rs","mod.rs","signer.rs","tx_builder.rs","utils.rs"]]],["lib.rs","types.rs"]],\
"bdk_bitcoind_rpc":["",[],["lib.rs"]],\
-"bdk_chain":["",[["keychain",[],["txout_index.rs"]]],["chain_data.rs","chain_oracle.rs","descriptor_ext.rs","example_utils.rs","indexed_tx_graph.rs","keychain.rs","lib.rs","local_chain.rs","spk_iter.rs","spk_txout_index.rs","tx_data_traits.rs","tx_graph.rs"]],\
+"bdk_chain":["",[["keychain",[],["txout_index.rs"]]],["chain_data.rs","chain_oracle.rs","descriptor_ext.rs","example_utils.rs","indexed_tx_graph.rs","keychain.rs","lib.rs","local_chain.rs","spk_client.rs","spk_iter.rs","spk_txout_index.rs","tx_data_traits.rs","tx_graph.rs"]],\
"bdk_coin_select":["",[],["bnb.rs","coin_selector.rs","lib.rs"]],\
"bdk_electrum":["",[],["electrum_ext.rs","lib.rs"]],\
"bdk_esplora":["",[],["async_ext.rs","blocking_ext.rs","lib.rs"]],\
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
index e5310d8766..8a9f0099c4 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
@@ -2512,6 +2512,53 @@
2511
2512
2513
+2514
+2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
// Bitcoin Dev Kit
// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
//
@@ -2540,6 +2587,7 @@
local_chain::{
self, ApplyHeaderError, CannotConnectError, CheckPoint, CheckPointIter, LocalChain,
},
+ spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
tx_graph::{CanonicalTx, TxGraph},
Append, BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut,
IndexedTxGraph,
@@ -2625,6 +2673,26 @@
pub chain: Option<CheckPoint>,
}
+impl From<FullScanResult<KeychainKind>> for Update {
+ fn from(value: FullScanResult<KeychainKind>) -> Self {
+ Self {
+ last_active_indices: value.last_active_indices,
+ graph: value.graph_update,
+ chain: Some(value.chain_update),
+ }
+ }
+}
+
+impl From<SyncResult> for Update {
+ fn from(value: SyncResult) -> Self {
+ Self {
+ last_active_indices: BTreeMap::new(),
+ graph: value.graph_update,
+ chain: Some(value.chain_update),
+ }
+ }
+}
+
/// The changes made to a wallet by applying an [`Update`].
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
pub struct ChangeSet {
@@ -4777,7 +4845,8 @@
/// transactions related to your wallet into it.
///
/// [`commit`]: Self::commit
- pub fn apply_update(&mut self, update: Update) -> Result<(), CannotConnectError> {
+ pub fn apply_update(&mut self, update: impl Into<Update>) -> Result<(), CannotConnectError> {
+ let update = update.into();
let mut changeset = match update.chain {
Some(chain_update) => ChangeSet::from(self.chain.apply_update(chain_update)?),
None => ChangeSet::default(),
@@ -4902,6 +4971,31 @@
}
}
+/// Methods to construct sync/full-scan requests for spk-based chain sources.
+impl Wallet {
+ /// Create a partial [`SyncRequest`] for this wallet for all revealed spks.
+ ///
+ /// This is the first step when performing a spk-based wallet partial sync, the returned
+ /// [`SyncRequest`] collects all revealed script pubkeys from the wallet keychain needed to
+ /// start a blockchain sync with a spk based blockchain client.
+ pub fn start_sync_with_revealed_spks(&self) -> SyncRequest {
+ SyncRequest::from_chain_tip(self.chain.tip())
+ .populate_with_revealed_spks(&self.indexed_graph.index, ..)
+ }
+
+ /// Create a [`FullScanRequest] for this wallet.
+ ///
+ /// This is the first step when performing a spk-based wallet full scan, the returned
+ /// [`FullScanRequest] collects iterators for the wallet's keychain script pub keys needed to
+ /// start a blockchain full scan with a spk based blockchain client.
+ ///
+ /// This operation is generally only used when importing or restoring a previously used wallet
+ /// in which the list of used scripts is not known.
+ pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind> {
+ FullScanRequest::from_keychain_txout_index(self.chain.tip(), &self.indexed_graph.index)
+ }
+}
+
impl AsRef<bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor>> for Wallet {
fn as_ref(&self) -> &bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor> {
self.indexed_graph.graph()
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 ab3ffd0eec..3379f8e794 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
@@ -97,6 +97,7 @@
97
98
99
+100
//! This crate is a collection of core structures for [Bitcoin Dev Kit].
//!
//! The goal of this crate is to give wallets the mechanisms needed to:
@@ -148,6 +149,7 @@
mod spk_iter;
#[cfg(feature = "miniscript")]
pub use spk_iter::*;
+pub mod spk_client;
#[allow(unused_imports)]
#[macro_use]
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html
new file mode 100644
index 0000000000..4911d6c94a
--- /dev/null
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html
@@ -0,0 +1,770 @@
+spk_client.rs - source 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+
//! Helper types for spk-based blockchain clients.
+
+use core::{fmt::Debug, marker::PhantomData, ops::RangeBounds};
+
+use alloc::{boxed::Box, collections::BTreeMap, vec::Vec};
+use bitcoin::{OutPoint, Script, ScriptBuf, Txid};
+
+use crate::{local_chain::CheckPoint, ConfirmationTimeHeightAnchor, TxGraph};
+
+/// Data required to perform a spk-based blockchain client sync.
+///
+/// A client sync fetches relevant chain data for a known list of scripts, transaction ids and
+/// outpoints. The sync process also updates the chain from the given [`CheckPoint`].
+pub struct SyncRequest {
+ /// A checkpoint for the current chain [`LocalChain::tip`].
+ /// The sync process will return a new chain update that extends this tip.
+ ///
+ /// [`LocalChain::tip`]: crate::local_chain::LocalChain::tip
+ pub chain_tip: CheckPoint,
+ /// Transactions that spend from or to these indexed script pubkeys.
+ pub spks: Box<dyn ExactSizeIterator<Item = ScriptBuf> + Send>,
+ /// Transactions with these txids.
+ pub txids: Box<dyn ExactSizeIterator<Item = Txid> + Send>,
+ /// Transactions with these outpoints or spent from these outpoints.
+ pub outpoints: Box<dyn ExactSizeIterator<Item = OutPoint> + Send>,
+}
+
+impl SyncRequest {
+ /// Construct a new [`SyncRequest`] from a given `cp` tip.
+ pub fn from_chain_tip(cp: CheckPoint) -> Self {
+ Self {
+ chain_tip: cp,
+ spks: Box::new(core::iter::empty()),
+ txids: Box::new(core::iter::empty()),
+ outpoints: Box::new(core::iter::empty()),
+ }
+ }
+
+ /// Set the [`Script`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn set_spks(
+ mut self,
+ spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static>,
+ ) -> Self {
+ self.spks = Box::new(spks.into_iter());
+ self
+ }
+
+ /// Set the [`Txid`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn set_txids(
+ mut self,
+ txids: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static>,
+ ) -> Self {
+ self.txids = Box::new(txids.into_iter());
+ self
+ }
+
+ /// Set the [`OutPoint`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn set_outpoints(
+ mut self,
+ outpoints: impl IntoIterator<
+ IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static,
+ >,
+ ) -> Self {
+ self.outpoints = Box::new(outpoints.into_iter());
+ self
+ }
+
+ /// Chain on additional [`Script`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn chain_spks(
+ mut self,
+ spks: impl IntoIterator<
+ IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static,
+ Item = ScriptBuf,
+ >,
+ ) -> Self {
+ self.spks = Box::new(ExactSizeChain::new(self.spks, spks.into_iter()));
+ self
+ }
+
+ /// Chain on additional [`Txid`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn chain_txids(
+ mut self,
+ txids: impl IntoIterator<
+ IntoIter = impl ExactSizeIterator<Item = Txid> + Send + 'static,
+ Item = Txid,
+ >,
+ ) -> Self {
+ self.txids = Box::new(ExactSizeChain::new(self.txids, txids.into_iter()));
+ self
+ }
+
+ /// Chain on additional [`OutPoint`]s that will be synced against.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn chain_outpoints(
+ mut self,
+ outpoints: impl IntoIterator<
+ IntoIter = impl ExactSizeIterator<Item = OutPoint> + Send + 'static,
+ Item = OutPoint,
+ >,
+ ) -> Self {
+ self.outpoints = Box::new(ExactSizeChain::new(self.outpoints, outpoints.into_iter()));
+ self
+ }
+
+ /// Add a closure that will be called for [`Script`]s previously added to this request.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn inspect_spks(
+ mut self,
+ mut inspect: impl FnMut(&Script) + Send + Sync + 'static,
+ ) -> Self {
+ self.spks = Box::new(self.spks.inspect(move |spk| inspect(spk)));
+ self
+ }
+
+ /// Add a closure that will be called for [`Txid`]s previously added to this request.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn inspect_txids(mut self, mut inspect: impl FnMut(&Txid) + Send + Sync + 'static) -> Self {
+ self.txids = Box::new(self.txids.inspect(move |txid| inspect(txid)));
+ self
+ }
+
+ /// Add a closure that will be called for [`OutPoint`]s previously added to this request.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn inspect_outpoints(
+ mut self,
+ mut inspect: impl FnMut(&OutPoint) + Send + Sync + 'static,
+ ) -> Self {
+ self.outpoints = Box::new(self.outpoints.inspect(move |op| inspect(op)));
+ self
+ }
+
+ /// Populate the request with revealed script pubkeys from `index` with the given `spk_range`.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[cfg(feature = "miniscript")]
+ #[must_use]
+ pub fn populate_with_revealed_spks<K: Clone + Ord + Debug + Send + Sync>(
+ self,
+ index: &crate::keychain::KeychainTxOutIndex<K>,
+ spk_range: impl RangeBounds<K>,
+ ) -> Self {
+ use alloc::borrow::ToOwned;
+ self.chain_spks(
+ index
+ .revealed_spks(spk_range)
+ .map(|(_, _, spk)| spk.to_owned())
+ .collect::<Vec<_>>(),
+ )
+ }
+}
+
+/// Data returned from a spk-based blockchain client sync.
+///
+/// See also [`SyncRequest`].
+pub struct SyncResult<A = ConfirmationTimeHeightAnchor> {
+ /// The update to apply to the receiving [`TxGraph`].
+ pub graph_update: TxGraph<A>,
+ /// The update to apply to the receiving [`LocalChain`](crate::local_chain::LocalChain).
+ pub chain_update: CheckPoint,
+}
+
+/// Data required to perform a spk-based blockchain client full scan.
+///
+/// A client full scan iterates through all the scripts for the given keychains, fetching relevant
+/// data until some stop gap number of scripts is found that have no data. This operation is
+/// generally only used when importing or restoring previously used keychains in which the list of
+/// used scripts is not known. The full scan process also updates the chain from the given [`CheckPoint`].
+pub struct FullScanRequest<K> {
+ /// A checkpoint for the current [`LocalChain::tip`].
+ /// The full scan process will return a new chain update that extends this tip.
+ ///
+ /// [`LocalChain::tip`]: crate::local_chain::LocalChain::tip
+ pub chain_tip: CheckPoint,
+ /// Iterators of script pubkeys indexed by the keychain index.
+ pub spks_by_keychain: BTreeMap<K, Box<dyn Iterator<Item = (u32, ScriptBuf)> + Send>>,
+}
+
+impl<K: Ord + Clone> FullScanRequest<K> {
+ /// Construct a new [`FullScanRequest`] from a given `chain_tip`.
+ #[must_use]
+ pub fn from_chain_tip(chain_tip: CheckPoint) -> Self {
+ Self {
+ chain_tip,
+ spks_by_keychain: BTreeMap::new(),
+ }
+ }
+
+ /// Construct a new [`FullScanRequest`] from a given `chain_tip` and `index`.
+ ///
+ /// Unbounded script pubkey iterators for each keychain (`K`) are extracted using
+ /// [`KeychainTxOutIndex::all_unbounded_spk_iters`] and is used to populate the
+ /// [`FullScanRequest`].
+ ///
+ /// [`KeychainTxOutIndex::all_unbounded_spk_iters`]: crate::keychain::KeychainTxOutIndex::all_unbounded_spk_iters
+ #[cfg(feature = "miniscript")]
+ #[must_use]
+ pub fn from_keychain_txout_index(
+ chain_tip: CheckPoint,
+ index: &crate::keychain::KeychainTxOutIndex<K>,
+ ) -> Self
+ where
+ K: Debug,
+ {
+ let mut req = Self::from_chain_tip(chain_tip);
+ for (keychain, spks) in index.all_unbounded_spk_iters() {
+ req = req.set_spks_for_keychain(keychain, spks);
+ }
+ req
+ }
+
+ /// Set the [`Script`]s for a given `keychain`.
+ ///
+ /// This consumes the [`FullScanRequest`] and returns the updated one.
+ #[must_use]
+ pub fn set_spks_for_keychain(
+ mut self,
+ keychain: K,
+ spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>,
+ ) -> Self {
+ self.spks_by_keychain
+ .insert(keychain, Box::new(spks.into_iter()));
+ self
+ }
+
+ /// Chain on additional [`Script`]s that will be synced against.
+ ///
+ /// This consumes the [`FullScanRequest`] and returns the updated one.
+ #[must_use]
+ pub fn chain_spks_for_keychain(
+ mut self,
+ keychain: K,
+ spks: impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send + 'static>,
+ ) -> Self {
+ match self.spks_by_keychain.remove(&keychain) {
+ Some(keychain_spks) => self
+ .spks_by_keychain
+ .insert(keychain, Box::new(keychain_spks.chain(spks.into_iter()))),
+ None => self
+ .spks_by_keychain
+ .insert(keychain, Box::new(spks.into_iter())),
+ };
+ self
+ }
+
+ /// Add a closure that will be called for every [`Script`] previously added to any keychain in
+ /// this request.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn inspect_spks_for_all_keychains(
+ mut self,
+ inspect: impl FnMut(K, u32, &Script) + Send + Sync + Clone + 'static,
+ ) -> Self
+ where
+ K: Send + 'static,
+ {
+ for (keychain, spks) in core::mem::take(&mut self.spks_by_keychain) {
+ let mut inspect = inspect.clone();
+ self.spks_by_keychain.insert(
+ keychain.clone(),
+ Box::new(spks.inspect(move |(i, spk)| inspect(keychain.clone(), *i, spk))),
+ );
+ }
+ self
+ }
+
+ /// Add a closure that will be called for every [`Script`] previously added to a given
+ /// `keychain` in this request.
+ ///
+ /// This consumes the [`SyncRequest`] and returns the updated one.
+ #[must_use]
+ pub fn inspect_spks_for_keychain(
+ mut self,
+ keychain: K,
+ mut inspect: impl FnMut(u32, &Script) + Send + Sync + 'static,
+ ) -> Self
+ where
+ K: Send + 'static,
+ {
+ if let Some(spks) = self.spks_by_keychain.remove(&keychain) {
+ self.spks_by_keychain.insert(
+ keychain,
+ Box::new(spks.inspect(move |(i, spk)| inspect(*i, spk))),
+ );
+ }
+ self
+ }
+}
+
+/// Data returned from a spk-based blockchain client full scan.
+///
+/// See also [`FullScanRequest`].
+pub struct FullScanResult<K> {
+ /// The update to apply to the receiving [`LocalChain`](crate::local_chain::LocalChain).
+ pub graph_update: TxGraph<ConfirmationTimeHeightAnchor>,
+ /// The update to apply to the receiving [`TxGraph`].
+ pub chain_update: CheckPoint,
+ /// Last active indices for the corresponding keychains (`K`).
+ pub last_active_indices: BTreeMap<K, u32>,
+}
+
+/// A version of [`core::iter::Chain`] which can combine two [`ExactSizeIterator`]s to form a new
+/// [`ExactSizeIterator`].
+///
+/// The danger of this is explained in [the `ExactSizeIterator` docs]
+/// (https://doc.rust-lang.org/core/iter/trait.ExactSizeIterator.html#when-shouldnt-an-adapter-be-exactsizeiterator).
+/// This does not apply here since it would be impossible to scan an item count that overflows
+/// `usize` anyway.
+struct ExactSizeChain<A, B, I> {
+ a: Option<A>,
+ b: Option<B>,
+ i: PhantomData<I>,
+}
+
+impl<A, B, I> ExactSizeChain<A, B, I> {
+ fn new(a: A, b: B) -> Self {
+ ExactSizeChain {
+ a: Some(a),
+ b: Some(b),
+ i: PhantomData,
+ }
+ }
+}
+
+impl<A, B, I> Iterator for ExactSizeChain<A, B, I>
+where
+ A: Iterator<Item = I>,
+ B: Iterator<Item = I>,
+{
+ type Item = I;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ if let Some(a) = &mut self.a {
+ let item = a.next();
+ if item.is_some() {
+ return item;
+ }
+ self.a = None;
+ }
+ if let Some(b) = &mut self.b {
+ let item = b.next();
+ if item.is_some() {
+ return item;
+ }
+ self.b = None;
+ }
+ None
+ }
+}
+
+impl<A, B, I> ExactSizeIterator for ExactSizeChain<A, B, I>
+where
+ A: ExactSizeIterator<Item = I>,
+ B: ExactSizeIterator<Item = I>,
+{
+ fn len(&self) -> usize {
+ let a_len = self.a.as_ref().map(|a| a.len()).unwrap_or(0);
+ let b_len = self.b.as_ref().map(|a| a.len()).unwrap_or(0);
+ a_len + b_len
+ }
+}
+
+
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html
index 0eda290cd0..f02d90bf21 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
@@ -587,9 +587,18 @@
587
588
589
+590
+591
+592
+593
+594
+595
+596
+597
use std::collections::BTreeSet;
use async_trait::async_trait;
+use bdk_chain::spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult};
use bdk_chain::Anchor;
use bdk_chain::{
bitcoin::{BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
@@ -600,7 +609,7 @@
use esplora_client::{Amount, TxStatus};
use futures::{stream::FuturesOrdered, TryStreamExt};
-use crate::{anchor_from_status, FullScanUpdate, SyncUpdate};
+use crate::anchor_from_status;
/// [`esplora_client::Error`]
type Error = Box<esplora_client::Error>;
@@ -639,14 +648,10 @@
/// [`LocalChain::tip`]: bdk_chain::local_chain::LocalChain::tip
async fn full_scan<K: Ord + Clone + Send>(
&self,
- local_tip: CheckPoint,
- keychain_spks: BTreeMap<
- K,
- impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send> + Send,
- >,
+ request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize,
- ) -> Result<FullScanUpdate<K>, Error>;
+ ) -> Result<FullScanResult<K>, Error>;
/// Sync a set of scripts with the blockchain (via an Esplora client) for the data
/// specified and return a [`TxGraph`].
@@ -664,12 +669,9 @@
/// [`full_scan`]: EsploraAsyncExt::full_scan
async fn sync(
&self,
- local_tip: CheckPoint,
- misc_spks: impl IntoIterator<IntoIter = impl Iterator<Item = ScriptBuf> + Send> + Send,
- txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send,
- outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send,
+ request: SyncRequest,
parallel_requests: usize,
- ) -> Result<SyncUpdate, Error>;
+ ) -> Result<SyncResult, Error>;
}
#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
@@ -677,42 +679,56 @@
impl EsploraAsyncExt for esplora_client::AsyncClient {
async fn full_scan<K: Ord + Clone + Send>(
&self,
- local_tip: CheckPoint,
- keychain_spks: BTreeMap<
- K,
- impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send> + Send,
- >,
+ request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize,
- ) -> Result<FullScanUpdate<K>, Error> {
+ ) -> Result<FullScanResult<K>, Error> {
let latest_blocks = fetch_latest_blocks(self).await?;
- let (tx_graph, last_active_indices) =
- full_scan_for_index_and_graph(self, keychain_spks, stop_gap, parallel_requests).await?;
- let local_chain =
- chain_update(self, &latest_blocks, &local_tip, tx_graph.all_anchors()).await?;
- Ok(FullScanUpdate {
- local_chain,
- tx_graph,
+ let (graph_update, last_active_indices) = full_scan_for_index_and_graph(
+ self,
+ request.spks_by_keychain,
+ stop_gap,
+ parallel_requests,
+ )
+ .await?;
+ let chain_update = chain_update(
+ self,
+ &latest_blocks,
+ &request.chain_tip,
+ graph_update.all_anchors(),
+ )
+ .await?;
+ Ok(FullScanResult {
+ chain_update,
+ graph_update,
last_active_indices,
})
}
async fn sync(
&self,
- local_tip: CheckPoint,
- misc_spks: impl IntoIterator<IntoIter = impl Iterator<Item = ScriptBuf> + Send> + Send,
- txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send,
- outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send,
+ request: SyncRequest,
parallel_requests: usize,
- ) -> Result<SyncUpdate, Error> {
+ ) -> Result<SyncResult, Error> {
let latest_blocks = fetch_latest_blocks(self).await?;
- let tx_graph =
- sync_for_index_and_graph(self, misc_spks, txids, outpoints, parallel_requests).await?;
- let local_chain =
- chain_update(self, &latest_blocks, &local_tip, tx_graph.all_anchors()).await?;
- Ok(SyncUpdate {
- tx_graph,
- local_chain,
+ let graph_update = sync_for_index_and_graph(
+ self,
+ request.spks,
+ request.txids,
+ request.outpoints,
+ parallel_requests,
+ )
+ .await?;
+ let chain_update = chain_update(
+ self,
+ &latest_blocks,
+ &request.chain_tip,
+ graph_update.all_anchors(),
+ )
+ .await?;
+ Ok(SyncResult {
+ chain_update,
+ graph_update,
})
}
}
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 d6f351d50b..0e705329f5 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html
@@ -791,18 +791,12 @@
791
792
793
-794
-795
-796
-797
-798
-799
-800
use std::collections::BTreeSet;
use std::thread::JoinHandle;
use std::usize;
use bdk_chain::collections::BTreeMap;
+use bdk_chain::spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult};
use bdk_chain::Anchor;
use bdk_chain::{
bitcoin::{Amount, BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
@@ -812,8 +806,6 @@
use esplora_client::TxStatus;
use crate::anchor_from_status;
-use crate::FullScanUpdate;
-use crate::SyncUpdate;
/// [`esplora_client::Error`]
pub type Error = Box<esplora_client::Error>;
@@ -850,11 +842,10 @@
/// [`LocalChain::tip`]: bdk_chain::local_chain::LocalChain::tip
fn full_scan<K: Ord + Clone>(
&self,
- local_tip: CheckPoint,
- keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
+ request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize,
- ) -> Result<FullScanUpdate<K>, Error>;
+ ) -> Result<FullScanResult<K>, Error>;
/// Sync a set of scripts with the blockchain (via an Esplora client) for the data
/// specified and return a [`TxGraph`].
@@ -870,59 +861,54 @@
///
/// [`LocalChain::tip`]: bdk_chain::local_chain::LocalChain::tip
/// [`full_scan`]: EsploraExt::full_scan
- fn sync(
- &self,
- local_tip: CheckPoint,
- misc_spks: impl IntoIterator<Item = ScriptBuf>,
- txids: impl IntoIterator<Item = Txid>,
- outpoints: impl IntoIterator<Item = OutPoint>,
- parallel_requests: usize,
- ) -> Result<SyncUpdate, Error>;
+ fn sync(&self, request: SyncRequest, parallel_requests: usize) -> Result<SyncResult, Error>;
}
impl EsploraExt for esplora_client::BlockingClient {
fn full_scan<K: Ord + Clone>(
&self,
- local_tip: CheckPoint,
- keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
+ request: FullScanRequest<K>,
stop_gap: usize,
parallel_requests: usize,
- ) -> Result<FullScanUpdate<K>, Error> {
+ ) -> Result<FullScanResult<K>, Error> {
let latest_blocks = fetch_latest_blocks(self)?;
- let (tx_graph, last_active_indices) = full_scan_for_index_and_graph_blocking(
+ let (graph_update, last_active_indices) = full_scan_for_index_and_graph_blocking(
self,
- keychain_spks,
+ request.spks_by_keychain,
stop_gap,
parallel_requests,
)?;
- let local_chain = chain_update(self, &latest_blocks, &local_tip, tx_graph.all_anchors())?;
- Ok(FullScanUpdate {
- local_chain,
- tx_graph,
+ let chain_update = chain_update(
+ self,
+ &latest_blocks,
+ &request.chain_tip,
+ graph_update.all_anchors(),
+ )?;
+ Ok(FullScanResult {
+ chain_update,
+ graph_update,
last_active_indices,
})
}
- fn sync(
- &self,
- local_tip: CheckPoint,
- misc_spks: impl IntoIterator<Item = ScriptBuf>,
- txids: impl IntoIterator<Item = Txid>,
- outpoints: impl IntoIterator<Item = OutPoint>,
- parallel_requests: usize,
- ) -> Result<SyncUpdate, Error> {
+ fn sync(&self, request: SyncRequest, parallel_requests: usize) -> Result<SyncResult, Error> {
let latest_blocks = fetch_latest_blocks(self)?;
- let tx_graph = sync_for_index_and_graph_blocking(
+ let graph_update = sync_for_index_and_graph_blocking(
self,
- misc_spks,
- txids,
- outpoints,
+ request.spks,
+ request.txids,
+ request.outpoints,
parallel_requests,
)?;
- let local_chain = chain_update(self, &latest_blocks, &local_tip, tx_graph.all_anchors())?;
- Ok(SyncUpdate {
- local_chain,
- tx_graph,
+ let chain_update = chain_update(
+ self,
+ &latest_blocks,
+ &request.chain_tip,
+ graph_update.all_anchors(),
+ )?;
+ Ok(SyncResult {
+ chain_update,
+ graph_update,
})
}
}
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html
index 28da0feffe..c658d3a8d9 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/lib.rs.html
@@ -48,26 +48,6 @@
48
49
50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
#![doc = include_str!("../README.md")]
//! This crate is used for updating structures of [`bdk_chain`] with data from an Esplora server.
@@ -86,9 +66,7 @@
//! [`TxGraph`]: bdk_chain::tx_graph::TxGraph
//! [`example_esplora`]: https://github.com/bitcoindevkit/bdk/tree/master/example-crates/example_esplora
-use std::collections::BTreeMap;
-
-use bdk_chain::{local_chain::CheckPoint, BlockId, ConfirmationTimeHeightAnchor, TxGraph};
+use bdk_chain::{BlockId, ConfirmationTimeHeightAnchor};
use esplora_client::TxStatus;
pub use esplora_client;
@@ -120,23 +98,5 @@
None
}
}
-
-/// Update returns from a full scan.
-pub struct FullScanUpdate<K> {
- /// The update to apply to the receiving [`LocalChain`](bdk_chain::local_chain::LocalChain).
- pub local_chain: CheckPoint,
- /// The update to apply to the receiving [`TxGraph`].
- pub tx_graph: TxGraph<ConfirmationTimeHeightAnchor>,
- /// Last active indices for the corresponding keychains (`K`).
- pub last_active_indices: BTreeMap<K, u32>,
-}
-
-/// Update returned from a sync.
-pub struct SyncUpdate {
- /// The update to apply to the receiving [`LocalChain`](bdk_chain::local_chain::LocalChain).
- pub local_chain: CheckPoint,
- /// The update to apply to the receiving [`TxGraph`].
- pub tx_graph: TxGraph<ConfirmationTimeHeightAnchor>,
-}
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
index a8da978c7a..d8166c3d92 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_esplora/main.rs.html
@@ -354,17 +354,25 @@
354
355
356
+357
+358
+359
+360
+361
+362
+363
use std::{
- collections::BTreeMap,
+ collections::BTreeSet,
io::{self, Write},
sync::Mutex,
};
use bdk_chain::{
- bitcoin::{constants::genesis_block, Address, Network, OutPoint, ScriptBuf, Txid},
+ bitcoin::{constants::genesis_block, Address, Network, Txid},
indexed_tx_graph::{self, IndexedTxGraph},
keychain,
local_chain::{self, LocalChain},
+ spk_client::{FullScanRequest, SyncRequest},
Append, ConfirmationTimeHeightAnchor,
};
@@ -523,45 +531,34 @@
scan_options,
..
} => {
- let local_tip = chain.lock().expect("mutex must not be poisoned").tip();
- let keychain_spks = graph
- .lock()
- .expect("mutex must not be poisoned")
- .index
- .all_unbounded_spk_iters()
- .into_iter()
- // This `map` is purely for logging.
- .map(|(keychain, iter)| {
- let mut first = true;
- let spk_iter = iter.inspect(move |(i, _)| {
- if first {
- eprint!("\nscanning {}: ", keychain);
- first = false;
+ let request = {
+ let chain_tip = chain.lock().expect("mutex must not be poisoned").tip();
+ let indexed_graph = &*graph.lock().expect("mutex must not be poisoned");
+ FullScanRequest::from_keychain_txout_index(chain_tip, &indexed_graph.index)
+ .inspect_spks_for_all_keychains({
+ let mut once = BTreeSet::<Keychain>::new();
+ move |keychain, spk_i, _| {
+ if once.insert(keychain) {
+ eprint!("\nscanning {}: ", keychain);
+ }
+ eprint!("{} ", spk_i);
+ // Flush early to ensure we print at every iteration.
+ let _ = io::stderr().flush();
}
- eprint!("{} ", i);
- // Flush early to ensure we print at every iteration.
- let _ = io::stderr().flush();
- });
- (keychain, spk_iter)
- })
- .collect::<BTreeMap<_, _>>();
+ })
+ };
// The client scans keychain spks for transaction histories, stopping after `stop_gap`
// is reached. It returns a `TxGraph` update (`graph_update`) and a structure that
// represents the last active spk derivation indices of keychains
// (`keychain_indices_update`).
let mut update = client
- .full_scan(
- local_tip,
- keychain_spks,
- *stop_gap,
- scan_options.parallel_requests,
- )
+ .full_scan(request, *stop_gap, scan_options.parallel_requests)
.context("scanning for transactions")?;
// We want to keep track of the latest time a transaction was seen unconfirmed.
let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
- let _ = update.tx_graph.update_last_seen_unconfirmed(now);
+ let _ = update.graph_update.update_last_seen_unconfirmed(now);
let mut graph = graph.lock().expect("mutex must not be poisoned");
let mut chain = chain.lock().expect("mutex must not be poisoned");
@@ -569,11 +566,11 @@
// deriviation indices. Usually before a scan you are on a fresh wallet with no
// addresses derived so we need to derive up to last active addresses the scan found
// before adding the transactions.
- (chain.apply_update(update.local_chain)?, {
+ (chain.apply_update(update.chain_update)?, {
let (_, index_changeset) = graph
.index
.reveal_to_target_multi(&update.last_active_indices);
- let mut indexed_tx_graph_changeset = graph.apply_update(update.tx_graph);
+ let mut indexed_tx_graph_changeset = graph.apply_update(update.graph_update);
indexed_tx_graph_changeset.append(index_changeset.into());
indexed_tx_graph_changeset
})
@@ -597,12 +594,9 @@
unused_spks = false;
}
- // Spks, outpoints and txids we want updates on will be accumulated here.
- let mut spks: Box<dyn Iterator<Item = ScriptBuf>> = Box::new(core::iter::empty());
- let mut outpoints: Box<dyn Iterator<Item = OutPoint>> = Box::new(core::iter::empty());
- let mut txids: Box<dyn Iterator<Item = Txid>> = Box::new(core::iter::empty());
-
let local_tip = chain.lock().expect("mutex must not be poisoned").tip();
+ // Spks, outpoints and txids we want updates on will be accumulated here.
+ let mut request = SyncRequest::from_chain_tip(local_tip.clone());
// Get a short lock on the structures to get spks, utxos, and txs that we are interested
// in.
@@ -616,12 +610,12 @@
.revealed_spks(..)
.map(|(k, i, spk)| (k.to_owned(), i, spk.to_owned()))
.collect::<Vec<_>>();
- spks = Box::new(spks.chain(all_spks.into_iter().map(|(k, i, spk)| {
- eprintln!("scanning {}:{}", k, i);
+ request = request.chain_spks(all_spks.into_iter().map(|(k, i, spk)| {
+ eprint!("scanning {}:{}", k, i);
// Flush early to ensure we print at every iteration.
let _ = io::stderr().flush();
spk
- })));
+ }));
}
if unused_spks {
let unused_spks = graph
@@ -629,17 +623,18 @@
.unused_spks()
.map(|(k, i, spk)| (k, i, spk.to_owned()))
.collect::<Vec<_>>();
- spks = Box::new(spks.chain(unused_spks.into_iter().map(|(k, i, spk)| {
- eprintln!(
- "Checking if address {} {}:{} has been used",
- Address::from_script(&spk, args.network).unwrap(),
- k,
- i,
- );
- // Flush early to ensure we print at every iteration.
- let _ = io::stderr().flush();
- spk
- })));
+ request =
+ request.chain_spks(unused_spks.into_iter().map(move |(k, i, spk)| {
+ eprint!(
+ "Checking if address {} {}:{} has been used",
+ Address::from_script(&spk, args.network).unwrap(),
+ k,
+ i,
+ );
+ // Flush early to ensure we print at every iteration.
+ let _ = io::stderr().flush();
+ spk
+ }));
}
if utxos {
// We want to search for whether the UTXO is spent, and spent by which
@@ -651,11 +646,11 @@
.filter_chain_unspents(&*chain, local_tip.block_id(), init_outpoints)
.map(|(_, utxo)| utxo)
.collect::<Vec<_>>();
- outpoints = Box::new(
+ request = request.chain_outpoints(
utxos
.into_iter()
.inspect(|utxo| {
- eprintln!(
+ eprint!(
"Checking if outpoint {} (value: {}) has been spent",
utxo.outpoint, utxo.txout.value
);
@@ -675,29 +670,48 @@
.filter(|canonical_tx| !canonical_tx.chain_position.is_confirmed())
.map(|canonical_tx| canonical_tx.tx_node.txid)
.collect::<Vec<Txid>>();
- txids = Box::new(unconfirmed_txids.into_iter().inspect(|txid| {
- eprintln!("Checking if {} is confirmed yet", txid);
+ request = request.chain_txids(unconfirmed_txids.into_iter().inspect(|txid| {
+ eprint!("Checking if {} is confirmed yet", txid);
// Flush early to ensure we print at every iteration.
let _ = io::stderr().flush();
}));
}
}
- let mut update = client.sync(
- local_tip,
- spks,
- txids,
- outpoints,
- scan_options.parallel_requests,
- )?;
+ let total_spks = request.spks.len();
+ let total_txids = request.txids.len();
+ let total_ops = request.outpoints.len();
+ request = request
+ .inspect_spks({
+ let mut visited = 0;
+ move |_| {
+ visited += 1;
+ eprintln!(" [ {:>6.2}% ]", (visited * 100) as f32 / total_spks as f32)
+ }
+ })
+ .inspect_txids({
+ let mut visited = 0;
+ move |_| {
+ visited += 1;
+ eprintln!(" [ {:>6.2}% ]", (visited * 100) as f32 / total_txids as f32)
+ }
+ })
+ .inspect_outpoints({
+ let mut visited = 0;
+ move |_| {
+ visited += 1;
+ eprintln!(" [ {:>6.2}% ]", (visited * 100) as f32 / total_ops as f32)
+ }
+ });
+ let mut update = client.sync(request, scan_options.parallel_requests)?;
// Update last seen unconfirmed
let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
- let _ = update.tx_graph.update_last_seen_unconfirmed(now);
+ let _ = update.graph_update.update_last_seen_unconfirmed(now);
(
- chain.lock().unwrap().apply_update(update.local_chain)?,
- graph.lock().unwrap().apply_update(update.tx_graph),
+ chain.lock().unwrap().apply_update(update.chain_update)?,
+ graph.lock().unwrap().apply_update(update.graph_update),
)
}
};
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_async/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_async/main.rs.html
index 8af6b43bbb..6cc0750205 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_async/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_async/main.rs.html
@@ -98,11 +98,19 @@
98
99
100
-
use std::{io::Write, str::FromStr};
+101
+102
+103
+104
+105
+106
+107
+108
+109
+
use std::{collections::BTreeSet, io::Write, str::FromStr};
use bdk::{
- bitcoin::{Address, Network},
- wallet::Update,
+ bitcoin::{Address, Network, Script},
KeychainKind, SignOptions, Wallet,
};
use bdk_esplora::{esplora_client, EsploraAsyncExt};
@@ -137,34 +145,44 @@
let client =
esplora_client::Builder::new("https://blockstream.info/testnet/api").build_async()?;
- let prev_tip = wallet.latest_checkpoint();
- let keychain_spks = wallet
- .all_unbounded_spk_iters()
- .into_iter()
- .map(|(k, k_spks)| {
- let mut once = Some(());
- let mut stdout = std::io::stdout();
- let k_spks = k_spks
- .inspect(move |(spk_i, _)| match once.take() {
- Some(_) => print!("\nScanning keychain [{:?}]", k),
- None => print!(" {:<3}", spk_i),
- })
- .inspect(move |_| stdout.flush().expect("must flush"));
- (k, k_spks)
+ fn generate_inspect(kind: KeychainKind) -> impl FnMut(u32, &Script) + Send + Sync + 'static {
+ let mut once = Some(());
+ let mut stdout = std::io::stdout();
+ move |spk_i, _| {
+ match once.take() {
+ Some(_) => print!("\nScanning keychain [{:?}]", kind),
+ None => print!(" {:<3}", spk_i),
+ };
+ stdout.flush().expect("must flush");
+ }
+ }
+ let request = wallet
+ .start_full_scan()
+ .inspect_spks_for_all_keychains({
+ let mut once = BTreeSet::<KeychainKind>::new();
+ move |keychain, spk_i, _| {
+ match once.insert(keychain) {
+ true => print!("\nScanning keychain [{:?}]", keychain),
+ false => print!(" {:<3}", spk_i),
+ }
+ std::io::stdout().flush().expect("must flush")
+ }
})
- .collect();
+ .inspect_spks_for_keychain(
+ KeychainKind::External,
+ generate_inspect(KeychainKind::External),
+ )
+ .inspect_spks_for_keychain(
+ KeychainKind::Internal,
+ generate_inspect(KeychainKind::Internal),
+ );
let mut update = client
- .full_scan(prev_tip, keychain_spks, STOP_GAP, PARALLEL_REQUESTS)
+ .full_scan(request, STOP_GAP, PARALLEL_REQUESTS)
.await?;
let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
- let _ = update.tx_graph.update_last_seen_unconfirmed(now);
+ let _ = update.graph_update.update_last_seen_unconfirmed(now);
- let update = Update {
- last_active_indices: update.last_active_indices,
- graph: update.tx_graph,
- chain: Some(update.local_chain),
- };
wallet.apply_update(update)?;
wallet.commit()?;
println!();
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_blocking/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_blocking/main.rs.html
index 7499e76934..97c5a7376f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_blocking/main.rs.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora_blocking/main.rs.html
@@ -83,31 +83,15 @@
83
84
85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
const DB_MAGIC: &str = "bdk_wallet_esplora_example";
const SEND_AMOUNT: u64 = 1000;
const STOP_GAP: usize = 5;
const PARALLEL_REQUESTS: usize = 1;
-use std::{io::Write, str::FromStr};
+use std::{collections::BTreeSet, io::Write, str::FromStr};
use bdk::{
bitcoin::{Address, Network},
- wallet::Update,
KeychainKind, SignOptions, Wallet,
};
use bdk_esplora::{esplora_client, EsploraExt};
@@ -136,36 +120,22 @@
let client =
esplora_client::Builder::new("https://blockstream.info/testnet/api").build_blocking();
- let keychain_spks = wallet
- .all_unbounded_spk_iters()
- .into_iter()
- .map(|(k, k_spks)| {
- let mut once = Some(());
- let mut stdout = std::io::stdout();
- let k_spks = k_spks
- .inspect(move |(spk_i, _)| match once.take() {
- Some(_) => print!("\nScanning keychain [{:?}]", k),
- None => print!(" {:<3}", spk_i),
- })
- .inspect(move |_| stdout.flush().expect("must flush"));
- (k, k_spks)
- })
- .collect();
-
- let mut update = client.full_scan(
- wallet.latest_checkpoint(),
- keychain_spks,
- STOP_GAP,
- PARALLEL_REQUESTS,
- )?;
+ let request = wallet.start_full_scan().inspect_spks_for_all_keychains({
+ let mut once = BTreeSet::<KeychainKind>::new();
+ move |keychain, spk_i, _| {
+ match once.insert(keychain) {
+ true => print!("\nScanning keychain [{:?}]", keychain),
+ false => print!(" {:<3}", spk_i),
+ };
+ std::io::stdout().flush().expect("must flush")
+ }
+ });
+
+ let mut update = client.full_scan(request, STOP_GAP, PARALLEL_REQUESTS)?;
let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
- let _ = update.tx_graph.update_last_seen_unconfirmed(now);
+ let _ = update.graph_update.update_last_seen_unconfirmed(now);
- wallet.apply_update(Update {
- last_active_indices: update.last_active_indices,
- graph: update.tx_graph,
- chain: Some(update.local_chain),
- })?;
+ wallet.apply_update(update)?;
wallet.commit()?;
println!();
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.DB_MAGIC.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.DB_MAGIC.html
index 101a9161ff..ed4374360f 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.DB_MAGIC.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.DB_MAGIC.html
@@ -1 +1 @@
-DB_MAGIC in wallet_esplora_async - Rust Constant wallet_esplora_async::DB_MAGIC
source · pub(crate) const DB_MAGIC: &str = "bdk_wallet_esplora_async_example";
\ No newline at end of file
+DB_MAGIC in wallet_esplora_async - Rust Constant wallet_esplora_async::DB_MAGIC
source · pub(crate) const DB_MAGIC: &str = "bdk_wallet_esplora_async_example";
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.PARALLEL_REQUESTS.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.PARALLEL_REQUESTS.html
index 137d4d9713..67ef1a001d 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.PARALLEL_REQUESTS.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.PARALLEL_REQUESTS.html
@@ -1 +1 @@
-PARALLEL_REQUESTS in wallet_esplora_async - Rust Constant wallet_esplora_async::PARALLEL_REQUESTS
source · pub(crate) const PARALLEL_REQUESTS: usize = 5;
\ No newline at end of file
+PARALLEL_REQUESTS in wallet_esplora_async - Rust Constant wallet_esplora_async::PARALLEL_REQUESTS
source · pub(crate) const PARALLEL_REQUESTS: usize = 5;
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.SEND_AMOUNT.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.SEND_AMOUNT.html
index 5934fd7137..440502731a 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.SEND_AMOUNT.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.SEND_AMOUNT.html
@@ -1 +1 @@
-SEND_AMOUNT in wallet_esplora_async - Rust Constant wallet_esplora_async::SEND_AMOUNT
source · pub(crate) const SEND_AMOUNT: u64 = 5000;
\ No newline at end of file
+SEND_AMOUNT in wallet_esplora_async - Rust Constant wallet_esplora_async::SEND_AMOUNT
source · pub(crate) const SEND_AMOUNT: u64 = 5000;
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.STOP_GAP.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.STOP_GAP.html
index 1ff7ae69e4..36afeec8d7 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.STOP_GAP.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/constant.STOP_GAP.html
@@ -1 +1 @@
-STOP_GAP in wallet_esplora_async - Rust Constant wallet_esplora_async::STOP_GAP
source · pub(crate) const STOP_GAP: usize = 50;
\ No newline at end of file
+STOP_GAP in wallet_esplora_async - Rust Constant wallet_esplora_async::STOP_GAP
source · pub(crate) const STOP_GAP: usize = 50;
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html
index 7456b3b3f6..b793c08528 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html
@@ -1 +1 @@
-main in wallet_esplora_async - Rust
\ No newline at end of file
+main in wallet_esplora_async - Rust
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html
index 99f9c4a529..43bacaf475 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html
@@ -1 +1 @@
-wallet_esplora_async - Rust Crate wallet_esplora_async
source · Constants
Functions
main ð
\ No newline at end of file
+wallet_esplora_async - Rust Crate wallet_esplora_async
source · Constants
Functions
main ð
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/fn.main.html
index 79fe044eb2..7ecf66503e 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/fn.main.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/fn.main.html
@@ -1 +1 @@
-main in wallet_esplora_blocking - Rust
\ No newline at end of file
+main in wallet_esplora_blocking - Rust
\ No newline at end of file
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html
index a5e0599040..d85299e4f3 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html
@@ -1 +1 @@
-wallet_esplora_blocking - Rust Crate wallet_esplora_blocking
source · Constants
Functions
main ð
\ No newline at end of file
+wallet_esplora_blocking - Rust Crate wallet_esplora_blocking
source · Constants
Functions
main ð
\ No newline at end of file