From: github-actions Date: Thu, 13 Jun 2024 22:56:02 +0000 (+0000) Subject: Publish autogenerated nightly docs X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/scripts/static/struct.ChainCode.html?a=commitdiff_plain;h=7ec56b6ba5b2391a013fb0fced80195082c5defd;p=bitcoindevkit.org Publish autogenerated nightly docs --- diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html index 7b6f7fa68b..08168b30f5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html index ae58ddc720..046a5fbfa4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/constant.COINBASE_MATURITY.html @@ -1,2 +1,2 @@ -COINBASE_MATURITY in bdk_chain - Rust

Constant bdk_chain::COINBASE_MATURITY

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

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

+COINBASE_MATURITY in bdk_chain - Rust

Constant bdk_chain::COINBASE_MATURITY

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

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

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

Crate bdk_chain

source ·
Expand description

This crate is a collection of core structures for Bitcoin Dev Kit.

+bdk_chain - Rust

Crate bdk_chain

source ·
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:

  1. Figure out what data they need to fetch.
  2. @@ -15,7 +15,8 @@ consistently. cache or how you retrieve it from persistent storage.

Re-exports§

Modules§

Structs§

Structs§

  • A reference to a block in the canonical chain.
  • An Anchor implementation that also records the exact confirmation height of the transaction.
  • An Anchor implementation that also records the exact confirmation time and height of the transaction.
  • Represents the ID of a descriptor, defined as the sha256 hash of the descriptor string, checksum excluded.
  • 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 matches those in a list.

Enums§

Constants§

Traits§

  • Trait that “anchors” blockchain data to a specific block of height and hash.
  • An Anchor that can be constructed from a given block, block height and transaction position within the block.
  • Trait that makes an object appendable.
  • Represents a service that tracks the blockchain.
  • A trait to extend the functionality of a miniscript descriptor.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html index e8e51cce73..e0eda37d98 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/indexed_tx_graph/struct.ChangeSet.html @@ -1,4 +1,4 @@ -ChangeSet in bdk_chain::indexed_tx_graph - Rust

Struct bdk_chain::indexed_tx_graph::ChangeSet

source ·
pub struct ChangeSet<A, IA> {
+ChangeSet in bdk_chain::indexed_tx_graph - Rust

Struct bdk_chain::indexed_tx_graph::ChangeSet

source ·
pub struct ChangeSet<A, IA> {
     pub graph: ChangeSet<A>,
     pub indexer: IA,
 }
Expand description

Represents changes to an IndexedTxGraph.

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

Trait Implementations§

source§

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

source§

fn append(&mut self, other: Self)

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

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

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

source§

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

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

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

source§

fn default() -> Self

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

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

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

impl<A, IA> Serialize for ChangeSet<A, IA>
where A: Ord + Serialize, @@ -25,12 +25,23 @@ sufficient, and should not be overridden without very good reason.
RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+ T: ?Sized,
source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> ToOwned for T
where +

source§

impl<C> StageExt for C
where + C: Append + Default,

source§

fn commit_to<B>( + &mut self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Commit the staged changes to the persistence backend. Read more
source§

fn append_and_commit_to<B>( + &mut self, + changeset: Self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Stages a new changeset and commits it (alongside any other previously staged changes) to +the persistence backend. Read more
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.ChangeSet.html index 949d7f5ee0..a4aa60813b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.ChangeSet.html @@ -1,4 +1,4 @@ -ChangeSet in bdk_chain::keychain - Rust

Struct bdk_chain::keychain::ChangeSet

source ·
pub struct ChangeSet<K> {
+ChangeSet in bdk_chain::keychain - Rust

Struct bdk_chain::keychain::ChangeSet

source ·
pub struct ChangeSet<K> {
     pub keychains_added: BTreeMap<K, Descriptor<DescriptorPublicKey>>,
     pub last_revealed: BTreeMap<DescriptorId, u32>,
 }
Expand description

Represents updates to the derivation index of a KeychainTxOutIndex. @@ -15,7 +15,7 @@ same one-to-one keychain <-> descriptor mapping invariant as

source§

fn is_empty(&self) -> bool

Returns whether the changeset are empty.

source§

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

source§

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

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

impl<K> Default for ChangeSet<K>

source§

fn default() -> Self

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

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

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

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

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where @@ -26,12 +26,23 @@ sufficient, and should not be overridden without very good reason.
RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+ T: ?Sized,
source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> ToOwned for T
where +

source§

impl<C> StageExt for C
where + C: Append + Default,

source§

fn commit_to<B>( + &mut self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Commit the staged changes to the persistence backend. Read more
source§

fn append_and_commit_to<B>( + &mut self, + changeset: Self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Stages a new changeset and commits it (alongside any other previously staged changes) to +the persistence backend. Read more
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html index c4bcb03da3..2663321b62 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html @@ -66,7 +66,7 @@ of the last revealed script pubkey actually is.

Refer to struct-level docs for more about lookahead.

source§

impl<K: Clone + Ord + Debug> KeychainTxOutIndex<K>

Methods that are re-exposed from the internal SpkTxOutIndex.

source

pub fn inner(&self) -> &SpkTxOutIndex<(K, u32)>

Return a reference to the internal SpkTxOutIndex.

-

WARNING: The internal index will contain lookahead spks. Refer to +

WARNING: The internal index will contain lookahead spks. Refer to struct-level docs for more about lookahead.

source

pub fn outpoints(&self) -> &BTreeSet<KeychainIndexed<K, OutPoint>>

Get the set of indexed outpoints, corresponding to tracked keychains.

source

pub fn txouts( diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/index.html new file mode 100644 index 0000000000..563224e5a9 --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/index.html @@ -0,0 +1,5 @@ +bdk_chain::persist - Rust

Module bdk_chain::persist

source ·
Expand description

This module is home to the PersistBackend trait which defines the behavior of a data store +required to persist changes made to BDK data structures.

+

The CombinedChangeSet type encapsulates a combination of crate structures that are +typically persisted together.

+

Structs§

Traits§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/sidebar-items.js new file mode 100644 index 0000000000..2814527a25 --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["CombinedChangeSet"],"trait":["PersistBackend","StageExt"]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/struct.CombinedChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/struct.CombinedChangeSet.html new file mode 100644 index 0000000000..c0383289aa --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/struct.CombinedChangeSet.html @@ -0,0 +1,49 @@ +CombinedChangeSet in bdk_chain::persist - Rust

Struct bdk_chain::persist::CombinedChangeSet

source ·
pub struct CombinedChangeSet<K, A> {
+    pub chain: ChangeSet,
+    pub indexed_tx_graph: ChangeSet<A, ChangeSet<K>>,
+    pub network: Option<Network>,
+}
Expand description

A changeset containing crate structures typically persisted together.

+

Fields§

§chain: ChangeSet

Changes to the LocalChain.

+
§indexed_tx_graph: ChangeSet<A, ChangeSet<K>>

Changes to IndexedTxGraph.

+
§network: Option<Network>

Stores the network type of the transaction data.

+

Trait Implementations§

source§

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

source§

fn append(&mut self, other: Self)

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

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

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

source§

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

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

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

source§

fn default() -> Self

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

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

source§

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

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

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

source§

fn from(chain: ChangeSet) -> Self

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

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

impl<K, A> Serialize for CombinedChangeSet<K, A>
where + A: Ord + Serialize, + K: Ord + Serialize,

source§

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

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

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

Auto Trait Implementations§

§

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

§

impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
where + K: RefUnwindSafe, + A: RefUnwindSafe,

§

impl<K, A> Send for CombinedChangeSet<K, A>
where + K: Send, + A: Send,

§

impl<K, A> Sync for CombinedChangeSet<K, A>
where + K: Sync, + A: Sync,

§

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

§

impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
where + K: RefUnwindSafe, + A: RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<C> StageExt for C
where + C: Append + Default,

source§

fn commit_to<B>( + &mut self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Commit the staged changes to the persistence backend. Read more
source§

fn append_and_commit_to<B>( + &mut self, + changeset: Self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Stages a new changeset and commits it (alongside any other previously staged changes) to +the persistence backend. Read more
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.PersistBackend.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.PersistBackend.html new file mode 100644 index 0000000000..ab54da8722 --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.PersistBackend.html @@ -0,0 +1,19 @@ +PersistBackend in bdk_chain::persist - Rust

Trait bdk_chain::persist::PersistBackend

source ·
pub trait PersistBackend<C> {
+    type WriteError: Debug + Display;
+    type LoadError: Debug + Display;
+
+    // Required methods
+    fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError>;
+    fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>;
+}
Expand description

A persistence backend for writing and loading changesets.

+

C represents the changeset; a datatype that records changes made to in-memory data structures +that are to be persisted, or retrieved from persistence.

+

Required Associated Types§

source

type WriteError: Debug + Display

The error the backend returns when it fails to write.

+
source

type LoadError: Debug + Display

The error the backend returns when it fails to load changesets C.

+

Required Methods§

source

fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError>

Writes a changeset to the persistence backend.

+

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

+
source

fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>

Return the aggregate changeset C from persistence.

+

Implementations on Foreign Types§

source§

impl<C> PersistBackend<C> for ()

§

type WriteError = Infallible

§

type LoadError = Infallible

source§

fn write_changes(&mut self, _changeset: &C) -> Result<(), Self::WriteError>

source§

fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.StageExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.StageExt.html new file mode 100644 index 0000000000..f45cda206c --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/persist/trait.StageExt.html @@ -0,0 +1,34 @@ +StageExt in bdk_chain::persist - Rust

Trait bdk_chain::persist::StageExt

source ·
pub trait StageExt: Append + Default + Sized {
+    // Provided methods
+    fn commit_to<B>(
+        &mut self,
+        backend: &mut B
+    ) -> Result<Option<Self>, B::WriteError>
+       where B: PersistBackend<Self> { ... }
+    fn append_and_commit_to<B>(
+        &mut self,
+        changeset: Self,
+        backend: &mut B
+    ) -> Result<Option<Self>, B::WriteError>
+       where B: PersistBackend<Self> { ... }
+}
Expand description

Extends a changeset so that it acts as a convenient staging area for any PersistBackend.

+

Not all changes to the in-memory representation needs to be written to disk right away. +Append::append can be used to stage changes first and then StageExt::commit_to can be +used to write changes to disk.

+

Provided Methods§

source

fn commit_to<B>( + &mut self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Commit the staged changes to the persistence backend.

+

Changes that are committed (if any) are returned.

+
§Error
+

Returns a backend-defined error if this fails.

+
source

fn append_and_commit_to<B>( + &mut self, + changeset: Self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Stages a new changeset and commits it (alongside any other previously staged changes) to +the persistence backend.

+

Convenience method for calling Append::append and then StageExt::commit_to.

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js index a68858aefc..7dfd340cc6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":["BIP32_MAX_INDEX","COINBASE_MATURITY"],"enum":["ChainPosition","ConfirmationTime"],"externcrate":["serde"],"mod":["indexed_tx_graph","keychain","local_chain","spk_client","tx_graph"],"struct":["BlockId","ConfirmationHeightAnchor","ConfirmationTimeHeightAnchor","DescriptorId","FullTxOut","SpkIterator","SpkTxOutIndex"],"trait":["Anchor","AnchorFromBlockPosition","Append","ChainOracle","DescriptorExt"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["BIP32_MAX_INDEX","COINBASE_MATURITY"],"enum":["ChainPosition","ConfirmationTime"],"externcrate":["serde"],"mod":["indexed_tx_graph","keychain","local_chain","persist","spk_client","tx_graph"],"struct":["BlockId","ConfirmationHeightAnchor","ConfirmationTimeHeightAnchor","DescriptorId","FullTxOut","SpkIterator","SpkTxOutIndex"],"trait":["Anchor","AnchorFromBlockPosition","Append","ChainOracle","DescriptorExt"]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/index.html index fc29f9155c..84b2fb5d55 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/index.html @@ -1,2 +1,2 @@ -bdk_chain::spk_client - Rust

Module bdk_chain::spk_client

source ·
Expand description

Helper types for spk-based blockchain clients.

+bdk_chain::spk_client - Rust

Module bdk_chain::spk_client

source ·
Expand description

Helper types for spk-based blockchain clients.

Structs§

  • Data required to perform a spk-based blockchain client full scan.
  • Data returned from a spk-based blockchain client full scan.
  • Data required to perform a spk-based blockchain client sync.
  • Data returned from a spk-based blockchain client sync.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanRequest.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanRequest.html index 4df95fbd32..ff7aae7994 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanRequest.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanRequest.html @@ -1,4 +1,4 @@ -FullScanRequest in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::FullScanRequest

source ·
pub struct FullScanRequest<K> {
+FullScanRequest in bdk_chain::spk_client - Rust

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 = Indexed<ScriptBuf>> + Send>>,
 }
Expand description

Data required to perform a spk-based blockchain client full scan.

@@ -9,8 +9,8 @@ used scripts is not known. The full scan process also updates the chain from the

Fields§

§chain_tip: CheckPoint

A 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 = Indexed<ScriptBuf>> + Send>>

Iterators of script pubkeys indexed by the keychain index.

-

Implementations§

source§

impl<K: Ord + Clone> FullScanRequest<K>

source

pub fn from_chain_tip(chain_tip: CheckPoint) -> Self

Construct a new FullScanRequest from a given chain_tip.

-
source

pub fn from_keychain_txout_index( +

Implementations§

source§

impl<K: Ord + Clone> FullScanRequest<K>

source

pub fn from_chain_tip(chain_tip: CheckPoint) -> Self

Construct a new FullScanRequest from a given chain_tip.

+
source

pub fn from_keychain_txout_index( chain_tip: CheckPoint, index: &KeychainTxOutIndex<K> ) -> Self
where @@ -18,26 +18,26 @@ The full scan process will return a new chain update that extends this tip.

Unbounded script pubkey iterators for each keychain (K) are extracted using KeychainTxOutIndex::all_unbounded_spk_iters and is used to populate the FullScanRequest.

-

source

pub fn set_spks_for_keychain( +

source

pub fn set_spks_for_keychain( self, keychain: K, spks: impl IntoIterator<IntoIter = impl Iterator<Item = Indexed<ScriptBuf>> + Send + 'static> ) -> Self

Set the [Script]s for a given keychain.

This consumes the FullScanRequest and returns the updated one.

-
source

pub fn chain_spks_for_keychain( +

source

pub fn chain_spks_for_keychain( self, keychain: K, spks: impl IntoIterator<IntoIter = impl Iterator<Item = Indexed<ScriptBuf>> + Send + 'static> ) -> Self

Chain on additional [Script]s that will be synced against.

This consumes the FullScanRequest and returns the updated one.

-
source

pub fn inspect_spks_for_all_keychains( +

source

pub fn inspect_spks_for_all_keychains( self, inspect: impl FnMut(K, u32, &Script) + Send + Sync + Clone + 'static ) -> Self
where 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.

-
source

pub fn inspect_spks_for_keychain( +

source

pub fn inspect_spks_for_keychain( self, keychain: K, inspect: impl FnMut(u32, &Script) + Send + Sync + 'static diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html index ed7e72fd07..59b9ff5ec8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.FullScanResult.html @@ -1,4 +1,4 @@ -FullScanResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::FullScanResult

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

Struct bdk_chain::spk_client::FullScanResult

source ·
pub struct FullScanResult<K, A = ConfirmationTimeHeightAnchor> {
     pub graph_update: TxGraph<A>,
     pub chain_update: CheckPoint,
     pub last_active_indices: BTreeMap<K, u32>,
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncRequest.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncRequest.html
index d60833cd8e..df2d2fe802 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncRequest.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncRequest.html
@@ -11,7 +11,7 @@ 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

source

pub fn from_chain_tip(cp: CheckPoint) -> Self

Construct a new SyncRequest from a given cp tip.

+

Implementations§

source§

impl SyncRequest

source

pub fn from_chain_tip(cp: CheckPoint) -> Self

Construct a new SyncRequest from a given cp tip.

source

pub fn set_spks( self, spks: impl IntoIterator<IntoIter = impl ExactSizeIterator<Item = ScriptBuf> + Send + 'static> @@ -57,7 +57,7 @@ The sync process will return a new chain update that extends this tip.

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.

-
source

pub fn populate_with_revealed_spks<K: Clone + Ord + Debug + Send + Sync>( +

source

pub fn populate_with_revealed_spks<K: Clone + Ord + Debug + Send + Sync>( self, index: &KeychainTxOutIndex<K>, spk_range: impl RangeBounds<K> diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html index 05504948a6..e5d12e2a95 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/spk_client/struct.SyncResult.html @@ -1,4 +1,4 @@ -SyncResult in bdk_chain::spk_client - Rust

Struct bdk_chain::spk_client::SyncResult

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

Struct bdk_chain::spk_client::SyncResult

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

Data returned from a spk-based blockchain client sync.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Append.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Append.html index 617b897aad..379399129c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Append.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.Append.html @@ -71,4 +71,4 @@ T7: Append, T8: Append, T9: Append, - T10: Append,

source§

fn append(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T> Append for Vec<T>

source§

fn append(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

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

source§

fn append(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

Implementors§

source§

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

source§

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

source§

impl<K: Ord> Append for bdk_chain::keychain::ChangeSet<K>

\ No newline at end of file + T10: Append,

source§

fn append(&mut self, _other: Self)

source§

fn is_empty(&self) -> bool

source§

impl<T> Append for Vec<T>

source§

fn append(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

source§

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

source§

fn append(&mut self, other: Self)

source§

fn is_empty(&self) -> bool

Implementors§

source§

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

source§

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

source§

impl<K: Ord> Append for bdk_chain::keychain::ChangeSet<K>

source§

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

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html index 96546830d7..216a37296f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.ChangeSet.html @@ -1,4 +1,4 @@ -ChangeSet in bdk_chain::tx_graph - Rust

Struct bdk_chain::tx_graph::ChangeSet

source ·
pub struct ChangeSet<A = ()> {
+ChangeSet in bdk_chain::tx_graph - Rust

Struct bdk_chain::tx_graph::ChangeSet

source ·
pub struct ChangeSet<A = ()> {
     pub txs: BTreeSet<Arc<Transaction>>,
     pub txouts: BTreeMap<OutPoint, TxOut>,
     pub anchors: BTreeSet<(A, Txid)>,
@@ -38,7 +38,18 @@ sufficient, and should not be overridden without very good reason.
From<T>,
source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> ToOwned for T
where +

source§

impl<C> StageExt for C
where + C: Append + Default,

source§

fn commit_to<B>( + &mut self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Commit the staged changes to the persistence backend. Read more
source§

fn append_and_commit_to<B>( + &mut self, + changeset: Self, + backend: &mut B +) -> Result<Option<Self>, B::WriteError>
where + B: PersistBackend<Self>,

Stages a new changeset and commits it (alongside any other previously staged changes) to +the persistence backend. Read more
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html index 4632378f4f..3379dffb5b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/enum.FileError.html @@ -7,7 +7,7 @@ }
Expand description

Error that occurs due to problems encountered with the file.

Variants§

§

Io(Error)

IO error, this may mean that the file is too short.

§

InvalidMagicBytes

Magic bytes do not match what is expected.

-

Fields

§got: Vec<u8>
§expected: Vec<u8>

Trait Implementations§

source§

impl Debug for FileError

source§

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

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

impl Display for FileError

source§

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

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

impl Error for FileError

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<Error> for FileError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Fields

§got: Vec<u8>
§expected: Vec<u8>

Trait Implementations§

source§

impl Debug for FileError

source§

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

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

impl Display for FileError

source§

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

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

impl Error for FileError

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<Error> for FileError

source§

fn from(value: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/index.html index d8320d5f66..48f7d5cf44 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/index.html @@ -1,4 +1,4 @@ bdk_file_store - Rust

Crate bdk_file_store

source ·
Expand description

§BDK File Store

-

This is a simple append-only flat file implementation of PersistBackend.

+

This is a simple append-only flat file implementation of PersistBackend.

The main structure is Store which works with any bdk_chain based changesets to persist data into a flat file.

Structs§

Enums§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.AggregateChangesetsError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.AggregateChangesetsError.html index e019da3cfa..aa48490e10 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.AggregateChangesetsError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.AggregateChangesetsError.html @@ -1,10 +1,10 @@ -AggregateChangesetsError in bdk_file_store - Rust

Struct bdk_file_store::AggregateChangesetsError

source ·
pub struct AggregateChangesetsError<C> {
+AggregateChangesetsError in bdk_file_store - Rust

Struct bdk_file_store::AggregateChangesetsError

source ·
pub struct AggregateChangesetsError<C> {
     pub changeset: Option<C>,
     pub iter_error: IterError,
 }
Expand description

Fields§

§changeset: Option<C>

The partially-aggregated changeset.

§iter_error: IterError

The error returned by EntryIter.

-

Trait Implementations§

source§

impl<C: Debug> Debug for AggregateChangesetsError<C>

source§

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

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

impl<C> Display for AggregateChangesetsError<C>

source§

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

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

impl<C: Debug> Error for AggregateChangesetsError<C>

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

Auto Trait Implementations§

§

impl<C> Freeze for AggregateChangesetsError<C>
where +

Trait Implementations§

source§

impl<C: Debug> Debug for AggregateChangesetsError<C>

source§

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

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

impl<C> Display for AggregateChangesetsError<C>

source§

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

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

impl<C: Debug> Error for AggregateChangesetsError<C>

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

Auto Trait Implementations§

§

impl<C> Freeze for AggregateChangesetsError<C>
where C: Freeze,

§

impl<C> !RefUnwindSafe for AggregateChangesetsError<C>

§

impl<C> Send for AggregateChangesetsError<C>
where C: Send,

§

impl<C> Sync for AggregateChangesetsError<C>
where C: Sync,

§

impl<C> Unpin for AggregateChangesetsError<C>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.Store.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.Store.html index ffa6aec7bd..417e013c3c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.Store.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.Store.html @@ -1,30 +1,30 @@ -Store in bdk_file_store - Rust

Struct bdk_file_store::Store

source ·
pub struct Store<C>
where +Store in bdk_file_store - Rust

Struct bdk_file_store::Store

source ·
pub struct Store<C>
where C: Sync + Send,
{ /* private fields */ }
Expand description

Persists an append-only list of changesets (C) to a single file.

-

Implementations§

source§

impl<C> Store<C>

source

pub fn create_new<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
where +

Implementations§

source§

impl<C> Store<C>

source

pub fn create_new<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
where P: AsRef<Path>,

Create a new Store file in write-only mode; error if the file exists.

magic is the prefixed bytes to write to the new file. This will be checked when opening the Store in the future with open.

-
source

pub fn open<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
where +

source

pub fn open<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
where P: AsRef<Path>,

Open an existing Store.

Use create_new to create a new Store.

§Errors

If the prefixed bytes of the opened file does not match the provided magic, the FileError::InvalidMagicBytes error variant will be returned.

-
source

pub fn open_or_create_new<P>( +

source

pub fn open_or_create_new<P>( magic: &[u8], file_path: P ) -> Result<Self, FileError>
where P: AsRef<Path>,

Attempt to open existing Store file; create it if the file is non-existent.

Internally, this calls either open or create_new.

-
source

pub fn iter_changesets(&mut self) -> EntryIter<'_, C> ⓘ

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

source

pub fn iter_changesets(&mut self) -> EntryIter<'_, C> ⓘ

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

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

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

-
source

pub fn aggregate_changesets( +

source

pub fn aggregate_changesets( &mut self ) -> Result<Option<C>, AggregateChangesetsError<C>>

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

This function returns the aggregate changeset, or None if nothing was persisted. @@ -35,13 +35,13 @@ wallet scan with a stop-gap after getting an error, since it is likely that one changesets was unable to read changes of the derivation indices of a keychain.

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

-
source

pub fn append_changeset(&mut self, changeset: &C) -> Result<(), Error>

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

source

pub fn append_changeset(&mut self, changeset: &C) -> Result<(), Error>

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

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

-

Trait Implementations§

source§

impl<C> Debug for Store<C>
where - C: Sync + Send + Debug,

source§

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

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

impl<C> PersistBackend<C> for Store<C>

source§

fn write_changes(&mut self, changeset: &C) -> Result<()>

Writes a changeset to the persistence backend. Read more
source§

fn load_from_persistence(&mut self) -> Result<Option<C>>

Return the aggregate changeset C from persistence.

Auto Trait Implementations§

§

impl<C> Freeze for Store<C>

§

impl<C> RefUnwindSafe for Store<C>
where +

Trait Implementations§

source§

impl<C> Debug for Store<C>
where + C: Sync + Send + Debug,

source§

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

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

impl<C> PersistBackend<C> for Store<C>

§

type WriteError = Error

The error the backend returns when it fails to write.
§

type LoadError = AggregateChangesetsError<C>

The error the backend returns when it fails to load changesets C.
source§

fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError>

Writes a changeset to the persistence backend. Read more
source§

fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>

Return the aggregate changeset C from persistence.

Auto Trait Implementations§

§

impl<C> Freeze for Store<C>

§

impl<C> RefUnwindSafe for Store<C>
where C: RefUnwindSafe,

§

impl<C> Send for Store<C>

§

impl<C> Sync for Store<C>

§

impl<C> Unpin for Store<C>
where C: Unpin,

§

impl<C> UnwindSafe for Store<C>
where C: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/all.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/all.html deleted file mode 100644 index 0a77c104de..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/all.html +++ /dev/null @@ -1 +0,0 @@ -List of all items in this crate

List of all items

Structs

Traits

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/changeset/struct.CombinedChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/changeset/struct.CombinedChangeSet.html deleted file mode 100644 index 4eb5416ef3..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/changeset/struct.CombinedChangeSet.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk_persist/struct.CombinedChangeSet.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/index.html deleted file mode 100644 index d844e13214..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/index.html +++ /dev/null @@ -1,5 +0,0 @@ -bdk_persist - Rust

Crate bdk_persist

source ·
Expand description

§BDK Persist

-

This crate is home to the PersistBackend trait which defines the behavior of a database to perform the task of persisting changes made to BDK data structures.

-

The Persist type provides a convenient wrapper around a PersistBackend that allows staging changes before committing them.

-

Structs§

Traits§

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

Redirecting to ../../bdk_persist/struct.Persist.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/persist/trait.PersistBackend.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/persist/trait.PersistBackend.html deleted file mode 100644 index e46cfad42f..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/persist/trait.PersistBackend.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

Redirecting to ../../bdk_persist/trait.PersistBackend.html...

- - - \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/sidebar-items.js deleted file mode 100644 index b877ef96cf..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -window.SIDEBAR_ITEMS = {"struct":["CombinedChangeSet","Persist"],"trait":["PersistBackend"]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/struct.CombinedChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/struct.CombinedChangeSet.html deleted file mode 100644 index 7c0c6a7a5b..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/struct.CombinedChangeSet.html +++ /dev/null @@ -1,38 +0,0 @@ -CombinedChangeSet in bdk_persist - Rust

Struct bdk_persist::CombinedChangeSet

source ·
pub struct CombinedChangeSet<K, A> {
-    pub chain: ChangeSet,
-    pub indexed_tx_graph: ChangeSet<A, ChangeSet<K>>,
-    pub network: Option<Network>,
-}
Expand description

Changes from a combination of bdk_chain structures.

-

Fields§

§chain: ChangeSet

Changes to the LocalChain.

-
§indexed_tx_graph: ChangeSet<A, ChangeSet<K>>

Changes to IndexedTxGraph.

-
§network: Option<Network>

Stores the network type of the transaction data.

-

Trait Implementations§

source§

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

source§

fn append(&mut self, other: Self)

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

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

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

source§

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

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

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

source§

fn default() -> Self

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

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

source§

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

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

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

source§

fn from(chain: ChangeSet) -> Self

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

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

impl<K, A> Serialize for CombinedChangeSet<K, A>
where - A: Ord + Serialize, - K: Ord + Serialize,

source§

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

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

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

Auto Trait Implementations§

§

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

§

impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
where - K: RefUnwindSafe, - A: RefUnwindSafe,

§

impl<K, A> Send for CombinedChangeSet<K, A>
where - K: Send, - A: Send,

§

impl<K, A> Sync for CombinedChangeSet<K, A>
where - K: Sync, - A: Sync,

§

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

§

impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
where - K: RefUnwindSafe, - A: RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

-

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

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

Struct bdk_persist::Persist

source ·
pub struct Persist<C> { /* private fields */ }
Expand description

Persist wraps a PersistBackend to create a convenient staging area for changes (C) -before they are persisted.

-

Not all changes to the in-memory representation needs to be written to disk right away, so -Persist::stage can be used to stage changes first and then Persist::commit can be used -to write changes to disk.

-

Implementations§

source§

impl<C> Persist<C>
where - C: Default + Append,

source

pub fn new(backend: impl PersistBackend<C> + Send + Sync + 'static) -> Self

Create a new Persist from PersistBackend.

-
source

pub fn stage(&mut self, changeset: C)

Stage a changeset to be committed later with commit.

-
source

pub fn staged(&self) -> &C

Get the changes that have not been committed yet.

-
source

pub fn commit(&mut self) -> Result<Option<C>>

Commit the staged changes to the underlying persistence backend.

-

Changes that are committed (if any) are returned.

-
§Error
-

Returns a backend-defined error if this fails.

-
source

pub fn stage_and_commit(&mut self, changeset: C) -> Result<Option<C>>

Stages a new changeset and commits it (along with any other previously staged changes) to -the persistence backend

-

Convenience method for calling stage and then commit.

-

Trait Implementations§

source§

impl<C: Debug> Debug for Persist<C>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<C> Freeze for Persist<C>
where - C: Freeze,

§

impl<C> !RefUnwindSafe for Persist<C>

§

impl<C> Send for Persist<C>
where - C: Send,

§

impl<C> Sync for Persist<C>
where - C: Sync,

§

impl<C> Unpin for Persist<C>
where - C: Unpin,

§

impl<C> !UnwindSafe for Persist<C>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

-

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

-
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/trait.PersistBackend.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/trait.PersistBackend.html deleted file mode 100644 index 6003f6c050..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_persist/trait.PersistBackend.html +++ /dev/null @@ -1,14 +0,0 @@ -PersistBackend in bdk_persist - Rust

Trait bdk_persist::PersistBackend

source ·
pub trait PersistBackend<C> {
-    // Required methods
-    fn write_changes(&mut self, changeset: &C) -> Result<()>;
-    fn load_from_persistence(&mut self) -> Result<Option<C>>;
-}
Expand description

A persistence backend for Persist.

-

C represents the changeset; a datatype that records changes made to in-memory data structures -that are to be persisted, or retrieved from persistence.

-

Required Methods§

source

fn write_changes(&mut self, changeset: &C) -> Result<()>

Writes a changeset to the persistence backend.

-

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

-
source

fn load_from_persistence(&mut self) -> Result<Option<C>>

Return the aggregate changeset C from persistence.

-

Implementations on Foreign Types§

source§

impl<C> PersistBackend<C> for ()

source§

fn write_changes(&mut self, _changeset: &C) -> Result<()>

source§

fn load_from_persistence(&mut self) -> Result<Option<C>>

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/index.html index 9309c88a10..9e43823452 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/index.html @@ -1,4 +1,5 @@ bdk_sqlite - Rust

Crate bdk_sqlite

source ·
Expand description

§BDK SQLite

-

This is a simple SQLite relational database schema backed implementation of PersistBackend.

-

The main structure is Store which persists bdk_persist CombinedChangeSet data into a SQLite database file.

+

This is a simple SQLite relational database schema backed implementation of PersistBackend.

+

The main structure is Store which persists CombinedChangeSet data into a SQLite database file.

+

Re-exports§

  • pub use rusqlite;

Structs§

  • Persists data in to a relational schema based SQLite database file.

Enums§

  • Error that occurs while reading or writing change sets with the SQLite database.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/struct.Store.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/struct.Store.html index 033c9727ae..4dc95af2b0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/struct.Store.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_sqlite/struct.Store.html @@ -1,12 +1,16 @@ -Store in bdk_sqlite - Rust

Struct bdk_sqlite::Store

source ·
pub struct Store<K, A> { /* private fields */ }
Expand description

Persists data in to a relational schema based SQLite database file.

+Store in bdk_sqlite - Rust

Struct bdk_sqlite::Store

source ·
pub struct Store<K, A> { /* private fields */ }
Expand description

Persists data in to a relational schema based SQLite database file.

The changesets loaded or stored represent changes to keychain and blockchain data.

Implementations§

source§

impl<K, A> Store<K, A>
where K: Ord + for<'de> Deserialize<'de> + Serialize + Send, A: Anchor + for<'de> Deserialize<'de> + Serialize + Send,

source

pub fn new(conn: Connection) -> Result<Self, Error>

Creates a new store from a [Connection].

-

Trait Implementations§

source§

impl<K, A> Debug for Store<K, A>

source§

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

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

impl<K, A, C> PersistBackend<C> for Store<K, A>
where +

Trait Implementations§

source§

impl<K, A> Debug for Store<K, A>

source§

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

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

impl<K, A> PersistBackend<CombinedChangeSet<K, A>> for Store<K, A>
where K: Ord + for<'de> Deserialize<'de> + Serialize + Send, - A: Anchor + for<'de> Deserialize<'de> + Serialize + Send, - C: Clone + From<CombinedChangeSet<K, A>> + Into<CombinedChangeSet<K, A>>,

source§

fn write_changes(&mut self, changeset: &C) -> Result<()>

Writes a changeset to the persistence backend. Read more
source§

fn load_from_persistence(&mut self) -> Result<Option<C>>

Return the aggregate changeset C from persistence.

Auto Trait Implementations§

§

impl<K, A> !Freeze for Store<K, A>

§

impl<K, A> RefUnwindSafe for Store<K, A>
where + A: Anchor + for<'de> Deserialize<'de> + Serialize + Send,

§

type WriteError = Error

The error the backend returns when it fails to write.
§

type LoadError = Error

The error the backend returns when it fails to load changesets C.
source§

fn write_changes( + &mut self, + changeset: &CombinedChangeSet<K, A> +) -> Result<(), Self::WriteError>

Writes a changeset to the persistence backend. Read more
source§

fn load_changes( + &mut self +) -> Result<Option<CombinedChangeSet<K, A>>, Self::LoadError>

Return the aggregate changeset C from persistence.

Auto Trait Implementations§

§

impl<K, A> !Freeze for Store<K, A>

§

impl<K, A> RefUnwindSafe for Store<K, A>

§

impl<K, A> Send for Store<K, A>
where K: Send, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html index 7b1b191cf1..3ada3bba09 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/error/enum.Error.html @@ -26,7 +26,7 @@
§

Miniscript(Error)

Miniscript error

§

Hex(HexToBytesError)

Hex decoding error

§

ExternalAndInternalAreTheSame

The provided wallet descriptors are identical

-

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<HexToBytesError> for Error

source§

fn from(err: HexToBytesError) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.
source§

impl From<ParsePublicKeyError> for Error

source§

fn from(err: ParsePublicKeyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<Error> for CreateTxError

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: Error) -> Self

Converts to this type from the input type.
source§

impl From<HexToBytesError> for Error

source§

fn from(err: HexToBytesError) -> Self

Converts to this type from the input type.
source§

impl From<KeyError> for Error

source§

fn from(key_error: KeyError) -> Error

Converts to this type from the input type.
source§

impl From<ParsePublicKeyError> for Error

source§

fn from(err: ParsePublicKeyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html index 2166108f27..6b7cd203a0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/policy/enum.PolicyError.html @@ -12,7 +12,7 @@
§

AddOnPartialComplete

Can not add to an item that is Satisfaction::PartialComplete

§

MixedTimelockUnits

Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000

§

IncompatibleConditions

Incompatible conditions (not currently used)

-

Trait Implementations§

source§

impl Debug for PolicyError

source§

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

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

impl Display for PolicyError

source§

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

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

impl Error for PolicyError

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for PolicyError

source§

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

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

Trait Implementations§

source§

impl Debug for PolicyError

source§

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

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

impl Display for PolicyError

source§

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

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

impl Error for PolicyError

1.30.0 · source§

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

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

fn description(&self) -> &str

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

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

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

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

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

impl From<PolicyError> for CreateTxError

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl From<PolicyError> for Error

source§

fn from(err: PolicyError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for PolicyError

source§

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

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

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

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

impl Eq for PolicyError

source§

impl StructuralPartialEq for PolicyError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/index.html index c73b93fb8b..d1f07a16b4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/index.html @@ -1,4 +1,4 @@ -bdk_wallet::descriptor::template - Rust

Module bdk_wallet::descriptor::template

source ·
Expand description

Descriptor templates

+bdk_wallet::descriptor::template - Rust

Module bdk_wallet::descriptor::template

source ·
Expand description

Descriptor templates

This module contains the definition of various common script templates that are ready to be used. See the documentation of each template for an example.

Structs§

  • 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 sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))
  • 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}/*)
  • 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))

Traits§

Type Aliases§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44.html index be4c24f3e5..498d806315 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44.html @@ -1,19 +1,19 @@ -Bip44 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip44

source ·
pub struct Bip44<K: DerivableKey<Legacy>>(pub K, pub KeychainKind);
Expand description

BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)

+Bip44 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip44

source ·
pub struct Bip44<K: DerivableKey<Legacy>>(pub K, pub KeychainKind);
Expand description

BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

See Bip44Public for a template that can work with a xpub/tpub.

§Example

use bdk_wallet::template::Bip44;
 
 let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let mut wallet = Wallet::new_no_persist(
+let mut wallet = Wallet::new(
     Bip44(key.clone(), KeychainKind::External),
     Bip44(key, KeychainKind::Internal),
     Network::Testnet,
 )?;
 
-assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
+assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
 assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt");
-

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44<K>

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip44<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44Public.html index b8b1bb3ca6..2a5c7e768a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip44Public.html @@ -1,4 +1,4 @@ -Bip44Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip44Public

source ·
pub struct Bip44Public<K: DerivableKey<Legacy>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP44 public template. Expands to pkh(key/{0,1}/*)

+Bip44Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip44Public

source ·
pub struct Bip44Public<K: DerivableKey<Legacy>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP44 public template. Expands to pkh(key/{0,1}/*)

This assumes that the key used has already been derived with m/44'/0'/0' for Mainnet or m/44'/1'/0' for Testnet.

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

See Bip44 for a template that does the full derivation, but requires private data @@ -8,15 +8,15 @@ for the key.

let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?; let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?; -let mut wallet = Wallet::new_no_persist( +let mut wallet = Wallet::new( Bip44Public(key.clone(), fingerprint, KeychainKind::External), Bip44Public(key, fingerprint, KeychainKind::Internal), Network::Testnet, )?; -assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR"); +assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR"); assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz");
-

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44Public<K>

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Legacy>> DescriptorTemplate for Bip44Public<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip44Public<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49.html index 23d9c5df4b..f22179924d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49.html @@ -1,19 +1,19 @@ -Bip49 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip49

source ·
pub struct Bip49<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP49 template. Expands to sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))

+Bip49 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip49

source ·
pub struct Bip49<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP49 template. Expands to sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

See Bip49Public for a template that can work with a xpub/tpub.

§Example

use bdk_wallet::template::Bip49;
 
 let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let mut wallet = Wallet::new_no_persist(
+let mut wallet = Wallet::new(
     Bip49(key.clone(), KeychainKind::External),
     Bip49(key, KeychainKind::Internal),
     Network::Testnet,
 )?;
 
-assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
+assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
 assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e");
-

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49<K>

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip49<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49Public.html index dbb14b0e1a..580e7eef3c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip49Public.html @@ -1,4 +1,4 @@ -Bip49Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip49Public

source ·
pub struct Bip49Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))

+Bip49Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip49Public

source ·
pub struct Bip49Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))

This assumes that the key used has already been derived with m/49'/0'/0' for Mainnet or m/49'/1'/0' for Testnet.

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

See Bip49 for a template that does the full derivation, but requires private data @@ -8,15 +8,15 @@ for the key.

let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?; let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?; -let mut wallet = Wallet::new_no_persist( +let mut wallet = Wallet::new( Bip49Public(key.clone(), fingerprint, KeychainKind::External), Bip49Public(key, fingerprint, KeychainKind::Internal), Network::Testnet, )?; -assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"); +assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"); assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q");
-

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49Public<K>

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip49Public<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip49Public<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84.html index ca97cdfb86..1cb1a93694 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84.html @@ -1,19 +1,19 @@ -Bip84 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip84

source ·
pub struct Bip84<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)

+Bip84 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip84

source ·
pub struct Bip84<K: DerivableKey<Segwitv0>>(pub K, pub KeychainKind);
Expand description

BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

See Bip84Public for a template that can work with a xpub/tpub.

§Example

use bdk_wallet::template::Bip84;
 
 let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let mut wallet = Wallet::new_no_persist(
+let mut wallet = Wallet::new(
     Bip84(key.clone(), KeychainKind::External),
     Bip84(key, KeychainKind::Internal),
     Network::Testnet,
 )?;
 
-assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
+assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
 assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr");
-

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84<K>

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip84<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84Public.html index b66078a27b..971c8e16fc 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip84Public.html @@ -1,4 +1,4 @@ -Bip84Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip84Public

source ·
pub struct Bip84Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP84 public template. Expands to wpkh(key/{0,1}/*)

+Bip84Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip84Public

source ·
pub struct Bip84Public<K: DerivableKey<Segwitv0>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP84 public template. Expands to wpkh(key/{0,1}/*)

This assumes that the key used has already been derived with m/84'/0'/0' for Mainnet or m/84'/1'/0' for Testnet.

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

See Bip84 for a template that does the full derivation, but requires private data @@ -8,15 +8,15 @@ for the key.

let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?; let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?; -let mut wallet = Wallet::new_no_persist( +let mut wallet = Wallet::new( Bip84Public(key.clone(), fingerprint, KeychainKind::External), Bip84Public(key, fingerprint, KeychainKind::Internal), Network::Testnet, )?; -assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7"); +assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7"); assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv");
-

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84Public<K>

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Segwitv0>> DescriptorTemplate for Bip84Public<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip84Public<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86.html index 50eec2adbd..6f9f7001e9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86.html @@ -1,19 +1,19 @@ -Bip86 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip86

source ·
pub struct Bip86<K: DerivableKey<Tap>>(pub K, pub KeychainKind);
Expand description

BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)

+Bip86 in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip86

source ·
pub struct Bip86<K: DerivableKey<Tap>>(pub K, pub KeychainKind);
Expand description

BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)

Since there are hardened derivation steps, this template requires a private derivable key (generally a xprv/tprv).

See Bip86Public for a template that can work with a xpub/tpub.

§Example

use bdk_wallet::template::Bip86;
 
 let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-let mut wallet = Wallet::new_no_persist(
+let mut wallet = Wallet::new(
     Bip86(key.clone(), KeychainKind::External),
     Bip86(key, KeychainKind::Internal),
     Network::Testnet,
 )?;
 
-assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
+assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
 assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm");
-

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Tap>> DescriptorTemplate for Bip86<K>

Tuple Fields§

§0: K§1: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Tap>> DescriptorTemplate for Bip86<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip86<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86Public.html index c72917fbd3..12173b0996 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.Bip86Public.html @@ -1,4 +1,4 @@ -Bip86Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip86Public

source ·
pub struct Bip86Public<K: DerivableKey<Tap>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP86 public template. Expands to tr(key/{0,1}/*)

+Bip86Public in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::Bip86Public

source ·
pub struct Bip86Public<K: DerivableKey<Tap>>(pub K, pub Fingerprint, pub KeychainKind);
Expand description

BIP86 public template. Expands to tr(key/{0,1}/*)

This assumes that the key used has already been derived with m/86'/0'/0' for Mainnet or m/86'/1'/0' for Testnet.

This template requires the parent fingerprint to populate correctly the metadata of PSBTs.

See Bip86 for a template that does the full derivation, but requires private data @@ -8,15 +8,15 @@ for the key.

let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?; let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?; -let mut wallet = Wallet::new_no_persist( +let mut wallet = Wallet::new( Bip86Public(key.clone(), fingerprint, KeychainKind::External), Bip86Public(key, fingerprint, KeychainKind::Internal), Network::Testnet, )?; -assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37"); +assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37"); assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku");
-

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Tap>> DescriptorTemplate for Bip86Public<K>

Tuple Fields§

§0: K§1: Fingerprint§2: KeychainKind

Trait Implementations§

source§

impl<K: DerivableKey<Tap>> DescriptorTemplate for Bip86Public<K>

source§

fn build( self, network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for Bip86Public<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Pkh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Pkh.html index b1afa97b4f..f148f9c399 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Pkh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Pkh.html @@ -1,4 +1,4 @@ -P2Pkh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Pkh

source ·
pub struct P2Pkh<K: IntoDescriptorKey<Legacy>>(pub K);
Expand description

P2PKH template. Expands to a descriptor pkh(key)

+P2Pkh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Pkh

source ·
pub struct P2Pkh<K: IntoDescriptorKey<Legacy>>(pub K);
Expand description

P2PKH template. Expands to a descriptor pkh(key)

§Example

use bdk_wallet::template::P2Pkh;
 
@@ -6,16 +6,15 @@
     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
 let key_internal =
     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
-let mut wallet =
-    Wallet::new_no_persist(P2Pkh(key_external), P2Pkh(key_internal), Network::Testnet)?;
+let mut wallet = Wallet::new(P2Pkh(key_external), P2Pkh(key_internal), Network::Testnet)?;
 
 assert_eq!(
     wallet
-        .next_unused_address(KeychainKind::External)?
-        .to_string(),
+        .next_unused_address(KeychainKind::External)
+        .to_string(),
     "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
 );
-

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for P2Pkh<K>

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for P2Pkh<K>

source§

fn build( self, _network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for P2Pkh<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2TR.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2TR.html index 097bd32a63..2bf859ce4a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2TR.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2TR.html @@ -1,4 +1,4 @@ -P2TR in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2TR

source ·
pub struct P2TR<K: IntoDescriptorKey<Tap>>(pub K);
Expand description

P2TR template. Expands to a descriptor tr(key)

+P2TR in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2TR

source ·
pub struct P2TR<K: IntoDescriptorKey<Tap>>(pub K);
Expand description

P2TR template. Expands to a descriptor tr(key)

§Example

use bdk_wallet::template::P2TR;
 
@@ -6,16 +6,15 @@
     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
 let key_internal =
     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
-let mut wallet =
-    Wallet::new_no_persist(P2TR(key_external), P2TR(key_internal), Network::Testnet)?;
+let mut wallet = Wallet::new(P2TR(key_external), P2TR(key_internal), Network::Testnet)?;
 
 assert_eq!(
     wallet
-        .next_unused_address(KeychainKind::External)?
-        .to_string(),
+        .next_unused_address(KeychainKind::External)
+        .to_string(),
     "tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
 );
-

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Tap>> DescriptorTemplate for P2TR<K>

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Tap>> DescriptorTemplate for P2TR<K>

source§

fn build( self, _network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for P2TR<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh.html index cf64a94a11..4b05d8d376 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh.html @@ -1,4 +1,4 @@ -P2Wpkh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Wpkh

source ·
pub struct P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH template. Expands to a descriptor wpkh(key)

+P2Wpkh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Wpkh

source ·
pub struct P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH template. Expands to a descriptor wpkh(key)

§Example

use bdk_wallet::template::P2Wpkh;
 
@@ -6,16 +6,15 @@
     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
 let key_internal =
     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
-let mut wallet =
-    Wallet::new_no_persist(P2Wpkh(key_external), P2Wpkh(key_internal), Network::Testnet)?;
+let mut wallet = Wallet::new(P2Wpkh(key_external), P2Wpkh(key_internal), Network::Testnet)?;
 
 assert_eq!(
     wallet
-        .next_unused_address(KeychainKind::External)?
-        .to_string(),
+        .next_unused_address(KeychainKind::External)
+        .to_string(),
     "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
 );
-

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh<K>

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh<K>

source§

fn build( self, _network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for P2Wpkh<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html index 42e6aa7a7d..c3115cdf02 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html @@ -1,4 +1,4 @@ -P2Wpkh_P2Sh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh

source ·
pub struct P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))

+P2Wpkh_P2Sh in bdk_wallet::descriptor::template - Rust

Struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh

source ·
pub struct P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(pub K);
Expand description

P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))

§Example

use bdk_wallet::template::P2Wpkh_P2Sh;
 
@@ -6,7 +6,7 @@
     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
 let key_internal =
     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
-let mut wallet = Wallet::new_no_persist(
+let mut wallet = Wallet::new(
     P2Wpkh_P2Sh(key_external),
     P2Wpkh_P2Sh(key_internal),
     Network::Testnet,
@@ -14,11 +14,11 @@
 
 assert_eq!(
     wallet
-        .next_unused_address(KeychainKind::External)?
-        .to_string(),
+        .next_unused_address(KeychainKind::External)
+        .to_string(),
     "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
 );
-

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh_P2Sh<K>

Tuple Fields§

§0: K

Trait Implementations§

source§

impl<K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate for P2Wpkh_P2Sh<K>

source§

fn build( self, _network: Network ) -> Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

Auto Trait Implementations§

§

impl<K> Freeze for P2Wpkh_P2Sh<K>
where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/trait.DescriptorTemplate.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/trait.DescriptorTemplate.html index 72ab0d2bda..aade8631bb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/trait.DescriptorTemplate.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/descriptor/template/trait.DescriptorTemplate.html @@ -25,4 +25,4 @@ passed directly to the Result<DescriptorTemplateOut, DescriptorError>

Build the complete descriptor

-

Implementors§

\ No newline at end of file +

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/index.html index a8d4162836..4b19381427 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/index.html @@ -46,10 +46,11 @@ that the Wallet can use to update its view of the chain.

  • example-crates/wallet_rpc
  • §Persistence

    -

    To persist the Wallet on disk, it must be constructed with a PersistBackend implementation.

    +

    To persist Wallet state data on disk use an implementation of the PersistBackend trait.

    Implementations

    Example

    @@ -58,15 +59,16 @@ that the Wallet can use to update its view of the chain.

    fn main() { // Create a new file `Store`. - let db = bdk_file_store::Store::<ChangeSet>::open_or_create_new(b"magic_bytes", "path/to/my_wallet.db").expect("create store"); + let mut db = bdk_file_store::Store::<ChangeSet>::open_or_create_new(b"magic_bytes", "path/to/my_wallet.db").expect("create store"); let descriptor = "wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKMLmC7EAk438btHQrSdu3jGGQa6PA71nvH5nkDexhLteJqkM4dQmWF9g/84'/1'/0'/0/*)"; let change_descriptor = "wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKMLmC7EAk438btHQrSdu3jGGQa6PA71nvH5nkDexhLteJqkM4dQmWF9g/84'/1'/0'/1/*)"; - let mut wallet = Wallet::new_or_load(descriptor, change_descriptor, db, Network::Testnet).expect("create or load wallet"); + let changeset = db.load_changes().expect("changeset loaded"); + let mut wallet = Wallet::new_or_load(descriptor, change_descriptor, changeset, Network::Testnet).expect("create or load wallet"); // Insert a single `TxOut` at `OutPoint` into the wallet. let _ = wallet.insert_txout(outpoint, txout); - wallet.commit().expect("must write to database"); + wallet.commit_to(&mut db).expect("must commit changes to database"); }
    @@ -93,7 +95,7 @@ that the Wallet can use to update its view of the chain.

    - + @@ -115,7 +117,7 @@ that the Wallet can use to update its view of the chain.

    - + @@ -143,7 +145,7 @@ that the Wallet can use to update its view of the chain.

    - + diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html index a1b8afd5a1..7ed2b2f3c9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.ExtendedKey.html @@ -22,7 +22,7 @@ given [Network]

    origin: Option<KeySource>, derivation_path: DerivationPath ) -> Result<DescriptorKey<Ctx>, KeyError>
    Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path
    source§

    impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>

    source§

    fn from(xprv: Xpriv) -> Self

    Converts to this type from the input type.
    source§

    impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>

    source§

    fn from(xpub: Xpub) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<Ctx> Freeze for ExtendedKey<Ctx>

    §

    impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>
    where +key origin and derivation path

    source§

    impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>

    source§

    fn from(xprv: Xpriv) -> Self

    Converts to this type from the input type.
    source§

    impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>

    source§

    fn from(xpub: Xpub) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<Ctx> Freeze for ExtendedKey<Ctx>

    §

    impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>
    where Ctx: RefUnwindSafe,

    §

    impl<Ctx> Send for ExtendedKey<Ctx>
    where Ctx: Send,

    §

    impl<Ctx> Sync for ExtendedKey<Ctx>
    where Ctx: Sync,

    §

    impl<Ctx> Unpin for ExtendedKey<Ctx>
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html index 741a0d760d..70041d377d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/keys/enum.KeyError.html @@ -12,7 +12,7 @@
    §

    Message(String)

    Custom error message

    §

    Bip32(Error)

    BIP32 error

    §

    Miniscript(Error)

    Miniscript error

    -

    Trait Implementations§

    source§

    impl Debug for KeyError

    source§

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

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

    impl Display for KeyError

    source§

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

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

    impl Error for KeyError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for KeyError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for KeyError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<KeyError> for Error

    source§

    fn from(key_error: KeyError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for KeyError

    source§

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

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

    impl Display for KeyError

    source§

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

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

    impl Error for KeyError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for KeyError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for KeyError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<KeyError> for Error

    source§

    fn from(key_error: KeyError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html index 0fc33a66dc..b73e61aee9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Error.html @@ -1,4 +1,4 @@ -Error in bdk_wallet::wallet::coin_selection - Rust

    Enum bdk_wallet::wallet::coin_selection::Error

    source ·
    pub enum Error {
    +Error in bdk_wallet::wallet::coin_selection - Rust

    Enum bdk_wallet::wallet::coin_selection::Error

    source ·
    pub enum Error {
         InsufficientFunds {
             needed: u64,
             available: u64,
    @@ -13,7 +13,7 @@
     the desired outputs plus fee, if there is not such combination this error is thrown

    §

    BnBTotalTriesExceeded

    Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow exponentially, thus a limit is set, and when hit, this error is thrown

    -

    Trait Implementations§

    source§

    impl Debug for Error

    source§

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

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

    impl Display for Error

    source§

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

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

    impl Error for Error

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for Error

    source§

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

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

    impl Display for Error

    source§

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

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

    impl Error for Error

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Excess.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Excess.html index 52f88c0cc7..90226f3135 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Excess.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/enum.Excess.html @@ -1,4 +1,4 @@ -Excess in bdk_wallet::wallet::coin_selection - Rust

    Enum bdk_wallet::wallet::coin_selection::Excess

    source ·
    pub enum Excess {
    +Excess in bdk_wallet::wallet::coin_selection - Rust

    Enum bdk_wallet::wallet::coin_selection::Excess

    source ·
    pub enum Excess {
         NoChange {
             dust_threshold: u64,
             remaining_amount: u64,
    @@ -16,7 +16,7 @@
     
    §

    Change

    It’s possible to create spendable output from excess using the current drain output

    Fields

    §amount: u64

    Effective amount available to create change after deducting the change output fee

    §fee: u64

    The deducted change output fee

    -

    Trait Implementations§

    source§

    impl Debug for Excess

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for Excess

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/fn.decide_change.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/fn.decide_change.html index bbcec7e252..13e34b8701 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/fn.decide_change.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/fn.decide_change.html @@ -1,4 +1,4 @@ -decide_change in bdk_wallet::wallet::coin_selection - Rust

    Function bdk_wallet::wallet::coin_selection::decide_change

    source ·
    pub fn decide_change(
    +decide_change in bdk_wallet::wallet::coin_selection - Rust

    Function bdk_wallet::wallet::coin_selection::decide_change

    source ·
    pub fn decide_change(
         remaining_amount: u64,
         fee_rate: FeeRate,
         drain_script: &Script
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/index.html
    index 10f72526a3..b04e6a7566 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/index.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/index.html
    @@ -1,4 +1,4 @@
    -bdk_wallet::wallet::coin_selection - Rust

    Module bdk_wallet::wallet::coin_selection

    source ·
    Expand description

    Coin selection

    +bdk_wallet::wallet::coin_selection - Rust

    Module bdk_wallet::wallet::coin_selection

    source ·
    Expand description

    Coin selection

    This module provides the trait CoinSelectionAlgorithm that can be implemented to define custom coin selection algorithms.

    You can specify a custom coin selection algorithm through the coin_selection method on diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html index 75723dc9e8..dffc2fd37c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html @@ -1,14 +1,14 @@ -BranchAndBoundCoinSelection in bdk_wallet::wallet::coin_selection - Rust

    pub struct BranchAndBoundCoinSelection { /* private fields */ }
    Expand description

    Branch and bound coin selection

    +BranchAndBoundCoinSelection in bdk_wallet::wallet::coin_selection - Rust
    pub struct BranchAndBoundCoinSelection { /* private fields */ }
    Expand description

    Branch and bound coin selection

    Code adapted from Bitcoin Core’s implementation and from Mark Erhardt Master’s Thesis: http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf

    -

    Implementations§

    source§

    impl BranchAndBoundCoinSelection

    source

    pub fn new(size_of_change: u64) -> Self

    Create new instance with target size for change output

    -

    Trait Implementations§

    source§

    impl Clone for BranchAndBoundCoinSelection

    source§

    fn clone(&self) -> BranchAndBoundCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for BranchAndBoundCoinSelection

    Implementations§

    source§

    impl BranchAndBoundCoinSelection

    source

    pub fn new(size_of_change: u64) -> Self

    Create new instance with target size for change output

    +

    Trait Implementations§

    source§

    impl Clone for BranchAndBoundCoinSelection

    source§

    fn clone(&self) -> BranchAndBoundCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for BranchAndBoundCoinSelection

    source§

    fn coin_select( &self, required_utxos: Vec<WeightedUtxo>, optional_utxos: Vec<WeightedUtxo>, fee_rate: FeeRate, target_amount: u64, drain_script: &Script -) -> Result<CoinSelectionResult, Error>

    Perform the coin selection Read more
    source§

    impl Debug for BranchAndBoundCoinSelection

    source§

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

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

    impl Default for BranchAndBoundCoinSelection

    source§

    fn default() -> Self

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T

    Perform the coin selection Read more
    source§

    impl Debug for BranchAndBoundCoinSelection

    source§

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

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

    impl Default for BranchAndBoundCoinSelection

    source§

    fn default() -> Self

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html index a2484a78c4..fa0de01d91 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html @@ -1,4 +1,4 @@ -CoinSelectionResult in bdk_wallet::wallet::coin_selection - Rust

    Struct bdk_wallet::wallet::coin_selection::CoinSelectionResult

    source ·
    pub struct CoinSelectionResult {
    +CoinSelectionResult in bdk_wallet::wallet::coin_selection - Rust

    Struct bdk_wallet::wallet::coin_selection::CoinSelectionResult

    source ·
    pub struct CoinSelectionResult {
         pub selected: Vec<Utxo>,
         pub fee_amount: u64,
         pub excess: Excess,
    @@ -6,9 +6,9 @@
     

    Fields§

    §selected: Vec<Utxo>

    List of outputs selected for use as inputs

    §fee_amount: u64

    Total fee amount for the selected utxos in satoshis

    §excess: Excess

    Remaining amount after deducing fees and outgoing outputs

    -

    Implementations§

    source§

    impl CoinSelectionResult

    source

    pub fn selected_amount(&self) -> u64

    The total value of the inputs selected.

    -
    source

    pub fn local_selected_amount(&self) -> u64

    The total value of the inputs selected from the local wallet.

    -

    Trait Implementations§

    source§

    impl Debug for CoinSelectionResult

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Implementations§

    source§

    impl CoinSelectionResult

    source

    pub fn selected_amount(&self) -> u64

    The total value of the inputs selected.

    +
    source

    pub fn local_selected_amount(&self) -> u64

    The total value of the inputs selected from the local wallet.

    +

    Trait Implementations§

    source§

    impl Debug for CoinSelectionResult

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html index 3f2f30a12a..6e2f8208f6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html @@ -1,14 +1,14 @@ -LargestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust
    pub struct LargestFirstCoinSelection;
    Expand description

    Simple and dumb coin selection

    +LargestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust
    pub struct LargestFirstCoinSelection;
    Expand description

    Simple and dumb coin selection

    This coin selection algorithm sorts the available UTXOs by value and then picks them starting from the largest ones until the required amount is reached.

    -

    Trait Implementations§

    source§

    impl Clone for LargestFirstCoinSelection

    source§

    fn clone(&self) -> LargestFirstCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for LargestFirstCoinSelection

    Trait Implementations§

    source§

    impl Clone for LargestFirstCoinSelection

    source§

    fn clone(&self) -> LargestFirstCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for LargestFirstCoinSelection

    source§

    fn coin_select( &self, required_utxos: Vec<WeightedUtxo>, optional_utxos: Vec<WeightedUtxo>, fee_rate: FeeRate, target_amount: u64, drain_script: &Script -) -> Result<CoinSelectionResult, Error>

    Perform the coin selection Read more
    source§

    impl Debug for LargestFirstCoinSelection

    source§

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

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

    impl Default for LargestFirstCoinSelection

    source§

    fn default() -> LargestFirstCoinSelection

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

    impl Copy for LargestFirstCoinSelection

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T

    Perform the coin selection Read more
    source§

    impl Debug for LargestFirstCoinSelection

    source§

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

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

    impl Default for LargestFirstCoinSelection

    source§

    fn default() -> LargestFirstCoinSelection

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

    impl Copy for LargestFirstCoinSelection

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html index 1995cd9d4f..fe61de513a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html @@ -1,14 +1,14 @@ -OldestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust
    pub struct OldestFirstCoinSelection;
    Expand description

    OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next

    +OldestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust
    pub struct OldestFirstCoinSelection;
    Expand description

    OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next

    This coin selection algorithm sorts the available UTXOs by blockheight and then picks them starting from the oldest ones until the required amount is reached.

    -

    Trait Implementations§

    source§

    impl Clone for OldestFirstCoinSelection

    source§

    fn clone(&self) -> OldestFirstCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for OldestFirstCoinSelection

    Trait Implementations§

    source§

    impl Clone for OldestFirstCoinSelection

    source§

    fn clone(&self) -> OldestFirstCoinSelection

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

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

    Performs copy-assignment from source. Read more
    source§

    impl CoinSelectionAlgorithm for OldestFirstCoinSelection

    source§

    fn coin_select( &self, required_utxos: Vec<WeightedUtxo>, optional_utxos: Vec<WeightedUtxo>, fee_rate: FeeRate, target_amount: u64, drain_script: &Script -) -> Result<CoinSelectionResult, Error>

    Perform the coin selection Read more
    source§

    impl Debug for OldestFirstCoinSelection

    source§

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

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

    impl Default for OldestFirstCoinSelection

    source§

    fn default() -> OldestFirstCoinSelection

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

    impl Copy for OldestFirstCoinSelection

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T

    Perform the coin selection Read more
    source§

    impl Debug for OldestFirstCoinSelection

    source§

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

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

    impl Default for OldestFirstCoinSelection

    source§

    fn default() -> OldestFirstCoinSelection

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

    impl Copy for OldestFirstCoinSelection

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/trait.CoinSelectionAlgorithm.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/trait.CoinSelectionAlgorithm.html index a484b9a819..a5e0d82354 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/trait.CoinSelectionAlgorithm.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/trait.CoinSelectionAlgorithm.html @@ -1,4 +1,4 @@ -CoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust
    pub trait CoinSelectionAlgorithm: Debug {
    +CoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust
    pub trait CoinSelectionAlgorithm: Debug {
         // Required method
         fn coin_select(
             &self,
    @@ -12,7 +12,7 @@
     

    This trait can be implemented to make the Wallet use a customized coin selection algorithm when it creates transactions.

    For an example see this module’s documentation.

    -

    Required Methods§

    Required Methods§

    source

    fn coin_select( &self, required_utxos: Vec<WeightedUtxo>, optional_utxos: Vec<WeightedUtxo>, @@ -32,4 +32,4 @@ weight cost accumulated from added outputs and transaction’s header.
  • drain_script: the script to use in case of change
  • -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html index baf2459a42..59f38bfa20 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html @@ -1,3 +1,3 @@ -DefaultCoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust
    pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
    Expand description

    Default coin selection algorithm used by TxBuilder if not +DefaultCoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust

    pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
    Expand description

    Default coin selection algorithm used by TxBuilder if not overridden

    Aliased Type§

    struct DefaultCoinSelectionAlgorithm { /* private fields */ }
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html index 340e1feb92..6ea0755931 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.ApplyBlockError.html @@ -1,4 +1,4 @@ -ApplyBlockError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::ApplyBlockError

    source ·
    pub enum ApplyBlockError {
    +ApplyBlockError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::ApplyBlockError

    source ·
    pub enum ApplyBlockError {
         CannotConnect(CannotConnectError),
         UnexpectedConnectedToHash {
             connected_to_hash: BlockHash,
    @@ -9,7 +9,7 @@
     
    §

    UnexpectedConnectedToHash

    Occurs when the connected_to hash does not match the hash derived from block.

    Fields

    §connected_to_hash: BlockHash

    Block hash of connected_to.

    §expected_hash: BlockHash

    Expected block hash of connected_to, as derived from block.

    -

    Trait Implementations§

    source§

    impl Debug for ApplyBlockError

    source§

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

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

    impl Display for ApplyBlockError

    source§

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

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

    impl Error for ApplyBlockError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for ApplyBlockError

    source§

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

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

    impl Display for ApplyBlockError

    source§

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

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

    impl Error for ApplyBlockError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.InsertTxError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.InsertTxError.html index 8c1bb09283..d52923b9bb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.InsertTxError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.InsertTxError.html @@ -1,4 +1,4 @@ -InsertTxError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::InsertTxError

    source ·
    pub enum InsertTxError {
    +InsertTxError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::InsertTxError

    source ·
    pub enum InsertTxError {
         ConfirmationHeightCannotBeGreaterThanTip {
             tip_height: u32,
             tx_height: u32,
    @@ -8,7 +8,7 @@
     confirmation height that is greater than the internal chain tip.

    Fields

    §tip_height: u32

    The internal chain’s tip height.

    §tx_height: u32

    The introduced transaction’s confirmation height.

    -

    Trait Implementations§

    source§

    impl Debug for InsertTxError

    source§

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

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

    impl Display for InsertTxError

    source§

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

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

    impl Error for InsertTxError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for InsertTxError

    source§

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

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

    impl Display for InsertTxError

    source§

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

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

    impl Error for InsertTxError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html index d13031ba6e..cf2c8f4657 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.LoadError.html @@ -1,19 +1,15 @@ -LoadError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::LoadError

    source ·
    pub enum LoadError {
    +LoadError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::LoadError

    source ·
    pub enum LoadError {
         Descriptor(DescriptorError),
    -    Persist(Error),
    -    NotInitialized,
         MissingNetwork,
         MissingGenesis,
         MissingDescriptor(KeychainKind),
    -}
    Expand description

    The error type when loading a Wallet from persistence.

    -

    Method load may return this error.

    +}
    Expand description

    The error type when loading a Wallet from a ChangeSet.

    +

    Method load_from_changeset may return this error.

    Variants§

    §

    Descriptor(DescriptorError)

    There was a problem with the passed-in descriptor(s).

    -
    §

    Persist(Error)

    Loading data from the persistence backend failed.

    -
    §

    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.

    §

    MissingDescriptor(KeychainKind)

    Data loaded from persistence is missing descriptor.

    -

    Trait Implementations§

    source§

    impl Debug for LoadError

    source§

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

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

    impl Display for LoadError

    source§

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

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

    impl Error for LoadError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for LoadError

    source§

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

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

    impl Display for LoadError

    source§

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

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

    impl Error for LoadError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewError.html index aec6d4825e..b9c4117211 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewError.html @@ -1,13 +1,9 @@ -NewError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::NewError

    source ·
    pub enum NewError {
    -    NonEmptyDatabase,
    +NewError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::NewError

    source ·
    pub enum NewError {
         Descriptor(DescriptorError),
    -    Persist(Error),
     }
    Expand description

    The error type when constructing a fresh Wallet.

    Methods new and new_with_genesis_hash may return this error.

    -

    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 Debug for NewError

    source§

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

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

    impl Display for NewError

    source§

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

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

    impl Error for NewError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Variants§

    §

    Descriptor(DescriptorError)

    There was problem with the passed-in descriptor(s).

    +

    Trait Implementations§

    source§

    impl Debug for NewError

    source§

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

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

    impl Display for NewError

    source§

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

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

    impl Error for NewError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewOrLoadError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewOrLoadError.html index c6188fc723..66a861fda1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewOrLoadError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/enum.NewOrLoadError.html @@ -1,7 +1,5 @@ -NewOrLoadError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::NewOrLoadError

    source ·
    pub enum NewOrLoadError {
    +NewOrLoadError in bdk_wallet::wallet - Rust

    Enum bdk_wallet::wallet::NewOrLoadError

    source ·
    pub enum NewOrLoadError {
         Descriptor(DescriptorError),
    -    Persist(Error),
    -    NotInitialized,
         LoadedGenesisDoesNotMatch {
             expected: BlockHash,
             got: Option<BlockHash>,
    @@ -17,8 +15,6 @@
     }
    Expand description

    Error type for when we try load a Wallet from persistence and creating it if non-existent.

    Methods new_or_load and new_or_load_with_genesis_hash may return this error.

    Variants§

    §

    Descriptor(DescriptorError)

    There is a problem with the passed-in descriptor.

    -
    §

    Persist(Error)

    Either writing to or loading from the persistence backend failed.

    -
    §

    NotInitialized

    Wallet is not initialized, persistence backend is empty.

    §

    LoadedGenesisDoesNotMatch

    The loaded genesis hash does not match what was provided.

    Fields

    §expected: BlockHash

    The expected genesis block hash.

    §got: Option<BlockHash>

    The block hash loaded from persistence.

    @@ -28,7 +24,7 @@
    §

    LoadedDescriptorDoesNotMatch

    The loaded desccriptor does not match what was provided.

    Fields

    §got: Option<ExtendedDescriptor>

    The descriptor loaded from persistence.

    §keychain: KeychainKind

    The keychain of the descriptor not matching

    -

    Trait Implementations§

    source§

    impl Debug for NewOrLoadError

    source§

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

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

    impl Display for NewOrLoadError

    source§

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

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

    impl Error for NewOrLoadError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for NewOrLoadError

    source§

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

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

    impl Display for NewOrLoadError

    source§

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

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

    impl Error for NewOrLoadError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.BuildFeeBumpError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.BuildFeeBumpError.html index 335ef13263..0b3293811a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.BuildFeeBumpError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.BuildFeeBumpError.html @@ -1,4 +1,4 @@ -BuildFeeBumpError in bdk_wallet::wallet::error - Rust

    Enum bdk_wallet::wallet::error::BuildFeeBumpError

    source ·
    pub enum BuildFeeBumpError {
    +BuildFeeBumpError in bdk_wallet::wallet::error - Rust

    Enum bdk_wallet::wallet::error::BuildFeeBumpError

    source ·
    pub enum BuildFeeBumpError {
         UnknownUtxo(OutPoint),
         TransactionNotFound(Txid),
         TransactionConfirmed(Txid),
    @@ -10,7 +10,7 @@
     
    §

    TransactionConfirmed(Txid)

    Happens when trying to bump a transaction that is already confirmed

    §

    IrreplaceableTransaction(Txid)

    Trying to replace a tx that has a sequence >= 0xFFFFFFFE

    §

    FeeRateUnavailable

    Node doesn’t have data to estimate a fee rate

    -

    Trait Implementations§

    source§

    impl Debug for BuildFeeBumpError

    source§

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

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

    impl Display for BuildFeeBumpError

    source§

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

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

    impl Error for BuildFeeBumpError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for BuildFeeBumpError

    source§

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

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

    impl Display for BuildFeeBumpError

    source§

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

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

    impl Error for BuildFeeBumpError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html index bc2743acf1..5dfa66a397 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.CreateTxError.html @@ -1,6 +1,5 @@ -CreateTxError in bdk_wallet::wallet::error - Rust

    Enum bdk_wallet::wallet::error::CreateTxError

    source ·
    pub enum CreateTxError {
    -
    Show 20 variants Descriptor(DescriptorError), - Persist(Error), +CreateTxError in bdk_wallet::wallet::error - Rust

    Enum bdk_wallet::wallet::error::CreateTxError

    source ·
    pub enum CreateTxError {
    +
    Show 19 variants Descriptor(DescriptorError), Policy(PolicyError), SpendingPolicyRequired(KeychainKind), Version0, @@ -31,7 +30,6 @@ MiniscriptPsbt(MiniscriptPsbtError),
    }
    Expand description

    Error returned from TxBuilder::finish

    Variants§

    §

    Descriptor(DescriptorError)

    There was a problem with the descriptors passed in

    -
    §

    Persist(Error)

    We were unable to load wallet data from or write wallet data to the persistence backend

    §

    Policy(PolicyError)

    There was a problem while extracting and manipulating policies

    §

    SpendingPolicyRequired(KeychainKind)

    Spending policy is not compatible with this KeychainKind

    §

    Version0

    Requested invalid transaction version ‘0’

    @@ -58,7 +56,7 @@ explicit origin provided

    §

    UnknownUtxo

    Happens when trying to spend an UTXO that is not in the internal database

    §

    MissingNonWitnessUtxo(OutPoint)

    Missing non_witness_utxo on foreign utxo for given OutPoint

    §

    MiniscriptPsbt(MiniscriptPsbtError)

    Miniscript PSBT error

    -

    Trait Implementations§

    source§

    impl Debug for CreateTxError

    source§

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

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

    impl Display for CreateTxError

    source§

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

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

    impl Error for CreateTxError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<MiniscriptPsbtError> for CreateTxError

    source§

    fn from(err: MiniscriptPsbtError) -> Self

    Converts to this type from the input type.
    source§

    impl From<PolicyError> for CreateTxError

    source§

    fn from(err: PolicyError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for CreateTxError

    source§

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

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

    impl Display for CreateTxError

    source§

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

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

    impl Error for CreateTxError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for CreateTxError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<MiniscriptPsbtError> for CreateTxError

    source§

    fn from(err: MiniscriptPsbtError) -> Self

    Converts to this type from the input type.
    source§

    impl From<PolicyError> for CreateTxError

    source§

    fn from(err: PolicyError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html index 187f7af0bb..9a8ce524ef 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html @@ -6,7 +6,7 @@

    Variants§

    §

    Conversion(ConversionError)

    Descriptor key conversion error

    §

    UtxoUpdate(UtxoUpdateError)

    Return error type for PsbtExt::update_input_with_descriptor

    §

    OutputUpdate(OutputUpdateError)

    Return error type for PsbtExt::update_output_with_descriptor

    -

    Trait Implementations§

    source§

    impl Clone for MiniscriptPsbtError

    source§

    fn clone(&self) -> MiniscriptPsbtError

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MiniscriptPsbtError

    source§

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

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

    impl Display for MiniscriptPsbtError

    source§

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

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

    impl Error for MiniscriptPsbtError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<MiniscriptPsbtError> for CreateTxError

    source§

    fn from(err: MiniscriptPsbtError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for MiniscriptPsbtError

    source§

    fn clone(&self) -> MiniscriptPsbtError

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MiniscriptPsbtError

    source§

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

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

    impl Display for MiniscriptPsbtError

    source§

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

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

    impl Error for MiniscriptPsbtError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<MiniscriptPsbtError> for CreateTxError

    source§

    fn from(err: MiniscriptPsbtError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/index.html index a6c8a1c397..ef4e475e17 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/error/index.html @@ -1,2 +1,2 @@ -bdk_wallet::wallet::error - Rust

    Module bdk_wallet::wallet::error

    source ·
    Expand description

    Errors that can be thrown by the Wallet

    +bdk_wallet::wallet::error - Rust

    Module bdk_wallet::wallet::error

    source ·
    Expand description

    Errors that can be thrown by the Wallet

    Enums§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html index 13bbe6f794..0083b3d4de 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/export/index.html @@ -8,13 +8,13 @@ }"#; let import = FullyNodedExport::from_str(import)?; -let wallet = Wallet::new_no_persist( +let wallet = Wallet::new( &import.descriptor(), &import.change_descriptor().expect("change descriptor"), Network::Testnet, )?;

    §Export a Wallet

    -
    let wallet = Wallet::new_no_persist(
    +
    let wallet = Wallet::new(
         "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
         "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)",
         Network::Testnet,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html
    index e2e00ba488..c2290618b9 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/fn.wallet_name_from_descriptor.html
    @@ -1,4 +1,4 @@
    -wallet_name_from_descriptor in bdk_wallet::wallet - Rust

    Function bdk_wallet::wallet::wallet_name_from_descriptor

    source ·
    pub fn wallet_name_from_descriptor<T>(
    +wallet_name_from_descriptor in bdk_wallet::wallet - Rust

    Function bdk_wallet::wallet::wallet_name_from_descriptor

    source ·
    pub fn wallet_name_from_descriptor<T>(
         descriptor: T,
         change_descriptor: Option<T>,
         network: Network,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
    index 3207507e47..cf6de549f6 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/index.html
    @@ -1,6 +1,6 @@
    -bdk_wallet::wallet - Rust

    Module bdk_wallet::wallet

    source ·
    Expand description

    Wallet

    +bdk_wallet::wallet - Rust

    Module bdk_wallet::wallet

    source ·
    Expand description

    Wallet

    This module defines the Wallet.

    Modules§

    Structs§

    • A derived address and the index it was found at. -For convenience this automatically derefs to Address
    • Balance, differentiated into various categories.
    • An update to Wallet.
    • A Bitcoin wallet

    Enums§

    Traits§

    • Trait to check if a value is below the dust limit. +For convenience this automatically derefs to Address
    • Balance, differentiated into various categories.
    • An update to Wallet.
    • A Bitcoin wallet

    Enums§

    Traits§

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

    Functions§

    Type Aliases§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerError.html index d176214064..0247a1a198 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerError.html @@ -37,7 +37,7 @@ explicitly allowed them

    §

    External(String)

    To be used only by external libraries implementing InputSigner or TransactionSigner, so that they can return their own custom errors, without having to modify SignerError in BDK.

    -

    Trait Implementations§

    source§

    impl Debug for SignerError

    source§

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

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

    impl Display for SignerError

    source§

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

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

    impl Error for SignerError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<InputsIndexError> for SignerError

    source§

    fn from(v: InputsIndexError) -> Self

    Converts to this type from the input type.
    source§

    impl From<P2wpkhError> for SignerError

    source§

    fn from(e: P2wpkhError) -> Self

    Converts to this type from the input type.
    source§

    impl From<TaprootError> for SignerError

    source§

    fn from(e: TaprootError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for SignerError

    source§

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

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

    impl Display for SignerError

    source§

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

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

    impl Error for SignerError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<InputsIndexError> for SignerError

    source§

    fn from(v: InputsIndexError) -> Self

    Converts to this type from the input type.
    source§

    impl From<P2wpkhError> for SignerError

    source§

    fn from(e: P2wpkhError) -> Self

    Converts to this type from the input type.
    source§

    impl From<TaprootError> for SignerError

    source§

    fn from(e: TaprootError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html index 7a33438c52..32e0bde115 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/enum.SignerId.html @@ -7,7 +7,7 @@ multiple of them

    Variants§

    §

    PkHash(Hash)

    Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key

    §

    Fingerprint(Fingerprint)

    The fingerprint of a BIP32 extended key

    §

    Dummy(u64)

    Dummy identifier

    -

    Trait Implementations§

    source§

    impl Clone for SignerId

    source§

    fn clone(&self) -> SignerId

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SignerId

    source§

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

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

    impl From<Fingerprint> for SignerId

    source§

    fn from(fing: Fingerprint) -> SignerId

    Converts to this type from the input type.
    source§

    impl From<Hash> for SignerId

    source§

    fn from(hash: Hash) -> SignerId

    Converts to this type from the input type.
    source§

    impl Hash for SignerId

    source§

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

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

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

    Trait Implementations§

    source§

    impl Clone for SignerId

    source§

    fn clone(&self) -> SignerId

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SignerId

    source§

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

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

    impl From<Fingerprint> for SignerId

    source§

    fn from(fing: Fingerprint) -> SignerId

    Converts to this type from the input type.
    source§

    impl From<Hash> for SignerId

    source§

    fn from(hash: Hash) -> SignerId

    Converts to this type from the input type.
    source§

    impl Hash for SignerId

    source§

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

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

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

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

    impl Ord for SignerId

    source§

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

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

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

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

    fn min(self, other: Self) -> Self
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/index.html index 8896c0a41a..01325e8bfe 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/index.html @@ -37,7 +37,7 @@ through the let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/0/*)"; let change_descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/1/*)"; -let mut wallet = Wallet::new_no_persist(descriptor, change_descriptor, Network::Testnet)?; +let mut wallet = Wallet::new(descriptor, change_descriptor, Network::Testnet)?; wallet.add_signer( KeychainKind::External, SignerOrdering(200), diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html index 5138374607..5266bcce5f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/signer/struct.SignerWrapper.html @@ -1,24 +1,24 @@ SignerWrapper in bdk_wallet::wallet::signer - Rust

    Struct bdk_wallet::wallet::signer::SignerWrapper

    source ·
    pub struct SignerWrapper<S: Sized + Debug + Clone> { /* private fields */ }
    Expand description

    Wrapper to pair a signer with its context

    Implementations§

    source§

    impl<S: Sized + Debug + Clone> SignerWrapper<S>

    source

    pub fn new(signer: S, ctx: SignerContext) -> Self

    Create a wrapped signer from a signer and a context

    -

    Trait Implementations§

    source§

    impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>

    source§

    fn clone(&self) -> SignerWrapper<S>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<S: Debug + Sized + Debug + Clone> Debug for SignerWrapper<S>

    source§

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

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

    impl<S: Sized + Debug + Clone> Deref for SignerWrapper<S>

    §

    type Target = S

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl InputSigner for SignerWrapper<DescriptorMultiXKey<Xpriv>>

    Trait Implementations§

    source§

    impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>

    source§

    fn clone(&self) -> SignerWrapper<S>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<S: Debug + Sized + Debug + Clone> Debug for SignerWrapper<S>

    source§

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

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

    impl<S: Sized + Debug + Clone> Deref for SignerWrapper<S>

    §

    type Target = S

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl InputSigner for SignerWrapper<DescriptorMultiXKey<Xpriv>>

    source§

    fn sign_input( &self, psbt: &mut Psbt, input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl InputSigner for SignerWrapper<DescriptorXKey<Xpriv>>

    source§

    fn sign_input( +) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl InputSigner for SignerWrapper<DescriptorXKey<Xpriv>>

    source§

    fn sign_input( &self, psbt: &mut Psbt, input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl InputSigner for SignerWrapper<PrivateKey>

    source§

    fn sign_input( +) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl InputSigner for SignerWrapper<PrivateKey>

    source§

    fn sign_input( &self, psbt: &mut Psbt, input_index: usize, sign_options: &SignOptions, secp: &Secp256k1<All> -) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl SignerCommon for SignerWrapper<DescriptorMultiXKey<Xpriv>>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more
    source§

    impl SignerCommon for SignerWrapper<DescriptorXKey<Xpriv>>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more
    source§

    impl SignerCommon for SignerWrapper<PrivateKey>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more

    Auto Trait Implementations§

    §

    impl<S> Freeze for SignerWrapper<S>
    where +) -> Result<(), SignerError>

    Sign a single psbt input
    source§

    impl SignerCommon for SignerWrapper<DescriptorMultiXKey<Xpriv>>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more
    source§

    impl SignerCommon for SignerWrapper<DescriptorXKey<Xpriv>>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more
    source§

    impl SignerCommon for SignerWrapper<PrivateKey>

    source§

    fn id(&self, secp: &Secp256k1<All>) -> SignerId

    Return the SignerId for this signer Read more
    source§

    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey>

    Return the secret key for the signer Read more

    Auto Trait Implementations§

    §

    impl<S> Freeze for SignerWrapper<S>
    where S: Freeze,

    §

    impl<S> RefUnwindSafe for SignerWrapper<S>
    where S: RefUnwindSafe,

    §

    impl<S> Send for SignerWrapper<S>
    where S: Send,

    §

    impl<S> Sync for SignerWrapper<S>
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html index 429e647d59..f555bce878 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.AddressInfo.html @@ -1,4 +1,4 @@ -AddressInfo in bdk_wallet::wallet - Rust

    Struct bdk_wallet::wallet::AddressInfo

    source ·
    pub struct AddressInfo {
    +AddressInfo in bdk_wallet::wallet - Rust

    Struct bdk_wallet::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

    source§

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

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

    impl Deref for AddressInfo

    §

    type Target = Address

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl Display for AddressInfo

    source§

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

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

    impl PartialEq for AddressInfo

    source§

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

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

    Trait Implementations§

    source§

    impl Debug for AddressInfo

    source§

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

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

    impl Deref for AddressInfo

    §

    type Target = Address

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl Display for AddressInfo

    source§

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

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

    impl PartialEq for AddressInfo

    source§

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

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

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

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

    impl Eq for AddressInfo

    source§

    impl StructuralPartialEq for AddressInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl Eq for AddressInfo

    source§

    impl StructuralPartialEq for AddressInfo

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html index a40fd518fb..ddf4e7c787 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Update.html @@ -1,4 +1,4 @@ -Update in bdk_wallet::wallet - Rust

    Struct bdk_wallet::wallet::Update

    source ·
    pub struct Update {
    +Update in bdk_wallet::wallet - Rust

    Struct bdk_wallet::wallet::Update

    source ·
    pub struct Update {
         pub last_active_indices: BTreeMap<KeychainKind, u32>,
         pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
         pub chain: Option<CheckPoint>,
    @@ -8,7 +8,7 @@
     KeychainTxOutIndex.

    §graph: TxGraph<ConfirmationTimeHeightAnchor>

    Update for the wallet’s internal TxGraph.

    §chain: Option<CheckPoint>

    Update for the wallet’s internal LocalChain.

    -

    Trait Implementations§

    source§

    impl Clone for Update

    source§

    fn clone(&self) -> Update

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Update

    source§

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

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

    impl Default for Update

    source§

    fn default() -> Update

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

    impl From<FullScanResult<KeychainKind>> for Update

    source§

    fn from(value: FullScanResult<KeychainKind>) -> Self

    Converts to this type from the input type.
    source§

    impl From<SyncResult> for Update

    source§

    fn from(value: SyncResult) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for Update

    source§

    fn clone(&self) -> Update

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Update

    source§

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

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

    impl Default for Update

    source§

    fn default() -> Update

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

    impl From<FullScanResult<KeychainKind>> for Update

    source§

    fn from(value: FullScanResult<KeychainKind>) -> Self

    Converts to this type from the input type.
    source§

    impl From<SyncResult> for Update

    source§

    fn from(value: SyncResult) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html index d652145427..ad26bac418 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/struct.Wallet.html @@ -1,39 +1,27 @@ -Wallet in bdk_wallet::wallet - Rust

    Struct bdk_wallet::wallet::Wallet

    source ·
    pub struct Wallet { /* private fields */ }
    Expand description

    A Bitcoin wallet

    +Wallet in bdk_wallet::wallet - Rust

    Struct bdk_wallet::wallet::Wallet

    source ·
    pub struct Wallet { /* private fields */ }
    Expand description

    A Bitcoin wallet

    The Wallet acts as a way of coherently interfacing with output descriptors and related transactions. Its main components are:

    1. output descriptors from which it can derive addresses.
    2. signers that can contribute signatures to addresses instantiated from the descriptors.
    -

    Implementations§

    source§

    impl Wallet

    source

    pub fn new_no_persist<E: IntoWalletDescriptor>( +

    The user is responsible for loading and writing wallet changes using an implementation of +PersistBackend. See individual functions and example for instructions on when Wallet +state needs to be persisted.

    +

    Implementations§

    source§

    impl Wallet

    source

    pub fn new<E: IntoWalletDescriptor>( descriptor: E, change_descriptor: E, network: Network -) -> Result<Self, DescriptorError>

    Creates a wallet that does not persist data.

    -
    source

    pub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>( - descriptor: E, - change_descriptor: 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

    source

    pub fn new<E: IntoWalletDescriptor>( - descriptor: E, - change_descriptor: E, - db: impl PersistBackend<ChangeSet> + Send + Sync + 'static, - network: Network ) -> Result<Self, NewError>

    Initialize an empty Wallet.

    -
    source

    pub fn new_with_genesis_hash<E: IntoWalletDescriptor>( +

    source

    pub fn new_with_genesis_hash<E: IntoWalletDescriptor>( descriptor: E, change_descriptor: 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.

    -
    source

    pub fn load( - db: impl PersistBackend<ChangeSet> + Send + Sync + 'static -) -> Result<Self, LoadError>

    Load Wallet from the given persistence backend.

    +
    source

    pub fn load_from_changeset(changeset: ChangeSet) -> Result<Self, LoadError>

    Alternatively, you can call Wallet::new_or_load, which will add the private keys of the passed-in descriptors to the Wallet.

    -
    source

    pub fn new_or_load<E: IntoWalletDescriptor>( +

    source

    pub fn new_or_load<E: IntoWalletDescriptor>( descriptor: E, change_descriptor: E, - db: impl PersistBackend<ChangeSet> + Send + Sync + 'static, + changeset: Option<ChangeSet>, network: Network -) -> Result<Self, NewOrLoadError>

    Either loads Wallet from persistence, or initializes it if it does not exist.

    -

    This method will fail if the loaded Wallet has different parameters to those provided.

    -
    source

    pub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>( +) -> Result<Self, NewOrLoadError>

    Either loads Wallet from the given ChangeSet or initializes it if one does not exist.

    +

    This method will fail if the loaded ChangeSet has different parameters to those provided.

    + +
    let mut db = Store::new(conn).expect("must create db");
    +let changeset = db.load_changes()?;
    +
    +let external_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)";
    +let internal_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)";
    +
    +let mut wallet = Wallet::new_or_load(external_descriptor, internal_descriptor, changeset, Testnet)?;
    +
    source

    pub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>( descriptor: E, change_descriptor: E, - db: impl PersistBackend<ChangeSet> + Send + Sync + 'static, + changeset: Option<ChangeSet>, network: Network, genesis_hash: BlockHash -) -> Result<Self, NewOrLoadError>

    Either loads Wallet from persistence, or initializes it if it does not exist, using the +) -> Result<Self, NewOrLoadError>

    Either loads Wallet from a ChangeSet or initializes it if one does not exist, using the provided descriptor, change descriptor, network, and custom genesis hash.

    -

    This method will fail if the loaded Wallet has different parameters to those provided. +

    This method will fail if the loaded ChangeSet 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.

    -
    source

    pub fn network(&self) -> Network

    Get the Bitcoin network the wallet is using.

    -
    source

    pub fn keychains( +

    source

    pub fn network(&self) -> Network

    Get the Bitcoin network the wallet is using.

    +
    source

    pub fn keychains( &self ) -> impl Iterator<Item = (&KeychainKind, &ExtendedDescriptor)>

    Iterator over all keychains in this wallet

    -
    source

    pub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo

    Peek an address of the given keychain at index without revealing it.

    +
    source

    pub fn peek_address(&self, keychain: KeychainKind, index: u32) -> AddressInfo

    Peek an address of the given keychain at index without revealing it.

    For non-wildcard descriptors this returns the same address at every provided index.

    §Panics

    This panics when the caller requests for an address of derivation index greater than the BIP32 max index.

    -
    source

    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 +

    source

    pub fn reveal_next_address(&mut self, keychain: KeychainKind) -> AddressInfo

    Attempt to reveal the next address of the given keychain.

    +

    This will increment the keychain’s 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.

    -
    source

    pub fn reveal_addresses_to( +then the last revealed address will be returned.

    +

    WARNING: To avoid address reuse you must persist the changes resulting from one or more +calls to this method before closing the wallet. For example:

    + +
    let next_address = wallet.reveal_next_address(KeychainKind::External);
    +wallet.commit_to(&mut db)?;
    +
    +// Now it's safe to show the user their next address!
    +println!("Next address: {}", next_address.address);
    +

    source

    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 +) -> 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.

    -
    source

    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 +

    WARNING: To avoid address reuse you must persist the changes resulting from one or more +calls to this method before closing the wallet. See Wallet::reveal_next_address.

    +
    source

    pub fn next_unused_address(&mut self, keychain: KeychainKind) -> 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.

    -
    source

    pub fn mark_used(&mut self, keychain: KeychainKind, index: u32) -> bool

    Marks an address used of the given keychain at index.

    +

    WARNING: To avoid address reuse you must persist the changes resulting from one or more +calls to this method before closing the wallet. See Wallet::reveal_next_address.

    +
    source

    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.

    -
    source

    pub fn unmark_used(&mut self, keychain: KeychainKind, index: u32) -> bool

    Undoes the effect of mark_used and returns whether the index was inserted +

    source

    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.

    -
    source

    pub fn list_unused_addresses( +

    source

    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.

    -
    source

    pub fn is_mine(&self, script: &Script) -> bool

    Return whether or not a script is part of this wallet (either internal or external)

    -
    source

    pub fn derivation_of_spk(&self, spk: &Script) -> Option<(KeychainKind, u32)>

    Finds how the wallet derived the script pubkey spk.

    +
    source

    pub fn is_mine(&self, script: &Script) -> bool

    Return whether or not a script is part of this wallet (either internal or external)

    +
    source

    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.

    -
    source

    pub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_

    Return the list of unspent outputs of this wallet

    -
    source

    pub fn list_output(&self) -> impl Iterator<Item = LocalOutput> + '_

    List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).

    +
    source

    pub fn list_unspent(&self) -> impl Iterator<Item = LocalOutput> + '_

    Return the list of unspent outputs of this wallet

    +
    source

    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.

    -
    source

    pub fn checkpoints(&self) -> CheckPointIter

    Get all the checkpoints the wallet is currently storing indexed by height.

    -
    source

    pub fn latest_checkpoint(&self) -> CheckPoint

    Returns the latest checkpoint.

    -
    source

    pub fn all_unbounded_spk_iters( +

    source

    pub fn checkpoints(&self) -> CheckPointIter

    Get all the checkpoints the wallet is currently storing indexed by height.

    +
    source

    pub fn latest_checkpoint(&self) -> CheckPoint

    Returns the latest checkpoint.

    +
    source

    pub fn all_unbounded_spk_iters( &self ) -> BTreeMap<KeychainKind, impl Iterator<Item = Indexed<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 @@ -143,21 +139,23 @@ from seed words). You pass the BTreeMap of iterators to a blockchai 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).

    -
    source

    pub fn unbounded_spk_iter( +

    source

    pub fn unbounded_spk_iter( &self, keychain: KeychainKind ) -> impl Iterator<Item = Indexed<ScriptBuf>> + Clone

    Get an unbounded script pubkey iterator for the given keychain.

    See all_unbounded_spk_iters for more documentation

    -
    source

    pub fn get_utxo(&self, op: OutPoint) -> Option<LocalOutput>

    Returns the utxo owned by this wallet corresponding to outpoint if it exists in the +

    source

    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.

    -
    source

    pub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut)

    Inserts a [TxOut] at [OutPoint] into the wallet’s transaction graph.

    +
    source

    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 +

    WARNINGS: This should only be used to add TxOuts that the wallet does not own. Only insert TxOuts that you trust the values for!

    -
    source

    pub fn calculate_fee( +

    You must persist the changes resulting from one or more calls to this method if you need +the inserted TxOut data to be reloaded after closing the wallet. +See Wallet::reveal_next_address.

    +

    source

    pub fn calculate_fee( &self, tx: &Transaction ) -> Result<Amount, CalculateFeeError>

    Calculates the fee of a given transaction. Returns [Amount::ZERO] if tx is a coinbase transaction.

    @@ -170,7 +168,7 @@ manually insert the TxOut(s) into the tx graph using the
    let tx = &psbt.clone().extract_tx().expect("tx");
     let fee = wallet.calculate_fee(tx).expect("fee");
    -
    source

    pub fn calculate_fee_rate( +

    source

    pub fn calculate_fee_rate( &self, tx: &Transaction ) -> Result<FeeRate, CalculateFeeError>

    Calculate the [FeeRate] for a given transaction.

    @@ -183,7 +181,7 @@ manually insert the TxOut(s) into the tx graph using the
    let tx = &psbt.clone().extract_tx().expect("tx");
     let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");
    -
    source

    pub fn sent_and_received(&self, tx: &Transaction) -> (Amount, Amount)

    Compute the tx’s sent and received [Amount]s.

    +
    source

    pub fn sent_and_received(&self, tx: &Transaction) -> (Amount, Amount)

    Compute the tx’s sent and received [Amount]s.

    This method returns a tuple (sent, received). Sent is the sum of the txin amounts that spend from previous txouts tracked by this wallet. Received is the summation of this tx’s outputs that send to script pubkeys tracked by this wallet.

    @@ -193,7 +191,7 @@ 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);
    -
    source

    pub fn get_tx( +

    source

    pub fn get_tx( &self, txid: Txid ) -> Option<CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>>

    Get a single transaction from the wallet as a CanonicalTx (if the transaction exists).

    @@ -234,51 +232,55 @@ the transaction was last seen in the mempool is provided. last_seen, ), }
    -
    source

    pub fn insert_checkpoint( +

    source

    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.

    +) -> Result<bool, AlterCheckPointError>

    Add a new checkpoint to the wallet’s internal view of the chain.

    Returns whether anything changed with the insertion (e.g. false if checkpoint was already there).

    -
    source

    pub fn insert_tx( +

    WARNING: You must persist the changes resulting from one or more calls to this method +if you need the inserted checkpoint data to be reloaded after closing the wallet. +See Wallet::reveal_next_address.

    +

    source

    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.

    +) -> Result<bool, InsertTxError>

    Add a transaction to the wallet’s internal view of the chain. This stages the change, +you must persist it later.

    Returns whether anything changed with the transaction insertion (e.g. false if the transaction was already inserted at the same position).

    A tx can be rejected if position has a height greater than the latest_checkpoint. Therefore you should use insert_checkpoint to insert new checkpoints before manually inserting new transactions.

    -

    WARNING: If position is confirmed, we anchor the tx to a the lowest checkpoint that +

    WARNING: If position is confirmed, we anchor the tx to 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.

    -
    source

    pub fn transactions( +

    You must persist the changes resulting from one or more calls to this method if you need +the inserted tx to be reloaded after closing the wallet.

    +

    source

    pub fn transactions( &self ) -> impl Iterator<Item = CanonicalTx<'_, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + '_

    Iterate over the transactions in the wallet.

    -
    source

    pub fn balance(&self) -> Balance

    Return the balance, separated into available, trusted-pending, untrusted-pending and immature +

    source

    pub fn balance(&self) -> Balance

    Return the balance, separated into available, trusted-pending, untrusted-pending and immature values.

    -
    source

    pub fn add_signer( +

    source

    pub fn add_signer( &mut self, keychain: KeychainKind, ordering: SignerOrdering, signer: Arc<dyn TransactionSigner> )

    Add an external signer

    See the signer module for an example.

    -
    source

    pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>

    Get the signers

    +
    source

    pub fn get_signers(&self, keychain: KeychainKind) -> Arc<SignersContainer>

    Get the signers

    §Example
    let descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/0/*)";
     let change_descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/1/*)";
    -let wallet = Wallet::new_no_persist(descriptor, change_descriptor, Network::Testnet)?;
    +let wallet = Wallet::new(descriptor, change_descriptor, Network::Testnet)?;
     for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
         // secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
         println!("secret_key: {}", secret_key);
     }
     
     Ok::<(), Box<dyn std::error::Error>>(())
    -
    source

    pub fn build_tx(&mut self) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm>

    Start building a transaction.

    +
    source

    pub fn build_tx(&mut self) -> TxBuilder<'_, DefaultCoinSelectionAlgorithm>

    Start building a transaction.

    This returns a blank TxBuilder from which you can specify the parameters for the transaction.

    §Example
    let psbt = {
    @@ -289,7 +291,7 @@ values.

    }; // sign and broadcast ...
    -
    source

    pub fn build_fee_bump( +

    source

    pub fn build_fee_bump( &mut self, txid: Txid ) -> Result<TxBuilder<'_, DefaultCoinSelectionAlgorithm>, BuildFeeBumpError>

    Bump the fee of a transaction previously created with this wallet.

    @@ -317,7 +319,7 @@ pre-populated with the inputs and outputs of the original transaction.

    let _ = wallet.sign(&mut psbt, SignOptions::default())?; let fee_bumped_tx = psbt.extract_tx(); // broadcast fee_bumped_tx to replace original
    -
    source

    pub fn sign( +

    source

    pub fn sign( &self, psbt: &mut Psbt, sign_options: SignOptions @@ -335,14 +337,14 @@ in this library will.

    }; let finalized = wallet.sign(&mut psbt, SignOptions::default())?; assert!(finalized, "we should have signed all the inputs"); -

    source

    pub fn policies( +

    source

    pub fn policies( &self, keychain: KeychainKind ) -> Result<Option<Policy>, DescriptorError>

    Return the spending policies for the wallet’s descriptor

    -
    source

    pub fn public_descriptor(&self, keychain: KeychainKind) -> &ExtendedDescriptor

    Return the “public” version of the wallet’s descriptor, meaning a new descriptor that has +

    source

    pub fn public_descriptor(&self, keychain: KeychainKind) -> &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

    -
    source

    pub fn finalize_psbt( +

    source

    pub fn finalize_psbt( &self, psbt: &mut Psbt, sign_options: SignOptions @@ -352,38 +354,45 @@ validation and construct the respective scriptSig or scriptWi for further information.

    Returns true if the PSBT could be finalized, and false otherwise.

    The SignOptions can be used to tweak the behavior of the finalizer.

    -

    source

    pub fn secp_ctx(&self) -> &Secp256k1<All>

    Return the secp256k1 context used for all signing operations

    -
    source

    pub fn get_descriptor_for_keychain( +

    source

    pub fn secp_ctx(&self) -> &Secp256k1<All>

    Return the secp256k1 context used for all signing operations

    +
    source

    pub fn get_descriptor_for_keychain( &self, keychain: KeychainKind ) -> &ExtendedDescriptor

    Returns the descriptor used to create addresses for a particular keychain.

    -
    source

    pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>

    The derivation index of this wallet. It will return None if it has not derived any addresses. +

    source

    pub fn derivation_index(&self, keychain: KeychainKind) -> Option<u32>

    The derivation index of this wallet. It will return None if it has not derived any addresses. Otherwise, it will return the index of the highest address it has derived.

    -
    source

    pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32

    The index of the next address that you would get if you were to ask the wallet for a new address

    -
    source

    pub fn cancel_tx(&mut self, tx: &Transaction)

    Informs the wallet that you no longer intend to broadcast a tx that was built from it.

    +
    source

    pub fn next_derivation_index(&self, keychain: KeychainKind) -> u32

    The index of the next address that you would get if you were to ask the wallet for a new address

    +
    source

    pub fn cancel_tx(&mut self, tx: &Transaction)

    Informs the wallet that you no longer intend to broadcast a tx that was built from it.

    This frees up the change address used when creating the tx for use in future transactions.

    -
    source

    pub fn get_psbt_input( +

    source

    pub fn get_psbt_input( &self, utxo: LocalOutput, sighash_type: Option<PsbtSighashType>, only_witness_utxo: bool ) -> Result<Input, CreateTxError>

    get the corresponding PSBT Input for a LocalUtxo

    -
    source

    pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String

    Return the checksum of the public descriptor associated to keychain

    +
    source

    pub fn descriptor_checksum(&self, keychain: KeychainKind) -> String

    Return the checksum of the public descriptor associated to keychain

    Internally calls Self::get_descriptor_for_keychain to fetch the right descriptor

    -
    source

    pub fn apply_update( +

    source

    pub fn apply_update( &mut self, update: impl Into<Update> -) -> Result<(), CannotConnectError>

    Applies an update to the wallet and stages the changes (but does not commit them).

    +) -> Result<(), CannotConnectError>

    Applies an update to the wallet and stages the changes (but does not persist them).

    Usually you create an update by interacting with some blockchain data source and inserting transactions related to your wallet into it.

    -
    source

    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.

    -
    source

    pub fn staged(&self) -> &ChangeSet

    Returns the changes that will be committed with the next call to commit.

    -
    source

    pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

    Get a reference to the inner TxGraph.

    -
    source

    pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>

    Get a reference to the inner KeychainTxOutIndex.

    -
    source

    pub fn local_chain(&self) -> &LocalChain

    Get a reference to the inner LocalChain.

    -
    source

    pub fn apply_block( +

    After applying updates you should persist the staged wallet changes. For an example of how +to persist staged wallet changes see Wallet::reveal_next_address. `

    +

    source

    pub fn commit_to<B>( + &mut self, + persist_backend: &mut B +) -> Result<bool, B::WriteError>

    Commits all currently staged changes to the persist_backend.

    +

    This returns whether anything was persisted.

    +
    §Error
    +

    Returns a backend-defined error if this fails.

    +
    source

    pub fn staged(&self) -> &ChangeSet

    Get the staged ChangeSet that is yet to be committed.

    +
    source

    pub fn tx_graph(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

    Get a reference to the inner TxGraph.

    +
    source

    pub fn spk_index(&self) -> &KeychainTxOutIndex<KeychainKind>

    Get a reference to the inner KeychainTxOutIndex.

    +
    source

    pub fn local_chain(&self) -> &LocalChain

    Get a reference to the inner LocalChain.

    +
    source

    pub fn apply_block( &mut self, block: &Block, height: u32 @@ -391,7 +400,7 @@ this fails.

    prev_blockhash of the block’s header.

    This is a convenience method that is equivalent to calling apply_block_connected_to with prev_blockhash and height-1 as the connected_to parameter.

    -

    source

    pub fn apply_block_connected_to( +

    source

    pub fn apply_block_connected_to( &mut self, block: &Block, height: u32, @@ -401,7 +410,10 @@ 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.

    -

    source

    pub fn apply_unconfirmed_txs<'t>( +

    WARNING: You must persist the changes resulting from one or more calls to this method +if you need the inserted block data to be reloaded after closing the wallet. +See Wallet::reveal_next_address.

    +

    source

    pub fn apply_unconfirmed_txs<'t>( &mut self, unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)> )

    Apply relevant unconfirmed transactions to the wallet.

    @@ -410,18 +422,21 @@ internal
    source§

    impl Wallet

    Methods to construct sync/full-scan requests for spk-based chain sources.

    -
    source

    pub fn start_sync_with_revealed_spks(&self) -> SyncRequest

    Create a partial SyncRequest for this wallet for all revealed spks.

    +

    WARNING: You must persist the changes resulting from one or more calls to this method +if you need the applied unconfirmed transactions to be reloaded after closing the wallet. +See Wallet::reveal_next_address.

    +
    source§

    impl Wallet

    Methods to construct sync/full-scan requests for spk-based chain sources.

    +
    source

    pub fn start_sync_with_revealed_spks(&self) -> SyncRequest

    Create a partial SyncRequest for this wallet for all revealed spks.

    This is the first step when performing a spk-based wallet partial sync, the returned SyncRequest collects all revealed script pubkeys from the wallet keychain needed to start a blockchain sync with a spk based blockchain client.

    -
    source

    pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>

    Create a `FullScanRequest for this wallet.

    +
    source

    pub fn start_full_scan(&self) -> FullScanRequest<KeychainKind>

    Create a `FullScanRequest for this wallet.

    This is the first step when performing a spk-based wallet full scan, the returned `FullScanRequest collects iterators for the wallet’s keychain script pub keys needed to start a blockchain full scan with a spk based blockchain client.

    This operation is generally only used when importing or restoring a previously used wallet in which the list of used scripts is not known.

    -

    Trait Implementations§

    source§

    impl AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet

    source§

    fn as_ref(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

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

    impl Debug for Wallet

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet

    source§

    fn as_ref(&self) -> &TxGraph<ConfirmationTimeHeightAnchor>

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

    impl Debug for Wallet

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html index 47cf2758d5..f9937bf80d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html @@ -11,7 +11,7 @@
    §foreign_utxo: OutPoint

    Foreign UTXO outpoint

    §

    InvalidOutpoint(OutPoint)

    Requested outpoint doesn’t exist in the tx (vout greater than available outputs)

    §

    MissingUtxo

    Foreign utxo missing witness_utxo or non_witness_utxo

    -

    Trait Implementations§

    source§

    impl Debug for AddForeignUtxoError

    source§

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

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

    impl Display for AddForeignUtxoError

    source§

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

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

    impl Error for AddForeignUtxoError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for AddForeignUtxoError

    source§

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

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

    impl Display for AddForeignUtxoError

    source§

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

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

    impl Error for AddForeignUtxoError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html index 2c6751074c..73e4d18ca2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html @@ -2,7 +2,7 @@ UnknownUtxo(OutPoint), }
    Expand description

    Error returned from TxBuilder::add_utxo and TxBuilder::add_utxos

    Variants§

    §

    UnknownUtxo(OutPoint)

    Happens when trying to spend an UTXO that is not in the internal database

    -

    Trait Implementations§

    source§

    impl Debug for AddUtxoError

    source§

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

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

    impl Display for AddUtxoError

    source§

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

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

    impl Error for AddUtxoError

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for AddUtxoError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for AddUtxoError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for AddUtxoError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/struct.TxBuilder.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/struct.TxBuilder.html index 7185fd8640..a7ea453f89 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/struct.TxBuilder.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/tx_builder/struct.TxBuilder.html @@ -1,4 +1,4 @@ -TxBuilder in bdk_wallet::wallet::tx_builder - Rust

    Struct bdk_wallet::wallet::tx_builder::TxBuilder

    source ·
    pub struct TxBuilder<'a, Cs> { /* private fields */ }
    Expand description

    A transaction builder

    +TxBuilder in bdk_wallet::wallet::tx_builder - Rust

    Struct bdk_wallet::wallet::tx_builder::TxBuilder

    source ·
    pub struct TxBuilder<'a, Cs> { /* private fields */ }
    Expand description

    A transaction builder

    A TxBuilder is created by calling build_tx or build_fee_bump on a wallet. After assigning it, you set options on it until finally calling finish to consume the builder and generate the transaction.

    @@ -29,7 +29,7 @@ as in the following example:

    At the moment coin_selection is an exception to the rule as it consumes self. This means it is usually best to call coin_selection on the return value of build_tx before assigning it.

    For further examples see this module’s documentation;

    -

    Implementations§

    source§

    impl<'a, Cs> TxBuilder<'a, Cs>

    source

    pub fn fee_rate(&mut self, fee_rate: FeeRate) -> &mut Self

    Set a custom fee rate.

    +

    Implementations§

    source§

    impl<'a, Cs> TxBuilder<'a, Cs>

    source

    pub fn fee_rate(&mut self, fee_rate: FeeRate) -> &mut Self

    Set a custom fee rate.

    This method sets the mining fee paid by the transaction as a rate on its size. This means that the total fee paid is equal to fee_rate times the size of the transaction. Default is 1 sat/vB in accordance with Bitcoin Core’s default @@ -37,7 +37,7 @@ relay policy.

    Note that this is really a minimum feerate – it’s possible to overshoot it slightly since adding a change output to drain the remaining excess might not be viable.

    -
    source

    pub fn fee_absolute(&mut self, fee_amount: Amount) -> &mut Self

    Set an absolute fee +

    source

    pub fn fee_absolute(&mut self, fee_amount: Amount) -> &mut Self

    Set an absolute fee The fee_absolute method refers to the absolute transaction fee in [Amount]. If anyone sets both the fee_absolute method and the fee_rate method, the FeePolicy enum will be set by whichever method was called last, @@ -45,7 +45,7 @@ as the [FeeRate] and FeeAmount are mutually exclusive.

    Note that this is really a minimum absolute fee – it’s possible to overshoot it slightly since adding a change output to drain the remaining excess might not be viable.

    -
    source

    pub fn policy_path( +

    source

    pub fn policy_path( &mut self, policy_path: BTreeMap<String, Vec<usize>>, keychain: KeychainKind @@ -96,20 +96,20 @@ path.insert("aabbccdd".to_string(), 50_000)) .policy_path(path, KeychainKind::External);

    -
    source

    pub fn add_utxos( +

    source

    pub fn add_utxos( &mut self, outpoints: &[OutPoint] ) -> Result<&mut Self, AddUtxoError>

    Add the list of outpoints to the internal list of UTXOs that must be spent.

    If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.

    These have priority over the “unspendable” utxos, meaning that if a utxo is present both in the “utxos” and the “unspendable” list, it will be spent.

    -
    source

    pub fn add_utxo( +

    source

    pub fn add_utxo( &mut self, outpoint: OutPoint ) -> Result<&mut Self, AddUtxoError>

    Add a utxo to the internal list of utxos that must be spent

    These have priority over the “unspendable” utxos, meaning that if a utxo is present both in the “utxos” and the “unspendable” list, it will be spent.

    -
    source

    pub fn add_foreign_utxo( +

    source

    pub fn add_foreign_utxo( &mut self, outpoint: OutPoint, psbt_input: Input, @@ -149,64 +149,64 @@ graph using the only_witness_utxo any non-taproot psbt_input you pass to this method must have non_witness_utxo set otherwise you will get an error when finish is called.

    -

    source

    pub fn add_foreign_utxo_with_sequence( +

    source

    pub fn add_foreign_utxo_with_sequence( &mut self, outpoint: OutPoint, psbt_input: Input, satisfaction_weight: usize, sequence: Sequence ) -> Result<&mut Self, AddForeignUtxoError>

    Same as add_foreign_utxo but allows to set the nSequence value.

    -
    source

    pub fn manually_selected_only(&mut self) -> &mut Self

    Only spend utxos added by add_utxo.

    +
    source

    pub fn manually_selected_only(&mut self) -> &mut Self

    Only spend utxos added by add_utxo.

    The wallet will not add additional utxos to the transaction even if they are needed to make the transaction valid.

    -
    source

    pub fn unspendable(&mut self, unspendable: Vec<OutPoint>) -> &mut Self

    Replace the internal list of unspendable utxos with a new list

    +
    source

    pub fn unspendable(&mut self, unspendable: Vec<OutPoint>) -> &mut Self

    Replace the internal list of unspendable utxos with a new list

    It’s important to note that the “must-be-spent” utxos added with TxBuilder::add_utxo have priority over these. See the docs of the two linked methods for more details.

    -
    source

    pub fn add_unspendable(&mut self, unspendable: OutPoint) -> &mut Self

    Add a utxo to the internal list of unspendable utxos

    +
    source

    pub fn add_unspendable(&mut self, unspendable: OutPoint) -> &mut Self

    Add a utxo to the internal list of unspendable utxos

    It’s important to note that the “must-be-spent” utxos added with TxBuilder::add_utxo have priority over this. See the docs of the two linked methods for more details.

    -
    source

    pub fn sighash(&mut self, sighash: PsbtSighashType) -> &mut Self

    Sign with a specific sig hash

    +
    source

    pub fn sighash(&mut self, sighash: PsbtSighashType) -> &mut Self

    Sign with a specific sig hash

    Use this option very carefully

    -
    source

    pub fn ordering(&mut self, ordering: TxOrdering) -> &mut Self

    Choose the ordering for inputs and outputs of the transaction

    -
    source

    pub fn nlocktime(&mut self, locktime: LockTime) -> &mut Self

    Use a specific nLockTime while creating the transaction

    +
    source

    pub fn ordering(&mut self, ordering: TxOrdering) -> &mut Self

    Choose the ordering for inputs and outputs of the transaction

    +
    source

    pub fn nlocktime(&mut self, locktime: LockTime) -> &mut Self

    Use a specific nLockTime while creating the transaction

    This can cause conflicts if the wallet’s descriptors contain an “after” (OP_CLTV) operator.

    -
    source

    pub fn version(&mut self, version: i32) -> &mut Self

    Build a transaction with a specific version

    +
    source

    pub fn version(&mut self, version: i32) -> &mut Self

    Build a transaction with a specific version

    The version should always be greater than 0 and greater than 1 if the wallet’s descriptors contain an “older” (OP_CSV) operator.

    -
    source

    pub fn do_not_spend_change(&mut self) -> &mut Self

    Do not spend change outputs

    +
    source

    pub fn do_not_spend_change(&mut self) -> &mut Self

    Do not spend change outputs

    This effectively adds all the change outputs to the “unspendable” list. See TxBuilder::unspendable.

    -
    source

    pub fn only_spend_change(&mut self) -> &mut Self

    Only spend change outputs

    +
    source

    pub fn only_spend_change(&mut self) -> &mut Self

    Only spend change outputs

    This effectively adds all the non-change outputs to the “unspendable” list. See TxBuilder::unspendable.

    -
    source

    pub fn change_policy(&mut self, change_policy: ChangeSpendPolicy) -> &mut Self

    source

    pub fn change_policy(&mut self, change_policy: ChangeSpendPolicy) -> &mut Self

    source

    pub fn only_witness_utxo(&mut self) -> &mut Self

    Only Fill-in the psbt::Input::witness_utxo field when spending from +

    source

    pub fn only_witness_utxo(&mut self) -> &mut Self

    Only Fill-in the psbt::Input::witness_utxo field when spending from SegWit descriptors.

    This reduces the size of the PSBT, but some signers might reject them due to the lack of the non_witness_utxo.

    -
    source

    pub fn include_output_redeem_witness_script(&mut self) -> &mut Self

    Fill-in the psbt::Output::redeem_script and +

    source

    pub fn include_output_redeem_witness_script(&mut self) -> &mut Self

    Fill-in the psbt::Output::redeem_script and psbt::Output::witness_script fields.

    This is useful for signers which always require it, like ColdCard hardware wallets.

    -
    source

    pub fn add_global_xpubs(&mut self) -> &mut Self

    Fill-in the PSBT_GLOBAL_XPUB field with the extended keys contained in both the external +

    source

    pub fn add_global_xpubs(&mut self) -> &mut Self

    Fill-in the PSBT_GLOBAL_XPUB field with the extended keys contained in both the external and internal descriptors

    This is useful for offline signers that take part to a multisig. Some hardware wallets like BitBox and ColdCard are known to require this.

    -
    source

    pub fn drain_wallet(&mut self) -> &mut Self

    Spend all the available inputs. This respects filters like TxBuilder::unspendable and the change policy.

    -
    source

    pub fn coin_selection<P: CoinSelectionAlgorithm>( +

    source

    pub fn drain_wallet(&mut self) -> &mut Self

    Spend all the available inputs. This respects filters like TxBuilder::unspendable and the change policy.

    +
    source

    pub fn coin_selection<P: CoinSelectionAlgorithm>( self, coin_selection: P ) -> TxBuilder<'a, P>

    Choose the coin selection algorithm

    Overrides the CoinSelectionAlgorithm.

    Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.

    -
    source

    pub fn enable_rbf(&mut self) -> &mut Self

    Enable signaling RBF

    +
    source

    pub fn enable_rbf(&mut self) -> &mut Self

    Enable signaling RBF

    This will use the default nSequence value of 0xFFFFFFFD.

    -
    source

    pub fn enable_rbf_with_sequence(&mut self, nsequence: Sequence) -> &mut Self

    Enable signaling RBF with a specific nSequence value

    +
    source

    pub fn enable_rbf_with_sequence(&mut self, nsequence: Sequence) -> &mut Self

    Enable signaling RBF with a specific nSequence value

    This can cause conflicts if the wallet’s descriptors contain an “older” (OP_CSV) operator and the given nsequence is lower than the CSV value.

    If the nsequence is higher than 0xFFFFFFFD an error will be thrown, since it would not be a valid nSequence to signal RBF.

    -
    source

    pub fn current_height(&mut self, height: u32) -> &mut Self

    Set the current blockchain height.

    +
    source

    pub fn current_height(&mut self, height: u32) -> &mut Self

    Set the current blockchain height.

    This will be used to:

    1. Set the nLockTime for preventing fee sniping. @@ -217,19 +217,19 @@ If you want to create a transaction that spends immature coinbase inputs, manual add them using TxBuilder::add_utxos.

    In both cases, if you don’t provide a current height, we use the last sync height.

    -
    source

    pub fn allow_dust(&mut self, allow_dust: bool) -> &mut Self

    Set whether or not the dust limit is checked.

    +
    source

    pub fn allow_dust(&mut self, allow_dust: bool) -> &mut Self

    Set whether or not the dust limit is checked.

    Note: by avoiding a dust limit check you may end up with a transaction that is non-standard.

    -
    source

    pub fn set_recipients( +

    source

    pub fn set_recipients( &mut self, recipients: Vec<(ScriptBuf, Amount)> ) -> &mut Self

    Replace the recipients already added with a new list

    -
    source

    pub fn add_recipient( +

    source

    pub fn add_recipient( &mut self, script_pubkey: ScriptBuf, amount: Amount ) -> &mut Self

    Add a recipient to the internal list

    -
    source

    pub fn add_data<T: AsRef<PushBytes>>(&mut self, data: &T) -> &mut Self

    Add data as an output, using OP_RETURN

    -
    source

    pub fn drain_to(&mut self, script_pubkey: ScriptBuf) -> &mut Self

    Sets the address to drain excess coins to.

    +
    source

    pub fn add_data<T: AsRef<PushBytes>>(&mut self, data: &T) -> &mut Self

    Add data as an output, using OP_RETURN

    +
    source

    pub fn drain_to(&mut self, script_pubkey: ScriptBuf) -> &mut Self

    Sets the address to drain excess coins to.

    Usually, when there are excess coins they are sent to a change address generated by the wallet. This option replaces the usual change address with an arbitrary script_pubkey of your choosing. Just as with a change output, if the drain output is not needed (the excess @@ -255,9 +255,11 @@ tx_builder .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate")) .enable_rbf(); let psbt = tx_builder.finish()?;

    -
    source§

    impl<'a, Cs: CoinSelectionAlgorithm> TxBuilder<'a, Cs>

    source

    pub fn finish(self) -> Result<Psbt, CreateTxError>

    Finish building the transaction.

    +
    source§

    impl<'a, Cs: CoinSelectionAlgorithm> TxBuilder<'a, Cs>

    source

    pub fn finish(self) -> Result<Psbt, CreateTxError>

    Finish building the transaction.

    Returns a new [Psbt] per BIP174.

    -

    Trait Implementations§

    source§

    impl<'a, Cs: Clone> Clone for TxBuilder<'a, Cs>

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a, Cs: Debug> Debug for TxBuilder<'a, Cs>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<'a, Cs> Freeze for TxBuilder<'a, Cs>
    where +

    WARNING: To avoid change address reuse you must persist the changes resulting from one +or more calls to this method before closing the wallet. See Wallet::reveal_next_address.

    +

    Trait Implementations§

    source§

    impl<'a, Cs: Clone> Clone for TxBuilder<'a, Cs>

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a, Cs: Debug> Debug for TxBuilder<'a, Cs>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<'a, Cs> Freeze for TxBuilder<'a, Cs>
    where Cs: Freeze,

    §

    impl<'a, Cs> !RefUnwindSafe for TxBuilder<'a, Cs>

    §

    impl<'a, Cs> !Send for TxBuilder<'a, Cs>

    §

    impl<'a, Cs> !Sync for TxBuilder<'a, Cs>

    §

    impl<'a, Cs> Unpin for TxBuilder<'a, Cs>
    where Cs: Unpin,

    §

    impl<'a, Cs> !UnwindSafe for TxBuilder<'a, Cs>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html index 34a12cb0cc..83a27ce261 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_wallet/wallet/type.ChangeSet.html @@ -1,9 +1,9 @@ -ChangeSet in bdk_wallet::wallet - Rust

    Type Alias bdk_wallet::wallet::ChangeSet

    source ·
    pub type ChangeSet = CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
    Expand description

    The changes made to a wallet by applying an Update.

    +ChangeSet in bdk_wallet::wallet - Rust

    Type Alias bdk_wallet::wallet::ChangeSet

    source ·
    pub type ChangeSet = CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
    Expand description

    The changes made to a wallet by applying an Update.

    Aliased Type§

    struct ChangeSet {
         pub chain: BTreeMap<u32, Option<BlockHash>>,
         pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>,
         pub network: Option<Network>,
    -}

    Fields§

    §chain: BTreeMap<u32, Option<BlockHash>>

    Changes to the LocalChain.

    -
    §indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>

    Changes to IndexedTxGraph.

    +}

    Fields§

    §chain: BTreeMap<u32, Option<BlockHash>>

    Changes to the LocalChain.

    +
    §indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>

    Changes to IndexedTxGraph.

    §network: Option<Network>

    Stores the network type of the transaction data.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/crates.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/crates.js index 9042705563..2ce3df8042 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/crates.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/crates.js @@ -1 +1 @@ -window.ALL_CRATES = ["bdk_bitcoind_rpc","bdk_chain","bdk_coin_select","bdk_electrum","bdk_esplora","bdk_file_store","bdk_hwi","bdk_persist","bdk_sqlite","bdk_testenv","bdk_tmp_plan","bdk_wallet","example_bitcoind_rpc_polling","example_cli","example_electrum","example_esplora","wallet_electrum_example","wallet_esplora_async","wallet_esplora_blocking","wallet_rpc"]; \ No newline at end of file +window.ALL_CRATES = ["bdk_bitcoind_rpc","bdk_chain","bdk_coin_select","bdk_electrum","bdk_esplora","bdk_file_store","bdk_hwi","bdk_sqlite","bdk_testenv","bdk_tmp_plan","bdk_wallet","example_bitcoind_rpc_polling","example_cli","example_electrum","example_esplora","wallet_electrum_example","wallet_esplora_async","wallet_esplora_blocking","wallet_rpc"]; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.CHANNEL_BOUND.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.CHANNEL_BOUND.html index 2d2f3961a9..9ce0a19061 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.CHANNEL_BOUND.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.CHANNEL_BOUND.html @@ -1,2 +1,2 @@ -CHANNEL_BOUND in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::CHANNEL_BOUND

    source ·
    pub(crate) const CHANNEL_BOUND: usize = 10;
    Expand description

    The mpsc channel bound for emissions from [Emitter].

    +CHANNEL_BOUND in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::CHANNEL_BOUND

    source ·
    pub(crate) const CHANNEL_BOUND: usize = 10;
    Expand description

    The mpsc channel bound for emissions from [Emitter].

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_COMMIT_DELAY.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_COMMIT_DELAY.html index 66f6a15fd6..3db24ccb35 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_COMMIT_DELAY.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_COMMIT_DELAY.html @@ -1,2 +1,2 @@ -DB_COMMIT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_COMMIT_DELAY

    source ·
    pub(crate) const DB_COMMIT_DELAY: Duration;
    Expand description

    Delay for committing to persistence.

    +DB_COMMIT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_COMMIT_DELAY

    source ·
    pub(crate) const DB_COMMIT_DELAY: Duration;
    Expand description

    Delay for committing to persistence.

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_MAGIC.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_MAGIC.html index 40e25f9a1c..7da1b90768 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_MAGIC.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_MAGIC.html @@ -1 +1 @@ -DB_MAGIC in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_MAGIC

    source ·
    pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_rpc";
    \ No newline at end of file +DB_MAGIC in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_MAGIC

    source ·
    pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_rpc";
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_PATH.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_PATH.html index 67ff96599e..a9e9496c4b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_PATH.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.DB_PATH.html @@ -1 +1 @@ -DB_PATH in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_PATH

    source ·
    pub(crate) const DB_PATH: &str = ".bdk_example_rpc.db";
    \ No newline at end of file +DB_PATH in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::DB_PATH

    source ·
    pub(crate) const DB_PATH: &str = ".bdk_example_rpc.db";
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.MEMPOOL_EMIT_DELAY.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.MEMPOOL_EMIT_DELAY.html index 504f5a4a77..d3b008f2e0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.MEMPOOL_EMIT_DELAY.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.MEMPOOL_EMIT_DELAY.html @@ -1,2 +1,2 @@ -MEMPOOL_EMIT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::MEMPOOL_EMIT_DELAY

    source ·
    pub(crate) const MEMPOOL_EMIT_DELAY: Duration;
    Expand description

    Delay between mempool emissions.

    +MEMPOOL_EMIT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::MEMPOOL_EMIT_DELAY

    source ·
    pub(crate) const MEMPOOL_EMIT_DELAY: Duration;
    Expand description

    Delay between mempool emissions.

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.STDOUT_PRINT_DELAY.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.STDOUT_PRINT_DELAY.html index 2b8b5cf6d0..2faad6619c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.STDOUT_PRINT_DELAY.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/constant.STDOUT_PRINT_DELAY.html @@ -1,2 +1,2 @@ -STDOUT_PRINT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::STDOUT_PRINT_DELAY

    source ·
    pub(crate) const STDOUT_PRINT_DELAY: Duration;
    Expand description

    Delay for printing status to stdout.

    +STDOUT_PRINT_DELAY in example_bitcoind_rpc_polling - Rust

    Constant example_bitcoind_rpc_polling::STDOUT_PRINT_DELAY

    source ·
    pub(crate) const STDOUT_PRINT_DELAY: Duration;
    Expand description

    Delay for printing status to stdout.

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.Emission.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.Emission.html index a9820ac291..2cdf14360e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.Emission.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.Emission.html @@ -1,8 +1,8 @@ -Emission in example_bitcoind_rpc_polling - Rust

    Enum example_bitcoind_rpc_polling::Emission

    source ·
    pub(crate) enum Emission {
    +Emission in example_bitcoind_rpc_polling - Rust

    Enum example_bitcoind_rpc_polling::Emission

    source ·
    pub(crate) enum Emission {
         Block(BlockEvent<Block>),
         Mempool(Vec<(Transaction, u64)>),
         Tip(u32),
    -}

    Variants§

    §

    Block(BlockEvent<Block>)

    §

    Mempool(Vec<(Transaction, u64)>)

    §

    Tip(u32)

    Trait Implementations§

    source§

    impl Debug for Emission

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    Block(BlockEvent<Block>)

    §

    Mempool(Vec<(Transaction, u64)>)

    §

    Tip(u32)

    Trait Implementations§

    source§

    impl Debug for Emission

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.RpcCommands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.RpcCommands.html index 3d540a88dd..a46485fbb1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.RpcCommands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/enum.RpcCommands.html @@ -1,4 +1,4 @@ -RpcCommands in example_bitcoind_rpc_polling - Rust

    Enum example_bitcoind_rpc_polling::RpcCommands

    source ·
    pub(crate) enum RpcCommands {
    +RpcCommands in example_bitcoind_rpc_polling - Rust

    Enum example_bitcoind_rpc_polling::RpcCommands

    source ·
    pub(crate) enum RpcCommands {
         Sync {
             rpc_args: RpcArgs,
         },
    @@ -8,15 +8,15 @@
     }

    Variants§

    §

    Sync

    Syncs local state with remote state via RPC (starting from last point of agreement) and stores/indexes relevant transactions

    Fields

    §rpc_args: RpcArgs
    §

    Live

    Sync by having the emitter logic in a separate thread

    -

    Fields

    §rpc_args: RpcArgs

    Trait Implementations§

    source§

    impl Clone for RpcCommands

    source§

    fn clone(&self) -> RpcCommands

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RpcCommands

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for RpcCommands

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Fields

    §rpc_args: RpcArgs

    Trait Implementations§

    source§

    impl Clone for RpcCommands

    source§

    fn clone(&self) -> RpcCommands

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RpcCommands

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for RpcCommands

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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<'b>( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for RpcCommands

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for RpcCommands

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.await_flag.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.await_flag.html index d13bc59192..0bf8982fcb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.await_flag.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.await_flag.html @@ -1 +1 @@ -await_flag in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::await_flag

    source ·
    pub(crate) fn await_flag(flag: &AtomicBool, duration: Duration) -> bool
    \ No newline at end of file +await_flag in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::await_flag

    source ·
    pub(crate) fn await_flag(flag: &AtomicBool, duration: Duration) -> bool
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.main.html index 3cf5946671..62ffffc22e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.main.html @@ -1 +1 @@ -main in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file +main in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.start_ctrlc_handler.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.start_ctrlc_handler.html index 968560755a..71e97f6b90 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.start_ctrlc_handler.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/fn.start_ctrlc_handler.html @@ -1 +1 @@ -start_ctrlc_handler in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::start_ctrlc_handler

    source ·
    pub(crate) fn start_ctrlc_handler() -> Arc<AtomicBool>
    \ No newline at end of file +start_ctrlc_handler in example_bitcoind_rpc_polling - Rust

    Function example_bitcoind_rpc_polling::start_ctrlc_handler

    source ·
    pub(crate) fn start_ctrlc_handler() -> Arc<AtomicBool>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/index.html index 03248b95b5..ba1f263222 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/index.html @@ -1 +1 @@ -example_bitcoind_rpc_polling - Rust

    Crate example_bitcoind_rpc_polling

    source ·

    Structs§

    Enums§

    Constants§

    Functions§

    Type Aliases§

    \ No newline at end of file +example_bitcoind_rpc_polling - Rust

    Crate example_bitcoind_rpc_polling

    source ·

    Structs§

    Enums§

    Constants§

    Functions§

    Type Aliases§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/struct.RpcArgs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/struct.RpcArgs.html index 60fef8aca6..6d9cb0f5f1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/struct.RpcArgs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/struct.RpcArgs.html @@ -1,4 +1,4 @@ -RpcArgs in example_bitcoind_rpc_polling - Rust

    Struct example_bitcoind_rpc_polling::RpcArgs

    source ·
    pub(crate) struct RpcArgs {
    +RpcArgs in example_bitcoind_rpc_polling - Rust

    Struct example_bitcoind_rpc_polling::RpcArgs

    source ·
    pub(crate) struct RpcArgs {
         pub(crate) url: String,
         pub(crate) rpc_cookie: Option<PathBuf>,
         pub(crate) rpc_user: Option<String>,
    @@ -9,12 +9,12 @@
     
    §rpc_user: Option<String>

    RPC auth username

    §rpc_password: Option<String>

    RPC auth password

    §fallback_height: u32

    Starting block height to fallback to if no point of agreement if found

    -

    Implementations§

    source§

    impl RpcArgs

    source

    pub(crate) fn new_client(&self) -> Result<Client>

    Trait Implementations§

    source§

    impl Args for RpcArgs

    source§

    fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for RpcArgs

    source§

    fn clone(&self) -> RpcArgs

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RpcArgs

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<RpcArgs> for Auth

    source§

    fn from(args: RpcArgs) -> Self

    Converts to this type from the input type.
    source§

    impl FromArgMatches for RpcArgs

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Implementations§

    source§

    impl RpcArgs

    source

    pub(crate) fn new_client(&self) -> Result<Client>

    Trait Implementations§

    source§

    impl Args for RpcArgs

    source§

    fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for RpcArgs

    source§

    fn clone(&self) -> RpcArgs

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RpcArgs

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<RpcArgs> for Auth

    source§

    fn from(args: RpcArgs) -> Self

    Converts to this type from the input type.
    source§

    impl FromArgMatches for RpcArgs

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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( +) -> 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§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html index 45b0aec17f..89c0f0a3bb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_bitcoind_rpc_polling - Rust

    Type Alias example_bitcoind_rpc_polling::ChangeSet

    source ·
    pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
    \ No newline at end of file +ChangeSet in example_bitcoind_rpc_polling - Rust

    Type Alias example_bitcoind_rpc_polling::ChangeSet

    source ·
    pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.AddressCmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.AddressCmd.html index 6a35bc1982..509cafc2ee 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.AddressCmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.AddressCmd.html @@ -1,4 +1,4 @@ -AddressCmd in example_cli - Rust

    Enum example_cli::AddressCmd

    source ·
    pub enum AddressCmd {
    +AddressCmd in example_cli - Rust

    Enum example_cli::AddressCmd

    source ·
    pub enum AddressCmd {
         Next,
         New,
         List {
    @@ -10,15 +10,15 @@
     
    §

    List

    List all addresses

    Fields

    §change: bool

    List change addresses

    §

    Index

    Get last revealed address index for each keychain.

    -

    Trait Implementations§

    source§

    impl Clone for AddressCmd

    source§

    fn clone(&self) -> AddressCmd

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AddressCmd

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for AddressCmd

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Trait Implementations§

    source§

    impl Clone for AddressCmd

    source§

    fn clone(&self) -> AddressCmd

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AddressCmd

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for AddressCmd

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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<'b>( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for AddressCmd

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +) -> Result<(), Error>

    Assign values from ArgMatches to self.

    source§

    impl Subcommand for AddressCmd

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.CoinSelectionAlgo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.CoinSelectionAlgo.html index 172fcdd28b..a3f5be43c8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.CoinSelectionAlgo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.CoinSelectionAlgo.html @@ -1,10 +1,10 @@ -CoinSelectionAlgo in example_cli - Rust

    Enum example_cli::CoinSelectionAlgo

    source ·
    pub enum CoinSelectionAlgo {
    +CoinSelectionAlgo in example_cli - Rust

    Enum example_cli::CoinSelectionAlgo

    source ·
    pub enum CoinSelectionAlgo {
         LargestFirst,
         SmallestFirst,
         OldestFirst,
         NewestFirst,
         BranchAndBound,
    -}

    Variants§

    §

    LargestFirst

    §

    SmallestFirst

    §

    OldestFirst

    §

    NewestFirst

    §

    BranchAndBound

    Trait Implementations§

    source§

    impl Clone for CoinSelectionAlgo

    source§

    fn clone(&self) -> CoinSelectionAlgo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CoinSelectionAlgo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for CoinSelectionAlgo

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Display for CoinSelectionAlgo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for CoinSelectionAlgo

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    LargestFirst

    §

    SmallestFirst

    §

    OldestFirst

    §

    NewestFirst

    §

    BranchAndBound

    Trait Implementations§

    source§

    impl Clone for CoinSelectionAlgo

    source§

    fn clone(&self) -> CoinSelectionAlgo

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CoinSelectionAlgo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for CoinSelectionAlgo

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl Display for CoinSelectionAlgo

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromStr for CoinSelectionAlgo

    §

    type Err = Error

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html index 81919b91eb..2e5a93a955 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html @@ -1,4 +1,4 @@ -Commands in example_cli - Rust

    Enum example_cli::Commands

    source ·
    pub enum Commands<CS: Subcommand, S: Args> {
    +Commands in example_cli - Rust

    Enum example_cli::Commands

    source ·
    pub enum Commands<CS: Subcommand, S: Args> {
         ChainSpecific(CS),
         Address {
             addr_cmd: AddressCmd,
    @@ -19,15 +19,15 @@
     

    Fields

    §txout_cmd: TxOutCmd
    §

    Send

    Send coins to an address.

    Fields

    §value: u64

    Amount to send in satoshis

    §address: Address<NetworkUnchecked>

    Destination address

    -
    §chain_specific: S

    Trait Implementations§

    source§

    impl<CS: Clone + Subcommand, S: Clone + Args> Clone for Commands<CS, S>

    source§

    fn clone(&self) -> Commands<CS, S>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<CS: Debug + Subcommand, S: Debug + Args> Debug for Commands<CS, S>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<CS: Subcommand, S: Args> FromArgMatches for Commands<CS, S>

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    §chain_specific: S

    Trait Implementations§

    source§

    impl<CS: Clone + Subcommand, S: Clone + Args> Clone for Commands<CS, S>

    source§

    fn clone(&self) -> Commands<CS, S>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<CS: Debug + Subcommand, S: Debug + Args> Debug for Commands<CS, S>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<CS: Subcommand, S: Args> FromArgMatches for Commands<CS, S>

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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<'b>( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl<CS: Subcommand, S: Args> Subcommand for Commands<CS, S>

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    §

    impl<CS, S> Freeze for Commands<CS, S>
    where +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl<CS: Subcommand, S: Args> Subcommand for Commands<CS, S>

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    §

    impl<CS, S> Freeze for Commands<CS, S>
    where CS: Freeze, S: Freeze,

    §

    impl<CS, S> RefUnwindSafe for Commands<CS, S>
    where CS: RefUnwindSafe, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html index 593f64f759..dab86b7c00 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html @@ -1,16 +1,16 @@ -Keychain in example_cli - Rust

    Enum example_cli::Keychain

    source ·
    pub enum Keychain {
    +Keychain in example_cli - Rust

    Enum example_cli::Keychain

    source ·
    pub enum Keychain {
         External,
         Internal,
    -}

    Variants§

    §

    External

    §

    Internal

    Trait Implementations§

    source§

    impl Clone for Keychain

    source§

    fn clone(&self) -> Keychain

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Keychain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Keychain

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Keychain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Ord for Keychain

    source§

    fn cmp(&self, other: &Keychain) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where +}

    Variants§

    §

    External

    §

    Internal

    Trait Implementations§

    source§

    impl Clone for Keychain

    source§

    fn clone(&self) -> Keychain

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Keychain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Keychain

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Keychain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Ord for Keychain

    source§

    fn cmp(&self, other: &Keychain) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for Keychain

    source§

    fn eq(&self, other: &Keychain) -> bool

    This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for Keychain

    source§

    fn eq(&self, other: &Keychain) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for Keychain

    source§

    fn partial_cmp(&self, other: &Keychain) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
    source§

    impl PartialOrd for Keychain

    source§

    fn partial_cmp(&self, other: &Keychain) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Serialize for Keychain

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Copy for Keychain

    source§

    impl Eq for Keychain

    source§

    impl StructuralPartialEq for Keychain

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +operator. Read more

    source§

    impl Serialize for Keychain

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Copy for Keychain

    source§

    impl Eq for Keychain

    source§

    impl StructuralPartialEq for Keychain

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html index 43029de20a..0d5c6f2469 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html @@ -1,4 +1,4 @@ -TxOutCmd in example_cli - Rust

    Enum example_cli::TxOutCmd

    source ·
    pub enum TxOutCmd {
    +TxOutCmd in example_cli - Rust

    Enum example_cli::TxOutCmd

    source ·
    pub enum TxOutCmd {
         List {
             spent: bool,
             unspent: bool,
    @@ -10,15 +10,15 @@
     
    §unspent: bool

    Return only unspent outputs.

    §confirmed: bool

    Return only confirmed outputs.

    §unconfirmed: bool

    Return only unconfirmed outputs.

    -

    Trait Implementations§

    source§

    impl Clone for TxOutCmd

    source§

    fn clone(&self) -> TxOutCmd

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TxOutCmd

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for TxOutCmd

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Trait Implementations§

    source§

    impl Clone for TxOutCmd

    source§

    fn clone(&self) -> TxOutCmd

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TxOutCmd

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for TxOutCmd

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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<'b>( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for TxOutCmd

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for TxOutCmd

    source§

    fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.create_tx.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.create_tx.html index 491b30d7cc..3bb913e6d7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.create_tx.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.create_tx.html @@ -1,4 +1,4 @@ -create_tx in example_cli - Rust

    Function example_cli::create_tx

    source ·
    pub fn create_tx<A: Anchor, O: ChainOracle>(
    +create_tx in example_cli - Rust

    Function example_cli::create_tx

    source ·
    pub fn create_tx<A: Anchor, O: ChainOracle>(
         graph: &mut KeychainTxGraph<A>,
         chain: &O,
         keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.handle_commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.handle_commands.html
    index e8badee105..36fee48322 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.handle_commands.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.handle_commands.html
    @@ -1,6 +1,6 @@
    -handle_commands in example_cli - Rust

    Function example_cli::handle_commands

    source ·
    pub fn handle_commands<CS: Subcommand, S: Args, A: Anchor, O: ChainOracle, C>(
    +handle_commands in example_cli - Rust

    Function example_cli::handle_commands

    source ·
    pub fn handle_commands<CS: Subcommand, S: Args, A: Anchor, O: ChainOracle, C>(
         graph: &Mutex<KeychainTxGraph<A>>,
    -    db: &Mutex<Persist<C>>,
    +    db: &Mutex<Store<C>>,
         chain: &Mutex<O>,
         keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
         network: Network,
    @@ -8,4 +8,4 @@
         cmd: Commands<CS, S>
     ) -> Result<()>
    where O::Error: Error + Send + Sync + 'static, - C: Default + Append + DeserializeOwned + Serialize + From<KeychainChangeSet<A>>,
    \ No newline at end of file + C: Default + Append + DeserializeOwned + Serialize + From<KeychainChangeSet<A>> + Send + Sync + Debug,
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.init.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.init.html index 243fa083f0..94288ae3bf 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.init.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.init.html @@ -1,7 +1,7 @@ -init in example_cli - Rust

    Function example_cli::init

    source ·
    pub fn init<CS: Subcommand, S: Args, C>(
    +init in example_cli - Rust

    Function example_cli::init

    source ·
    pub fn init<CS: Subcommand, S: Args, C>(
         db_magic: &[u8],
         db_default_path: &str
     ) -> Result<Init<CS, S, C>>
    where - C: Default + Append + Serialize + DeserializeOwned + Send + Sync + 'static,
    Expand description

    Parses command line arguments and initializes all components, creating + C: Default + Append + Serialize + DeserializeOwned + Debug + Send + Sync + 'static,

    Expand description

    Parses command line arguments and initializes all components, creating a file store with the given parameters, or loading one if it exists.

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.planned_utxos.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.planned_utxos.html index 3fd14ad7b1..9fd1a6fa09 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.planned_utxos.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.planned_utxos.html @@ -1,4 +1,4 @@ -planned_utxos in example_cli - Rust

    Function example_cli::planned_utxos

    source ·
    pub fn planned_utxos<A: Anchor, O: ChainOracle, K: Clone + CanDerive>(
    +planned_utxos in example_cli - Rust

    Function example_cli::planned_utxos

    source ·
    pub fn planned_utxos<A: Anchor, O: ChainOracle, K: Clone + CanDerive>(
         graph: &KeychainTxGraph<A>,
         chain: &O,
         assets: &Assets<K>
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/index.html
    index a0fd798cb5..a50026d684 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/index.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/index.html
    @@ -1,2 +1,2 @@
    -example_cli - Rust

    Crate example_cli

    source ·

    Re-exports§

    Structs§

    Enums§

    Functions§

    • Parses command line arguments and initializes all components, creating +example_cli - Rust

      Crate example_cli

      source ·

      Re-exports§

      • pub use anyhow;
      • pub use bdk_file_store;
      • pub use clap;

      Structs§

      Enums§

      Functions§

      Type Aliases§

      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Args.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Args.html index 959ed1509c..34ce8b9960 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Args.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Args.html @@ -1,19 +1,19 @@ -Args in example_cli - Rust

      Struct example_cli::Args

      source ·
      pub struct Args<CS: Subcommand, S: Args> {
      +Args in example_cli - Rust

      Struct example_cli::Args

      source ·
      pub struct Args<CS: Subcommand, S: Args> {
           pub descriptor: String,
           pub change_descriptor: Option<String>,
           pub network: Network,
           pub db_path: PathBuf,
           pub cp_limit: usize,
           pub command: Commands<CS, S>,
      -}

      Fields§

      §descriptor: String§change_descriptor: Option<String>§network: Network§db_path: PathBuf§cp_limit: usize§command: Commands<CS, S>

      Trait Implementations§

      source§

      impl<CS: Subcommand, S: Args> Args for Args<CS, S>

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl<CS: Subcommand, S: Args> CommandFactory for Args<CS, S>

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl<CS: Subcommand, S: Args> FromArgMatches for Args<CS, S>

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +}

      Fields§

      §descriptor: String§change_descriptor: Option<String>§network: Network§db_path: PathBuf§cp_limit: usize§command: Commands<CS, S>

      Trait Implementations§

      source§

      impl<CS: Subcommand, S: Args> Args for Args<CS, S>

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl<CS: Subcommand, S: Args> CommandFactory for Args<CS, S>

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl<CS: Subcommand, S: Args> FromArgMatches for Args<CS, S>

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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( +) -> 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<CS: Subcommand, S: Args> Parser for Args<CS, S>

      §

      fn parse() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl<CS: Subcommand, S: Args> Parser for Args<CS, S>

      §

      fn parse() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where 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>, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html index 82fe0c39e4..cc1f5ab33e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html @@ -1,4 +1,4 @@ -CreateTxChange in example_cli - Rust

      Struct example_cli::CreateTxChange

      source ·
      pub struct CreateTxChange {
      +CreateTxChange in example_cli - Rust

      Struct example_cli::CreateTxChange

      source ·
      pub struct CreateTxChange {
           pub index_changeset: ChangeSet<Keychain>,
           pub change_keychain: Keychain,
           pub index: u32,
      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html
      index dfc6f6e062..f658e4f6ee 100644
      --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html
      +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html
      @@ -1,23 +1,22 @@
      -Init in example_cli - Rust

      Struct example_cli::Init

      source ·
      pub struct Init<CS: Subcommand, S: Args, C> {
      +Init in example_cli - Rust

      Struct example_cli::Init

      source ·
      pub struct Init<CS: Subcommand, S: Args, C>
      where + C: Default + Append + Serialize + DeserializeOwned + Debug + Send + Sync + 'static,
      { pub args: Args<CS, S>, pub keymap: KeyMap, pub index: KeychainTxOutIndex<Keychain>, - pub db: Mutex<Persist<C>>, + pub db: Mutex<Store<C>>, pub init_changeset: C, }
      Expand description

      The initial state returned by init.

      Fields§

      §args: Args<CS, S>

      Arguments parsed by the cli.

      §keymap: KeyMap

      Descriptor keymap.

      §index: KeychainTxOutIndex<Keychain>

      Keychain-txout index.

      -
      §db: Mutex<Persist<C>>

      Persistence backend.

      +
      §db: Mutex<Store<C>>

      Persistence backend.

      §init_changeset: C

      Initial changeset.

      Auto Trait Implementations§

      §

      impl<CS, S, C> !Freeze for Init<CS, S, C>

      §

      impl<CS, S, C> RefUnwindSafe for Init<CS, S, C>

      §

      impl<CS, S, C> Send for Init<CS, S, C>
      where - C: Send, CS: Send, S: Send,

      §

      impl<CS, S, C> Sync for Init<CS, S, C>
      where - C: Sync + Send, CS: Sync, S: Sync,

      §

      impl<CS, S, C> Unpin for Init<CS, S, C>
      where C: Unpin, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainChangeSet.html index ed9191b483..95b1bb60fe 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainChangeSet.html @@ -1 +1 @@ -KeychainChangeSet in example_cli - Rust

      Type Alias example_cli::KeychainChangeSet

      source ·
      pub type KeychainChangeSet<A> = (ChangeSet, ChangeSet<A, ChangeSet<Keychain>>);
      \ No newline at end of file +KeychainChangeSet in example_cli - Rust

      Type Alias example_cli::KeychainChangeSet

      source ·
      pub type KeychainChangeSet<A> = (ChangeSet, ChangeSet<A, ChangeSet<Keychain>>);
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainTxGraph.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainTxGraph.html index 0c4c6027c4..d83347ffc6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainTxGraph.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.KeychainTxGraph.html @@ -1,4 +1,4 @@ -KeychainTxGraph in example_cli - Rust

      Type Alias example_cli::KeychainTxGraph

      source ·
      pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;

      Aliased Type§

      struct KeychainTxGraph<A> {
      +KeychainTxGraph in example_cli - Rust

      Type Alias example_cli::KeychainTxGraph

      source ·
      pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;

      Aliased Type§

      struct KeychainTxGraph<A> {
           pub index: KeychainTxOutIndex<Keychain>,
           /* private fields */
       }

      Fields§

      §index: KeychainTxOutIndex<Keychain>

      Transaction index.

      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.PlannedUtxo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.PlannedUtxo.html index 85cd9e4793..207b255de6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.PlannedUtxo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.PlannedUtxo.html @@ -1 +1 @@ -PlannedUtxo in example_cli - Rust

      Type Alias example_cli::PlannedUtxo

      source ·
      pub type PlannedUtxo<K, A> = (Plan<K>, FullTxOut<A>);
      \ No newline at end of file +PlannedUtxo in example_cli - Rust

      Type Alias example_cli::PlannedUtxo

      source ·
      pub type PlannedUtxo<K, A> = (Plan<K>, FullTxOut<A>);
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_MAGIC.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_MAGIC.html index 5793d87a57..23ce375d9c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_MAGIC.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_MAGIC.html @@ -1 +1 @@ -DB_MAGIC in example_electrum - Rust

      Constant example_electrum::DB_MAGIC

      source ·
      pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_electrum";
      \ No newline at end of file +DB_MAGIC in example_electrum - Rust

      Constant example_electrum::DB_MAGIC

      source ·
      pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_electrum";
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_PATH.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_PATH.html index 634e36ad3c..3763c5db89 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_PATH.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/constant.DB_PATH.html @@ -1 +1 @@ -DB_PATH in example_electrum - Rust

      Constant example_electrum::DB_PATH

      source ·
      pub(crate) const DB_PATH: &str = ".bdk_example_electrum.db";
      \ No newline at end of file +DB_PATH in example_electrum - Rust

      Constant example_electrum::DB_PATH

      source ·
      pub(crate) const DB_PATH: &str = ".bdk_example_electrum.db";
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/enum.ElectrumCommands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/enum.ElectrumCommands.html index 2a33a4ce81..289a57babb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/enum.ElectrumCommands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/enum.ElectrumCommands.html @@ -1,4 +1,4 @@ -ElectrumCommands in example_electrum - Rust

      Enum example_electrum::ElectrumCommands

      source ·
      pub(crate) enum ElectrumCommands {
      +ElectrumCommands in example_electrum - Rust

      Enum example_electrum::ElectrumCommands

      source ·
      pub(crate) enum ElectrumCommands {
           Scan {
               stop_gap: usize,
               scan_options: ScanOptions,
      @@ -19,15 +19,15 @@
       
      §all_spks: bool

      Scan every address that you have derived.

      §utxos: bool

      Scan unspent outpoints for spends or changes to confirmation status of residing tx.

      §unconfirmed: bool

      Scan unconfirmed transactions for updates.

      -
      §scan_options: ScanOptions
      §electrum_args: ElectrumArgs

      Implementations§

      Trait Implementations§

      source§

      impl Clone for ElectrumCommands

      source§

      fn clone(&self) -> ElectrumCommands

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for ElectrumCommands

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ElectrumCommands

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      §scan_options: ScanOptions
      §electrum_args: ElectrumArgs

      Implementations§

      Trait Implementations§

      source§

      impl Clone for ElectrumCommands

      source§

      fn clone(&self) -> ElectrumCommands

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for ElectrumCommands

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ElectrumCommands

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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<'b>( +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl Subcommand for ElectrumCommands

      source§

      fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      fn has_subcommand(__clap_name: &str) -> bool

      Test whether Self can parse a specific subcommand

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where +) -> Result<(), Error>

      Assign values from ArgMatches to self.

      source§

      impl Subcommand for ElectrumCommands

      source§

      fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      fn has_subcommand(__clap_name: &str) -> bool

      Test whether Self can parse a specific subcommand

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where T: 'static + ?Sized,

      source§

      fn type_id(&self) -> TypeId

      Gets the TypeId of self. Read more
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where T: ?Sized,

      source§

      fn borrow_mut(&mut self) -> &mut T

      Mutably borrows from an owned value. Read more
      source§

      impl<T> From<T> for T

      source§

      fn from(t: T) -> T

      Returns the argument unchanged.

      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html index 0856f6cfb4..79d9160cf8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html @@ -1 +1 @@ -main in example_electrum - Rust

      Function example_electrum::main

      source ·
      pub(crate) fn main() -> Result<()>
      \ No newline at end of file +main in example_electrum - Rust

      Function example_electrum::main

      source ·
      pub(crate) fn main() -> Result<()>
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ElectrumArgs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ElectrumArgs.html index c98085e2d9..b087eda5b3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ElectrumArgs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ElectrumArgs.html @@ -1,13 +1,13 @@ -ElectrumArgs in example_electrum - Rust

      Struct example_electrum::ElectrumArgs

      source ·
      pub struct ElectrumArgs {
      +ElectrumArgs in example_electrum - Rust

      Struct example_electrum::ElectrumArgs

      source ·
      pub struct ElectrumArgs {
           pub(crate) electrum_url: Option<String>,
       }

      Fields§

      §electrum_url: Option<String>

      The electrum url to use to connect to. If not provided it will use a default electrum server for your chosen network.

      -

      Implementations§

      source§

      impl ElectrumArgs

      source

      pub fn client(&self, network: Network) -> Result<Client>

      Trait Implementations§

      source§

      impl Args for ElectrumArgs

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ElectrumArgs

      source§

      fn clone(&self) -> ElectrumArgs

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for ElectrumArgs

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ElectrumArgs

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      Implementations§

      source§

      impl ElectrumArgs

      source

      pub fn client(&self, network: Network) -> Result<Client>

      Trait Implementations§

      source§

      impl Args for ElectrumArgs

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ElectrumArgs

      source§

      fn clone(&self) -> ElectrumArgs

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for ElectrumArgs

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ElectrumArgs

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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( +) -> 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§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ScanOptions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ScanOptions.html index bb179aad21..532c69db3c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ScanOptions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/struct.ScanOptions.html @@ -1,15 +1,15 @@ -ScanOptions in example_electrum - Rust

      Struct example_electrum::ScanOptions

      source ·
      pub struct ScanOptions {
      +ScanOptions in example_electrum - Rust

      Struct example_electrum::ScanOptions

      source ·
      pub struct ScanOptions {
           pub batch_size: usize,
       }

      Fields§

      §batch_size: usize

      Set batch size for each script_history call to electrum client.

      -

      Trait Implementations§

      source§

      impl Args for ScanOptions

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ScanOptions

      source§

      fn clone(&self) -> ScanOptions

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl CommandFactory for ScanOptions

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl Debug for ScanOptions

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ScanOptions

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      Trait Implementations§

      source§

      impl Args for ScanOptions

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ScanOptions

      source§

      fn clone(&self) -> ScanOptions

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl CommandFactory for ScanOptions

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl Debug for ScanOptions

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ScanOptions

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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( +) -> 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() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl Parser for ScanOptions

      §

      fn parse() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where 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>, @@ -17,9 +17,9 @@ 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 for ScanOptions

      source§

      fn eq(&self, other: &ScanOptions) -> bool

      This method tests for self and other values to be equal, and is used + T: Into<OsString> + Clone,

      Update from iterator, return Err on error.
      source§

      impl PartialEq for ScanOptions

      source§

      fn eq(&self, other: &ScanOptions) -> bool

      This method tests for self and other values to be equal, and is used by ==.
      1.0.0 · source§

      fn ne(&self, other: &Rhs) -> bool

      This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
      source§

      impl StructuralPartialEq for ScanOptions

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where +sufficient, and should not be overridden without very good reason.

      source§

      impl StructuralPartialEq for ScanOptions

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where T: 'static + ?Sized,

      source§

      fn type_id(&self) -> TypeId

      Gets the TypeId of self. Read more
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where T: ?Sized,

      source§

      fn borrow_mut(&mut self) -> &mut T

      Mutably borrows from an owned value. Read more
      source§

      impl<T> From<T> for T

      source§

      fn from(t: T) -> T

      Returns the argument unchanged.

      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html index b0594e467a..ab643aebd9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_electrum - Rust

      Type Alias example_electrum::ChangeSet

      source ·
      pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationHeightAnchor, ChangeSet<Keychain>>);
      \ No newline at end of file +ChangeSet in example_electrum - Rust

      Type Alias example_electrum::ChangeSet

      source ·
      pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationHeightAnchor, ChangeSet<Keychain>>);
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_MAGIC.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_MAGIC.html index 7db2c70f0b..8b1cb7d61b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_MAGIC.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_MAGIC.html @@ -1 +1 @@ -DB_MAGIC in example_esplora - Rust

      Constant example_esplora::DB_MAGIC

      source ·
      pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_esplora";
      \ No newline at end of file +DB_MAGIC in example_esplora - Rust

      Constant example_esplora::DB_MAGIC

      source ·
      pub(crate) const DB_MAGIC: &[u8] = b"bdk_example_esplora";
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_PATH.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_PATH.html index 1755584fc1..c4a40249db 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_PATH.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/constant.DB_PATH.html @@ -1 +1 @@ -DB_PATH in example_esplora - Rust

      Constant example_esplora::DB_PATH

      source ·
      pub(crate) const DB_PATH: &str = ".bdk_esplora_example.db";
      \ No newline at end of file +DB_PATH in example_esplora - Rust

      Constant example_esplora::DB_PATH

      source ·
      pub(crate) const DB_PATH: &str = ".bdk_esplora_example.db";
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/enum.EsploraCommands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/enum.EsploraCommands.html index 3946ab9f75..9a4ecce72d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/enum.EsploraCommands.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/enum.EsploraCommands.html @@ -1,4 +1,4 @@ -EsploraCommands in example_esplora - Rust

      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,15 +19,15 @@
       
      §all_spks: bool

      Scan every address that you have derived.

      §utxos: bool

      Scan unspent outpoints for spends or changes to confirmation status of residing tx.

      §unconfirmed: bool

      Scan unconfirmed transactions for updates.

      -
      §scan_options: ScanOptions
      §esplora_args: EsploraArgs

      Implementations§

      Trait Implementations§

      source§

      impl Clone for EsploraCommands

      source§

      fn clone(&self) -> EsploraCommands

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for EsploraCommands

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for EsploraCommands

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      §scan_options: ScanOptions
      §esplora_args: EsploraArgs

      Implementations§

      Trait Implementations§

      source§

      impl Clone for EsploraCommands

      source§

      fn clone(&self) -> EsploraCommands

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for EsploraCommands

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for EsploraCommands

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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<'b>( +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl Subcommand for EsploraCommands

      source§

      fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      fn has_subcommand(__clap_name: &str) -> bool

      Test whether Self can parse a specific subcommand

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl Subcommand for EsploraCommands

      source§

      fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      fn has_subcommand(__clap_name: &str) -> bool

      Test whether Self can parse a specific subcommand

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where T: 'static + ?Sized,

      source§

      fn type_id(&self) -> TypeId

      Gets the TypeId of self. Read more
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where T: ?Sized,

      source§

      fn borrow_mut(&mut self) -> &mut T

      Mutably borrows from an owned value. Read more
      source§

      impl<T> From<T> for T

      source§

      fn from(t: T) -> T

      Returns the argument unchanged.

      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/fn.main.html index 870f1cced5..d770610f71 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/fn.main.html @@ -1 +1 @@ -main in example_esplora - Rust

      Function example_esplora::main

      source ·
      pub(crate) fn main() -> Result<()>
      \ No newline at end of file +main in example_esplora - Rust

      Function example_esplora::main

      source ·
      pub(crate) fn main() -> Result<()>
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.EsploraArgs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.EsploraArgs.html index 3a2d064079..cf2ec61911 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.EsploraArgs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/struct.EsploraArgs.html @@ -1,13 +1,13 @@ -EsploraArgs in example_esplora - Rust

      Struct example_esplora::EsploraArgs

      source ·
      pub struct EsploraArgs {
      +EsploraArgs in example_esplora - Rust

      Struct example_esplora::EsploraArgs

      source ·
      pub struct EsploraArgs {
           pub(crate) esplora_url: Option<String>,
       }

      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§

      source§

      impl EsploraArgs

      source

      pub fn client(&self, network: Network) -> Result<BlockingClient>

      Trait Implementations§

      source§

      impl Args for EsploraArgs

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for EsploraArgs

      source§

      fn clone(&self) -> EsploraArgs

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for EsploraArgs

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for EsploraArgs

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      Implementations§

      source§

      impl EsploraArgs

      source

      pub fn client(&self, network: Network) -> Result<BlockingClient>

      Trait Implementations§

      source§

      impl Args for EsploraArgs

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for EsploraArgs

      source§

      fn clone(&self) -> EsploraArgs

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl Debug for EsploraArgs

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for EsploraArgs

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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( +) -> 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§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where 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 f45d1b26e9..15c70ce1e0 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,15 +1,15 @@ -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: usize

      Max number of concurrent esplora server requests.

      -

      Trait Implementations§

      source§

      impl Args for ScanOptions

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ScanOptions

      source§

      fn clone(&self) -> ScanOptions

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl CommandFactory for ScanOptions

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl Debug for ScanOptions

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ScanOptions

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( +

      Trait Implementations§

      source§

      impl Args for ScanOptions

      source§

      fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can instantiate Self. Read more
      source§

      fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

      Append to [Command] so it can update self. Read more
      source§

      impl Clone for ScanOptions

      source§

      fn clone(&self) -> ScanOptions

      Returns a copy of the value. Read more
      1.0.0 · source§

      fn clone_from(&mut self, source: &Self)

      Performs copy-assignment from source. Read more
      source§

      impl CommandFactory for ScanOptions

      source§

      fn into_app<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command
      source§

      fn into_app_for_update<'b>() -> Command<'b>

      Deprecated, replaced with CommandFactory::command_for_update
      §

      fn command<'help>() -> App<'help>

      Build a [Command] that can instantiate Self. Read more
      §

      fn command_for_update<'help>() -> App<'help>

      Build a [Command] that can update self. Read more
      source§

      impl Debug for ScanOptions

      source§

      fn fmt(&self, f: &mut Formatter<'_>) -> Result

      Formats the value using the given formatter. Read more
      source§

      impl FromArgMatches for ScanOptions

      source§

      fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      source§

      fn update_from_arg_matches( +) -> Result<Self, Error>

      Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
      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( +) -> 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() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where +) -> Result<(), Error>

      Assign values from ArgMatches to self.
      source§

      impl Parser for ScanOptions

      §

      fn parse() -> Self

      Parse from std::env::args_os(), exit on error
      §

      fn try_parse() -> Result<Self, Error>

      Parse from std::env::args_os(), return Err on error.
      §

      fn parse_from<I, T>(itr: I) -> Self
      where 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>, @@ -17,9 +17,9 @@ 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 for ScanOptions

      source§

      fn eq(&self, other: &ScanOptions) -> bool

      This method tests for self and other values to be equal, and is used + T: Into<OsString> + Clone,

      Update from iterator, return Err on error.
      source§

      impl PartialEq for ScanOptions

      source§

      fn eq(&self, other: &ScanOptions) -> bool

      This method tests for self and other values to be equal, and is used by ==.
      1.0.0 · source§

      fn ne(&self, other: &Rhs) -> bool

      This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
      source§

      impl StructuralPartialEq for ScanOptions

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where +sufficient, and should not be overridden without very good reason.

      source§

      impl StructuralPartialEq for ScanOptions

      Auto Trait Implementations§

      Blanket Implementations§

      source§

      impl<T> Any for T
      where T: 'static + ?Sized,

      source§

      fn type_id(&self) -> TypeId

      Gets the TypeId of self. Read more
      source§

      impl<T> Borrow<T> for T
      where T: ?Sized,

      source§

      fn borrow(&self) -> &T

      Immutably borrows from an owned value. Read more
      source§

      impl<T> BorrowMut<T> for T
      where T: ?Sized,

      source§

      fn borrow_mut(&mut self) -> &mut T

      Mutably borrows from an owned value. Read more
      source§

      impl<T> From<T> for T

      source§

      fn from(t: T) -> T

      Returns the argument unchanged.

      diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html index 182d9d1563..15f8fe2533 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_esplora - Rust

      Type Alias example_esplora::ChangeSet

      source ·
      pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
      \ No newline at end of file +ChangeSet in example_esplora - Rust

      Type Alias example_esplora::ChangeSet

      source ·
      pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html index 08ff977b9d..691ddba791 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/help.html @@ -1 +1 @@ -Help

      Rustdoc help

      Back
      \ No newline at end of file +Help

      Rustdoc help

      Back
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js index ab6263decb..793356887d 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,18 +1,17 @@ var searchIndex = new Map(JSON.parse('[\ ["bdk_bitcoind_rpc",{"t":"KFFEONNNNNNONNNNNNMNNNNNNNNNNNN","n":["BitcoindRpcErrorExt","BlockEvent","Emitter","bitcoincore_rpc","block","block_hash","block_height","borrow","borrow","borrow_mut","borrow_mut","checkpoint","connected_to","fmt","from","from","into","into","is_not_found_error","mempool","new","next_block","next_header","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"bdk_bitcoind_rpc"],[31,"bitcoin::blockdata::block"],[32,"bdk_chain::chain_data"],[33,"core::fmt"],[34,"bitcoin::blockdata::transaction"],[35,"alloc::vec"],[36,"bitcoincore_rpc::error"],[37,"core::result"],[38,"bitcoincore_rpc::client"],[39,"bdk_chain::local_chain"],[40,"core::option"],[41,"core::any"]],"i":[0,0,0,0,1,1,1,12,1,12,1,1,1,1,12,1,12,1,10,12,12,12,12,12,1,12,1,12,1,12,1],"f":"`````{{{d{{b{c}}}}}f{}}{{{d{{b{c}}}}}h{}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{jc}}}{{d{je}}}{}{}}0`{{{d{{b{c}}}}}l{}}{{{d{{b{c}}}}{d{jn}}}A`Ab}{cc{}}0{ce{}{}}0{{{d{Ad}}}Af}{{{d{j{Ah{c}}}}}{{Bd{{B`{{An{AjAl}}}}Bb}}}Bf}{{{d{c}}Bhh}{{Ah{c}}}Bf}{{{d{j{Ah{c}}}}}{{Bd{{Bl{{b{Bj}}}}Bb}}}Bf}{{{d{j{Ah{c}}}}}{{Bd{{Bl{{b{Bn}}}}Bb}}}Bf}{c{{Bd{e}}}{}{}}000{{{d{c}}}C`{}}077","D":"Bd","p":[[5,"BlockEvent",0],[1,"reference"],[5,"BlockHash",31],[1,"u32"],[0,"mut"],[5,"BlockId",32],[5,"Formatter",33],[8,"Result",33],[10,"Debug",33],[10,"BitcoindRpcErrorExt",0],[1,"bool"],[5,"Emitter",0],[5,"Transaction",34],[1,"u64"],[1,"tuple"],[5,"Vec",35],[6,"Error",36],[6,"Result",37],[10,"RpcApi",38],[5,"CheckPoint",39],[5,"Block",31],[6,"Option",40],[5,"Header",31],[5,"TypeId",41]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA0ABAAEAAAACAADAA4AAAAYAAcA"}],\ -["bdk_chain",{"t":"KKKSFSKGFGFPPKFRFEEEFFEPPNNMNNNOOMNNNNNENNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNOONNNNCNNNNNNNNNNNNMNNNMNONNNCCNENNNNNONNNNNNNNNNNNDNNNNNONCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNOOOFRFKNNNMNNNNNNNNNNNNNNNNNNNNNNNOOMMOMNNNNNNNNMNNNNNNNNNNNFFSPIGPIFFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNOOOOFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFFFFNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNN","n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","DescriptorId","Error","FullTxOut","Indexed","IndexedTxGraph","KeychainIndexed","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","all_spks","all_zeros","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","as_byte_array","as_raw_hash","as_ref","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_position","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","cmp","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","descriptor_id","deserialize","deserialize","deserialize","deserialize","deserialize","dust_value","engine","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","from_byte_array","from_engine","from_raw_hash","from_slice","from_slice_delegated","from_str","get_chain_tip","hash","hash","hash","hash","hash","hash","hash","height","index","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into","into_iter","is_block_in_chain","is_confirmed","is_confirmed","is_confirmed_and_spendable","is_empty","is_mature","is_on_coinbase","is_relevant","is_tx_relevant","is_used","keychain","local_chain","mark_used","miniscript","net_value","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serde","serialize","serialize","serialize","serialize","serialize","spent_by","spk_at_index","spk_client","to_byte_array","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_raw_hash","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","as_ref","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","DEFAULT_LOOKAHEAD","DescriptorAlreadyAssigned","Indexed","InsertDescriptorError","KeychainAlreadyAssigned","KeychainIndexed","KeychainTxOutIndex","NoSuchKeychain","add","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_descriptor","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","insert_descriptor","into","into","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","keychains_added","last_revealed","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","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_owned","to_owned","to_string","to_string","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","vzip","vzip","descriptor","existing_assignment","existing_assignment","keychain","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_block_ids","from_blocks","from_changeset","from_genesis_hash","from_header","from_tip","genesis_hash","get","get","get_chain_tip","hash","height","height","initial_changeset","insert","insert_block","into","into","into","into","into","into","into","into_iter","into_iter","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","push","range","range","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_include_height","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","FullScanRequest","FullScanResult","SyncRequest","SyncResult","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_outpoints","chain_spks","chain_spks_for_keychain","chain_tip","chain_tip","chain_txids","chain_update","chain_update","from","from","from","from","from_chain_tip","from_chain_tip","from_keychain_txout_index","graph_update","graph_update","inspect_outpoints","inspect_spks","inspect_spks_for_all_keychains","inspect_spks_for_keychain","inspect_txids","into","into","into","into","last_active_indices","outpoints","populate_with_revealed_spks","set_outpoints","set_spks","set_spks_for_keychain","set_txids","spks","spks_by_keychain","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txids","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","new","next","next","outspends","partial_cmp","partial_cmp","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":[[0,"bdk_chain"],[271,"bdk_chain::ConfirmationTime"],[274,"bdk_chain::indexed_tx_graph"],[331,"bdk_chain::keychain"],[470,"bdk_chain::keychain::InsertDescriptorError"],[474,"bdk_chain::local_chain"],[616,"bdk_chain::spk_client"],[680,"bdk_chain::tx_graph"],[841,"bdk_chain::spk_txout_index"],[842,"bitcoin::blockdata::script::owned"],[843,"alloc::collections::btree::map"],[844,"core::clone"],[845,"core::cmp"],[846,"core::fmt"],[847,"bdk_chain::descriptor_ext"],[848,"bdk_chain::tx_data_traits"],[849,"bdk_chain::chain_data"],[850,"bitcoin_hashes::sha256"],[851,"bdk_chain::spk_iter"],[852,"core::option"],[853,"miniscript::descriptor::key"],[854,"miniscript::descriptor"],[855,"core::borrow"],[856,"core::result"],[857,"serde::de"],[858,"bitcoin::blockdata::block"],[859,"bitcoin_hashes"],[860,"bdk_chain::chain_oracle"],[861,"core::hash"],[862,"core::slice::index"],[863,"bitcoin::blockdata::script::borrowed"],[864,"bitcoin::blockdata::transaction"],[865,"bitcoin_units::amount"],[866,"core::ops::range"],[867,"alloc::collections::btree::set"],[868,"core::iter::traits::double_ended"],[869,"serde::ser"],[870,"alloc::string"],[871,"core::iter::traits::exact_size"],[872,"core::any"],[873,"core::iter::traits::collect"],[874,"core::default"],[875,"bdk_chain::keychain::txout_index"],[876,"alloc::vec"],[877,"core::iter::traits::iterator"],[878,"core::marker"],[879,"core::ops::function"],[880,"core::convert"],[881,"alloc::sync"],[882,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,20,21,0,0,46,0,0,0,0,0,0,0,20,21,1,8,9,10,11,12,11,12,14,1,8,8,8,8,0,1,20,21,10,11,12,22,8,8,23,1,20,21,10,11,12,22,8,23,22,1,20,21,10,11,12,22,8,23,1,20,21,10,11,12,22,8,23,20,20,21,10,11,12,22,8,11,12,9,9,20,11,12,12,1,10,11,12,23,30,21,10,11,12,8,30,8,20,21,10,11,12,22,8,1,20,21,10,11,12,22,8,8,8,8,1,20,21,21,10,10,10,11,12,22,8,8,23,42,10,11,12,8,8,8,8,8,8,46,20,21,10,11,12,8,10,10,8,1,1,1,0,1,1,1,20,21,10,11,12,22,8,23,23,46,20,21,22,14,22,22,1,1,1,0,0,1,0,1,23,23,23,23,22,1,1,20,21,10,11,12,22,8,1,1,1,0,21,10,11,12,8,22,1,0,8,1,20,21,10,11,12,22,8,23,8,8,1,20,21,10,11,12,22,8,23,1,20,21,10,11,12,22,8,23,0,1,22,1,1,1,20,21,10,11,12,22,8,23,21,1,1,1,20,21,10,11,12,22,8,23,110,111,110,0,68,0,0,66,67,67,68,67,67,67,67,67,67,67,66,67,66,66,66,67,66,66,66,67,66,67,66,66,66,67,66,67,68,68,66,68,67,67,67,67,67,67,66,66,68,67,66,66,67,66,67,66,67,66,67,66,0,0,0,79,0,0,79,0,0,0,77,78,75,78,78,78,79,75,80,77,78,79,75,80,77,78,79,75,80,77,78,79,75,80,77,77,78,75,77,75,77,79,75,80,77,78,79,79,75,80,80,77,77,78,79,75,80,77,78,77,78,78,78,78,78,78,78,79,75,80,77,75,78,78,78,78,78,75,75,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,75,77,78,78,79,75,80,77,79,80,77,77,77,77,78,79,75,80,77,78,79,75,80,77,78,78,78,78,79,75,80,77,78,78,77,78,78,78,79,75,80,77,112,112,113,113,0,0,90,0,0,0,0,90,0,0,85,85,85,85,91,93,91,85,87,92,89,90,93,91,85,87,92,89,90,91,85,87,92,89,90,91,85,87,92,89,90,85,91,85,87,92,89,90,91,91,85,87,87,92,92,89,89,90,90,93,91,85,87,92,89,90,91,85,85,85,91,85,85,91,85,85,91,91,92,85,91,85,93,91,85,87,92,89,90,93,91,85,91,85,91,93,92,91,91,91,85,85,91,85,87,92,89,90,87,92,89,90,93,91,85,87,92,89,90,89,93,91,85,87,92,89,90,93,91,85,87,92,89,90,92,93,91,85,87,92,89,90,0,0,0,0,94,114,97,115,94,114,97,115,94,94,97,94,97,94,114,115,94,114,97,115,94,97,97,114,115,94,94,97,97,94,94,114,97,115,115,94,94,94,94,97,94,94,97,94,114,97,115,94,114,97,115,94,94,114,97,115,94,114,97,115,0,0,0,102,102,0,0,0,0,70,70,74,103,74,74,70,70,70,70,70,107,108,70,103,104,102,74,107,108,70,103,104,102,74,70,104,107,107,108,108,70,103,104,74,70,103,104,74,103,104,70,74,103,74,70,70,103,104,102,74,70,70,70,70,103,104,102,102,74,107,108,70,103,104,102,74,70,70,70,70,70,70,70,70,70,70,70,107,108,70,103,104,102,74,107,108,70,74,74,103,70,70,74,70,107,108,70,103,104,74,70,103,104,74,102,70,70,70,107,108,70,103,104,102,74,70,70,107,108,70,103,104,102,74,70,103,104,70,70,103,74,74,74,107,108,70,103,104,102,74,70,107,108,70,103,104,102,74,70,70,70],"f":"`````````````````````````{{{d{{b{c}}}}}{{d{{h{cf}}}}}{jln}}{{}A`}{{{d{Ab}}}Ad}{{{d{Ad}}}Ad}{{{d{Af}}}Ad}{{{d{Ah}}}Ad}``{{{d{AjAl}}Al}An}{{{d{Aj{b{c}}}}e}An{jln}{}}{{{d{A`}}}{{d{c}}}{}}{{{d{A`}}}{{d{B`}}}}{{{d{A`}}}{{d{{Bd{Bb}}}}}}{{{d{A`}}}{{d{{Bf{Bb}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000000100{{{d{Ajc}}}{{d{Aje}}}{}{}}00000000`{{{d{{b{c}}}}}{{b{c}}}j}{{{d{{Bh{c}}}}}{{Bh{c}}}j}{{{d{Bj}}}Bj}={{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{{Bl{c}}}}}{{Bl{c}}}j}{{{d{A`}}}A`}{{{d{{Bn{c}}}}}{{Bn{c}}}j}{{{d{c}}{d{Aje}}}An{}{}}00000000{{{Bh{{d{c}}}}}{{Bh{c}}}j}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}C`l}{{{d{Bj}}{d{Bj}}}C`}{{{d{Ad}}{d{Ad}}}C`}{{{d{Af}}{d{Af}}}C`}{{{d{Ah}}{d{Ah}}}C`}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}C`l}{{{d{A`}}{d{A`}}}C`}``{{{d{Ab}}}Cb}0{{{d{{Bh{c}}}}}{{Cd{Cb}}}Ab}{{{d{Af}}}Cb}{{{d{Ah}}}Cb}`{{}{{b{c}}}{}}{{}Ad}{{}Af}{{}Ah}{{{d{{Bn{c}}}}}{{d{c}}}{{Cj{{Ch{Cf}}}}}}{{{d{Cl}}}A`}{c{{Cn{Bj}}}D`}{c{{Cn{Ad}}}D`}{c{{Cn{Af}}}D`}{c{{Cn{Ah}}}D`}{c{{Cn{A`}}}D`}{{{d{Cl}}}Db}{{}c{}}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}DdDf}{{{d{Bj}}{d{Bj}}}Dd}{{{d{Ad}}{d{Ad}}}Dd}{{{d{Af}}{d{Af}}}Dd}{{{d{Ah}}{d{Ah}}}Dd}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}DdDf}{{{d{A`}}{d{A`}}}Dd}{{{d{{b{c}}}}{d{AjDh}}}Djn}{{{d{{Bh{c}}}}{d{AjDh}}}Djn}{{{d{Bj}}{d{AjDh}}}Dj}{{{d{Ad}}{d{AjDh}}}Dj}{{{d{Af}}{d{AjDh}}}Dj}{{{d{Ah}}{d{AjDh}}}Dj}{{{d{{Bl{c}}}}{d{AjDh}}}Djn}{{{d{A`}}{d{AjDh}}}Dj}000{cc{}}0{{{Bh{Ah}}}Bj}11{{{Dn{{d{Cb}}{d{Dl}}}}}Ad}{{{Dn{CbDl}}}Ad}333{B`A`}44{{{d{E`}}AdEb}Ed}{{{d{E`}}AdEb}Ad}{{{d{E`}}AdEb}Af}{{{d{E`}}AdEb}Ah}{cA`{}}05{{{d{{Bf{Bb}}}}}{{Cn{A`Ef}}}}0{{{d{Eh}}}{{Cn{A`c}}}{}}{{{d{{El{}{{Ej{c}}}}}}}{{Cn{Adc}}}n}{{{d{{Bh{c}}}}{d{Aje}}}AnEnF`}{{{d{Bj}}{d{Ajc}}}AnF`}{{{d{Ad}}{d{Ajc}}}AnF`}{{{d{Af}}{d{Ajc}}}AnF`}{{{d{Ah}}{d{Ajc}}}AnF`}{{{d{A`}}{d{Ajc}}}AnF`}``{{{d{A`}}c}{{d{e}}}{{Fb{{Bf{Bb}}}}}{}}{{{d{{b{c}}}}{d{Fd}}}{{Cd{{d{c}}}}}{jln}}{{{d{Aj{b{c}}}}{d{Ff}}}e{jln}{}}{{{d{Aj{b{c}}}}Fh{d{Fj}}}e{jln}{}}`{{{d{{b{c}}}}}e{jln}{}}{{{d{Aj{b{c}}}}cf}Dd{jln}}{ce{}{}}000000000{{{d{{El{}{{Ej{c}}}}}}AdAd}{{Cn{{Cd{Dd}}c}}}n}{{{d{{Bh{c}}}}}Dd{}}{{{d{Bj}}}Dd}{{{d{{Bl{c}}}}Cb}DdAb}{{{d{Al}}}Dd}1`{{{d{{b{c}}}}{d{Ff}}}Dd{jln}}0{{{d{{b{c}}}}{d{c}}}Dd{jln}}``{{{d{Aj{b{c}}}}{d{c}}}Dd{jln}}`{{{d{{b{c}}}}{d{Ff}}e}Fl{jln}{{Fn{c}}}}{c{{Bn{c}}}{{Cj{{Ch{Cf}}}}}}{{ce}{{Bn{c}}}{{Cj{{Ch{Cf}}}}}{{Fn{Cb}}}}{{{d{Aj{Bn{c}}}}}{{Cd{e}}}{{Cj{{Ch{Cf}}}}}{}}{{{d{Aj{Bn{c}}}}Eb}{{Cd{e}}}{{Cj{{Ch{Cf}}}}}{}}`{{{d{{b{c}}}}}{{d{{G`{{Dn{cFh}}}}}}}{jln}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}{{Cd{C`}}}Gf}{{{d{Bj}}{d{Bj}}}{{Cd{C`}}}}{{{d{Ad}}{d{Ad}}}{{Cd{C`}}}}{{{d{Af}}{d{Af}}}{{Cd{C`}}}}{{{d{Ah}}{d{Ah}}}{{Cd{C`}}}}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}{{Cd{C`}}}Gf}{{{d{A`}}{d{A`}}}{{Cd{C`}}}}{{{d{Aj{b{c}}}}{d{Ff}}}{{G`{c}}}{jln}}{{{d{Aj{b{c}}}}Fh{d{Fj}}}{{Cd{{d{c}}}}}{jln}}{{{d{{b{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jln}{{Fn{c}}}}`{{{d{Bj}}c}CnGj}{{{d{Ad}}c}CnGj}{{{d{Af}}c}CnGj}{{{d{Ah}}c}CnGj}{{{d{A`}}c}CnGj}`{{{d{{b{c}}}}{d{c}}}{{Cd{{d{Fd}}}}}{jln}}`{A`c{}}{{{d{c}}}e{}{}}00000000{A`B`}{{{d{c}}}Gl{}}{c{{Cn{e}}}{}{}}00000000000000000`{{{d{{b{c}}}}Fh}{{Cd{{Dn{{d{c}}{d{Fj}}}}}}}{jln}}`{{{d{{b{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}Gn}}}{jln}}{{{d{{b{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}}}}{jln}}{{{d{c}}}Hb{}}00000000{DbBj}{{{d{Aj{b{c}}}}{d{c}}}Dd{jln}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{Fd}}}}}}}}j}}}{jln}{{Fn{c}}}}{ce{}{}}00000000```````{{{d{Aj{Hd{ce}}}}{Hd{ce}}}AnAbAl}{{{d{Aj{Hf{ce}}}}E`Cb}{{Hd{c}}}{EdAb}Hh}{{{d{Aj{Hf{ce}}}}{d{E`}}Cb}{{Hd{c}}}{EdAb}Hh}{{{d{Aj{Hh{}{{Hj{c}}}}}}c}An{}}{{{d{Aj{Hf{ce}}}}{Hd{c}}}AnAbHh}{{{d{Aj{Hf{ce}}}}{Hl{c}}}{{Hd{c}}}AbHh}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}{{{d{Aj{Hf{ce}}}}i}{{Hd{c}}}AbHh{{Hn{}{{Gb{c}}}}}{{Hn{}{{Gb{{Dn{{d{Ff}}g}}}}}}}}{{{d{Aj{Hf{ce}}}}g}{{Hd{c}}}AbHh{{Hn{}{{Gb{{Dn{{d{Ff}}Db}}}}}}}}{{{d{Aj{Hf{ce}}}}g}{{Hd{c}}}AbHh{{Hn{}{{Gb{{Dn{FfDb}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Ajc}}}{{d{Aje}}}{}{}}0{{{d{{Hd{ce}}}}}{{Hd{ce}}}jj}{{{d{c}}{d{Aje}}}An{}{}}{{}{{Hf{ce}}}{}I`}{{}{{Hd{ce}}}{}I`}{c{{Cn{{Hd{eg}}}}}D`{lIb}Ib}{{{d{{Hd{ce}}}}{d{{Hd{ce}}}}}DdDfDf}{{{d{{Hf{ce}}}}{d{AjDh}}}Djnn}{{{d{{Hd{ce}}}}{d{AjDh}}}Djnn}{cc{}}0{{{Id{c}}}{{Hd{ce}}}{}I`}{{{If{c}}}{{Hd{e{If{c}}}}}{}{}}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}``{{{d{Aj{Hh{}{{Hj{c}}}}}}{d{Ff}}}c{}}{{{d{Aj{Hh{}{{Hj{c}}}}}}Fh{d{Fj}}}c{}}`{{{d{{Hh{}{{Hj{c}}}}}}}c{}}{{{d{{Hf{ce}}}}}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}H`c}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}H`Db}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}Ff}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}FhFj}{{Hd{c}}}AbHh}{ce{}{}}0{{{d{{Hd{ce}}}}}DdAbAl}{{{d{{Hh{}{{Hj{c}}}}}}{d{Ff}}}Dd{}}{c{{Hf{ec}}}{}{}}{{{d{{Hd{ce}}}}g}Cn{lIh}IhGj}{{{d{c}}}e{}{}}{c{{Cn{e}}}{}{}}000{{{d{c}}}Hb{}}077``````````{{IjIj}Ij}{{{d{{Il{c}}}}}{{h{c{Bn{{Ch{Cf}}}}}}}{jln}}{{{d{Aj{If{c}}}}{If{c}}}Anl}{{{d{Aj{Il{c}}}}e}An{jln}{}}{{{d{Aj{Il{c}}}}{If{c}}}An{jln}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{Ajc}}}{{d{Aje}}}{}{}}0000{{{d{{Il{c}}}}}{{Il{c}}}j}{{{d{{In{c}}}}}{{In{c}}}j}{{{d{{If{c}}}}}{{If{c}}}j}{{{d{{J`{c}}}}}{{J`{c}}}j}{{{d{Ij}}}Ij}{{{d{c}}{d{Aje}}}An{}{}}0000`{{}{{Il{c}}}{}}{{}{{If{c}}}{}}{{}Ij}{c{{Cn{{If{e}}}}}D`{lIb}}{c{{Cn{Ij}}}D`}{{{d{{In{c}}}}{d{{In{c}}}}}DdDf}{{{d{{If{c}}}}{d{{If{c}}}}}DdDf}{{{d{{J`{c}}}}{d{{J`{c}}}}}DdDf}{{{d{Ij}}{d{Ij}}}Dd}{{{d{{Il{c}}}}{d{AjDh}}}Djn}{{{d{{In{c}}}}{d{AjDh}}}Djn}0{{{d{{If{c}}}}{d{AjDh}}}Djn}{{{d{{J`{c}}}}{d{AjDh}}}Djn}0{{{d{Ij}}{d{AjDh}}}Dj}0{cc{}}0000{{{d{{Il{c}}}}{d{c}}}{{Cd{{d{{Ch{Cf}}}}}}}{jln}}`{{{d{{Il{c}}}}{d{Fd}}}{{Cd{{d{{Dn{cCb}}}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{Ff}}}e{jln}{}}{{{d{Aj{Il{c}}}}Fh{d{Fj}}}e{jln}{}}{{{d{{Il{c}}}}}e{jln}{}}{{{d{{Il{c}}}}}{{d{{b{{Dn{cCb}}}}}}}{jln}}{{{d{Aj{Il{c}}}}c{Ch{Cf}}}{{Cn{{If{c}}{In{c}}}}}{jln}}{ce{}{}}0000{{{d{{If{c}}}}}Ddl}{{{d{{Il{c}}}}{d{Ff}}}Dd{jln}}{{{d{{Il{c}}}}cCb}Dd{jln}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{Fh}}}}}}}}}{jln}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Jd{cFh}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{{Ch{Cf}}}}}}}}}}Gn}}}{jln}}``{{{d{{Il{c}}}}{d{c}}}{{Cd{Cb}}}{jln}}{{{d{{Il{c}}}}}{{h{cCb}}}{jln}}10{{{d{{Il{c}}}}}Cb{jln}}{{{d{Aj{Il{c}}}}{d{c}}Cb}An{jln}}{{{d{Aj{Il{c}}}}cCb}Dd{jln}}{{{d{{Il{c}}}}{d{Ff}}e}Fl{jln}{{Fn{c}}}}{Cb{{Il{c}}}{}}{{{d{{Il{c}}}}{d{c}}}{{Cd{{Dn{CbDd}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{c}}}{{Cd{{Dn{{Jb{f}}{If{c}}}}}}}{jln}}{{{d{{Il{c}}}}}{{d{{G`{{Jd{cFh}}}}}}}{jln}}1{{{d{Aj{Il{c}}}}{d{c}}Cb}{{Cd{{Dn{{Jf{{Jb{f}}}}{If{c}}}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{{h{cCb}}}}}{{If{c}}}{jln}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{{d{Fd}}}}}}}}}}}{jln}}{{{d{{Il{c}}}}e}{{`{{Jh{}{{Gb{{Jd{c{d{Fd}}}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Il{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jln}{{Fn{c}}}}{{{d{{If{c}}}}e}Cn{lIh}Gj}{{{d{Ij}}c}CnGj}{{{d{{Il{c}}}}cCb}{{Cd{{d{Fd}}}}}{jln}}{{{d{c}}}e{}{}}0000{{{d{c}}}Gl{}}00{{{d{Ij}}}Gh}`0{c{{Cn{e}}}{}{}}000000000{{{d{{Il{c}}}}Fh}{{Cd{{Jd{c{d{Fj}}}}}}}{jln}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Jd{c{Dn{Fh{d{Fj}}}}}}}}}}Gn}}}{jln}}{{{d{{Il{c}}}}H`}{{`{{Gd{}{{Gb{{Jd{c{Dn{Fh{d{Fj}}}}}}}}}}}}}{jln}}{{{d{c}}}Hb{}}0000{{{d{{Il{c}}}}{d{c}}}{{Cd{{Bn{{Ch{Cf}}}}}}}{jln}}{{{d{Aj{Il{c}}}}cCb}Dd{jln}}`{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{{d{Fd}}}}}}}}j}}}{jln}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Jd{c{d{Fd}}}}}}}}j}}}{jln}}{ce{}{}}0000``````````````{{{d{AjJj}}{d{Jl}}}{{Cn{AnJn}}}}{{{d{AjJj}}{d{K`}}Cb}{{Cn{JlKb}}}}{{{d{AjJj}}{d{K`}}CbAd}{{Cn{JlKd}}}}{{{d{AjJj}}Kf}{{Cn{JlKb}}}}{{{d{Kf}}}Ad}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ajc}}}{{d{Aje}}}{}{}}000000{{{d{Kf}}}Kf}{{{d{Jj}}}Jj}{{{d{Jn}}}Jn}{{{d{Kh}}}Kh}{{{d{Kb}}}Kb}{{{d{Kd}}}Kd}{{{d{c}}{d{Aje}}}An{}{}}00000{{{d{AjJj}}Ad}{{Cn{JlJn}}}}{{{d{Kf}}{d{Kf}}}Dd}{{{d{Jj}}{d{Jj}}}Dd}{{{d{Jn}}{d{Jn}}}Dd}{{{d{Kh}}{d{Kh}}}Dd}{{{d{Kb}}{d{Kb}}}Dd}{{{d{Kd}}{d{Kd}}}Dd}{{Kfc}{{Cn{KfKf}}}{{Hn{}{{Gb{Ad}}}}}}{{{d{Kf}}{d{AjDh}}}Dj}{{{d{Jj}}{d{AjDh}}}Dj}{{{d{Jn}}{d{AjDh}}}Dj}0{{{d{Kh}}{d{AjDh}}}Dj}0{{{d{Kb}}{d{AjDh}}}Dj}0{{{d{Kd}}{d{AjDh}}}Dj}0{cc{}}000000{c{{Cn{Kf{Cd{Kf}}}}}{{Hn{}{{Gb{Ad}}}}}}{{{h{CbDl}}}{{Cn{JjJn}}}}{Jl{{Cn{JjJn}}}}{Dl{{Dn{JjJl}}}}{{{d{K`}}Cb}Kf}{Kf{{Cn{JjJn}}}}{{{d{Jj}}}Dl}{{{d{Kf}}Cb}{{Cd{Kf}}}}{{{d{Jj}}Cb}{{Cd{Kf}}}}{{{d{Jj}}}{{Cn{Adc}}}{}}{{{d{Kf}}}Dl}{{{d{Kf}}}Cb}`{{{d{Jj}}}Jl}{{KfAd}Kf}{{{d{AjJj}}Ad}{{Cn{JlKh}}}}{ce{}{}}0000000{Kfc{}}{{{d{Jj}}AdAd}{{Cn{{Cd{Dd}}c}}}{}}{{{d{Kf}}}Kj}{{{d{Jj}}}Kj}{AdKf}{{{d{AjKj}}}{{Cd{c}}}{}}`{{{d{Kf}}}{{Cd{Kf}}}}{{KfAd}{{Cn{KfKf}}}}{{{d{Kf}}c}{{`{{Jh{}{{Gb{Kf}}}}}}}{{Fn{Cb}}}}{{{d{Jj}}c}{{`{{Jh{}{{Gb{Kf}}}}}}}{{Fn{Cb}}}}{{{d{Jj}}}Kf}{{{d{c}}}e{}{}}00000{{{d{c}}}Gl{}}000{c{{Cn{e}}}{}{}}000000`0000000{{{d{c}}}Hb{}}000000`???????````{{{d{c}}}{{d{e}}}{}{}}000{{{d{Ajc}}}{{d{Aje}}}{}{}}000{{Kle}Kl{{Gn{}{{Gb{Fh}}}}Kn}{{Hn{}{{L`{c}}{Gb{Fh}}}}}}{{Kle}Kl{{Gn{}{{Gb{f}}}}Kn}{{Hn{}{{L`{c}}{Gb{f}}}}}}{{{Lb{c}}cg}{{Lb{c}}}{lj}{{Jh{}{{Gb{{Jb{f}}}}}}Kn}{{Hn{}{{L`{e}}}}}}``{{Kle}Kl{{Gn{}{{Gb{H`}}}}Kn}{{Hn{}{{L`{c}}{Gb{H`}}}}}}``{cc{}}000{KfKl}{Kf{{Lb{c}}}{lj}}{{Kf{d{{Il{c}}}}}{{Lb{c}}}{nlj}}``{{Klc}Kl{{Ld{{d{Fh}}}}KnLf}}{{Klc}Kl{{Ld{{d{Fd}}}}KnLf}}{{{Lb{c}}e}{{Lb{c}}}{Knlj}{{Ld{cCb{d{Fd}}}}KnLfj}}{{{Lb{c}}ce}{{Lb{c}}}{Knlj}{{Ld{Cb{d{Fd}}}}KnLf}}{{Klc}Kl{{Ld{{d{H`}}}}KnLf}}{ce{}{}}000``{{Kl{d{{Il{c}}}}e}Kl{jlnKnLf}{{Fn{c}}}}{{Kle}Kl{{Gn{}{{Gb{Fh}}}}Kn}{{Hn{}{{L`{c}}}}}}{{Kle}Kl{{Gn{}{{Gb{f}}}}Kn}{{Hn{}{{L`{c}}}}}}>{{Kle}Kl{{Gn{}{{Gb{H`}}}}Kn}{{Hn{}{{L`{c}}}}}}``{c{{Cn{e}}}{}{}}0000000`{{{d{c}}}Hb{}}0006666`````````{{{d{{Hl{c}}}}}{{d{{G`{{Dn{cH`}}}}}}}{}}{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Id{c}}}}}{{`{{Jh{}{{Gb{Cb}}}}}}}Ab}``{{{d{Aj{Id{c}}}}{Id{c}}}Anl}{{{d{Aj{Hl{c}}}}{Id{c}}}An{jl}}{{{d{Aj{Hl{c}}}}{Hl{c}}}{{Id{c}}}{jl}}{{{d{{Hl{c}}}}}{{d{{Hl{c}}}}}{}}{{{d{{Hl{c}}}}{d{e}}Adik}IjAb{{El{}{{Ej{Lh}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Ld{{d{g}}{d{Fd}}}{{Lj{Dd}}}}}}{{{d{Aj{Hl{c}}}}e}{{Id{c}}}{jl}{{Hn{}{{Gb{{Dn{FfDb}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ajc}}}{{d{Aje}}}{}{}}000000{{{d{{Hl{c}}}}{d{Ff}}}{{Cn{GhLl}}}{}}`{c{{Cd{Fl}}}{}}{c{{Cd{Gh}}}{}}01{{{d{{Hl{c}}}}}{{Hl{c}}}j}{{{d{{Ln{ce}}}}}{{Ln{ce}}}jj}{{{d{{M`{ce}}}}}{{M`{ce}}}jj}{{{d{{Id{c}}}}}{{Id{c}}}j}{{{d{c}}{d{Aje}}}An{}{}}000{{{d{{Ln{ce}}}}{d{{Ln{ce}}}}}C`ll}{{{d{{M`{ce}}}}{d{{M`{ce}}}}}C`ll}{{}{{Hl{c}}}{}}{{}{{Id{c}}}{}}{{{d{{Ln{ce}}}}}{{d{g}}}{}{}{}}{c{{Cn{{Id{e}}}}}D`{lIb}}{{{d{{Hl{c}}}}{d{Ff}}}{{`{{Jh{}{{Gb{{Dn{EbH`}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{{Hl{c}}}}}DdDf}{{{d{{Ln{ce}}}}{d{{Ln{ce}}}}}DdDfDf}{{{d{{M`{ce}}}}{d{{M`{ce}}}}}DdDfDf}{{{d{Ll}}{d{Ll}}}Dd}{{{d{{Id{c}}}}{d{{Id{c}}}}}DdDf}{{{d{{Hl{c}}}}{d{e}}Adi}{{`{{Jh{}{{Gb{{Dn{g{Bl{c}}}}}}}}}}}Ab{{El{}{{Ej{Lh}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{AjDh}}}Djn}{{{d{{Ln{ce}}}}{d{AjDh}}}Djnn}{{{d{{M`{ce}}}}{d{AjDh}}}Djnn}{{{d{Ll}}{d{AjDh}}}Dj}0{{{d{{Id{c}}}}{d{AjDh}}}Djn}{cc{}}000000{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Ln{{Mb{Ff}}c}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{e}}AdH`}{{Cd{{Bh{{d{c}}}}}}}Ab{{El{}{{Ej{Lh}}}}}}{{{d{{Hl{c}}}}{d{e}}AdFh}{{Cd{{Dn{{Bh{{d{c}}}}H`}}}}}Ab{{El{}{{Ej{Lh}}}}}}{{{d{{Hl{c}}}}H`}{{Cd{{Mb{Ff}}}}}{}}{{{d{{Hl{c}}}}H`}{{Cd{{Ln{{Mb{Ff}}c}}}}}{}}{{{d{{Hl{c}}}}Fh}{{Cd{{d{Fj}}}}}{}}{{{d{{Hl{c}}}}}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}H`c}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}H`Db}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}e}{{Id{c}}}{jl}{{Md{{Mb{Ff}}}}}}{{{d{Aj{Hl{c}}}}FhFj}{{Id{c}}}{jl}}{ce{}{}}00000000{{{d{{Hl{c}}}}}Dd{}}{{{d{{Id{c}}}}}Ddl}``{{{d{{Hl{c}}}}{d{e}}Ad}{{`{{Jh{}{{Gb{{M`{{Mb{Ff}}c}}}}}}}}}AbEl}{{{Hl{c}}g}{{Hl{e}}}{jl}{jl}{{Ld{c}{{Lj{e}}}}}}{{{Id{c}}g}{{Id{e}}}ll{{Ld{c}{{Lj{e}}}}}}{c{{Hl{e}}}{{Hn{}{{Gb{Ff}}}}}{jl}}{{{d{Aj{Mf{cg}}}}}{{Cd{i}}}{}{}{{Ld{Eb{Mb{Ff}}}{{Lj{{Cd{e}}}}}}}{}}{{{d{Aj{Mh{cg}}}}}{{Cd{i}}}{}{}{{Ld{EbH`}{{Lj{{Cd{e}}}}}}}{}}{{{d{{Hl{c}}}}Fh}{{d{{Mj{H`}}}}}{}}{{{d{{Ln{ce}}}}{d{{Ln{ce}}}}}{{Cd{C`}}}GfGf}{{{d{{M`{ce}}}}{d{{M`{ce}}}}}{{Cd{C`}}}GfGf}{{{d{{Id{c}}}}e}Cn{lIh}Gj}{{{d{c}}}e{}{}}000{{{d{c}}}Gl{}}{{{d{{Hl{c}}}}{d{e}}Adik}{{Cn{Ij}}}AbElj{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{Ld{{d{g}}{d{Fd}}}{{Lj{Dd}}}}}}{{{d{{Hl{c}}}}{d{e}}Adi}{{`{{Jh{}{{Gb{{Cn{{Dn{g{Bl{c}}}}}}}}}}}}}AbElj{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{c{{Cn{e}}}{}{}}000000{{{d{{Hl{c}}}}{d{e}}AdH`}{{Cn{{Cd{{Bh{{d{c}}}}}}}}}AbEl}{{{d{{Hl{c}}}}{d{e}}AdFh}{{Cn{{Cd{{Dn{{Bh{{d{c}}}}H`}}}}}}}AbEl}2222222{{{d{{Hl{c}}}}{d{e}}Ad}{{`{{Jh{}{{Gb{{Cn{{M`{{Mb{Ff}}c}}}}}}}}}}}AbEl}``{{{d{{Hl{c}}}}H`}{{Cd{{h{Cb{d{Fj}}}}}}}{}}{{{d{{Hl{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{Cb{d{{Mj{H`}}}}}}}}}}}}}{}}`{{{d{{Id{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}``{{{d{c}}}Hb{}}000000{{{d{Aj{Hl{c}}}}Db}{{Id{c}}}{jl}}{ce{}{}}000000{{{d{{Hl{c}}}}ei}{{Mf{ci}}}{jl}{{Md{{Mb{Ff}}}}}{}{{Ld{Eb{Mb{Ff}}}{{Lj{{Cd{g}}}}}}}}{{{d{{Hl{c}}}}{d{Ff}}g}{{Mh{cg}}}{}{}{{Ld{EbH`}{{Lj{{Cd{e}}}}}}}}{{{d{{Hl{c}}}}H`g}{{Mh{cg}}}{jl}{}{{Ld{EbH`}{{Lj{{Cd{e}}}}}}}}","D":"BNj","p":[[5,"SpkTxOutIndex",0,841],[1,"reference"],[5,"ScriptBuf",842],[5,"BTreeMap",843],[10,"Clone",844],[10,"Ord",845],[10,"Debug",846],[5,"DescriptorId",0,847],[10,"Anchor",0,848],[5,"BlockId",0,849],[5,"ConfirmationHeightAnchor",0,849],[5,"ConfirmationTimeHeightAnchor",0,849],[0,"mut"],[10,"Append",0,848],[1,"unit"],[5,"Hash",850],[1,"u8"],[1,"array"],[1,"slice"],[6,"ChainPosition",0,849],[6,"ConfirmationTime",0,849],[5,"FullTxOut",0,849],[5,"SpkIterator",0,851],[6,"Ordering",845],[1,"u32"],[6,"Option",852],[6,"DescriptorPublicKey",853],[6,"Descriptor",854],[10,"Borrow",855],[10,"DescriptorExt",0,847],[6,"Result",856],[10,"Deserializer",857],[1,"u64"],[1,"bool"],[10,"PartialEq",845],[5,"Formatter",846],[8,"Result",846],[5,"BlockHash",858],[1,"tuple"],[5,"Block",858],[1,"usize"],[10,"AnchorFromBlockPosition",0,848],[5,"FromSliceError",859],[1,"str"],[17,"Error"],[10,"ChainOracle",0,860],[10,"Hash",861],[10,"Hasher",861],[10,"SliceIndex",862],[5,"Script",863],[5,"Transaction",864],[5,"OutPoint",864],[5,"TxOut",864],[5,"SignedAmount",865],[10,"RangeBounds",866],[5,"BTreeSet",867],[17,"Item"],[10,"DoubleEndedIterator",868],[10,"PartialOrd",845],[5,"Amount",865],[10,"Serializer",869],[5,"String",870],[10,"ExactSizeIterator",871],[5,"Txid",864],[5,"TypeId",872],[5,"ChangeSet",274],[5,"IndexedTxGraph",274],[10,"Indexer",274],[17,"ChangeSet"],[5,"TxGraph",680],[10,"IntoIterator",873],[10,"Default",874],[10,"Deserialize",857],[5,"ChangeSet",680],[5,"ChangeSet",331,875],[10,"Serialize",869],[5,"Balance",331],[5,"KeychainTxOutIndex",331,875],[6,"InsertDescriptorError",331,875],[5,"NoSuchKeychain",331,875],[8,"Indexed",331],[8,"KeychainIndexed",331],[5,"Vec",876],[10,"Iterator",877],[5,"LocalChain",474],[8,"ChangeSet",474],[5,"MissingGenesisError",474],[5,"Header",858],[5,"CannotConnectError",474],[6,"ApplyHeaderError",474],[5,"CheckPoint",474],[5,"AlterCheckPointError",474],[5,"CheckPointIter",474],[5,"SyncRequest",616],[10,"Send",878],[17,"IntoIter"],[5,"FullScanRequest",616],[10,"FnMut",879],[10,"Sync",878],[6,"Infallible",880],[17,"Output"],[6,"CalculateFeeError",680],[5,"TxNode",680],[5,"CanonicalTx",680],[5,"Arc",881],[10,"Into",880],[5,"TxAncestors",680],[5,"TxDescendants",680],[5,"HashSet",882],[15,"Confirmed",271],[15,"Unconfirmed",271],[15,"DescriptorAlreadyAssigned",470],[15,"KeychainAlreadyAssigned",470],[5,"SyncResult",616],[5,"FullScanResult",616]],"r":[[0,848],[1,848],[2,848],[3,851],[4,849],[6,860],[7,849],[8,849],[9,849],[10,849],[13,847],[14,847],[16,849],[17,331],[18,274],[19,331],[20,851],[21,841],[22,680],[332,875],[333,875],[336,875],[339,875],[340,875]],"b":[[37,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[38,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[121,"impl-Debug-for-DescriptorId"],[122,"impl-LowerHex-for-DescriptorId"],[123,"impl-Display-for-DescriptorId"],[124,"impl-UpperHex-for-DescriptorId"],[130,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[131,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[302,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[303,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[344,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[345,"impl-KeychainTxOutIndex%3CK%3E"],[377,"impl-Debug-for-InsertDescriptorError%3CK%3E"],[378,"impl-Display-for-InsertDescriptorError%3CK%3E"],[380,"impl-Debug-for-NoSuchKeychain%3CK%3E"],[381,"impl-Display-for-NoSuchKeychain%3CK%3E"],[382,"impl-Display-for-Balance"],[383,"impl-Debug-for-Balance"],[525,"impl-Display-for-MissingGenesisError"],[526,"impl-Debug-for-MissingGenesisError"],[527,"impl-Debug-for-AlterCheckPointError"],[528,"impl-Display-for-AlterCheckPointError"],[529,"impl-Debug-for-CannotConnectError"],[530,"impl-Display-for-CannotConnectError"],[531,"impl-Debug-for-ApplyHeaderError"],[532,"impl-Display-for-ApplyHeaderError"],[746,"impl-Debug-for-CalculateFeeError"],[747,"impl-Display-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANQBSgASAAIAFwAAABsAAAAdAAIAIwABACYAFQA9ABEAUAAGAFwAAQBfAAMAZQAEAGsAEgCAAAAAgwABAIgAAACMAAQAkgACAJYABQCeAAAAoAABAKMAAACuAAAAtwAAALwAAADAAAEAxQAGAM8ABQDYAAkA4wASAPsACAAHAQgAFwEAAB0BAAAhAQsALwEBAD8BAABCAQkAVgEAAFkBAABbARMAcAEQAIkBAgCUAQAArQEBALABBwC7AQkAyAEEANIBBADqARkABQIFAAwCCQAmAgAANAICADoCAABBAhAAUwINAGICBgBtAgcAmAIHAKECBwC3AgAAugIAAL0CDQDNAhEA4AIEAOgCBQAHAwEACgMAABEDAQAUAwcAHwMGACgDBgA4AwYAQAMGAA=="}],\ +["bdk_chain",{"t":"KKKSFSKGFGFPPKFRFEEEFFEPPNNMNNNOOMNNNNNENNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNOONNNNCNNNNNNNNNNNNMNNNMNONNNCCNENNNNNONNNNNNNNNCNNNDNNNNNONCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNNNNNNNNNNNNNNNNNNNOOOFRFKNNNMNNNNNNNNNNNNNNNNNNNNNNNOOMMOMNNNNNNNNMNNNNNNNNNNNFFSPIGPIFFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNOOOOFGPFIFFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNFRKKRNNNNONNNNNNNNNNNONNMONNNNNNMFFFFNNNNNNNNNNNOONOONNNNNNNOONNNNNNNNNOONNNNNOONNNNNNNNONNNNNNNNGFFPPFFFFNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONOONNNNNNNNNNNNNNNNNN","n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","DescriptorId","Error","FullTxOut","Indexed","IndexedTxGraph","KeychainIndexed","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","all_spks","all_zeros","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","as_byte_array","as_raw_hash","as_ref","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_position","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","cmp","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","descriptor_id","deserialize","deserialize","deserialize","deserialize","deserialize","dust_value","engine","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","from_byte_array","from_engine","from_raw_hash","from_slice","from_slice_delegated","from_str","get_chain_tip","hash","hash","hash","hash","hash","hash","hash","height","index","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into","into_iter","is_block_in_chain","is_confirmed","is_confirmed","is_confirmed_and_spendable","is_empty","is_mature","is_on_coinbase","is_relevant","is_tx_relevant","is_used","keychain","local_chain","mark_used","miniscript","net_value","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","persist","scan","scan_txout","sent_and_received","serde","serialize","serialize","serialize","serialize","serialize","spent_by","spk_at_index","spk_client","to_byte_array","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_raw_hash","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","as_ref","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","DEFAULT_LOOKAHEAD","DescriptorAlreadyAssigned","Indexed","InsertDescriptorError","KeychainAlreadyAssigned","KeychainIndexed","KeychainTxOutIndex","NoSuchKeychain","add","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_descriptor","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","insert_descriptor","into","into","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","keychains_added","last_revealed","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","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_owned","to_owned","to_string","to_string","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","vzip","vzip","descriptor","existing_assignment","existing_assignment","keychain","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_block_ids","from_blocks","from_changeset","from_genesis_hash","from_header","from_tip","genesis_hash","get","get","get_chain_tip","hash","height","height","initial_changeset","insert","insert_block","into","into","into","into","into","into","into","into_iter","into_iter","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","push","range","range","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_include_height","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CombinedChangeSet","LoadError","PersistBackend","StageExt","WriteError","append","append_and_commit_to","borrow","borrow_mut","chain","clone","clone_into","commit_to","default","deserialize","eq","fmt","from","from","from","from","indexed_tx_graph","into","is_empty","load_changes","network","serialize","to_owned","try_from","try_into","type_id","vzip","write_changes","FullScanRequest","FullScanResult","SyncRequest","SyncResult","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_outpoints","chain_spks","chain_spks_for_keychain","chain_tip","chain_tip","chain_txids","chain_update","chain_update","from","from","from","from","from_chain_tip","from_chain_tip","from_keychain_txout_index","graph_update","graph_update","inspect_outpoints","inspect_spks","inspect_spks_for_all_keychains","inspect_spks_for_keychain","inspect_txids","into","into","into","into","last_active_indices","outpoints","populate_with_revealed_spks","set_outpoints","set_spks","set_spks_for_keychain","set_txids","spks","spks_by_keychain","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txids","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","new","next","next","outspends","partial_cmp","partial_cmp","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":[[0,"bdk_chain"],[272,"bdk_chain::ConfirmationTime"],[275,"bdk_chain::indexed_tx_graph"],[332,"bdk_chain::keychain"],[471,"bdk_chain::keychain::InsertDescriptorError"],[475,"bdk_chain::local_chain"],[617,"bdk_chain::persist"],[650,"bdk_chain::spk_client"],[714,"bdk_chain::tx_graph"],[875,"bdk_chain::spk_txout_index"],[876,"bitcoin::blockdata::script::owned"],[877,"alloc::collections::btree::map"],[878,"core::clone"],[879,"core::cmp"],[880,"core::fmt"],[881,"bdk_chain::descriptor_ext"],[882,"bdk_chain::tx_data_traits"],[883,"bdk_chain::chain_data"],[884,"bitcoin_hashes::sha256"],[885,"bdk_chain::spk_iter"],[886,"core::option"],[887,"miniscript::descriptor::key"],[888,"miniscript::descriptor"],[889,"core::borrow"],[890,"core::result"],[891,"serde::de"],[892,"bitcoin::blockdata::block"],[893,"bitcoin_hashes"],[894,"bdk_chain::chain_oracle"],[895,"core::hash"],[896,"core::slice::index"],[897,"bitcoin::blockdata::script::borrowed"],[898,"bitcoin::blockdata::transaction"],[899,"bitcoin_units::amount"],[900,"core::ops::range"],[901,"alloc::collections::btree::set"],[902,"core::iter::traits::double_ended"],[903,"serde::ser"],[904,"alloc::string"],[905,"core::iter::traits::exact_size"],[906,"core::any"],[907,"core::iter::traits::collect"],[908,"core::default"],[909,"bdk_chain::keychain::txout_index"],[910,"alloc::vec"],[911,"core::iter::traits::iterator"],[912,"core::marker"],[913,"core::ops::function"],[914,"core::convert"],[915,"alloc::sync"],[916,"std::collections::hash::set"]],"i":[0,0,0,0,0,0,0,0,0,0,0,20,21,0,0,46,0,0,0,0,0,0,0,20,21,1,8,9,10,11,12,11,12,14,1,8,8,8,8,0,1,20,21,10,11,12,22,8,8,23,1,20,21,10,11,12,22,8,23,22,1,20,21,10,11,12,22,8,23,1,20,21,10,11,12,22,8,23,20,20,21,10,11,12,22,8,11,12,9,9,20,11,12,12,1,10,11,12,23,30,21,10,11,12,8,30,8,20,21,10,11,12,22,8,1,20,21,10,11,12,22,8,8,8,8,1,20,21,21,10,10,10,11,12,22,8,8,23,42,10,11,12,8,8,8,8,8,8,46,20,21,10,11,12,8,10,10,8,1,1,1,0,1,1,1,20,21,10,11,12,22,8,23,23,46,20,21,22,14,22,22,1,1,1,0,0,1,0,1,23,23,23,23,22,1,1,20,21,10,11,12,22,8,0,1,1,1,0,21,10,11,12,8,22,1,0,8,1,20,21,10,11,12,22,8,23,8,8,1,20,21,10,11,12,22,8,23,1,20,21,10,11,12,22,8,23,0,1,22,1,1,1,20,21,10,11,12,22,8,23,21,1,1,1,20,21,10,11,12,22,8,23,116,117,116,0,68,0,0,66,67,67,68,67,67,67,67,67,67,67,66,67,66,66,66,67,66,66,66,67,66,67,66,66,66,67,66,67,68,68,66,68,67,67,67,67,67,67,66,66,68,67,66,66,67,66,67,66,67,66,67,66,0,0,0,79,0,0,79,0,0,0,77,78,75,78,78,78,79,75,80,77,78,79,75,80,77,78,79,75,80,77,78,79,75,80,77,77,78,75,77,75,77,79,75,80,77,78,79,79,75,80,80,77,77,78,79,75,80,77,78,77,78,78,78,78,78,78,78,79,75,80,77,75,78,78,78,78,78,75,75,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,75,77,78,78,79,75,80,77,79,80,77,77,77,77,78,79,75,80,77,78,79,75,80,77,78,78,78,78,79,75,80,77,78,78,77,78,78,78,79,75,80,77,118,118,119,119,0,0,90,0,0,0,0,90,0,0,85,85,85,85,91,93,91,85,87,92,89,90,93,91,85,87,92,89,90,91,85,87,92,89,90,91,85,87,92,89,90,85,91,85,87,92,89,90,91,91,85,87,87,92,92,89,89,90,90,93,91,85,87,92,89,90,91,85,85,85,91,85,85,91,85,85,91,91,92,85,91,85,93,91,85,87,92,89,90,93,91,85,91,85,91,93,92,91,91,91,85,85,91,85,87,92,89,90,87,92,89,90,93,91,85,87,92,89,90,89,93,91,85,87,92,89,90,93,91,85,87,92,89,90,92,93,91,85,87,92,89,90,0,96,0,0,96,94,95,94,94,94,94,94,95,94,94,94,94,94,94,94,94,94,94,94,96,94,94,94,94,94,94,94,96,0,0,0,0,100,120,103,121,100,120,103,121,100,100,103,100,103,100,120,121,100,120,103,121,100,103,103,120,121,100,100,103,103,100,100,120,103,121,121,100,100,100,100,103,100,100,103,100,120,103,121,100,120,103,121,100,100,120,103,121,100,120,103,121,0,0,0,108,108,0,0,0,0,70,70,74,109,74,74,70,70,70,70,70,113,114,70,109,110,108,74,113,114,70,109,110,108,74,70,110,113,113,114,114,70,109,110,74,70,109,110,74,109,110,70,74,109,74,70,70,109,110,108,74,70,70,70,70,109,110,108,108,74,113,114,70,109,110,108,74,70,70,70,70,70,70,70,70,70,70,70,113,114,70,109,110,108,74,113,114,70,74,74,109,70,70,74,70,113,114,70,109,110,74,70,109,110,74,108,70,70,70,113,114,70,109,110,108,74,70,70,113,114,70,109,110,108,74,70,109,110,70,70,109,74,74,74,113,114,70,109,110,108,74,70,113,114,70,109,110,108,74,70,70,70],"f":"`````````````````````````{{{d{{b{c}}}}}{{d{{h{cf}}}}}{jln}}{{}A`}{{{d{Ab}}}Ad}{{{d{Ad}}}Ad}{{{d{Af}}}Ad}{{{d{Ah}}}Ad}``{{{d{AjAl}}Al}An}{{{d{Aj{b{c}}}}e}An{jln}{}}{{{d{A`}}}{{d{c}}}{}}{{{d{A`}}}{{d{B`}}}}{{{d{A`}}}{{d{{Bd{Bb}}}}}}{{{d{A`}}}{{d{{Bf{Bb}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000000010{{{d{Ajc}}}{{d{Aje}}}{}{}}00000000`{{{d{{b{c}}}}}{{b{c}}}j}{{{d{{Bh{c}}}}}{{Bh{c}}}j}{{{d{Bj}}}Bj}={{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{{Bl{c}}}}}{{Bl{c}}}j}{{{d{A`}}}A`}{{{d{{Bn{c}}}}}{{Bn{c}}}j}{{{d{c}}{d{Aje}}}An{}{}}00000000{{{Bh{{d{c}}}}}{{Bh{c}}}j}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}C`l}{{{d{Bj}}{d{Bj}}}C`}{{{d{Ad}}{d{Ad}}}C`}{{{d{Af}}{d{Af}}}C`}{{{d{Ah}}{d{Ah}}}C`}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}C`l}{{{d{A`}}{d{A`}}}C`}``{{{d{Ab}}}Cb}0{{{d{{Bh{c}}}}}{{Cd{Cb}}}Ab}{{{d{Af}}}Cb}{{{d{Ah}}}Cb}`{{}{{b{c}}}{}}{{}Ad}{{}Af}{{}Ah}{{{d{{Bn{c}}}}}{{d{c}}}{{Cj{{Ch{Cf}}}}}}{{{d{Cl}}}A`}{c{{Cn{Bj}}}D`}{c{{Cn{Ad}}}D`}{c{{Cn{Af}}}D`}{c{{Cn{Ah}}}D`}{c{{Cn{A`}}}D`}{{{d{Cl}}}Db}{{}c{}}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}DdDf}{{{d{Bj}}{d{Bj}}}Dd}{{{d{Ad}}{d{Ad}}}Dd}{{{d{Af}}{d{Af}}}Dd}{{{d{Ah}}{d{Ah}}}Dd}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}DdDf}{{{d{A`}}{d{A`}}}Dd}{{{d{{b{c}}}}{d{AjDh}}}Djn}{{{d{{Bh{c}}}}{d{AjDh}}}Djn}{{{d{Bj}}{d{AjDh}}}Dj}{{{d{Ad}}{d{AjDh}}}Dj}{{{d{Af}}{d{AjDh}}}Dj}{{{d{Ah}}{d{AjDh}}}Dj}{{{d{{Bl{c}}}}{d{AjDh}}}Djn}{{{d{A`}}{d{AjDh}}}Dj}000{cc{}}00{{{Bh{Ah}}}Bj}{{{Dn{{d{Cb}}{d{Dl}}}}}Ad}2{{{Dn{CbDl}}}Ad}333{B`A`}44{{{d{E`}}AdEb}Ed}{{{d{E`}}AdEb}Ad}{{{d{E`}}AdEb}Af}{{{d{E`}}AdEb}Ah}{cA`{}}05{{{d{{Bf{Bb}}}}}{{Cn{A`Ef}}}}0{{{d{Eh}}}{{Cn{A`c}}}{}}{{{d{{El{}{{Ej{c}}}}}}}{{Cn{Adc}}}n}{{{d{{Bh{c}}}}{d{Aje}}}AnEnF`}{{{d{Bj}}{d{Ajc}}}AnF`}{{{d{Ad}}{d{Ajc}}}AnF`}{{{d{Af}}{d{Ajc}}}AnF`}{{{d{Ah}}{d{Ajc}}}AnF`}{{{d{A`}}{d{Ajc}}}AnF`}``{{{d{A`}}c}{{d{e}}}{{Fb{{Bf{Bb}}}}}{}}{{{d{{b{c}}}}{d{Fd}}}{{Cd{{d{c}}}}}{jln}}{{{d{Aj{b{c}}}}{d{Ff}}}e{jln}{}}{{{d{Aj{b{c}}}}Fh{d{Fj}}}e{jln}{}}`{{{d{{b{c}}}}}e{jln}{}}{{{d{Aj{b{c}}}}cf}Dd{jln}}{ce{}{}}000000000{{{d{{El{}{{Ej{c}}}}}}AdAd}{{Cn{{Cd{Dd}}c}}}n}{{{d{{Bh{c}}}}}Dd{}}{{{d{Bj}}}Dd}{{{d{{Bl{c}}}}Cb}DdAb}{{{d{Al}}}Dd}1`{{{d{{b{c}}}}{d{Ff}}}Dd{jln}}0{{{d{{b{c}}}}{d{c}}}Dd{jln}}``{{{d{Aj{b{c}}}}{d{c}}}Dd{jln}}`{{{d{{b{c}}}}{d{Ff}}e}Fl{jln}{{Fn{c}}}}{c{{Bn{c}}}{{Cj{{Ch{Cf}}}}}}{{ce}{{Bn{c}}}{{Cj{{Ch{Cf}}}}}{{Fn{Cb}}}}{{{d{Aj{Bn{c}}}}}{{Cd{e}}}{{Cj{{Ch{Cf}}}}}{}}{{{d{Aj{Bn{c}}}}Eb}{{Cd{e}}}{{Cj{{Ch{Cf}}}}}{}}`{{{d{{b{c}}}}}{{d{{G`{{Dn{cFh}}}}}}}{jln}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Bh{c}}}}{d{{Bh{c}}}}}{{Cd{C`}}}Gf}{{{d{Bj}}{d{Bj}}}{{Cd{C`}}}}{{{d{Ad}}{d{Ad}}}{{Cd{C`}}}}{{{d{Af}}{d{Af}}}{{Cd{C`}}}}{{{d{Ah}}{d{Ah}}}{{Cd{C`}}}}{{{d{{Bl{c}}}}{d{{Bl{c}}}}}{{Cd{C`}}}Gf}{{{d{A`}}{d{A`}}}{{Cd{C`}}}}`{{{d{Aj{b{c}}}}{d{Ff}}}{{G`{c}}}{jln}}{{{d{Aj{b{c}}}}Fh{d{Fj}}}{{Cd{{d{c}}}}}{jln}}{{{d{{b{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jln}{{Fn{c}}}}`{{{d{Bj}}c}CnGj}{{{d{Ad}}c}CnGj}{{{d{Af}}c}CnGj}{{{d{Ah}}c}CnGj}{{{d{A`}}c}CnGj}`{{{d{{b{c}}}}{d{c}}}{{Cd{{d{Fd}}}}}{jln}}`{A`c{}}{{{d{c}}}e{}{}}00000000{A`B`}{{{d{c}}}Gl{}}{c{{Cn{e}}}{}{}}00000000000000000`{{{d{{b{c}}}}Fh}{{Cd{{Dn{{d{c}}{d{Fj}}}}}}}{jln}}`{{{d{{b{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}Gn}}}{jln}}{{{d{{b{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{{d{c}}Fh{d{Fj}}}}}}}}}}}{jln}}{{{d{c}}}Hb{}}00000000{DbBj}{{{d{Aj{b{c}}}}{d{c}}}Dd{jln}}{{{d{{b{c}}}}e}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{Fd}}}}}}}}j}}}{jln}{{Fn{c}}}}{ce{}{}}00000000```````{{{d{Aj{Hd{ce}}}}{Hd{ce}}}AnAbAl}{{{d{Aj{Hf{ce}}}}E`Cb}{{Hd{c}}}{EdAb}Hh}{{{d{Aj{Hf{ce}}}}{d{E`}}Cb}{{Hd{c}}}{EdAb}Hh}{{{d{Aj{Hh{}{{Hj{c}}}}}}c}An{}}{{{d{Aj{Hf{ce}}}}{Hd{c}}}AnAbHh}{{{d{Aj{Hf{ce}}}}{Hl{c}}}{{Hd{c}}}AbHh}{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}{{{d{Aj{Hf{ce}}}}i}{{Hd{c}}}AbHh{{Hn{}{{Gb{c}}}}}{{Hn{}{{Gb{{Dn{{d{Ff}}g}}}}}}}}{{{d{Aj{Hf{ce}}}}g}{{Hd{c}}}AbHh{{Hn{}{{Gb{{Dn{{d{Ff}}Db}}}}}}}}{{{d{Aj{Hf{ce}}}}g}{{Hd{c}}}AbHh{{Hn{}{{Gb{{Dn{FfDb}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Ajc}}}{{d{Aje}}}{}{}}0{{{d{{Hd{ce}}}}}{{Hd{ce}}}jj}{{{d{c}}{d{Aje}}}An{}{}}{{}{{Hf{ce}}}{}I`}{{}{{Hd{ce}}}{}I`}{c{{Cn{{Hd{eg}}}}}D`{lIb}Ib}{{{d{{Hd{ce}}}}{d{{Hd{ce}}}}}DdDfDf}{{{d{{Hf{ce}}}}{d{AjDh}}}Djnn}{{{d{{Hd{ce}}}}{d{AjDh}}}Djnn}{cc{}}{{{Id{c}}}{{Hd{ce}}}{}I`}{{{If{c}}}{{Hd{e{If{c}}}}}{}{}}2{{{d{{Hf{ce}}}}}{{d{{Hl{c}}}}}{}{}}``{{{d{Aj{Hh{}{{Hj{c}}}}}}{d{Ff}}}c{}}{{{d{Aj{Hh{}{{Hj{c}}}}}}Fh{d{Fj}}}c{}}`{{{d{{Hh{}{{Hj{c}}}}}}}c{}}{{{d{{Hf{ce}}}}}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}H`c}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}H`Db}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}Ff}{{Hd{c}}}AbHh}{{{d{Aj{Hf{ce}}}}FhFj}{{Hd{c}}}AbHh}{ce{}{}}0{{{d{{Hd{ce}}}}}DdAbAl}{{{d{{Hh{}{{Hj{c}}}}}}{d{Ff}}}Dd{}}{c{{Hf{ec}}}{}{}}{{{d{{Hd{ce}}}}g}Cn{lIh}IhGj}{{{d{c}}}e{}{}}{c{{Cn{e}}}{}{}}000{{{d{c}}}Hb{}}077``````````{{IjIj}Ij}{{{d{{Il{c}}}}}{{h{c{Bn{{Ch{Cf}}}}}}}{jln}}{{{d{Aj{If{c}}}}{If{c}}}Anl}{{{d{Aj{Il{c}}}}e}An{jln}{}}{{{d{Aj{Il{c}}}}{If{c}}}An{jln}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{Ajc}}}{{d{Aje}}}{}{}}0000{{{d{{Il{c}}}}}{{Il{c}}}j}{{{d{{In{c}}}}}{{In{c}}}j}{{{d{{If{c}}}}}{{If{c}}}j}{{{d{{J`{c}}}}}{{J`{c}}}j}{{{d{Ij}}}Ij}{{{d{c}}{d{Aje}}}An{}{}}0000`{{}{{Il{c}}}{}}{{}{{If{c}}}{}}{{}Ij}{c{{Cn{{If{e}}}}}D`{lIb}}{c{{Cn{Ij}}}D`}{{{d{{In{c}}}}{d{{In{c}}}}}DdDf}{{{d{{If{c}}}}{d{{If{c}}}}}DdDf}{{{d{{J`{c}}}}{d{{J`{c}}}}}DdDf}{{{d{Ij}}{d{Ij}}}Dd}{{{d{{Il{c}}}}{d{AjDh}}}Djn}{{{d{{In{c}}}}{d{AjDh}}}Djn}0{{{d{{If{c}}}}{d{AjDh}}}Djn}{{{d{{J`{c}}}}{d{AjDh}}}Djn}0{{{d{Ij}}{d{AjDh}}}Dj}0{cc{}}0000{{{d{{Il{c}}}}{d{c}}}{{Cd{{d{{Ch{Cf}}}}}}}{jln}}`{{{d{{Il{c}}}}{d{Fd}}}{{Cd{{d{{Dn{cCb}}}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{Ff}}}e{jln}{}}{{{d{Aj{Il{c}}}}Fh{d{Fj}}}e{jln}{}}{{{d{{Il{c}}}}}e{jln}{}}{{{d{{Il{c}}}}}{{d{{b{{Dn{cCb}}}}}}}{jln}}{{{d{Aj{Il{c}}}}c{Ch{Cf}}}{{Cn{{If{c}}{In{c}}}}}{jln}}{ce{}{}}0000{{{d{{If{c}}}}}Ddl}{{{d{{Il{c}}}}{d{Ff}}}Dd{jln}}{{{d{{Il{c}}}}cCb}Dd{jln}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{Fh}}}}}}}}}{jln}}{{{d{{Il{c}}}}e}{{`{{Gd{}{{Gb{{Jd{cFh}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Dn{{d{c}}{d{{Ch{Cf}}}}}}}}}}Gn}}}{jln}}``{{{d{{Il{c}}}}{d{c}}}{{Cd{Cb}}}{jln}}{{{d{{Il{c}}}}}{{h{cCb}}}{jln}}10{{{d{{Il{c}}}}}Cb{jln}}{{{d{Aj{Il{c}}}}{d{c}}Cb}An{jln}}{{{d{Aj{Il{c}}}}cCb}Dd{jln}}{{{d{{Il{c}}}}{d{Ff}}e}Fl{jln}{{Fn{c}}}}{Cb{{Il{c}}}{}}{{{d{{Il{c}}}}{d{c}}}{{Cd{{Dn{CbDd}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{c}}}{{Cd{{Dn{{Jb{f}}{If{c}}}}}}}{jln}}{{{d{{Il{c}}}}}{{d{{G`{{Jd{cFh}}}}}}}{jln}}1{{{d{Aj{Il{c}}}}{d{c}}Cb}{{Cd{{Dn{{Jf{{Jb{f}}}}{If{c}}}}}}}{jln}}{{{d{Aj{Il{c}}}}{d{{h{cCb}}}}}{{If{c}}}{jln}}{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{{d{Fd}}}}}}}}}}}{jln}}{{{d{{Il{c}}}}e}{{`{{Jh{}{{Gb{{Jd{c{d{Fd}}}}}}}}}}}{jln}{{Fn{c}}}}{{{d{{Il{c}}}}{d{Ff}}e}{{Dn{GhGh}}}{jln}{{Fn{c}}}}{{{d{{If{c}}}}e}Cn{lIh}Gj}{{{d{Ij}}c}CnGj}{{{d{{Il{c}}}}cCb}{{Cd{{d{Fd}}}}}{jln}}{{{d{c}}}e{}{}}0000{{{d{c}}}Gl{}}00{{{d{Ij}}}Gh}`0{c{{Cn{e}}}{}{}}000000000{{{d{{Il{c}}}}Fh}{{Cd{{Jd{c{d{Fj}}}}}}}{jln}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Jd{c{Dn{Fh{d{Fj}}}}}}}}}}Gn}}}{jln}}{{{d{{Il{c}}}}H`}{{`{{Gd{}{{Gb{{Jd{c{Dn{Fh{d{Fj}}}}}}}}}}}}}{jln}}{{{d{c}}}Hb{}}0000{{{d{{Il{c}}}}{d{c}}}{{Cd{{Bn{{Ch{Cf}}}}}}}{jln}}{{{d{Aj{Il{c}}}}cCb}Dd{jln}}`{{{d{{Il{c}}}}{d{c}}}{{`{{Gd{}{{Gb{{Jb{{d{Fd}}}}}}}}j}}}{jln}}{{{d{{Il{c}}}}}{{`{{Gd{}{{Gb{{Jd{c{d{Fd}}}}}}}}j}}}{jln}}{ce{}{}}0000``````````````{{{d{AjJj}}{d{Jl}}}{{Cn{AnJn}}}}{{{d{AjJj}}{d{K`}}Cb}{{Cn{JlKb}}}}{{{d{AjJj}}{d{K`}}CbAd}{{Cn{JlKd}}}}{{{d{AjJj}}Kf}{{Cn{JlKb}}}}{{{d{Kf}}}Ad}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ajc}}}{{d{Aje}}}{}{}}000000{{{d{Kf}}}Kf}{{{d{Jj}}}Jj}{{{d{Jn}}}Jn}{{{d{Kh}}}Kh}{{{d{Kb}}}Kb}{{{d{Kd}}}Kd}{{{d{c}}{d{Aje}}}An{}{}}00000{{{d{AjJj}}Ad}{{Cn{JlJn}}}}{{{d{Kf}}{d{Kf}}}Dd}{{{d{Jj}}{d{Jj}}}Dd}{{{d{Jn}}{d{Jn}}}Dd}{{{d{Kh}}{d{Kh}}}Dd}{{{d{Kb}}{d{Kb}}}Dd}{{{d{Kd}}{d{Kd}}}Dd}{{Kfc}{{Cn{KfKf}}}{{Hn{}{{Gb{Ad}}}}}}{{{d{Kf}}{d{AjDh}}}Dj}{{{d{Jj}}{d{AjDh}}}Dj}{{{d{Jn}}{d{AjDh}}}Dj}0{{{d{Kh}}{d{AjDh}}}Dj}0{{{d{Kb}}{d{AjDh}}}Dj}0{{{d{Kd}}{d{AjDh}}}Dj}0{cc{}}000000{c{{Cn{Kf{Cd{Kf}}}}}{{Hn{}{{Gb{Ad}}}}}}{{{h{CbDl}}}{{Cn{JjJn}}}}{Jl{{Cn{JjJn}}}}{Dl{{Dn{JjJl}}}}{{{d{K`}}Cb}Kf}{Kf{{Cn{JjJn}}}}{{{d{Jj}}}Dl}{{{d{Kf}}Cb}{{Cd{Kf}}}}{{{d{Jj}}Cb}{{Cd{Kf}}}}{{{d{Jj}}}{{Cn{Adc}}}{}}{{{d{Kf}}}Dl}{{{d{Kf}}}Cb}`{{{d{Jj}}}Jl}{{KfAd}Kf}{{{d{AjJj}}Ad}{{Cn{JlKh}}}}{ce{}{}}0000000{Kfc{}}{{{d{Jj}}AdAd}{{Cn{{Cd{Dd}}c}}}{}}{{{d{Kf}}}Kj}{{{d{Jj}}}Kj}{AdKf}{{{d{AjKj}}}{{Cd{c}}}{}}`{{{d{Kf}}}{{Cd{Kf}}}}{{KfAd}{{Cn{KfKf}}}}{{{d{Kf}}c}{{`{{Jh{}{{Gb{Kf}}}}}}}{{Fn{Cb}}}}{{{d{Jj}}c}{{`{{Jh{}{{Gb{Kf}}}}}}}{{Fn{Cb}}}}{{{d{Jj}}}Kf}{{{d{c}}}e{}{}}00000{{{d{c}}}Gl{}}000{c{{Cn{e}}}{}{}}000000`0000000{{{d{c}}}Hb{}}000000`???????`````{{{d{Aj{Kl{ce}}}}{Kl{ce}}}AnlAb}{{{d{AjKn}}Kn{d{Ajc}}}{{Cn{{Cd{Kn}}}}}{{L`{Kn}}}}{{{d{c}}}{{d{e}}}{}{}}{{{d{Ajc}}}{{d{Aje}}}{}{}}`{{{d{{Kl{ce}}}}}{{Kl{ce}}}jj}{{{d{c}}{d{Aje}}}An{}{}}{{{d{AjKn}}{d{Ajc}}}{{Cn{{Cd{Kn}}}}}{{L`{Kn}}}}{{}{{Kl{ce}}}{}{}}{c{{Cn{{Kl{eg}}}}}D`{lIb}{lIb}}{{{d{{Kl{ce}}}}{d{{Kl{ce}}}}}DdDfDf}{{{d{{Kl{ce}}}}{d{AjDh}}}Djnn}{{{If{c}}}{{Kl{ce}}}{}{}}{{{Hd{c{If{e}}}}}{{Kl{ec}}}{}{}}{Jl{{Kl{ce}}}{}{}}{cc{}}`{ce{}{}}{{{d{{Kl{ce}}}}}DdlAb}{{{d{Aj{L`{}{{Lb{c}}{Ld{e}}}}}}}{{Cn{{Cd{g}}e}}}{nLf}{nLf}{}}`{{{d{{Kl{ce}}}}g}Cn{lIh}{lIh}Gj}{{{d{c}}}e{}{}}{c{{Cn{e}}}{}{}}0{{{d{c}}}Hb{}}6{{{d{Aj{L`{}{{Lb{c}}{Ld{e}}}}}}{d{g}}}{{Cn{Anc}}}{nLf}{nLf}{}}````{{{d{c}}}{{d{e}}}{}{}}000{{{d{Ajc}}}{{d{Aje}}}{}{}}000{{Lhe}Lh{{Gn{}{{Gb{Fh}}}}Lj}{{Hn{}{{Ll{c}}{Gb{Fh}}}}}}{{Lhe}Lh{{Gn{}{{Gb{f}}}}Lj}{{Hn{}{{Ll{c}}{Gb{f}}}}}}{{{Ln{c}}cg}{{Ln{c}}}{lj}{{Jh{}{{Gb{{Jb{f}}}}}}Lj}{{Hn{}{{Ll{e}}}}}}``{{Lhe}Lh{{Gn{}{{Gb{H`}}}}Lj}{{Hn{}{{Ll{c}}{Gb{H`}}}}}}``>>>>{KfLh}{Kf{{Ln{c}}}{lj}}{{Kf{d{{Il{c}}}}}{{Ln{c}}}{nlj}}``{{Lhc}Lh{{M`{{d{Fh}}}}LjMb}}{{Lhc}Lh{{M`{{d{Fd}}}}LjMb}}{{{Ln{c}}e}{{Ln{c}}}{Ljlj}{{M`{cCb{d{Fd}}}}LjMbj}}{{{Ln{c}}ce}{{Ln{c}}}{Ljlj}{{M`{Cb{d{Fd}}}}LjMb}}{{Lhc}Lh{{M`{{d{H`}}}}LjMb}}{ce{}{}}000``{{Lh{d{{Il{c}}}}e}Lh{jlnLjMb}{{Fn{c}}}}{{Lhe}Lh{{Gn{}{{Gb{Fh}}}}Lj}{{Hn{}{{Ll{c}}}}}}{{Lhe}Lh{{Gn{}{{Gb{f}}}}Lj}{{Hn{}{{Ll{c}}}}}}={{Lhe}Lh{{Gn{}{{Gb{H`}}}}Lj}{{Hn{}{{Ll{c}}}}}}``{c{{Cn{e}}}{}{}}0000000`{{{d{c}}}Hb{}}0006666`````````{{{d{{Hl{c}}}}}{{d{{G`{{Dn{cH`}}}}}}}{}}{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Id{c}}}}}{{`{{Jh{}{{Gb{Cb}}}}}}}Ab}``{{{d{Aj{Id{c}}}}{Id{c}}}Anl}{{{d{Aj{Hl{c}}}}{Id{c}}}An{jl}}{{{d{Aj{Hl{c}}}}{Hl{c}}}{{Id{c}}}{jl}}{{{d{{Hl{c}}}}}{{d{{Hl{c}}}}}{}}{{{d{{Hl{c}}}}{d{e}}Adik}IjAb{{El{}{{Ej{Md}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{M`{{d{g}}{d{Fd}}}{{Mf{Dd}}}}}}{{{d{Aj{Hl{c}}}}e}{{Id{c}}}{jl}{{Hn{}{{Gb{{Dn{FfDb}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000{{{d{Ajc}}}{{d{Aje}}}{}{}}000000{{{d{{Hl{c}}}}{d{Ff}}}{{Cn{GhMh}}}{}}`{c{{Cd{Gh}}}{}}{c{{Cd{Fl}}}{}}01{{{d{{Hl{c}}}}}{{Hl{c}}}j}{{{d{{Mj{ce}}}}}{{Mj{ce}}}jj}{{{d{{Ml{ce}}}}}{{Ml{ce}}}jj}{{{d{{Id{c}}}}}{{Id{c}}}j}{{{d{c}}{d{Aje}}}An{}{}}000{{{d{{Mj{ce}}}}{d{{Mj{ce}}}}}C`ll}{{{d{{Ml{ce}}}}{d{{Ml{ce}}}}}C`ll}{{}{{Hl{c}}}{}}{{}{{Id{c}}}{}}{{{d{{Mj{ce}}}}}{{d{g}}}{}{}{}}{c{{Cn{{Id{e}}}}}D`{lIb}}{{{d{{Hl{c}}}}{d{Ff}}}{{`{{Jh{}{{Gb{{Dn{EbH`}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{{Hl{c}}}}}DdDf}{{{d{{Mj{ce}}}}{d{{Mj{ce}}}}}DdDfDf}{{{d{{Ml{ce}}}}{d{{Ml{ce}}}}}DdDfDf}{{{d{Mh}}{d{Mh}}}Dd}{{{d{{Id{c}}}}{d{{Id{c}}}}}DdDf}{{{d{{Hl{c}}}}{d{e}}Adi}{{`{{Jh{}{{Gb{{Dn{g{Bl{c}}}}}}}}}}}Ab{{El{}{{Ej{Md}}}}}j{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{AjDh}}}Djn}{{{d{{Mj{ce}}}}{d{AjDh}}}Djnn}{{{d{{Ml{ce}}}}{d{AjDh}}}Djnn}{{{d{Mh}}{d{AjDh}}}Dj}0{{{d{{Id{c}}}}{d{AjDh}}}Djn}{cc{}}000000{{{d{{Hl{c}}}}}{{`{{Jh{}{{Gb{{Mj{{Mn{Ff}}c}}}}}}}}}{}}{{{d{{Hl{c}}}}{d{e}}AdH`}{{Cd{{Bh{{d{c}}}}}}}Ab{{El{}{{Ej{Md}}}}}}{{{d{{Hl{c}}}}{d{e}}AdFh}{{Cd{{Dn{{Bh{{d{c}}}}H`}}}}}Ab{{El{}{{Ej{Md}}}}}}{{{d{{Hl{c}}}}H`}{{Cd{{Mn{Ff}}}}}{}}{{{d{{Hl{c}}}}H`}{{Cd{{Mj{{Mn{Ff}}c}}}}}{}}{{{d{{Hl{c}}}}Fh}{{Cd{{d{Fj}}}}}{}}{{{d{{Hl{c}}}}}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}H`c}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}H`Db}{{Id{c}}}{jl}}{{{d{Aj{Hl{c}}}}e}{{Id{c}}}{jl}{{N`{{Mn{Ff}}}}}}{{{d{Aj{Hl{c}}}}FhFj}{{Id{c}}}{jl}}{ce{}{}}00000000{{{d{{Hl{c}}}}}Dd{}}{{{d{{Id{c}}}}}Ddl}``{{{d{{Hl{c}}}}{d{e}}Ad}{{`{{Jh{}{{Gb{{Ml{{Mn{Ff}}c}}}}}}}}}AbEl}{{{Hl{c}}g}{{Hl{e}}}{jl}{jl}{{M`{c}{{Mf{e}}}}}}{{{Id{c}}g}{{Id{e}}}ll{{M`{c}{{Mf{e}}}}}}{c{{Hl{e}}}{{Hn{}{{Gb{Ff}}}}}{jl}}{{{d{Aj{Nb{cg}}}}}{{Cd{i}}}{}{}{{M`{Eb{Mn{Ff}}}{{Mf{{Cd{e}}}}}}}{}}{{{d{Aj{Nd{cg}}}}}{{Cd{i}}}{}{}{{M`{EbH`}{{Mf{{Cd{e}}}}}}}{}}{{{d{{Hl{c}}}}Fh}{{d{{Nf{H`}}}}}{}}{{{d{{Mj{ce}}}}{d{{Mj{ce}}}}}{{Cd{C`}}}GfGf}{{{d{{Ml{ce}}}}{d{{Ml{ce}}}}}{{Cd{C`}}}GfGf}{{{d{{Id{c}}}}e}Cn{lIh}Gj}{{{d{c}}}e{}{}}000{{{d{c}}}Gl{}}{{{d{{Hl{c}}}}{d{e}}Adik}{{Cn{Ij}}}AbElj{{Hn{}{{Gb{{Dn{gFh}}}}}}}{{M`{{d{g}}{d{Fd}}}{{Mf{Dd}}}}}}{{{d{{Hl{c}}}}{d{e}}Adi}{{`{{Jh{}{{Gb{{Cn{{Dn{g{Bl{c}}}}}}}}}}}}}AbElj{{Hn{}{{Gb{{Dn{gFh}}}}}}}}0{c{{Cn{e}}}{}{}}000000{{{d{{Hl{c}}}}{d{e}}AdH`}{{Cn{{Cd{{Bh{{d{c}}}}}}}}}AbEl}{{{d{{Hl{c}}}}{d{e}}AdFh}{{Cn{{Cd{{Dn{{Bh{{d{c}}}}H`}}}}}}}AbEl}2222222{{{d{{Hl{c}}}}{d{e}}Ad}{{`{{Jh{}{{Gb{{Cn{{Ml{{Mn{Ff}}c}}}}}}}}}}}AbEl}``{{{d{{Hl{c}}}}H`}{{Cd{{h{Cb{d{Fj}}}}}}}{}}{{{d{{Hl{c}}}}H`}{{`{{Gd{}{{Gb{{Dn{Cb{d{{Nf{H`}}}}}}}}}}}}}{}}`{{{d{{Id{c}}}}}{{`{{Jh{}{{Gb{{Dn{Fh{d{Fj}}}}}}}}}}}{}}``{{{d{c}}}Hb{}}000000{{{d{Aj{Hl{c}}}}Db}{{Id{c}}}{jl}}{ce{}{}}000000{{{d{{Hl{c}}}}ei}{{Nb{ci}}}{jl}{{N`{{Mn{Ff}}}}}{}{{M`{Eb{Mn{Ff}}}{{Mf{{Cd{g}}}}}}}}{{{d{{Hl{c}}}}{d{Ff}}g}{{Nd{cg}}}{}{}{{M`{EbH`}{{Mf{{Cd{e}}}}}}}}{{{d{{Hl{c}}}}H`g}{{Nd{cg}}}{jl}{}{{M`{EbH`}{{Mf{{Cd{e}}}}}}}}","D":"C@h","p":[[5,"SpkTxOutIndex",0,875],[1,"reference"],[5,"ScriptBuf",876],[5,"BTreeMap",877],[10,"Clone",878],[10,"Ord",879],[10,"Debug",880],[5,"DescriptorId",0,881],[10,"Anchor",0,882],[5,"BlockId",0,883],[5,"ConfirmationHeightAnchor",0,883],[5,"ConfirmationTimeHeightAnchor",0,883],[0,"mut"],[10,"Append",0,882],[1,"unit"],[5,"Hash",884],[1,"u8"],[1,"array"],[1,"slice"],[6,"ChainPosition",0,883],[6,"ConfirmationTime",0,883],[5,"FullTxOut",0,883],[5,"SpkIterator",0,885],[6,"Ordering",879],[1,"u32"],[6,"Option",886],[6,"DescriptorPublicKey",887],[6,"Descriptor",888],[10,"Borrow",889],[10,"DescriptorExt",0,881],[6,"Result",890],[10,"Deserializer",891],[1,"u64"],[1,"bool"],[10,"PartialEq",879],[5,"Formatter",880],[8,"Result",880],[5,"BlockHash",892],[1,"tuple"],[5,"Block",892],[1,"usize"],[10,"AnchorFromBlockPosition",0,882],[5,"FromSliceError",893],[1,"str"],[17,"Error"],[10,"ChainOracle",0,894],[10,"Hash",895],[10,"Hasher",895],[10,"SliceIndex",896],[5,"Script",897],[5,"Transaction",898],[5,"OutPoint",898],[5,"TxOut",898],[5,"SignedAmount",899],[10,"RangeBounds",900],[5,"BTreeSet",901],[17,"Item"],[10,"DoubleEndedIterator",902],[10,"PartialOrd",879],[5,"Amount",899],[10,"Serializer",903],[5,"String",904],[10,"ExactSizeIterator",905],[5,"Txid",898],[5,"TypeId",906],[5,"ChangeSet",275],[5,"IndexedTxGraph",275],[10,"Indexer",275],[17,"ChangeSet"],[5,"TxGraph",714],[10,"IntoIterator",907],[10,"Default",908],[10,"Deserialize",891],[5,"ChangeSet",714],[5,"ChangeSet",332,909],[10,"Serialize",903],[5,"Balance",332],[5,"KeychainTxOutIndex",332,909],[6,"InsertDescriptorError",332,909],[5,"NoSuchKeychain",332,909],[8,"Indexed",332],[8,"KeychainIndexed",332],[5,"Vec",910],[10,"Iterator",911],[5,"LocalChain",475],[8,"ChangeSet",475],[5,"MissingGenesisError",475],[5,"Header",892],[5,"CannotConnectError",475],[6,"ApplyHeaderError",475],[5,"CheckPoint",475],[5,"AlterCheckPointError",475],[5,"CheckPointIter",475],[5,"CombinedChangeSet",617],[10,"StageExt",617],[10,"PersistBackend",617],[17,"WriteError"],[17,"LoadError"],[10,"Display",880],[5,"SyncRequest",650],[10,"Send",912],[17,"IntoIter"],[5,"FullScanRequest",650],[10,"FnMut",913],[10,"Sync",912],[6,"Infallible",914],[17,"Output"],[6,"CalculateFeeError",714],[5,"TxNode",714],[5,"CanonicalTx",714],[5,"Arc",915],[10,"Into",914],[5,"TxAncestors",714],[5,"TxDescendants",714],[5,"HashSet",916],[15,"Confirmed",272],[15,"Unconfirmed",272],[15,"DescriptorAlreadyAssigned",471],[15,"KeychainAlreadyAssigned",471],[5,"SyncResult",650],[5,"FullScanResult",650]],"r":[[0,882],[1,882],[2,882],[3,885],[4,883],[6,894],[7,883],[8,883],[9,883],[10,883],[13,881],[14,881],[16,883],[17,332],[18,275],[19,332],[20,885],[21,875],[22,714],[333,909],[334,909],[337,909],[340,909],[341,909]],"b":[[37,"impl-AsRef%3C%5Bu8;+%3C%24hash+as+%24crate::Hash%3E::LEN%5D%3E-for-DescriptorId"],[38,"impl-AsRef%3C%5Bu8%5D%3E-for-DescriptorId"],[121,"impl-Debug-for-DescriptorId"],[122,"impl-LowerHex-for-DescriptorId"],[123,"impl-UpperHex-for-DescriptorId"],[124,"impl-Display-for-DescriptorId"],[129,"impl-From%3C(%26u32,+%26BlockHash)%3E-for-BlockId"],[131,"impl-From%3C(u32,+BlockHash)%3E-for-BlockId"],[302,"impl-From%3CChangeSet%3CA%3E%3E-for-ChangeSet%3CA,+IA%3E"],[303,"impl-From%3CChangeSet%3CK%3E%3E-for-ChangeSet%3CA,+ChangeSet%3CK%3E%3E"],[345,"impl-Indexer-for-KeychainTxOutIndex%3CK%3E"],[346,"impl-KeychainTxOutIndex%3CK%3E"],[378,"impl-Debug-for-InsertDescriptorError%3CK%3E"],[379,"impl-Display-for-InsertDescriptorError%3CK%3E"],[381,"impl-Debug-for-NoSuchKeychain%3CK%3E"],[382,"impl-Display-for-NoSuchKeychain%3CK%3E"],[383,"impl-Debug-for-Balance"],[384,"impl-Display-for-Balance"],[526,"impl-Debug-for-MissingGenesisError"],[527,"impl-Display-for-MissingGenesisError"],[528,"impl-Debug-for-AlterCheckPointError"],[529,"impl-Display-for-AlterCheckPointError"],[530,"impl-Display-for-CannotConnectError"],[531,"impl-Debug-for-CannotConnectError"],[532,"impl-Display-for-ApplyHeaderError"],[533,"impl-Debug-for-ApplyHeaderError"],[634,"impl-From%3CChangeSet%3CK%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[635,"impl-From%3CChangeSet%3CA,+ChangeSet%3CK%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[636,"impl-From%3CBTreeMap%3Cu32,+Option%3CBlockHash%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[780,"impl-Display-for-CalculateFeeError"],[781,"impl-Debug-for-CalculateFeeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOcBUAASAAIAFwAAABsAAAAdAAIAIwABACYAFQA9ABEAUAAGAFwAAQBfAAMAZQAEAGsAEgCBAAEAhAAAAIgAAACMAAQAkgACAJYABQCeAAAAoAABAKMAAACuAAAAtwAAALwAAADAAAEAxQAGANAABQDZAAkA5AASAPwACAAIAQgAGAEAAB4BAAAiAQsALwEBAEABAABDAQkAVwEAAFoBAABcARMAcQEQAIoBAgCVAQAArgEBALEBBwC8AQkAyQEEANMBBADrARkABgIFAA0CCQAnAgAANQICADsCAABCAhAAVAINAGMCBgBvAgAAcQIBAHQCAQB3AgYAgQIAAIQCBQCPAgcAugIHAMMCBwDZAgAA3AIAAN8CDQDvAhEAAgMEAAoDBQApAwEALAMAADMDAQA2AwcAQQMGAEoDBgBaAwYAYgMGAA=="}],\ ["bdk_coin_select",{"t":"FFGGFFPIPFGPPPFGFPPSPPPPPFNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNONONNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONNOOOONNNNONOOOOONNNNONNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOOON","n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":[[0,"bdk_coin_select"],[235,"bdk_coin_select::bnb"],[236,"core::cmp"],[237,"bdk_coin_select::coin_selector"],[238,"core::iter::traits::iterator"],[239,"core::option"],[240,"core::convert"],[241,"core::result"],[242,"core::fmt"],[243,"core::time"],[244,"bitcoin::blockdata::transaction"],[245,"core::hash"],[246,"alloc::vec"],[247,"core::marker"],[248,"alloc::string"],[249,"core::any"]],"i":[0,0,0,0,0,0,41,0,22,0,0,18,18,22,0,0,0,41,41,0,18,18,11,11,11,0,2,6,7,2,16,2,7,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,6,6,15,16,6,17,18,7,11,12,15,16,6,17,18,7,11,12,11,0,6,6,6,12,16,16,6,15,18,11,7,7,12,12,6,15,16,6,17,17,18,18,7,11,11,12,2,41,2,34,22,22,22,15,16,6,17,18,7,11,12,16,11,15,41,2,34,22,15,16,6,17,18,7,11,12,2,34,6,15,6,16,16,16,16,16,2,15,6,34,6,11,2,2,12,2,2,6,6,6,6,7,6,6,6,6,6,6,2,16,16,16,15,16,6,17,18,7,11,12,17,18,11,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,41,2,34,22,15,16,6,17,18,7,11,12,6,6,15,41,2,34,22,15,16,6,17,18,7,11,12,12,15,12,41],"f":"``````````````````````````{{{f{b{d{c}}}}c}hj}{{{f{l}}}h}{{{f{n}}{f{{A`{c}}}}}{{`{{Ad{}{{Ab{{f{c}}}}}}}}}{}}{{{f{b{d{c}}}}}hj}``{{{f{n}}}{{Aj{{f{Af}}{f{Ah}}}}}}{{{f{c}}}{{f{e}}}{}{}}00000000000{{{f{bc}}}{{f{be}}}{}{}}00000000000{{{f{l}}Al}{{f{An}}}}`{{{f{An}}}An}{{{f{B`}}}B`}{{{f{l}}}l}{{{f{Bb}}}Bb}{{{f{Bd}}}Bd}{{{f{n}}}n}{{{f{Af}}}Af}{{{f{Ah}}}Ah}{{{f{c}}{f{be}}}Bf{}{}}0000000{{{f{Af}}{f{Af}}}Bh}{{cl}{{Bj{l}}}{{Bn{Bl}}}}{{{f{l}}}C`}{{{f{l}}}Cb}{{{f{bl}}Al}h}`{{{f{B`}}}C`}`3{{{f{An}}Cd}C`}{{{f{Bd}}{f{Bd}}}h}{{{f{Af}}{f{Af}}}h}```{{{f{Ah}}}Cd}{{{f{l}}}{{Cf{nBb}}}}{{{f{An}}{f{bCh}}}Cj}{{{f{B`}}{f{bCh}}}Cj}{{{f{l}}{f{bCh}}}Cj}{{{f{Bb}}{f{bCh}}}Cj}0{{{f{Bd}}{f{bCh}}}Cj}0{{{f{n}}{f{bCh}}}Cj}{{{f{Af}}{f{bCh}}}Cj}0{{{f{Ah}}{f{bCh}}}Cj}{{{f{b{d{c}}}}h}Bfj}{cc{}}00{ClBl}1{AlBl}22222222{{{f{{A`{Cn}}}}{f{Cn}}Cb}B`}{{{f{Af}}{f{bc}}}BfD`}`{ce{}{}}00000000000{{{d{c}}{f{{Db{c}}}}}{{Dd{c}}}j}1{{{f{l}}}h}`{{{f{l}}Al}h}{{{f{B`}}}Cd}````{{l{Df{{Aj{Al{f{An}}}}}}c}{{d{c}}}j}{{DhCbh}An}{{{f{{Df{An}}}}{f{B`}}}l}{{{f{b{Dd{c}}}}}{{Bj{e}}}{jDjDl}{}}`{{{f{Af}}{f{Af}}}{{Bj{Bh}}}}`````{{{f{bl}}Al}h}{{{f{bl}}}Bf}{{{f{bl}}}{{Cf{nBb}}}}{{{f{l}}}{{`{{Ad{}{{Ab{{Aj{Al{f{An}}}}}}}}}}}}`{{{f{l}}}Dh}{{{f{l}}}Al}{{{f{l}}}C`}{{{f{l}}}{{`{{Ad{}{{Ab{Al}}}}}}}}1{{{f{l}}}Cb}````{{{f{c}}}e{}{}}0000000{{{f{c}}}Dn{}}00{c{{Cf{e}}}{}{}}00000000000000000000000{{{f{c}}}E`{}}0000000000095`{ce{}{}}00000000000```{{{f{Eb}}}h}","D":"Hh","p":[[0,"mut"],[5,"Bnb",0,235],[1,"reference"],[1,"bool"],[10,"Ord",236],[5,"CoinSelector",0,237],[5,"Selection",0,237],[1,"slice"],[17,"Item"],[10,"Iterator",238],[6,"ExcessStrategyKind",0,237],[5,"ExcessStrategy",0,237],[1,"tuple"],[1,"usize"],[5,"WeightedValue",0,237],[5,"CoinSelectorOpt",0,237],[5,"SelectionError",0,237],[6,"SelectionConstraint",0,237],[1,"unit"],[6,"Ordering",236],[6,"Option",239],[6,"BnbLimit",0,235],[10,"Into",240],[1,"i64"],[1,"u32"],[1,"f32"],[6,"Result",241],[5,"Formatter",242],[8,"Result",242],[5,"Duration",243],[5,"TxOut",244],[10,"Hasher",245],[8,"DecideStrategy",0,235],[5,"BnbIter",0,235],[5,"Vec",246],[1,"u64"],[10,"Copy",247],[10,"Display",242],[5,"String",248],[5,"TypeId",249],[6,"BranchStrategy",0,235]],"r":[[0,235],[1,235],[2,235],[3,235],[4,237],[5,237],[7,235],[9,237],[10,237],[14,237],[15,237],[16,237],[25,237],[76,235]],"b":[[95,"impl-Display-for-SelectionError"],[96,"impl-Debug-for-SelectionError"],[97,"impl-Display-for-SelectionConstraint"],[98,"impl-Debug-for-SelectionConstraint"],[100,"impl-Debug-for-ExcessStrategyKind"],[101,"impl-Display-for-ExcessStrategyKind"],[107,"impl-From%3CDuration%3E-for-BnbLimit"],[109,"impl-From%3Cusize%3E-for-BnbLimit"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKcAGAAAAAAAAgAAAAYAAAAJAAIADgADABcAAgAcAAEAIAAAACIAKgBQAAIAVgAEAFwACwBsAAAAbgAAAHcAAQCHAAEAigABAJIADQChAAAAowAAAKYAAACqADAA3AAMAOoAAQA="}],\ ["bdk_electrum",{"t":"FFFENNNNNNENNNNNNONNNNNNNNNNNNNNNNNNNNNNN","n":["BdkElectrumClient","ElectrumFullScanResult","ElectrumSyncResult","bdk_chain","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","electrum_client","fetch_tx","fmt","from","from","from","full_scan","inner","into","into","into","new","populate_tx_cache","sync","transaction_broadcast","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with_confirmation_height_anchor","with_confirmation_height_anchor","with_confirmation_time_height_anchor","with_confirmation_time_height_anchor"],"q":[[0,"bdk_electrum"],[41,"bdk_electrum::bdk_electrum_client"],[42,"bitcoin::blockdata::transaction"],[43,"alloc::sync"],[44,"electrum_client::types"],[45,"core::result"],[46,"electrum_client::api"],[47,"core::fmt"],[48,"bdk_chain::spk_client"],[49,"core::cmp"],[50,"core::clone"],[51,"bdk_chain::tx_graph"],[52,"core::convert"],[53,"core::any"],[54,"bdk_chain::chain_data"]],"i":[0,0,0,0,16,23,3,16,23,3,0,3,3,16,23,3,3,3,16,23,3,3,3,3,3,16,23,3,16,23,3,16,23,3,16,23,3,16,23,16,23],"f":"````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00`{{{b{{f{c}}}}h}{{A`{{l{j}}n}}}Ab}{{{b{{f{c}}}}{b{dAd}}}AfAh}{cc{}}00{{{b{{f{c}}}}{Aj{e}}AlAlAn}{{A`{{B`{e}}n}}}Ab{BbBd}}`{ce{}{}}00{c{{f{c}}}Ab}{{{b{{f{c}}}}g}BfAb{}{{Bj{{Bh{e}}}}}}{{{b{{f{c}}}}BlAlAn}{{A`{Bnn}}}Ab}{{{b{{f{c}}}}{b{j}}}{{A`{hn}}}Ab}{c{{A`{e}}}{}{}}00000{{{b{c}}}C`{}}00666{{{B`{c}}}{{Cd{cCb}}}{}}{Bn{{Cf{Cb}}}}{{{B`{c}}{b{{f{e}}}}}{{A`{{Cd{cCh}}n}}}{}Ab}{{Bn{b{{f{c}}}}}{{A`{{Cf{Ch}}n}}}Ab}","D":"Bj","p":[[1,"reference"],[0,"mut"],[5,"BdkElectrumClient",0,41],[5,"Txid",42],[5,"Transaction",42],[5,"Arc",43],[6,"Error",44],[6,"Result",45],[10,"ElectrumApi",46],[5,"Formatter",47],[8,"Result",47],[10,"Debug",47],[5,"FullScanRequest",48],[1,"usize"],[1,"bool"],[5,"ElectrumFullScanResult",0,41],[10,"Ord",49],[10,"Clone",50],[1,"unit"],[5,"TxGraph",51],[10,"AsRef",52],[5,"SyncRequest",48],[5,"ElectrumSyncResult",0,41],[5,"TypeId",53],[5,"ConfirmationHeightAnchor",54],[5,"FullScanResult",48],[5,"SyncResult",48],[5,"ConfirmationTimeHeightAnchor",54]],"r":[[0,41],[1,41],[2,41]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABQAAwAEAAcADQAAABoACwA="}],\ ["bdk_esplora",{"t":"IKKEMMMM","n":["Error","EsploraAsyncExt","EsploraExt","esplora_client","full_scan","full_scan","sync","sync"],"q":[[0,"bdk_esplora"],[8,"bdk_esplora::blocking_ext"],[9,"bdk_chain::spk_client"],[10,"core::result"],[11,"core::cmp"],[12,"core::clone"],[13,"bdk_esplora::async_ext"],[14,"core::future::future"],[15,"alloc::boxed"],[16,"core::pin"],[17,"core::marker"]],"i":[0,0,0,0,1,10,1,10],"f":"````{{{d{b}}{f{c}}hh}{{n{{j{c}}l}}}{A`Ab}}{{{d{Ad}}{f{c}}hh}{{Aj{{Ah{Af}}}}}{A`AbAl}}{{{d{b}}Anh}{{n{B`l}}}}{{{d{Ad}}Anh}{{Aj{{Ah{Af}}}}}}","D":"A`","p":[[10,"EsploraExt",0,8],[1,"reference"],[5,"FullScanRequest",9],[1,"usize"],[5,"FullScanResult",9],[8,"Error",0,8],[6,"Result",10],[10,"Ord",11],[10,"Clone",12],[10,"EsploraAsyncExt",0,13],[10,"Future",14],[5,"Box",15],[5,"Pin",16],[10,"Send",17],[5,"SyncRequest",9],[5,"SyncResult",9]],"r":[[0,8],[1,13],[2,8]],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAQA"}],\ -["bdk_file_store",{"t":"FPFGPPPGFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["AggregateChangesetsError","Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset","create_new","drop","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into_iter","iter_changesets","iter_error","load_from_persistence","new","next","open","open_or_create_new","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":[[0,"bdk_file_store"],[75,"bdk_file_store::FileError"],[77,"bdk_file_store::store"],[78,"core::option"],[79,"core::result"],[80,"bdk_chain::tx_data_traits"],[81,"serde::ser"],[82,"serde::de"],[83,"core::marker"],[84,"std::io::error"],[85,"std::path"],[86,"core::convert"],[87,"bdk_file_store::entry_iter"],[88,"core::fmt"],[89,"anyhow"],[90,"std::fs"],[91,"alloc::string"],[92,"core::any"]],"i":[0,20,0,0,16,20,16,0,0,2,2,19,20,2,5,16,19,20,2,5,16,5,2,19,20,20,2,5,5,16,16,19,20,20,2,5,16,16,19,20,2,5,16,19,2,5,2,19,19,2,2,20,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,2,29,29],"f":"`````````{{{f{b{d{c}}}}}{{l{{h{c}}{j{c}}}}}{nA`AbAdAf}}{{{f{b{d{c}}}}{f{c}}}{{l{AhAj}}}{nA`AbAdAf}}{{{f{c}}}{{f{e}}}{}{}}0000{{{f{bc}}}{{f{be}}}{}{}}0000`{{{f{{An{Al}}}}c}{{l{{d{e}}B`}}}{{Bd{Bb}}}{nA`AbAdAf}}{{{f{b{Bf{c}}}}}Ah{}}{{{f{Bh}}{f{bBj}}}Bl}0{{{f{{d{c}}}}{f{bBj}}}Bl{AfAdBn}}{{{f{{j{c}}}}{f{bBj}}}Bl{}}{{{f{{j{c}}}}{f{bBj}}}BlBn}{{{f{B`}}{f{bBj}}}Bl}0{cc{}}0{AjBh}111{AjB`}{ce{}{}}00000{{{f{b{d{c}}}}}{{Bf{c}}}{nA`AbAdAf}}`{{{f{b{d{c}}}}}{{C`{{h{c}}}}}{nA`AbAdAf}}{{Cb{f{bCd}}}{{Bf{c}}}{}}{{{f{b{Bf{c}}}}}{{h{e}}}Ab{}}>>{{{f{c}}}Cf{}}00{c{{l{e}}}{}{}}000000000{{{f{c}}}Ch{}}000077777{{{f{b{d{c}}}}{f{c}}}{{C`{Ah}}}{nA`AbAdAf}}``","D":"Ch","p":[[0,"mut"],[5,"Store",0,77],[1,"reference"],[6,"Option",78],[5,"AggregateChangesetsError",0,77],[6,"Result",79],[10,"Append",80],[10,"Serialize",81],[10,"DeserializeOwned",82],[10,"Send",83],[10,"Sync",83],[1,"unit"],[5,"Error",84],[1,"u8"],[1,"slice"],[6,"FileError",0],[5,"Path",85],[10,"AsRef",86],[5,"EntryIter",0,87],[6,"IterError",0,87],[5,"Formatter",88],[8,"Result",88],[10,"Debug",88],[8,"Result",89],[1,"u64"],[5,"File",90],[5,"String",91],[5,"TypeId",92],[15,"InvalidMagicBytes",75]],"r":[[0,77],[2,87],[7,87],[8,77]],"b":[[24,"impl-Debug-for-IterError"],[25,"impl-Display-for-IterError"],[27,"impl-Display-for-AggregateChangesetsError%3CC%3E"],[28,"impl-Debug-for-AggregateChangesetsError%3CC%3E"],[29,"impl-Display-for-FileError"],[30,"impl-Debug-for-FileError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADEABwAMAAkAGAAHACIAAAAmAAAALAAAAC8AAgA0ABkA"}],\ +["bdk_file_store",{"t":"FPFGPPPGFNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["AggregateChangesetsError","Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset","create_new","drop","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into_iter","iter_changesets","iter_error","load_changes","new","next","open","open_or_create_new","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":[[0,"bdk_file_store"],[75,"bdk_file_store::FileError"],[77,"bdk_file_store::store"],[78,"core::option"],[79,"core::result"],[80,"bdk_chain::tx_data_traits"],[81,"serde::ser"],[82,"serde::de"],[83,"core::marker"],[84,"std::io::error"],[85,"std::path"],[86,"core::convert"],[87,"bdk_file_store::entry_iter"],[88,"core::fmt"],[89,"std::fs"],[90,"alloc::string"],[91,"core::any"]],"i":[0,20,0,0,16,20,16,0,0,2,2,19,20,2,5,16,19,20,2,5,16,5,2,19,20,20,2,5,5,16,16,19,20,20,2,5,16,16,19,20,2,5,16,19,2,5,2,19,19,2,2,20,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,19,20,2,5,16,2,28,28],"f":"`````````{{{f{b{d{c}}}}}{{l{{h{c}}{j{c}}}}}{nA`AbAdAf}}{{{f{b{d{c}}}}{f{c}}}{{l{AhAj}}}{nA`AbAdAf}}{{{f{c}}}{{f{e}}}{}{}}0000{{{f{bc}}}{{f{be}}}{}{}}0000`{{{f{{An{Al}}}}c}{{l{{d{e}}B`}}}{{Bd{Bb}}}{nA`AbAdAf}}{{{f{b{Bf{c}}}}}Ah{}}{{{f{Bh}}{f{bBj}}}Bl}0{{{f{{d{c}}}}{f{bBj}}}Bl{AfAdBn}}{{{f{{j{c}}}}{f{bBj}}}BlBn}{{{f{{j{c}}}}{f{bBj}}}Bl{}}{{{f{B`}}{f{bBj}}}Bl}0{cc{}}{AjBh}1111{AjB`}{ce{}{}}00000{{{f{b{d{c}}}}}{{Bf{c}}}{nA`AbAdAf}}`{{{f{b{d{c}}}}}{{l{{h{c}}e}}}{nBnA`AbAdAf}{}}{{C`{f{bCb}}}{{Bf{c}}}{}}{{{f{b{Bf{c}}}}}{{h{e}}}Ab{}}>>{{{f{c}}}Cd{}}00{c{{l{e}}}{}{}}000000000{{{f{c}}}Cf{}}000077777{{{f{b{d{c}}}}{f{c}}}{{l{Ahe}}}{nBnA`AbAdAf}{}}``","D":"Ch","p":[[0,"mut"],[5,"Store",0,77],[1,"reference"],[6,"Option",78],[5,"AggregateChangesetsError",0,77],[6,"Result",79],[10,"Append",80],[10,"Serialize",81],[10,"DeserializeOwned",82],[10,"Send",83],[10,"Sync",83],[1,"unit"],[5,"Error",84],[1,"u8"],[1,"slice"],[6,"FileError",0],[5,"Path",85],[10,"AsRef",86],[5,"EntryIter",0,87],[6,"IterError",0,87],[5,"Formatter",88],[8,"Result",88],[10,"Debug",88],[1,"u64"],[5,"File",89],[5,"String",90],[5,"TypeId",91],[15,"InvalidMagicBytes",75]],"r":[[0,77],[2,87],[7,87],[8,77]],"b":[[24,"impl-Debug-for-IterError"],[25,"impl-Display-for-IterError"],[27,"impl-Debug-for-AggregateChangesetsError%3CC%3E"],[28,"impl-Display-for-AggregateChangesetsError%3CC%3E"],[29,"impl-Display-for-FileError"],[30,"impl-Debug-for-FileError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADEABwAMAAkAGAAHACEAAAAmAAAALAAAAC8AAgA0ABkA"}],\ ["bdk_hwi",{"t":"FNNNNNNNNNNNN","n":["HWISigner","borrow","borrow_mut","fmt","from","from_device","id","into","sign_transaction","try_from","try_into","type_id","vzip"],"q":[[0,"bdk_hwi"],[13,"bdk_hwi::signer"],[14,"core::fmt"],[15,"hwi::types"],[16,"hwi::error"],[17,"core::result"],[18,"secp256k1::context::alloc_only"],[19,"secp256k1"],[20,"bdk_wallet::wallet::signer"],[21,"bitcoin::psbt"],[22,"core::any"]],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{f}}{b{dh}}}j}{cc{}}{{{b{l}}n}{{Ab{fA`}}}}{{{b{f}}{b{{Af{Ad}}}}}Ah}{ce{}{}}{{{b{f}}{b{dAj}}{b{Al}}{b{{Af{Ad}}}}}{{Ab{AnB`}}}}{c{{Ab{e}}}{}{}}0{{{b{c}}}Bb{}}3","D":"j","p":[[1,"reference"],[0,"mut"],[5,"HWISigner",0,13],[5,"Formatter",14],[8,"Result",14],[5,"HWIDevice",15],[5,"HWIChain",15],[6,"Error",16],[6,"Result",17],[6,"All",18],[5,"Secp256k1",19],[6,"SignerId",20],[5,"Psbt",21],[5,"SignOptions",20],[1,"unit"],[6,"SignerError",20],[5,"TypeId",22]],"r":[[0,13]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgAAwACAAIABwAAAAkABAA="}],\ -["bdk_persist",{"t":"FFKNNNNNONNNNNNNNNNNNONNNMONNNNNNNNNNNNNNM","n":["CombinedChangeSet","Persist","PersistBackend","append","borrow","borrow","borrow_mut","borrow_mut","chain","clone","clone_into","commit","default","deserialize","eq","fmt","fmt","from","from","from","from","indexed_tx_graph","into","into","is_empty","load_from_persistence","network","new","serialize","stage","stage_and_commit","staged","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_changes"],"q":[[0,"bdk_persist"],[42,"bdk_persist::changeset"],[43,"core::cmp"],[44,"bdk_chain::tx_data_traits"],[45,"core::clone"],[46,"bdk_persist::persist"],[47,"core::option"],[48,"anyhow"],[49,"core::default"],[50,"core::result"],[51,"serde::de"],[52,"core::fmt"],[53,"bdk_chain::keychain::txout_index"],[54,"bdk_chain::indexed_tx_graph"],[55,"bdk_chain::local_chain"],[56,"core::marker"],[57,"serde::ser"],[58,"core::any"]],"i":[0,0,0,2,8,2,8,2,2,2,2,8,2,2,2,8,2,8,2,2,2,2,8,2,2,25,2,8,2,8,8,8,2,8,2,8,2,8,2,8,2,25],"f":"```{{{f{b{d{ce}}}}{d{ce}}}hjl}{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0`{{{f{{d{ce}}}}}{{d{ce}}}nn}{{{f{c}}{f{be}}}h{}{}}{{{f{b{A`{c}}}}}{{Ad{{Ab{c}}}}}{AfAh}}{{}{{d{ce}}}{}{}}{c{{Aj{{d{eg}}}}}Al{jAn}{jAn}}{{{f{{d{ce}}}}{f{{d{ce}}}}}B`BbBb}{{{f{{A`{c}}}}{f{bBd}}}{{Aj{hBf}}}Bh}{{{f{{d{ce}}}}{f{bBd}}}BjBhBh}{cc{}}{{{Bn{c{Bl{e}}}}}{{d{ec}}}{}{}}{C`{{d{ce}}}{}{}}2`{ce{}{}}0{{{f{{d{ce}}}}}B`jl}{{{f{bCb}}}{{Ad{{Ab{c}}}}}{}}`{e{{A`{c}}}{AfAh}{{Cb{c}}CdCf}}{{{f{{d{ce}}}}g}Aj{jCh}{jCh}Cj}{{{f{b{A`{c}}}}c}h{AfAh}}{{{f{b{A`{c}}}}c}{{Ad{{Ab{c}}}}}{AfAh}}{{{f{{A`{c}}}}}{{f{c}}}{AfAh}}{{{f{c}}}e{}{}}{c{{Aj{e}}}{}{}}000{{{f{c}}}Cl{}}0::{{{f{bCb}}{f{c}}}{{Ad{h}}}{}}","D":"Bd","p":[[0,"mut"],[5,"CombinedChangeSet",0,42],[1,"reference"],[1,"unit"],[10,"Ord",43],[10,"Anchor",44],[10,"Clone",45],[5,"Persist",0,46],[6,"Option",47],[8,"Result",48],[10,"Default",49],[10,"Append",44],[6,"Result",50],[10,"Deserializer",51],[10,"Deserialize",51],[1,"bool"],[10,"PartialEq",43],[5,"Formatter",52],[5,"Error",52],[10,"Debug",52],[8,"Result",52],[5,"ChangeSet",53],[5,"ChangeSet",54],[8,"ChangeSet",55],[10,"PersistBackend",0,46],[10,"Send",56],[10,"Sync",56],[10,"Serialize",57],[10,"Serializer",57],[5,"TypeId",58]],"r":[[0,42],[1,46],[2,46]],"b":[[18,"impl-From%3CChangeSet%3CA,+ChangeSet%3CK%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"],[19,"impl-From%3CBTreeMap%3Cu32,+Option%3CBlockHash%3E%3E%3E-for-CombinedChangeSet%3CK,+A%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABgABwAEAAQACgABAA0ABAATAAEAGQAAAB0AAAAhAAgA"}],\ -["bdk_sqlite",{"t":"GPPFNNNNNNNNNNNNNENNNNNNNNNNOO","n":["Error","Network","Sqlite","Store","borrow","borrow","borrow_mut","borrow_mut","fmt","fmt","fmt","from","from","into","into","load_from_persistence","new","rusqlite","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_changes","expected","given"],"q":[[0,"bdk_sqlite"],[28,"bdk_sqlite::Error"],[30,"bdk_sqlite::store"],[31,"core::fmt"],[32,"core::option"],[33,"anyhow"],[34,"core::cmp"],[35,"serde::de"],[36,"serde::ser"],[37,"core::marker"],[38,"bdk_chain::tx_data_traits"],[39,"core::clone"],[40,"bdk_persist::changeset"],[41,"core::convert"],[42,"rusqlite"],[43,"rusqlite::error"],[44,"core::result"],[45,"alloc::string"],[46,"core::any"]],"i":[0,6,6,0,3,6,3,6,3,6,6,3,6,3,6,3,3,0,6,3,6,3,6,3,6,3,6,3,24,24],"f":"````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{f{ce}}}}{b{dh}}}j{}{}}{{{b{l}}{b{dh}}}j}0{cc{}}0{ce{}{}}0{{{b{d{f{ce}}}}}{{A`{{n{g}}}}}{AbAdAfAh}{AjAdAfAh}{Al{B`{{An{ce}}}}{Bb{{An{ce}}}}}}{Bd{{Bh{{f{ce}}Bf}}}{AbAdAfAh}{AjAdAfAh}}`{{{b{c}}}Bj{}}{c{{Bh{e}}}{}{}}000{{{b{c}}}Bl{}}055{{{b{d{f{ce}}}}{b{g}}}{{A`{Bn}}}{AbAdAfAh}{AjAdAfAh}{Al{B`{{An{ce}}}}{Bb{{An{ce}}}}}}``","D":"Ad","p":[[1,"reference"],[0,"mut"],[5,"Store",0,30],[5,"Formatter",31],[8,"Result",31],[6,"Error",0],[6,"Option",32],[8,"Result",33],[10,"Ord",34],[10,"Deserialize",35],[10,"Serialize",36],[10,"Send",37],[10,"Anchor",38],[10,"Clone",39],[5,"CombinedChangeSet",40],[10,"From",41],[10,"Into",41],[5,"Connection",42],[6,"Error",43],[6,"Result",44],[5,"String",45],[5,"TypeId",46],[1,"unit"],[15,"Network",28]],"r":[[3,30]],"b":[[9,"impl-Display-for-Error"],[10,"impl-Debug-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABQAAwAFAAYAEAAAABIADAA="}],\ +["bdk_sqlite",{"t":"GPPFNNNNNNNNNNNNNENNNNNNNNNNOO","n":["Error","Network","Sqlite","Store","borrow","borrow","borrow_mut","borrow_mut","fmt","fmt","fmt","from","from","into","into","load_changes","new","rusqlite","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_changes","expected","given"],"q":[[0,"bdk_sqlite"],[28,"bdk_sqlite::Error"],[30,"bdk_sqlite::store"],[31,"core::fmt"],[32,"bdk_chain::persist"],[33,"core::option"],[34,"core::result"],[35,"core::cmp"],[36,"serde::de"],[37,"serde::ser"],[38,"core::marker"],[39,"bdk_chain::tx_data_traits"],[40,"rusqlite"],[41,"rusqlite::error"],[42,"alloc::string"],[43,"core::any"]],"i":[0,6,6,0,3,6,3,6,3,6,6,3,6,3,6,3,3,0,6,3,6,3,6,3,6,3,6,3,20,20],"f":"````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{f{ce}}}}{b{dh}}}j{}{}}{{{b{l}}{b{dh}}}j}0{cc{}}0{ce{}{}}0{{{b{d{f{ce}}}}}{{Ab{{A`{{n{ce}}}}g}}}{AdAfAhAj}{AlAfAhAj}{}}{An{{Ab{{f{ce}}B`}}}{AdAfAhAj}{AlAfAhAj}}`{{{b{c}}}Bb{}}{c{{Ab{e}}}{}{}}000{{{b{c}}}Bd{}}055{{{b{d{f{ce}}}}{b{{n{ce}}}}}{{Ab{Bfg}}}{AdAfAhAj}{AlAfAhAj}{}}``","D":"Ad","p":[[1,"reference"],[0,"mut"],[5,"Store",0,30],[5,"Formatter",31],[8,"Result",31],[6,"Error",0],[5,"CombinedChangeSet",32],[6,"Option",33],[6,"Result",34],[10,"Ord",35],[10,"Deserialize",36],[10,"Serialize",37],[10,"Send",38],[10,"Anchor",39],[5,"Connection",40],[6,"Error",41],[5,"String",42],[5,"TypeId",43],[1,"unit"],[15,"Network",28]],"r":[[3,30]],"b":[[9,"impl-Display-for-Error"],[10,"impl-Debug-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABQAAwAFAAYAEAAAABIADAA="}],\ ["bdk_testenv",{"t":"FEEEONNEOENNNNNNNNNNNNNNNNNNN","n":["TestEnv","anyhow","bitcoincore_rpc","bitcoind","bitcoind","borrow","borrow_mut","electrsd","electrsd","electrum_client","electrum_client","from","genesis_hash","into","invalidate_blocks","make_checkpoint_tip","mine_blocks","mine_empty_block","new","reorg","reorg_empty_blocks","reset_electrsd","rpc_client","send","try_from","try_into","type_id","vzip","wait_until_electrum_sees_block"],"q":[[0,"bdk_testenv"],[29,"electrum_client::api"],[30,"bitcoin::blockdata::block"],[31,"anyhow"],[32,"bdk_chain::local_chain"],[33,"bitcoin::address"],[34,"core::option"],[35,"alloc::vec"],[36,"bitcoincore_rpc::client"],[37,"bitcoin_units::amount"],[38,"bitcoin::blockdata::transaction"],[39,"core::result"],[40,"core::any"]],"i":[0,0,0,0,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}```{{{b{f}}}{{b{{`{h}}}}}}{cc{}}{{{b{f}}}{{l{j}}}}{ce{}{}}{{{b{f}}n}{{l{A`}}}}{{{b{f}}}Ab}{{{b{f}}n{Af{Ad}}}{{l{{Ah{j}}}}}}{{{b{f}}}{{l{{Aj{nj}}}}}}{{}{{l{f}}}}{{{b{f}}n}{{l{{Ah{j}}}}}}{{{b{f}}n}{{l{{Ah{{Aj{nj}}}}}}}}{f{{l{f}}}}{{{b{f}}}{{b{{`{Al}}}}}}{{{b{f}}{b{{Ad{An}}}}B`}{{l{Bb}}}}{c{{Bd{e}}}{}{}}0{{{b{c}}}Bf{}}<{{{b{f}}}{{l{A`}}}}","D":"An","p":[[1,"reference"],[0,"mut"],[5,"TestEnv",0],[10,"ElectrumApi",29],[5,"BlockHash",30],[8,"Result",31],[1,"usize"],[1,"unit"],[5,"CheckPoint",32],[5,"Address",33],[6,"Option",34],[5,"Vec",35],[1,"tuple"],[10,"RpcApi",36],[6,"NetworkChecked",33],[5,"Amount",37],[5,"Txid",38],[6,"Result",39],[5,"TypeId",40]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAA4ABAAAAAAAAgAIABYAAAAZAAMA"}],\ ["bdk_tmp_plan",{"t":"FKPPPPFFGGFFPPPGPPONNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNOONHNNNNOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOOOOOOOO","n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashP2wpkh","SigHashTaproot","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":[[0,"bdk_tmp_plan"],[151,"bdk_tmp_plan::PlanState"],[153,"bdk_tmp_plan::RequiredSignatures"],[159,"miniscript::descriptor::key"],[160,"bitcoin::bip32"],[161,"core::option"],[162,"bdk_tmp_plan::requirements"],[163,"core::clone"],[164,"bdk_tmp_plan::template"],[165,"core::fmt"],[166,"bitcoin::crypto::sighash"],[167,"miniscript::descriptor"],[168,"bitcoin::blockdata::locktime::absolute"],[169,"bitcoin::blockdata::transaction"],[170,"secp256k1"],[171,"core::result"],[172,"core::borrow"],[173,"secp256k1::context"],[174,"alloc::string"],[175,"core::any"],[176,"bitcoin::blockdata::script::witness_version"]],"i":[0,0,42,10,42,9,0,0,0,0,0,0,9,10,10,0,9,9,11,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,3,7,9,10,11,12,13,14,7,9,10,11,12,13,14,7,9,13,14,11,11,13,12,7,9,10,10,11,12,13,14,42,7,9,10,10,10,10,11,12,13,14,14,7,13,14,7,13,42,7,9,10,11,12,13,14,14,14,12,0,12,12,12,7,14,7,13,13,14,7,13,9,7,7,9,10,11,12,13,14,10,12,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,14,42,7,9,10,11,12,13,14,42,7,9,10,11,12,13,14,12,45,45,46,47,48,49,49,48],"f":"```````````````````{{{b{c}}}{{b{e}}}{}{}}0000000{{{b{dc}}}{{b{de}}}{}{}}0000000{{{b{f}}{b{h}}}{{l{j}}}}{{{b{{n{c}}}}}{{n{c}}}A`}{{{b{{Ab{c}}}}}{{Ab{c}}}A`}{{{b{Ad}}}Ad}{{{b{{Af{c}}}}}{{Af{c}}}A`}{{{b{{Ah{c}}}}}{{Ah{c}}}A`}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}A`}{{{b{c}}{b{de}}}An{}{}}000000{{}{{n{c}}}{}}{{}{{Ab{c}}}{}}{{}Aj}{{}{{Al{c}}}{}}```{{{b{{Ah{c}}}}}B`A`}{{{b{{n{c}}}}{b{dBb}}}BdBf}{{{b{{Ab{c}}}}{b{dBb}}}BdBf}{{{b{Ad}}{b{dBb}}}Bd}0{{{b{{Af{c}}}}{b{dBb}}}BdBf}{{{b{{Ah{c}}}}{b{dBb}}}BdBf}{{{b{Aj}}{b{dBb}}}Bd}{{{b{{Al{c}}}}{b{dBb}}}BdBf}{cc{}}000{BhAd}{BjAd}{BlAd}3333``````{ce{}{}}0000000``{{{b{{Ah{c}}}}}{{l{Bn}}}A`}{{{b{{C`{h}}}}{b{{Al{c}}}}}{{l{{Ah{c}}}}}{fA`}}{{{b{{Ah{c}}}}}{{l{Cb}}}A`}{{{b{{Ah{c}}}}}{{l{Cd}}}A`}{{{b{{Ah{c}}}}}{{n{c}}}A`}{{{b{{n{c}}}}}Cf{}}```````{{{b{{Ab{Ch}}}}B`{b{Cj}}{b{{Cl{c}}}}{l{Cn}}{l{D`}}{b{d{Db{e}}}}{b{dAj}}{b{{Dd{g}}}}}{{Df{CfAd}}}{{Dj{Dh}}}{{Dj{Dl}}}{DnE`}}`{{{b{c}}}e{}{}}000000{{{b{c}}}Eb{}}{{{b{{Ah{c}}}}{b{Aj}}}{{Ed{c}}}A`}{c{{Df{e}}}{}{}}000000000000000`{{{b{c}}}Ef{}}0000000<<<<<<<<{{{b{{Ah{c}}}}}{{l{Eh}}}A`}````````","D":"Fl","p":[[1,"reference"],[0,"mut"],[10,"CanDerive",0],[5,"DefiniteDescriptorKey",159],[5,"DerivationPath",160],[6,"Option",161],[5,"Requirements",0,162],[10,"Clone",163],[6,"RequiredSignatures",0,162],[6,"SigningError",0,162],[5,"PlanKey",0,164],[5,"Plan",0],[5,"SatisfactionMaterial",0],[5,"Assets",0],[1,"unit"],[1,"usize"],[5,"Formatter",165],[8,"Result",165],[10,"Debug",165],[6,"P2wpkhError",166],[6,"TaprootError",166],[6,"Error",160],[1,"u32"],[6,"Descriptor",167],[6,"LockTime",168],[5,"Sequence",169],[1,"bool"],[6,"DescriptorPublicKey",159],[8,"KeyMap",167],[6,"Prevouts",166],[6,"TapSighashType",166],[6,"EcdsaSighashType",166],[5,"SighashCache",166],[5,"Secp256k1",170],[6,"Result",171],[5,"TxOut",169],[10,"Borrow",172],[5,"Transaction",169],[10,"Signing",173],[10,"Verification",173],[5,"String",174],[6,"PlanState",0],[5,"TypeId",175],[6,"WitnessVersion",176],[15,"Complete",151],[15,"Legacy",153],[15,"Segwitv0",153],[15,"TapScript",153],[15,"TapKey",153]],"r":[[7,164],[9,162],[10,162],[15,162]],"b":[[60,"impl-Display-for-SigningError"],[61,"impl-Debug-for-SigningError"],[70,"impl-From%3CP2wpkhError%3E-for-SigningError"],[71,"impl-From%3CTaprootError%3E-for-SigningError"],[72,"impl-From%3CError%3E-for-SigningError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGkAEAABAAEABAABAA4AAgAUACIAOwAHAEcAAgBOAAAAUQAAAFwAAQBfAAAAYgAAAGQAAABoAAAAawAAAG0AKQCaAAEA"}],\ -["bdk_wallet",{"t":"PPEPGPFEEGEFNNDNNNNNNNNENNNNNNNNNOOCQNNNNNNNNNNQNNNNNNNNNNOOCDNONCONNNEENNNNNNNNNNNNNONNNNOHNNNNCOOOPPPIGEGIKTIKRGFPPPPEKGPPPPTIPPPPPPPPPPNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNMNNMNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNCNONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNONNNNNNNNNMNNNNCNNNNNNNNNNNMNNNCNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHHPPGPPPPPPPPPPPNNNNNNNNNNNNNNNNNNPPPGPFIPPIPPPPPPPPPPPGFGPPPPPGGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOFFFFFFFFKIFFFFNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPKGGGRRKGPKKFKPPPRGIPPPPPRPFPKGPPPFFGFPIPPPHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNOONHNMNNHNMNNOONNNNNNMNNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMMMFGFPIPPPPGKGPPPPPPGGPPPPPPPFFNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNCNONNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNMNONONNNNNNNNONNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNONNNNNNNNNHOOOOOOOOOOPPFPKFIGGPFPFNNNNNNNNNNNNNNNNNNMNNNHNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOGPPGPPPPPPPGPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFIOONNNNNNNNNNNOONNNNNNPPPPPPPKPPPPPPPPPPPPPPPPFKGGGFFFPGKPPNOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNOOMNNNMNONONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOGGPPPGPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","miniscript","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","Bare","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","FALSE","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Pkh","Pkh","Policy","ScriptContext","Segwitv0","Sh","Sh","Sh","Single","TRUE","TapKeyOrigins","Tr","Tr","Tr","Wpkh","Wpkh","Wpkh","Wsh","Wsh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","ExternalAndInternalAreTheSame","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","n","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Persist","Persist","Persist","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone_into","clone_into","coin_selection","commit","confirmed","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","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","is_dust","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","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","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_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","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","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","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","csv","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashP2wpkh","SighashTaproot","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","TxInputsIndexError","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","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","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","Bip69Lexicographic","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","InvalidOutpoint","InvalidTxid","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","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","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":[[0,"bdk_wallet"],[97,"bdk_wallet::Utxo"],[100,"bdk_wallet::descriptor"],[352,"bdk_wallet::descriptor::checksum"],[354,"bdk_wallet::descriptor::error"],[386,"bdk_wallet::descriptor::policy"],[533,"bdk_wallet::descriptor::policy::BuildSatisfaction"],[536,"bdk_wallet::descriptor::policy::Satisfaction"],[547,"bdk_wallet::descriptor::policy::SatisfiableItem"],[557,"bdk_wallet::descriptor::template"],[693,"bdk_wallet::keys"],[992,"bdk_wallet::psbt"],[996,"bdk_wallet::wallet"],[1219,"bdk_wallet::wallet::ApplyBlockError"],[1221,"bdk_wallet::wallet::InsertTxError"],[1223,"bdk_wallet::wallet::NewOrLoadError"],[1229,"bdk_wallet::wallet::coin_selection"],[1321,"bdk_wallet::wallet::coin_selection::Error"],[1323,"bdk_wallet::wallet::coin_selection::Excess"],[1328,"bdk_wallet::wallet::error"],[1400,"bdk_wallet::wallet::error::CreateTxError"],[1406,"bdk_wallet::wallet::export"],[1429,"bdk_wallet::wallet::signer"],[1612,"bdk_wallet::wallet::signer::SignerContext"],[1613,"bdk_wallet::wallet::tx_builder"],[1728,"bdk_wallet::wallet::tx_builder::AddForeignUtxoError"],[1730,"bdk_wallet::types"],[1731,"core::cmp"],[1732,"core::result"],[1733,"serde::de"],[1734,"core::fmt"],[1735,"core::hash"],[1736,"bitcoin::blockdata::transaction"],[1737,"core::option"],[1738,"serde::ser"],[1739,"core::any"],[1740,"miniscript::descriptor"],[1741,"bitcoin::network"],[1742,"bitcoin::address"],[1743,"miniscript"],[1744,"miniscript::miniscript"],[1745,"miniscript::miniscript::decode"],[1746,"miniscript::miniscript::context"],[1747,"miniscript::iter::tree"],[1748,"miniscript::descriptor::key"],[1749,"alloc::vec"],[1750,"miniscript::miniscript::satisfy"],[1751,"miniscript::plan"],[1752,"bitcoin_hashes::sha256"],[1753,"miniscript::miniscript::hash256"],[1754,"bitcoin_hashes::ripemd160"],[1755,"bitcoin_hashes::hash160"],[1756,"core::clone"],[1757,"secp256k1"],[1758,"bitcoin::crypto::key"],[1759,"secp256k1::context"],[1760,"bdk_chain::descriptor_ext"],[1761,"miniscript::blanket_traits"],[1762,"bitcoin::blockdata::script::owned"],[1763,"miniscript::miniscript::analyzable"],[1764,"secp256k1::context::alloc_only"],[1765,"bitcoin::blockdata::script::borrowed"],[1766,"core::ops::range"],[1767,"core::ops::function"],[1768,"miniscript::descriptor::tr"],[1769,"miniscript::descriptor::bare"],[1770,"miniscript::descriptor::sh"],[1771,"miniscript::descriptor::segwitv0"],[1772,"miniscript::miniscript::types"],[1773,"miniscript::miniscript::types::extra_props"],[1774,"miniscript::expression"],[1775,"miniscript::miniscript::iter"],[1776,"miniscript::policy::semantic"],[1777,"miniscript::policy"],[1778,"bitcoin_units::weight"],[1779,"alloc::collections::btree::map"],[1780,"alloc::string"],[1781,"bitcoin::bip32"],[1782,"hex_conservative::error"],[1783,"base58ck::error"],[1784,"miniscript::descriptor::sortedmulti"],[1785,"core::str::traits"],[1786,"core::convert"],[1787,"core::default"],[1788,"bitcoin_units::amount"],[1789,"bitcoin_units::fee_rate"],[1790,"bdk_chain::keychain"],[1791,"alloc::sync"],[1792,"core::iter::traits::iterator"],[1793,"bitcoin::blockdata::block"],[1794,"bdk_chain::local_chain"],[1795,"bdk_chain::chain_data"],[1796,"core::iter::traits::collect"],[1797,"bdk_chain::tx_graph"],[1798,"anyhow"],[1799,"bitcoin::psbt"],[1800,"bdk_chain::spk_client"],[1801,"bitcoin::psbt::map::input"],[1802,"bdk_wallet::wallet::utils"],[1803,"core::iter::traits::double_ended"],[1804,"bdk_persist::persist"],[1805,"core::marker"],[1806,"bdk_chain::keychain::txout_index"],[1807,"bitcoin::psbt::error"],[1808,"bitcoin::crypto::sighash"],[1809,"bitcoin::blockdata::script::push_bytes::primitive"],[1810,"bitcoin::blockdata::locktime::absolute"]],"i":[1,8,0,1,0,8,0,0,0,0,0,0,1,1,0,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,7,8,1,6,6,0,0,1,6,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,1,6,7,8,6,6,0,0,8,6,1,0,7,8,1,6,0,0,1,6,7,8,1,6,7,8,1,6,7,8,8,6,1,6,7,8,7,0,1,6,7,8,0,254,254,254,94,255,24,0,0,0,0,0,0,31,0,0,33,0,0,35,94,255,24,0,0,0,94,255,24,35,31,0,94,255,24,94,255,24,94,255,24,35,24,54,55,31,31,24,24,54,55,31,24,54,55,31,31,31,31,0,33,54,55,33,55,33,33,54,55,33,54,55,33,33,54,55,33,54,55,33,54,55,0,24,54,55,31,24,54,55,31,24,54,55,31,31,24,24,24,24,24,24,31,24,31,24,54,55,31,0,24,31,31,69,24,31,24,24,24,54,55,31,31,24,31,24,24,24,24,24,24,24,54,55,31,31,31,24,31,31,31,24,31,31,31,24,24,31,31,24,24,54,55,31,24,54,55,31,31,24,93,94,24,24,31,31,31,24,31,31,33,54,55,31,24,31,24,33,54,55,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,33,31,24,31,31,24,54,55,31,33,54,55,24,24,0,31,24,31,24,31,31,24,24,31,24,31,33,54,55,31,0,24,54,55,31,24,31,24,33,33,24,31,24,54,55,31,24,54,55,31,31,24,54,55,31,24,24,54,55,31,31,0,0,74,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,121,115,115,0,122,0,0,121,120,0,121,121,115,115,115,121,122,71,115,122,122,0,0,0,71,71,120,121,121,0,0,121,121,121,120,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,71,120,121,122,73,123,71,73,123,123,120,121,122,73,123,115,120,121,122,73,123,115,115,71,120,121,122,122,73,73,123,115,71,73,120,123,121,73,120,121,122,73,123,115,71,121,122,123,73,123,73,73,120,121,122,73,123,123,120,121,122,73,123,71,115,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,115,71,256,256,256,257,258,259,258,259,258,259,258,259,258,259,260,261,262,263,264,265,265,264,266,267,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,124,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,125,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,114,0,0,0,0,158,158,0,0,147,0,0,0,0,114,114,114,33,0,0,30,114,114,103,35,158,151,0,151,0,0,30,35,103,0,0,0,0,30,0,147,103,35,0,268,35,151,143,148,30,144,114,142,35,103,145,146,147,151,143,148,30,144,114,142,35,103,145,146,147,142,33,33,33,33,33,33,33,33,33,143,30,144,142,35,103,145,146,147,143,30,144,142,35,103,145,146,147,142,35,145,147,144,144,143,35,35,142,30,142,35,103,145,146,147,148,30,144,114,114,142,142,35,35,103,103,145,146,147,142,151,151,151,143,148,30,144,114,114,114,142,35,35,103,145,146,147,148,148,35,103,142,35,35,158,161,158,161,151,35,142,35,145,147,151,143,148,30,144,114,142,35,103,145,146,147,35,127,133,143,143,148,35,103,133,151,143,143,35,103,151,151,35,268,30,35,103,268,30,268,30,35,35,142,145,146,142,0,35,33,142,142,0,142,33,142,35,145,146,33,148,142,35,145,147,33,142,142,142,142,35,33,142,0,143,30,144,142,35,103,145,146,147,103,114,142,35,103,33,33,142,151,143,148,30,144,114,142,35,103,145,146,147,151,143,148,30,144,114,142,35,103,145,146,147,151,143,148,30,144,114,142,35,103,145,146,147,151,143,148,30,144,114,142,35,103,145,146,147,0,166,166,166,0,0,0,202,0,201,198,199,200,0,0,0,200,200,200,199,199,199,0,0,198,199,200,198,199,200,202,0,0,169,170,194,170,170,170,170,170,170,170,169,170,183,194,198,199,200,201,202,169,170,183,194,198,199,200,201,202,170,170,170,170,170,214,183,170,169,183,169,183,0,170,169,169,183,194,170,170,170,169,169,194,0,0,170,169,169,170,183,194,194,198,198,199,199,200,200,201,201,202,202,169,170,183,183,183,194,198,199,200,201,202,170,170,170,170,170,183,169,194,214,170,170,170,169,170,183,194,198,199,200,201,202,211,170,194,170,183,170,170,170,170,170,170,170,170,214,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,169,170,0,170,170,170,170,169,183,169,194,198,199,200,201,202,169,170,169,169,169,170,183,194,198,199,200,201,202,169,170,183,194,198,199,200,201,202,0,170,169,170,183,194,198,199,200,201,202,170,170,169,169,170,183,194,198,199,200,201,202,0,269,269,270,270,271,272,271,272,273,273,228,228,0,229,0,0,0,0,0,228,0,229,0,228,229,227,223,224,225,228,229,227,223,224,225,223,224,225,223,224,225,226,223,224,225,0,223,224,225,227,227,228,228,229,227,223,224,225,228,229,227,223,224,225,228,229,227,223,224,225,227,225,227,227,223,224,225,228,228,229,227,223,224,225,228,229,227,223,224,225,228,229,227,223,224,225,228,229,227,223,224,225,274,274,275,276,276,275,276,0,207,230,0,207,207,190,207,190,207,207,0,207,207,207,207,207,230,207,207,207,207,207,207,190,190,207,190,230,207,207,230,207,190,230,207,190,230,230,230,230,207,207,190,190,230,207,207,207,207,207,207,190,230,207,190,230,230,207,190,230,207,190,230,207,190,230,207,190,230,207,190,277,277,278,278,279,280,0,0,281,232,232,232,232,232,232,232,232,232,232,232,232,281,232,232,232,232,232,232,232,237,233,237,197,233,237,197,0,197,197,197,234,197,197,197,197,197,197,197,237,233,234,197,197,0,0,0,0,0,0,0,0,234,0,0,197,197,70,196,196,70,196,233,197,234,235,171,70,196,237,233,197,234,235,171,70,196,237,70,233,234,235,171,70,196,237,233,234,235,171,70,196,237,233,171,171,70,196,237,235,238,235,235,235,233,234,171,237,70,233,197,197,234,235,171,70,196,237,233,233,233,197,197,197,197,234,235,171,70,196,237,233,238,235,235,235,70,233,197,234,235,171,70,196,237,235,70,233,171,70,196,196,245,235,235,235,172,235,196,70,196,233,234,235,171,70,196,237,197,196,196,233,197,234,235,171,70,196,237,233,197,234,235,171,70,196,237,233,197,234,235,171,70,196,237,233,197,234,235,171,70,196,237,282,0,0,251,250,250,0,248,248,248,250,251,0,0,249,251,189,189,189,189,189,189,189,189,189,189,249,248,251,250,189,249,248,251,250,189,189,251,250,189,251,250,251,250,189,189,251,250,189,189,189,189,189,251,250,189,189,189,189,249,249,248,248,251,250,189,249,248,251,250,251,250,189,189,249,248,251,250,189,189,189,189,189,251,250,189,189,189,251,189,251,250,249,248,189,249,248,251,250,189,249,248,251,250,189,249,248,251,250,189,189,189,249,248,251,250,283,283],"f":"````````````{{{d{b}}}f}{{{d{b}}}{{d{{h{f}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000`{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{{d{A`}}}A`}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{b}}{d{b}}}Ad}````{c{{Af{b}}}Ah}{c{{Af{l}}}Ah}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{A`}}{d{A`}}}Aj}{{{d{b}}{d{jAl}}}An}{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}{{{d{A`}}{d{jAl}}}An}`{cc{}}000{{{d{b}}{d{jc}}}AbB`}{{{d{l}}{d{jc}}}AbB`}{ce{}{}}000````{{{d{A`}}}Bb}`{{{d{b}}{d{b}}}{{Bd{Ad}}}}``{{{d{A`}}}{{Bd{Bf}}}}{{{d{b}}c}AfBh}{{{d{l}}c}AfBh}``{{{d{c}}}e{}{}}000{c{{Af{e}}}{}{}}0000000{{{d{A`}}}{{d{Bj}}}}`{{{d{c}}}Bl{}}000`{{}{{d{Bn}}}}::::``````````````````````````````````````````{{{d{{C`{c}}}}Cb}{{Af{CdCf}}}{ChCj}}{{}Cl}0{{{d{{Cn{ce}}}}}{{d{{D`{ce}}}}}ChDb}{{{d{{d{{Cn{ce}}}}}}}{{Dd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000{{{d{{Cn{ce}}}}}{{Dn{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}0`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{Cn{cFn}}}}}{{Af{AbEh}}}Ch}2022102102{{{d{c}}}{{Af{AbEh}}}Ch}00{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{D`{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{D`{cFn}}}}}{{Af{AbEh}}}Ch}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}00`{{{d{{C`{c}}}}}{{C`{c}}}{G`Ch}}{{{d{Fl}}}Fl}{{{d{Fn}}}Fn}{{{d{{Cn{ce}}}}}{{Cn{ce}}}{G`Ch}{G`Db}}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{{C`{c}}}}{d{{C`{c}}}}}Ad{GbCh}}{{{d{Fl}}{d{Fl}}}Ad}{{{d{Fn}}{d{Fn}}}Ad}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AdChDb}{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{{C`{Df}}}}{d{{Gd{c}}}}Dh}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{Dj}}}}{d{{Gd{c}}}}}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{c}}}}}GjCh}{{{d{{C`{Df}}}}}Gl}{c{{Af{{C`{e}}}}}AhGn}{c{{Af{{Cn{eg}}}}}AhGnDb}{{{d{{C`{Df}}}}}H`}{{{d{{Cn{ce}}}}}Hb{CjCh}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}Aj{HdCh}}{{{d{Fl}}{d{Fl}}}Aj}{{{d{Fn}}{d{Fn}}}Aj}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AjChDb}`{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}`{{{d{{Cn{ce}}}}{d{Hf}}}{{Af{AbHh}}}ChDb}{{{d{Hj}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{C`{Df}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{Cn{Dfc}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}Db}{{{d{{C`{Df}}}}{d{{Gd{c}}}}{d{If}}{Ih{Dh}}}{{Af{{Bd{{Ij{Dh{C`{Gf}}}}}}Dl}}}Gh}{{{d{{C`{c}}}}{d{jAl}}}{{Af{AbIl}}}Ch}0{{{d{Fl}}{d{jAl}}}{{Af{AbIl}}}}{{{d{Fn}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{Cn{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{{C`{c}}}}e}AjCh{{J`{{d{c}}}{{In{Aj}}}}}}{{{d{{Cn{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{{{Jb{c}}}{{C`{c}}}Ch}{{{Jd{c}}}{{C`{c}}}Ch}{{{Jf{c}}}{{C`{c}}}Ch}{{{Jh{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}{{{Jl{c}}}{{C`{c}}}Ch}{cc{}}000{{{D`{ce}}}{{Af{{Cn{ce}}Cf}}}ChDb}{{{D`{ce}}JnK`}{{Cn{ce}}}ChDb}{{{d{Bn}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Bn}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{Bn}}{d{Hf}}}{{Af{{Cn{ce}}Cf}}}GnDb}1{{{d{Kb}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Kb}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{{Cn{ce}}}}Kd}{{Bd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}Kd}{{Bd{c}}}ChDb}{{{d{{C`{c}}}}e}{{Af{{Ij{{Dn{{Dn{f}}}}Hb}}Cf}}}{ChCj}{{Kf{c}}}}0{{{d{{Cn{ce}}}}}AjChDb}0{{{d{{C`{Df}}}}}Aj}{{{d{{C`{c}}}}{d{je}}}Ab{KhCh}B`}{{{d{Fl}}{d{jc}}}AbB`}{{{d{Fn}}{d{jc}}}AbB`}{{{d{{Cn{ce}}}}{d{jg}}}AbChDbB`}{ce{}{}}000{{{Cn{ce}}}{{D`{ce}}}ChDb}{{{C`{Df}}}{{Af{{Dn{{C`{Df}}}}Cf}}}}{{Kj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{Kl{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}99:{{{d{{Cn{ce}}}}}{{L`{ce}}}ChDb}{{{d{{Cn{ce}}}}}{{Lb{ce}}}ChDb}{{{d{{C`{c}}}}}{{Af{{Ld{c}}Cf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{{d{{Cn{ce}}}}}{{Af{AbLf}}}ChDb}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{cFn}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{ce}}}}}{{Af{KdCf}}}ChDb}{{{d{{C`{c}}}}}{{Af{KdCf}}}Ch}1{{{d{{C`{c}}}}}{{Af{LhCf}}}Ch}{{}{{d{Bn}}}}00{{{Cn{cLj}}}{{Af{{C`{c}}Cf}}}Ch}{c{{C`{c}}}Ch}{c{{Af{{C`{c}}Cf}}}Ch}{{{Cn{cFl}}}{{Af{{C`{c}}Cf}}}Ch}{{Kd{Dn{c}}}{{Af{{C`{c}}Cf}}}Ch}{{{Jl{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}4{{{Cn{cFn}}}{{Af{{C`{c}}Cf}}}Ch}3{{c{Bd{{Ll{c}}}}}{{Af{{C`{c}}Cf}}}Ch}614`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{If}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{Gd{c}}}}{d{Bn}}}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Cf}}}Mb}1{{{d{If}}{d{Hf}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}{{Bd{Ad}}}{MdCh}}{{{d{Fl}}{d{Fl}}}{{Bd{Ad}}}}{{{d{Fn}}{d{Fn}}}{{Bd{Ad}}}}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}{{Bd{Ad}}}ChDb}{{{d{c}}}KdCh}00{{{C`{Dj}}{d{c}}}{{Af{Mf{C`{Dj}}}}}{{Ed{Dj}}}}0`{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{c}}}}}{{Af{AbCf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{AbHh}}}ChDb}{{{d{{C`{c}}}}{d{jMh}}e}{{Af{AbCf}}}{ChCj}{{Kf{c}}}}{{{d{{Cn{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}0{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}{{{d{{C`{c}}}}}Hb{ChCj}}{{{d{{Cn{ce}}}}}KdChDb}{{{d{{C`{c}}}}e}AfChBh}{{{d{{Cn{ce}}}}g}AfChDbBh}{{}Mj}00{{{d{{Cn{ce}}}}{d{{M`{Fhc}}}}}{{Cn{ce}}}ChDb}`{{{d{c}}}e{}{}}000{{{d{c}}}Ml{}}0{{{d{{C`{Df}}}}{d{{M`{DfLn}}}}}Ml}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{C`{c}}}}{d{ji}}}{{Af{{Mn{g}}}}}ChCh{}{{N`{ceg}}}}{{{d{{Cn{ce}}}}{d{jk}}}{{Af{{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}0000000`{{{d{c}}}Bl{}}000={ce{}{}}000{{{d{{Cn{ce}}}}}AjChDb}{{{d{Bn}}}{{Af{MlId}}}}{{{d{Bn}}}{{Af{{Nb{f}}Id}}}}``````````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{Id}}{d{jAl}}}An}0{NdId}{NfId}{NhId}{NjId}{CfId}{NlId}{cc{}}{NnId}>{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0{{{d{c}}}Bl{}}{ce{}{}}```````````````````````````````````>>>>>>>======={{{d{O`}}}O`}{{{d{Ob}}}Ob}{{{d{Od}}}Od}{{{d{Ib}}}Ib}{{{d{Of}}}Of}{{{d{Hn}}}Hn}{{{d{c}}{d{je}}}Ab{}{}}00000``{{}Of}{{{d{O`}}{d{O`}}}Aj}{{{d{Ob}}{d{Ob}}}Aj}{{{d{Od}}{d{Od}}}Aj}{{{d{Ib}}{d{Ib}}}Aj}{{{d{Of}}{d{Of}}}Aj}{{{d{Nf}}{d{Nf}}}Aj}{{{d{O`}}{d{jAl}}}An}{{{d{Ob}}{d{jAl}}}An}{{{d{Od}}{d{jAl}}}An}{{{d{Ib}}{d{jAl}}}An}{{{d{Of}}{d{jAl}}}An}{{{d{Nf}}{d{jAl}}}An}0{{{d{Hn}}{d{jAl}}}An}{cc{}}0{AjOd}1{ObIb}2222{{{d{Ib}}{d{{M`{Ml{Dn{Kd}}}}}}}{{Af{OfNf}}}}{{{d{O`}}{d{jc}}}AbB`}{{{d{Of}}{d{jc}}}AbB`}{{{d{Ob}}}Ml}`{ce{}{}}000000{{{d{Ob}}}Aj}{{{d{Od}}}Aj}{{{d{Of}}}Aj}`{{{d{Of}}{d{Of}}}{{Bd{Ad}}}}{{{d{Ib}}}Aj}`{{{d{O`}}c}AfBh}{{{d{Ob}}c}AfBh}{{{d{Od}}c}AfBh}{{{d{Ib}}c}AfBh}{{{d{Of}}c}AfBh}`{{{d{c}}}e{}{}}00000{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0000000000000{{{d{c}}}Bl{}}000000>>>>>>>``````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{OhCb}{{Af{OjId}}}}{{{Ol{c}}Cb}{{Af{OjId}}}{{On{Fl}}}}{{{A@`{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@b{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@d{c}}Cb}{{Af{OjId}}}{{On{A@f}}}}{{{A@h{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@l{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@n{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AA`{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAb{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAd{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAf{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{{{AAh{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{cc{}}00000000000{ce{}{}}00000000000{{Oj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{c{d{{Gd{I`}}}}Cb}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Id}}}{}}00000000000{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000444444444444```````````````````````````````````````````{{}AAj}{{}Cl}{{DfDh}{{Af{DjDl}}}}{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{{d{{AAl{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}00000{{{d{c}}}{{Af{AbEh}}}Ch}{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}{{{d{{AAn{ce}}}}}{{AAn{ce}}}G`Db}{{{d{Cl}}}Cl}{{{d{AB`}}}AB`}{{{d{{AAl{ce}}}}}{{AAl{ce}}}{G`Ch}{G`Db}}{{{d{Df}}}Df}{{{d{Ln}}}Ln}{{{d{ABb}}}ABb}{{{d{ABd}}}ABd}{{{d{ABf}}}ABf}{{{d{c}}{d{je}}}Ab{}{}}00000000{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Ad{GbCh}{GbDb}}{{{d{Df}}{d{Df}}}Ad}{{{d{ABb}}{d{ABb}}}Ad}{{{d{ABf}}{d{ABf}}}Ad}`{{}AB`}{{{d{{AAn{ce}}}}}{{d{g}}}{}Db{}}{{DfDh}{{Af{DjDl}}}}{c{{Af{Df}}}Ah}{{{d{{AAl{ce}}}}}Hb{CjCh}Db}{{{d{Cl}}{d{Cl}}}Aj}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Aj{HdCh}{HdDb}}{{{d{Df}}{d{Df}}}Aj}{{{d{Ln}}{d{Ln}}}Aj}{{{d{ABb}}{d{ABb}}}Aj}{{{d{ABd}}{d{ABd}}}Aj}{{{d{ABf}}{d{ABf}}}Aj}{{{d{{ABh{c}}}}{d{jAl}}}An{ABjDb}}{{{d{Cl}}{d{jAl}}}An}{{{d{AB`}}{d{jAl}}}An}{{{d{Nd}}{d{jAl}}}An}0{{{d{{AAl{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{Df}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{Ln}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{ABb}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABd}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABf}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{AAl{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{ABl{{ABn{c}}}Db}{cc{}}{AC`{{ABn{c}}}Db}1111{CfNd}{NhNd}33{DjDf}44444{{DfAAj}{{ABh{c}}}Db}{{LnAAj}{{ABh{c}}}Db}{{{d{Bn}}}{{Af{Df}}}}{{{d{Bn}}}{{Af{Ln}}}}{{{d{Kb}}}{{Af{{AAl{ce}}Cf}}}{ACbCh}Db}{{{d{Df}}}{{Bd{ACd}}}}{{{d{Df}}}{{Dn{ACd}}}}{c{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{{}{{Af{{AAn{ADbc}}e}}}Db{}}{{ce}{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{c{{Af{{AAn{ADbe}}g}}}{}Db{}}{{{d{{ABn{c}}}}}AjDb}{{{d{Df}}}Aj}{{{d{{AAl{ce}}}}{d{jg}}}Ab{KhCh}{KhDb}B`}{{{d{Df}}{d{jc}}}AbB`}{{{d{ABb}}{d{jc}}}AbB`}{{{d{ABf}}{d{jc}}}AbB`}{ce{}{}}00000000000{DfADd}{On{{Af{{ABh{c}}Nd}}}Db}{{A@j{Bd{ADf}}ACd}{{Af{{ABh{c}}Nd}}}Db}{{{AAn{ec}}{Bd{ADf}}ACd}{{Af{{ABh{c}}Nd}}}Db{{A@j{c}}}}{{{AAn{ec}}}{{Af{{ABh{c}}Nd}}}Db{{On{c}}}}{{{ABh{c}}}{{Af{{ABh{c}}Nd}}}Db}{Df{{Af{{ABh{c}}Nd}}}Db}{Ln{{Af{{ABh{c}}Nd}}}Db}{A@j{{Af{{ABn{c}}Nd}}}Db}{{{ABn{c}}}{{Af{{ABn{c}}Nd}}}Db}{{{AAn{ec}}}{{Af{{ABn{c}}Nd}}}Db{{A@j{c}}}}{{{AAn{ce}}}c{}Db}{Df{{Dn{Df}}}}{Ln{{Dn{Ln}}}}{{{ABn{c}}Cb}{{Bd{AC`}}}Db}{{{ABn{c}}Cb{d{{Gd{e}}}}}ABlDbMb}{{{d{Df}}}Aj}{{}Aj}{{{d{Cl}}}Aj}2{{{d{Ln}}}Aj}212133{{{d{{AAl{ce}}}}}KdChDb}``{{{d{{AAl{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{}AAj}{{{d{Df}}}ADh}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}44{{{d{AAj}}{d{AAj}}}AAj}5{{}{{d{Bn}}}}{{Kd{Dn{c}}}{{Af{{AAl{ce}}Cf}}}ChDb}{{{d{Df}}}Kd}``{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{ABh{c}}AAj}{{ABh{c}}}Db}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}{{Bd{Ad}}}{MdCh}{MdDb}}{{{d{Df}}{d{Df}}}{{Bd{Ad}}}}{{{d{ABb}}{d{ABb}}}{{Bd{Ad}}}}{{{d{ABf}}{d{ABf}}}{{Bd{Ad}}}}{{{d{c}}}KdCh}{{{d{{AAl{ce}}}}}{{d{{h{c}}}}}ChDb}{{{d{{AAl{ce}}}}}{{Af{AbCf}}}ChDb}{{{d{{AAl{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}{{{d{{AAl{ce}}}}}KdChDb}{{{d{Df}}c}AfBh}{{}Mj}{{{d{{AAl{ce}}}}}{{D`{ce}}}{CjCh}Db}{{}AAj}{{{d{c}}}e{}{}}00000000{{{d{Ln}}{d{{Gd{c}}}}}{{Af{DfADj}}}Mb}{{{d{c}}}Ml{}}000{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{AAl{ce}}}}{d{jk}}}{{Af{{AAl{ge}}{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000{ce{}{}}00000000000`{{{d{ADl}}}{{Bd{ADn}}}}{{{d{ADl}}}{{Bd{AE`}}}}{{{d{ADl}}Kd}{{Bd{Bj}}}}`````````````````````````````{{AEbAEb}AEb}{{{d{jAEd}}bAEf{AEj{AEh}}}Ab}`{{{d{AEd}}}{{M`{b{`{{AF`{}{{AEl{{AEn{Hb}}}}}}G`}}}}}}{{{d{jAEd}}{d{AFb}}Dh}{{Af{AbAFd}}}}{{{d{jAEd}}{d{AFb}}DhAFf}{{Af{AbAFh}}}}{{{d{jAEd}}c}Ab{{AFl{}{{AEl{{Ij{{d{AFj}}H`}}}}}}}}{{{d{jAEd}}c}{{Af{AbAFd}}}{{AG`{AFn}}}}{{{d{AEd}}}{{d{{AGd{AGb}}}}}}{{{d{AEd}}}AEb}{{{d{c}}}{{d{e}}}{}{}}00000000{{{d{jc}}}{{d{je}}}{}{}}00000000{{{d{jAEd}}AGf}{{Af{{AGj{AGh}}AGl}}}}{{{d{jAEd}}}{{AGj{AGh}}}}{{{d{AEd}}{d{AFj}}}{{Af{ADnAGn}}}}{{{d{AEd}}{d{AFj}}}{{Af{AE`AGn}}}}{{{d{jAEd}}{d{AFj}}}Ab}``{{{d{AEd}}}AH`}{{{d{AEb}}}AEb}{{{d{AFn}}}AFn}{{{d{c}}{d{je}}}Ab{}{}}0`{{{d{jAEd}}}{{AHb{Aj}}}}`{{}AEb}{{}AFn}{{{d{AHd}}}{{d{c}}}{}}{{{d{AEd}}b}{{Bd{Dh}}}}{{{d{AEd}}{d{If}}}{{Bd{{Ij{bDh}}}}}}{{{d{AEd}}b}Ml}{c{{Af{AEb}}}Ah}{{{d{AEb}}{d{AEb}}}Aj}{{{d{AHd}}{d{AHd}}}Aj}``{{{d{AEd}}{d{jAHf}}AHh}{{Af{AjAHj}}}}{{{d{AEb}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{AEd}}{d{jAl}}}An}{{{d{AFn}}{d{jAl}}}An}{{{d{AHd}}{d{jAl}}}An}0{{{d{AHl}}{d{jAl}}}An}0{{{d{AHn}}{d{jAl}}}An}0{{{d{AI`}}{d{jAl}}}An}0{{{d{AIb}}{d{jAl}}}An}0{{{d{AId}}{d{jAl}}}An}0{cc{}}0{{{AIf{b}}}AFn}1{AIhAFn}222222{{{d{AEd}}b}{{d{Kl}}}}{{{d{AEd}}l{Bd{AIj}}Aj}{{Af{AIlAIn}}}}{{{d{AEd}}b}{{AEj{Hl}}}}{{{d{AEd}}AGf}{{Bd{{AJ`{{AEj{AFj}}AGb}}}}}}{{{d{AEd}}Bb}{{Bd{l}}}}````{{{d{jAEd}}AFf}{{Af{AjAJb}}}}{{{d{jAEd}}AFjAJd}{{Af{AjAIb}}}}{{{d{jAEd}}BbBj}Ab}{ce{}{}}00000000{{{d{AJf}}{d{If}}}Aj}{{{d{AEd}}{d{If}}}Aj}`{{{d{AEd}}}{{`{{AF`{}{{AEl{{Ij{{d{b}}{d{Kl}}}}}}}}}}}}`{{{d{AEd}}}AJh}{{{d{AEd}}}{{`{{AF`{}{{AEl{l}}}}}}}}0{{{d{AEd}}b}{{`{{AJj{}{{AEl{AHd}}}}}}}}{c{{Af{AEdAHn}}}{{AJn{AJl}}AK`AKb}}{{{d{AEd}}}{{d{AKd}}}}{{{d{jAEd}}bDh}Aj}{{{d{AEd}}}Cb}`{{cceCb}{{Af{AEdAHl}}}Kj{{AJn{AJl}}AK`AKb}}{{ccCb}{{Af{AEdId}}}Kj}{{ccCbAKf}{{Af{AEdId}}}Kj}{{cceCb}{{Af{AEdAI`}}}Kj{{AJn{AJl}}AK`AKb}}{{cceCbAKf}{{Af{AEdAI`}}}Kj{{AJn{AJl}}AK`AKb}}{{cceCbAKf}{{Af{AEdAHl}}}Kj{{AJn{AJl}}AK`AKb}}{{{d{AEd}}b}Dh}{{{d{jAEd}}b}{{AHb{AHd}}}}{{{d{AEd}}bDh}AHd}{{{d{AEd}}b}{{Af{{Bd{Ib}}Id}}}}{{{d{AEd}}b}{{d{Kl}}}}{{{d{jAEd}}bDh}{{AHb{{`{{AF`{}{{AEl{AHd}}}}}}}}}}4{{{d{AEd}}}{{d{{Gd{I`}}}}}}{{{d{AEd}}{d{AFj}}}{{Ij{ADnADn}}}}{{{d{AEb}}c}AfBh}{{{d{AEd}}{d{jAHf}}AHh}{{Af{AjAHj}}}}`{{{d{AEd}}}{{d{{AKh{b}}}}}}{{{d{AEd}}}{{d{AJl}}}}{{{d{AEd}}}{{AKj{b}}}}{{{d{AEd}}}AKl}{{{d{c}}}e{}{}}0{{{d{c}}}Ml{}}000000{{{d{AEb}}}ADn}{{{d{AEd}}}{{`{{AF`{}{{AEl{{AJ`{{AEj{AFj}}AGb}}}}}}}}}}`1{c{{Af{e}}}{}{}}00000000000000000`{{{d{AEd}}}{{d{{AGd{AGb}}}}}}{{{d{c}}}Bl{}}00000000{{{d{AEd}}b}{{`{{AF`{}{{AEl{{AEn{Hb}}}}}}G`}}}}{{{d{jAEd}}bDh}Aj}`{ce{}{}}00000000{{c{Bd{c}}Cb{d{{Gd{I`}}}}}{{Af{MlId}}}Kj}```````````````````````{{{d{c}}}{{d{e}}}{}{}}00000{{{d{jc}}}{{d{je}}}{}{}}00000{{{d{AKn}}}AKn}{{{d{AL`}}}AL`}{{{d{ALb}}}ALb}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{ALd}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{ALfALh}}}}{{{d{AKn}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{ALfALh}}}}{{{d{AL`}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{ALfALh}}}}{{{d{ALb}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{ALfALh}}}}{{H`AE`{d{If}}}ALj}{{}AKn}{{}AL`}{{}ALb}``{{{d{ALh}}{d{jAl}}}An}0{{{d{ALj}}{d{jAl}}}An}{{{d{ALf}}{d{jAl}}}An}{{{d{AKn}}{d{jAl}}}An}{{{d{AL`}}{d{jAl}}}An}{{{d{ALb}}{d{jAl}}}An}{cc{}}00000{ce{}{}}00000{{{d{ALf}}}H`}{H`ALb}`1{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}00000000000{{{d{c}}}Bl{}}00000666666``````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{jc}}}{{d{je}}}{}{}}00{{{d{ALl}}}ALl}{{{d{c}}{d{je}}}Ab{}{}}{{{d{ALl}}{d{jAl}}}An}0{{{d{AIn}}{d{jAl}}}An}0{{{d{AGl}}{d{jAl}}}An}0>{NfAIn}?{ALhAIn}{ALnAIn}{IdAIn}{ALlAIn}{cc{}}{ce{}{}}00{{{d{c}}}e{}{}}{{{d{c}}}Ml{}}00{c{{Af{e}}}{}{}}00000{{{d{c}}}Bl{}}00444``````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{AM`}}}{{Bd{Ml}}}}{{{d{AM`}}}Ml}{c{{Af{AM`}}}Ah}{{{d{AEd}}{d{Bn}}Aj}{{Af{AM`{d{Bn}}}}}}{{{d{AM`}}{d{jAl}}}An}0<{{{d{Bn}}}{{Af{AM`c}}}{}}<``{{{d{AM`}}c}AfBh};::9=`````````````````````````````````````{{{d{jHl}}AMbAEf{AEj{AEh}}}{{Bd{{AEj{AEh}}}}}}``{{{d{Hl}}{d{{Gd{I`}}}}}Kn}`::::::::99999999{{Kn{d{{C`{Df}}}}{d{{Gd{I`}}}}}Hl}{{{d{AMb}}}AMb}{{{d{AMd}}}AMd}{{{d{{AMf{c}}}}}{{AMf{c}}}{G`AMhABjG`}}{{{d{AEf}}}AEf}{{{d{Hl}}}Hl}{{{d{AHh}}}AHh}{{{d{AMj}}}AMj}{{{d{c}}{d{je}}}Ab{}{}}000000{{{d{AMb}}{d{AMb}}}Ad}{{{d{AEf}}{d{AEf}}}Ad}{{}AEf}{{}Hl}{{}AHh}{{}AMj}{{{d{{AMf{c}}}}}{{d{e}}}{AMhABjG`}{}}{{{d{AMl}}}{{Bd{Ln}}}}{{{d{{AMf{AMn}}}}}{{Bd{Ln}}}}{{{d{{AMf{{AN`{AC`}}}}}}}{{Bd{Ln}}}}{{{d{{AMf{{ANb{AC`}}}}}}}{{Bd{Ln}}}}{{{d{AMb}}{d{AMb}}}Aj}{{{d{AMd}}{d{AMd}}}Aj}{{{d{AEf}}{d{AEf}}}Aj}{{{d{AMj}}{d{AMj}}}Aj}{{{d{Hl}}AMb}{{Bd{{d{{AEj{AEh}}}}}}}}{{{d{AMb}}{d{jAl}}}An}{{{d{AHj}}{d{jAl}}}An}0{{{d{AMd}}{d{jAl}}}An}{{{d{{AMf{c}}}}{d{jAl}}}An{ABjAMhABjG`}}{{{d{AEf}}{d{jAl}}}An}{{{d{Hl}}{d{jAl}}}An}{{{d{AHh}}{d{jAl}}}An}{{{d{AMj}}{d{jAl}}}An}{FhAMb}{ADhAMb}{cc{}}{ANdAHj}{ANfAHj}{ANhAHj}3333333{{{d{AMb}}{d{jc}}}AbB`}{{{d{AMl}}{d{{Gd{I`}}}}}AMb}{{{d{{AMf{AMn}}}}{d{{Gd{I`}}}}}AMb}{{{d{{AMf{{AN`{AC`}}}}}}{d{{Gd{I`}}}}}AMb}{{{d{{AMf{{ANb{AC`}}}}}}{d{{Gd{I`}}}}}AMb}{{{d{Hl}}}{{Dn{{d{AMb}}}}}}{ce{}{}}0000000{{cAMd}{{AMf{c}}}{AMhABjG`}}{{}Hl}{{{d{AMb}}{d{AMb}}}{{Bd{Ad}}}}{{{d{AEf}}{d{AEf}}}{{Bd{Ad}}}}{{{d{jHl}}AMbAEf}{{Bd{{AEj{AEh}}}}}}``{{{d{ANj}}{d{jAHf}}Kd{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}}{{{d{{AMf{{AN`{AC`}}}}}}{d{jAHf}}Kd{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}}{{{d{{AMf{{ANb{AC`}}}}}}{d{jAHf}}Kd{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}}{{{d{{AMf{AMn}}}}{d{jAHf}}Kd{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}}{{{d{AEh}}{d{jAHf}}{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}}{{{d{c}}{d{jAHf}}{d{AHh}}{d{{Gd{I`}}}}}{{Af{AbAHj}}}{}}`{{{d{Hl}}}{{Dn{{d{{AEj{AEh}}}}}}}}`{{{d{c}}}e{}{}}000000{{{d{c}}}Ml{}}``{c{{Af{e}}}{}{}}000000000000000{{{d{c}}}Bl{}}0000000{ce{}{}}0000000````````````````{{{d{j{AGj{c}}}}{d{e}}}{{d{j{AGj{c}}}}}{}{{ANn{ANl}}}}{{{d{j{AGj{c}}}}BbAIlKd}{{Af{{d{j{AGj{c}}}}AO`}}}{}}{{{d{j{AGj{c}}}}BbAIlKdBf}{{Af{{d{j{AGj{c}}}}AO`}}}{}}{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}HbADn}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Bb}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Bb}{{Af{{d{j{AGj{c}}}}AOb}}}{}}{{{d{j{AGj{c}}}}{d{{h{Bb}}}}}{{Af{{d{j{AGj{c}}}}AOb}}}{}}{{{d{j{AGj{c}}}}Aj}{{d{j{AGj{c}}}}}{}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{jc}}}{{d{je}}}{}{}}0000{{{d{j{AGj{c}}}}AOd}{{d{j{AGj{c}}}}}{}}{{{d{{AGj{c}}}}}{{AGj{c}}}G`}{{{d{AOf}}}AOf}{{{d{AOd}}}AOd}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{AOf}}{d{AOf}}}Ad}{{{d{AOd}}{d{AOd}}}Ad}{{{AGj{c}}e}{{AGj{e}}}{}ALd}{{{d{j{AGj{c}}}}Dh}{{d{j{AGj{c}}}}}{}}{{}AOf}{{}AOd}{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Hb}{{d{j{AGj{c}}}}}{}}11{{{d{j{AGj{c}}}}Bf}{{d{j{AGj{c}}}}}{}}{{{d{AOf}}{d{AOf}}}Aj}{{{d{AOd}}{d{AOd}}}Aj}{{{d{j{AGj{c}}}}ADn}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AE`}{{d{j{AGj{c}}}}}{}}{{{AGj{c}}}{{Af{AHfAIn}}}ALd}{{{d{{AGj{c}}}}{d{jAl}}}AnABj}{{{d{AOb}}{d{jAl}}}An}0{{{d{AO`}}{d{jAl}}}An}0{{{d{AOf}}{d{jAl}}}An}{{{d{AOd}}{d{jAl}}}An}{cc{}}0000{{{d{AOf}}{d{jc}}}AbB`}{{{d{AOd}}{d{jc}}}AbB`}?{ce{}{}}0000{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AOh}{{d{j{AGj{c}}}}}{}}11{{{d{j{AGj{c}}}}AOf}{{d{j{AGj{c}}}}}{}}{{{d{AOf}}{d{AOf}}}{{Bd{Ad}}}}{{{d{AOd}}{d{AOd}}}{{Bd{Ad}}}}{{{d{j{AGj{c}}}}{M`{Ml{Dn{Kd}}}}b}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}{Dn{{Ij{HbADn}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AIj}{{d{j{AGj{c}}}}}{}}{{{d{AOf}}{d{jAFj}}}Ab}{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}0{c{{Af{e}}}{}{}}000000000{{{d{c}}}Bl{}}0000{{{d{j{AGj{c}}}}{Dn{Bb}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AOj}{{d{j{AGj{c}}}}}{}}?????``","D":"FHj","p":[[6,"KeychainKind",0,1730],[1,"reference"],[1,"u8"],[1,"slice"],[0,"mut"],[5,"LocalOutput",0,1730],[5,"WeightedUtxo",0,1730],[6,"Utxo",0,1730],[1,"unit"],[6,"Ordering",1731],[6,"Result",1732],[10,"Deserializer",1733],[1,"bool"],[5,"Formatter",1734],[8,"Result",1734],[10,"Hasher",1735],[5,"OutPoint",1736],[6,"Option",1737],[5,"Sequence",1736],[10,"Serializer",1738],[5,"TxOut",1736],[5,"TypeId",1739],[1,"str"],[6,"Descriptor",100,1740],[6,"Network",1741],[5,"Address",1742],[6,"Error",1743],[10,"MiniscriptKey",1743],[10,"ToPublicKey",1743],[6,"ScriptContextEnum",693],[5,"Miniscript",100,1744],[6,"Terminal",1745],[10,"ScriptContext",693,1746],[6,"Tree",1747],[6,"DescriptorPublicKey",693,1748],[1,"u32"],[5,"DefiniteDescriptorKey",1748],[6,"ConversionError",1748],[5,"Vec",1749],[6,"Placeholder",1750],[5,"Satisfaction",1750],[10,"AssetProvider",1751],[17,"Key"],[6,"ScriptContextError",1746],[17,"Sha256"],[5,"Hash",1752],[17,"Hash256"],[5,"Hash",1753],[17,"Ripemd160"],[5,"Hash",1754],[17,"Hash160"],[5,"Hash",1755],[10,"ParseableKey",1745],[6,"Legacy",100,1746],[6,"Segwitv0",100,1746],[10,"Clone",1756],[10,"Ord",1731],[5,"Secp256k1",1757],[5,"PublicKey",1758],[10,"Verification",1759],[6,"DescriptorType",1740],[5,"DescriptorId",1760],[10,"FromStrKey",1761],[1,"u64"],[5,"ScriptBuf",1762],[10,"PartialEq",1731],[5,"ExtParams",1763],[6,"AnalysisError",1763],[10,"ExtractPolicy",100],[5,"SignersContainer",1429],[6,"BuildSatisfaction",386],[6,"All",1764],[5,"Policy",386],[6,"Error",354],[5,"Script",1765],[5,"Range",1766],[1,"tuple"],[5,"Error",1734],[17,"Output"],[10,"FnMut",1767],[5,"Tr",1768],[5,"Bare",1769],[5,"Sh",1770],[5,"Pkh",1769],[5,"Wsh",1771],[5,"Wpkh",1771],[5,"Type",1772],[5,"ExtData",1773],[5,"Tree",1774],[1,"usize"],[10,"Satisfier",1750],[10,"Hash",1735],[10,"IntoWalletDescriptor",100],[8,"ExtendedDescriptor",100],[8,"KeyMap",693,1740],[5,"Iter",1775],[5,"PkIter",1775],[6,"Policy",1776],[6,"LiftError",1777],[5,"Weight",1778],[6,"BareCtx",1746],[6,"TapTree",1768],[6,"DescriptorSecretKey",693,1748],[5,"BTreeMap",1779],[10,"Signing",1759],[10,"PartialOrd",1731],[5,"Plan",1751],[5,"TxIn",1736],[6,"SigType",1746],[5,"String",1780],[6,"TranslateErr",1743],[10,"Translator",1743],[1,"array"],[6,"KeyError",693],[6,"PolicyError",386],[6,"Error",1781],[6,"ParsePublicKeyError",1758],[6,"HexToBytesError",1782],[6,"Error",1783],[6,"PkOrF",386],[6,"SatisfiableItem",386],[6,"Satisfaction",386],[5,"Condition",386],[10,"DescriptorTemplate",557],[8,"DescriptorTemplateOut",557],[5,"P2Pkh",557],[10,"IntoDescriptorKey",693],[5,"P2Wpkh_P2Sh",557],[5,"P2Wpkh",557],[5,"P2TR",557],[6,"Tap",1746],[5,"Bip44",557],[10,"DerivableKey",693],[5,"Bip44Public",557],[5,"Bip49",557],[5,"Bip49Public",557],[5,"Bip84",557],[5,"Bip84Public",557],[5,"Bip86",557],[5,"Bip86Public",557],[8,"ValidNetworks",693],[5,"SortedMultiVec",693,1784],[5,"GeneratedKey",693],[5,"PrivateKeyGenerateOptions",693],[5,"SinglePub",693,1748],[5,"SinglePriv",693,1748],[6,"SinglePubKey",693,1748],[6,"DescriptorKey",693],[10,"Debug",1734],[5,"Xpub",1781],[6,"ExtendedKey",693],[5,"Xpriv",1781],[10,"FromStr",1785],[5,"DerivationPath",1781],[17,"Entropy"],[17,"Options"],[17,"Error"],[10,"GeneratableKey",693],[10,"AsMut",1786],[10,"Default",1787],[10,"GeneratableDefaultOptions",693],[5,"Assets",1751],[8,"KeySource",1781],[5,"Fingerprint",1781],[5,"DescriptorKeyParseError",1748],[10,"PsbtUtils",992],[5,"Amount",1788],[5,"FeeRate",1789],[5,"Balance",996,1790],[5,"Wallet",996],[5,"SignerOrdering",1429],[10,"TransactionSigner",1429],[5,"Arc",1791],[17,"Item"],[8,"Indexed",1790],[10,"Iterator",1792],[5,"Block",1793],[5,"CannotConnectError",1794],[5,"BlockId",1795],[6,"ApplyHeaderError",1794],[5,"Transaction",1736],[10,"IntoIterator",1796],[5,"Update",996],[10,"Into",1786],[5,"ConfirmationTimeHeightAnchor",1795],[5,"TxGraph",1797],[5,"Txid",1736],[8,"DefaultCoinSelectionAlgorithm",1229],[5,"TxBuilder",1613],[6,"BuildFeeBumpError",1328],[6,"CalculateFeeError",1797],[5,"CheckPointIter",1794],[8,"Result",1798],[5,"AddressInfo",996],[5,"Psbt",1799],[5,"SignOptions",1429],[6,"SignerError",1429],[6,"NewError",996],[6,"LoadError",996],[6,"NewOrLoadError",996],[6,"InsertTxError",996],[6,"ApplyBlockError",996],[5,"FullScanResult",1800],[5,"SyncResult",1800],[5,"PsbtSighashType",1801],[5,"Input",1801],[6,"CreateTxError",1328],[5,"CanonicalTx",1797],[5,"AlterCheckPointError",1794],[6,"ConfirmationTime",1795],[10,"IsDust",996,1802],[5,"CheckPoint",1794],[10,"DoubleEndedIterator",1803],[8,"ChangeSet",996],[10,"PersistBackend",1804],[10,"Send",1805],[10,"Sync",1805],[5,"LocalChain",1794],[5,"BlockHash",1793],[5,"KeychainTxOutIndex",1806],[5,"FullScanRequest",1800],[5,"SyncRequest",1800],[5,"LargestFirstCoinSelection",1229],[5,"OldestFirstCoinSelection",1229],[5,"BranchAndBoundCoinSelection",1229],[10,"CoinSelectionAlgorithm",1229],[5,"CoinSelectionResult",1229],[6,"Error",1229],[6,"Excess",1229],[6,"MiniscriptPsbtError",1328],[6,"Error",1807],[5,"FullyNodedExport",1406],[6,"SignerId",1429],[6,"SignerContext",1429],[5,"SignerWrapper",1429],[10,"Sized",1805],[6,"TapLeavesOptions",1429],[10,"SignerCommon",1429],[5,"PrivateKey",1758],[5,"DescriptorMultiXKey",1748],[5,"DescriptorXKey",1748],[6,"TaprootError",1808],[6,"P2wpkhError",1808],[5,"InputsIndexError",1736],[10,"InputSigner",1429],[5,"PushBytes",1809],[10,"AsRef",1786],[6,"AddForeignUtxoError",1613],[6,"AddUtxoError",1613],[6,"ChangeSpendPolicy",1613],[6,"TxOrdering",1613],[6,"LockTime",1810],[1,"i32"],[15,"Foreign",97],[8,"DerivedDescriptor",100],[15,"PsbtTimelocks",533],[15,"Complete",536],[15,"Partial",536],[15,"PartialComplete",536],[15,"Sha256Preimage",547],[15,"Hash256Preimage",547],[15,"Ripemd160Preimage",547],[15,"Hash160Preimage",547],[15,"Thresh",547],[15,"Multisig",547],[15,"AbsoluteTimelock",547],[15,"RelativeTimelock",547],[10,"ExtScriptContext",693],[15,"UnexpectedConnectedToHash",1219],[15,"ConfirmationHeightCannotBeGreaterThanTip",1221],[15,"LoadedGenesisDoesNotMatch",1223],[15,"LoadedNetworkDoesNotMatch",1223],[15,"LoadedDescriptorDoesNotMatch",1223],[15,"InsufficientFunds",1321],[15,"Change",1323],[15,"NoChange",1323],[15,"RbfSequenceCsv",1400],[15,"LockTime",1400],[15,"FeeTooLow",1400],[15,"FeeRateTooLow",1400],[8,"WalletExport",1406],[15,"Tap",1612],[15,"InvalidTxid",1728]],"r":[[2,100],[4,1730],[6,1730],[7,1429],[8,1613],[9,1730],[10,996],[11,1730],[70,996],[71,100],[104,1740],[106,1748],[113,1746],[114,1744],[119,386],[120,1746],[121,1746],[155,352],[696,1748],[697,1748],[712,1740],[722,1746],[727,1748],[728,1748],[729,1748],[730,1784],[998,1790],[1006,1802]],"b":[[193,"impl-Descriptor%3CDescriptorPublicKey%3E"],[194,"impl-Descriptor%3CDefiniteDescriptorKey%3E"],[213,"impl-Display-for-Descriptor%3CPk%3E"],[214,"impl-Debug-for-Descriptor%3CPk%3E"],[217,"impl-Debug-for-Miniscript%3CPk,+Ctx%3E"],[218,"impl-Display-for-Miniscript%3CPk,+Ctx%3E"],[221,"impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[222,"impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[223,"impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[224,"impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[225,"impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[226,"impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[370,"impl-Debug-for-Error"],[371,"impl-Display-for-Error"],[372,"impl-From%3CKeyError%3E-for-Error"],[373,"impl-From%3CPolicyError%3E-for-Error"],[374,"impl-From%3CError%3E-for-Error"],[375,"impl-From%3CParsePublicKeyError%3E-for-Error"],[376,"impl-From%3CError%3E-for-Error"],[377,"impl-From%3CHexToBytesError%3E-for-Error"],[379,"impl-From%3CError%3E-for-Error"],[461,"impl-Display-for-PolicyError"],[462,"impl-Debug-for-PolicyError"],[811,"impl-Display-for-KeyError"],[812,"impl-Debug-for-KeyError"],[813,"impl-Display-for-SortedMultiVec%3CPk,+Ctx%3E"],[814,"impl-Debug-for-SortedMultiVec%3CPk,+Ctx%3E"],[815,"impl-Debug-for-DescriptorPublicKey"],[816,"impl-Display-for-DescriptorPublicKey"],[817,"impl-Display-for-DescriptorSecretKey"],[818,"impl-Debug-for-DescriptorSecretKey"],[823,"impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E"],[825,"impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E"],[830,"impl-From%3CError%3E-for-KeyError"],[831,"impl-From%3CError%3E-for-KeyError"],[872,"impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[873,"impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[1080,"impl-Debug-for-Balance"],[1081,"impl-Display-for-Balance"],[1084,"impl-Debug-for-AddressInfo"],[1085,"impl-Display-for-AddressInfo"],[1086,"impl-Display-for-NewError"],[1087,"impl-Debug-for-NewError"],[1088,"impl-Debug-for-LoadError"],[1089,"impl-Display-for-LoadError"],[1090,"impl-Display-for-NewOrLoadError"],[1091,"impl-Debug-for-NewOrLoadError"],[1092,"impl-Debug-for-InsertTxError"],[1093,"impl-Display-for-InsertTxError"],[1094,"impl-Debug-for-ApplyBlockError"],[1095,"impl-Display-for-ApplyBlockError"],[1098,"impl-From%3CFullScanResult%3CKeychainKind%3E%3E-for-Update"],[1100,"impl-From%3CSyncResult%3E-for-Update"],[1270,"impl-Display-for-Error"],[1271,"impl-Debug-for-Error"],[1367,"impl-Debug-for-MiniscriptPsbtError"],[1368,"impl-Display-for-MiniscriptPsbtError"],[1369,"impl-Display-for-CreateTxError"],[1370,"impl-Debug-for-CreateTxError"],[1371,"impl-Debug-for-BuildFeeBumpError"],[1372,"impl-Display-for-BuildFeeBumpError"],[1374,"impl-From%3CPolicyError%3E-for-CreateTxError"],[1376,"impl-From%3CError%3E-for-CreateTxError"],[1377,"impl-From%3CError%3E-for-CreateTxError"],[1378,"impl-From%3CError%3E-for-CreateTxError"],[1379,"impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError"],[1416,"impl-Display-for-FullyNodedExport"],[1417,"impl-Debug-for-FullyNodedExport"],[1510,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1511,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1512,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1519,"impl-Display-for-SignerError"],[1520,"impl-Debug-for-SignerError"],[1527,"impl-From%3CHash%3E-for-SignerId"],[1528,"impl-From%3CFingerprint%3E-for-SignerId"],[1530,"impl-From%3CTaprootError%3E-for-SignerError"],[1531,"impl-From%3CP2wpkhError%3E-for-SignerError"],[1532,"impl-From%3CInputsIndexError%3E-for-SignerError"],[1542,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1543,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1544,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1562,"impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1563,"impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1564,"impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E"],[1671,"impl-Debug-for-AddUtxoError"],[1672,"impl-Display-for-AddUtxoError"],[1673,"impl-Display-for-AddForeignUtxoError"],[1674,"impl-Debug-for-AddForeignUtxoError"]],"c":"OjAAAAEAAAAAAAUAEAAAAMEAAwEPAR8DdgOABQ==","e":"OzAAAAEAAH0DfwADAAAACAABAAsAAAAOABMAJgAJADUAAQA+AAAAQQAAAEUADwBXAAMAXQADAGoAAAB4AAAAjAABAI8AAACRAAcAnAAAAJ4AAQChAAAApAABAKcAAQCrAAEArgABALEAAQC0AAsAxQADAMoAAwDTAAEA1gANAOoAAAD3AAMAAgEAAAgBAQAMAQEAEwEBACkBAwAuAQEAPAEBAD8BAQBDAQUATgEHAFcBAwBcAQMAcQEJAHwBAAB+AQQApgEZAMIBDgDTAQAA1QEAANsBAQDqAQAA7QEEAPMBIgA8AhcAVQILAHkCPADkAhcABgMVAB0DAQAgAwAAIgMWADoDAAA/AwEAQwMAAEsDAQBWAwMAZgMAAGkDBABvAwEAfwMBAIQDAACOAwAAkwMDAJwDAACgAwgAqgMDALEDLwACBAAACgQAAAwEEQAmBAMALQQCADMEAgA5BA8ASwQAAE0EAACGBAAAjQQIAJoEEQCuBAgAugQIANsEEQDuBAIA8gQCAPcEBgAOBRsAUAUNAF8FAABhBQMAaQUPAIMFAQCHBQAAiQUBAIwFAACQBQUAwAUPANEFFADnBQYA7wUKAPsFAgAFBgAABwYCABUGAQAbBgIAHwYAACMGBwAtBh8AZgYJAHEGBwB7BgEAggYBAIcGBgCTBgEAoAYBAKYGEwC8BgQA"}],\ +["bdk_wallet",{"t":"PPEPGPFEEGEFNNDNNNNNNNNENNNNNNNNNOOCQNNNNNNNNNNQNNNNNNNNNNOOCDNONCONNNEENNNNNNNNNNNNNONNNNOHNNNNCOOOPPPIGEGIKTIKRGFPPPPEKGPPPPTIPPPPPPPPPPNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNMNNMNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNCNONMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNONNNNNNNNNMNNNNCNNNNNNNNNNNMNNNCNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHHPPGPPPPPPPPPPPNNNNNNNNNNNNNNNNNNPPPGPFIPPIPPPPPPPPPPPGFGPPPPPGGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOFFFFFFFFKIFFFFNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPKGGGRRKGPKKFKPPPRGIPPPPPRPFPKGPPPFFGFPIPPPHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNNNNNNNNOONHNMNNHNMNNOONNNNNNMNNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMMMFGFPIPPPPGKGPPPPPPGGPFFNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNCNONNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNMNONONNNNNNNNONNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNONNNNNNNNNHOOOOOOOOOOPPFPKFIGGPFPFNNNNNNNNNNNNNNNNNNMNNNHNNNOONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOGPPGPPPPPPPGPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFIOONNNNNNNNNNNOONNNNNNPPPPPPPKPPPPPPPPPPPPPPPPFKGGGFFFPGKPPNOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNOOMNNNMNONONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOGGPPPGPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","miniscript","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","Bare","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","FALSE","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Pkh","Pkh","Policy","ScriptContext","Segwitv0","Sh","Sh","Sh","Single","TRUE","TapKeyOrigins","Tr","Tr","Tr","Wpkh","Wpkh","Wpkh","Wsh","Wsh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","ExternalAndInternalAreTheSame","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","n","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","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_into","clone_into","coin_selection","commit_to","confirmed","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","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","is_dust","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load_from_changeset","local_chain","mark_used","network","network","new","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","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_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","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","csv","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashP2wpkh","SighashTaproot","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","TxInputsIndexError","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","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","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","Bip69Lexicographic","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","InvalidOutpoint","InvalidTxid","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","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","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":[[0,"bdk_wallet"],[97,"bdk_wallet::Utxo"],[100,"bdk_wallet::descriptor"],[352,"bdk_wallet::descriptor::checksum"],[354,"bdk_wallet::descriptor::error"],[386,"bdk_wallet::descriptor::policy"],[533,"bdk_wallet::descriptor::policy::BuildSatisfaction"],[536,"bdk_wallet::descriptor::policy::Satisfaction"],[547,"bdk_wallet::descriptor::policy::SatisfiableItem"],[557,"bdk_wallet::descriptor::template"],[693,"bdk_wallet::keys"],[992,"bdk_wallet::psbt"],[996,"bdk_wallet::wallet"],[1211,"bdk_wallet::wallet::ApplyBlockError"],[1213,"bdk_wallet::wallet::InsertTxError"],[1215,"bdk_wallet::wallet::NewOrLoadError"],[1221,"bdk_wallet::wallet::coin_selection"],[1313,"bdk_wallet::wallet::coin_selection::Error"],[1315,"bdk_wallet::wallet::coin_selection::Excess"],[1320,"bdk_wallet::wallet::error"],[1391,"bdk_wallet::wallet::error::CreateTxError"],[1397,"bdk_wallet::wallet::export"],[1420,"bdk_wallet::wallet::signer"],[1603,"bdk_wallet::wallet::signer::SignerContext"],[1604,"bdk_wallet::wallet::tx_builder"],[1719,"bdk_wallet::wallet::tx_builder::AddForeignUtxoError"],[1721,"bdk_wallet::types"],[1722,"core::cmp"],[1723,"core::result"],[1724,"serde::de"],[1725,"core::fmt"],[1726,"core::hash"],[1727,"bitcoin::blockdata::transaction"],[1728,"core::option"],[1729,"serde::ser"],[1730,"core::any"],[1731,"miniscript::descriptor"],[1732,"bitcoin::network"],[1733,"bitcoin::address"],[1734,"miniscript"],[1735,"miniscript::miniscript"],[1736,"miniscript::miniscript::decode"],[1737,"miniscript::miniscript::context"],[1738,"miniscript::iter::tree"],[1739,"miniscript::descriptor::key"],[1740,"alloc::vec"],[1741,"miniscript::miniscript::satisfy"],[1742,"miniscript::plan"],[1743,"bitcoin_hashes::sha256"],[1744,"miniscript::miniscript::hash256"],[1745,"bitcoin_hashes::ripemd160"],[1746,"bitcoin_hashes::hash160"],[1747,"core::clone"],[1748,"secp256k1"],[1749,"bitcoin::crypto::key"],[1750,"secp256k1::context"],[1751,"bdk_chain::descriptor_ext"],[1752,"miniscript::blanket_traits"],[1753,"bitcoin::blockdata::script::owned"],[1754,"miniscript::miniscript::analyzable"],[1755,"secp256k1::context::alloc_only"],[1756,"bitcoin::blockdata::script::borrowed"],[1757,"core::ops::range"],[1758,"core::ops::function"],[1759,"miniscript::descriptor::bare"],[1760,"miniscript::descriptor::segwitv0"],[1761,"miniscript::descriptor::sh"],[1762,"miniscript::descriptor::tr"],[1763,"miniscript::miniscript::types"],[1764,"miniscript::miniscript::types::extra_props"],[1765,"miniscript::expression"],[1766,"miniscript::miniscript::iter"],[1767,"miniscript::policy::semantic"],[1768,"miniscript::policy"],[1769,"bitcoin_units::weight"],[1770,"alloc::collections::btree::map"],[1771,"alloc::string"],[1772,"hex_conservative::error"],[1773,"base58ck::error"],[1774,"bitcoin::bip32"],[1775,"miniscript::descriptor::sortedmulti"],[1776,"core::str::traits"],[1777,"core::convert"],[1778,"core::default"],[1779,"bitcoin_units::amount"],[1780,"bitcoin_units::fee_rate"],[1781,"bdk_chain::keychain"],[1782,"alloc::sync"],[1783,"core::iter::traits::iterator"],[1784,"bitcoin::blockdata::block"],[1785,"bdk_chain::local_chain"],[1786,"bdk_chain::chain_data"],[1787,"core::iter::traits::collect"],[1788,"bdk_chain::tx_graph"],[1789,"bdk_chain::persist"],[1790,"bitcoin::psbt"],[1791,"bdk_chain::spk_client"],[1792,"bitcoin::psbt::map::input"],[1793,"bdk_wallet::wallet::utils"],[1794,"core::iter::traits::double_ended"],[1795,"bdk_chain::keychain::txout_index"],[1796,"bitcoin::psbt::error"],[1797,"core::marker"],[1798,"bitcoin::crypto::sighash"],[1799,"bitcoin::blockdata::script::push_bytes::primitive"],[1800,"bitcoin::blockdata::locktime::absolute"]],"i":[1,8,0,1,0,8,0,0,0,0,0,0,1,1,0,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,7,8,1,6,6,0,0,1,6,1,6,7,8,1,6,7,8,0,1,6,7,8,1,6,1,6,7,8,6,6,0,0,8,6,1,0,7,8,1,6,0,0,1,6,7,8,1,6,7,8,1,6,7,8,8,6,1,6,7,8,7,0,1,6,7,8,0,251,251,251,94,252,24,0,0,0,0,0,0,31,0,0,33,0,0,35,94,252,24,0,0,0,94,252,24,35,31,0,94,252,24,94,252,24,94,252,24,35,24,54,55,31,31,24,24,54,55,31,24,54,55,31,31,31,31,0,33,54,55,33,55,33,33,54,55,33,54,55,33,33,54,55,33,54,55,33,54,55,0,24,54,55,31,24,54,55,31,24,54,55,31,31,24,24,24,24,24,24,31,24,31,24,54,55,31,0,24,31,31,69,24,31,24,24,24,54,55,31,31,24,31,24,24,24,24,24,24,24,54,55,31,31,31,24,31,31,31,24,31,31,31,24,24,31,31,24,24,54,55,31,24,54,55,31,31,24,93,94,24,24,31,31,31,24,31,31,33,54,55,31,24,31,24,33,54,55,24,24,24,24,24,24,24,24,24,24,24,24,24,24,31,33,31,24,31,31,24,54,55,31,33,54,55,24,24,0,31,24,31,24,31,31,24,24,31,24,31,33,54,55,31,0,24,54,55,31,24,31,24,33,33,24,31,24,54,55,31,24,54,55,31,31,24,54,55,31,24,24,54,55,31,31,0,0,74,74,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,121,115,115,0,122,0,0,121,120,0,121,121,115,115,115,121,122,71,115,122,122,0,0,0,71,71,120,121,121,0,0,121,121,121,120,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,71,120,121,122,73,123,71,73,123,123,120,121,122,73,123,115,120,121,122,73,123,115,115,71,120,121,122,122,73,73,123,115,71,73,120,123,121,73,120,121,122,73,123,115,71,121,122,123,73,123,73,73,120,121,122,73,123,123,120,121,122,73,123,71,115,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,115,71,120,121,122,73,123,115,71,253,253,253,254,255,256,255,256,255,256,255,256,255,256,257,258,259,260,261,262,262,261,263,264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,124,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,125,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,126,128,129,130,132,134,135,136,137,138,139,140,116,0,0,0,0,158,158,0,0,147,0,0,0,0,116,116,116,33,0,0,30,116,116,103,35,158,151,0,151,0,0,30,35,103,0,0,0,0,30,0,147,103,35,0,265,35,151,143,148,30,144,116,142,35,103,145,146,147,151,143,148,30,144,116,142,35,103,145,146,147,142,33,33,33,33,33,33,33,33,33,143,30,144,142,35,103,145,146,147,143,30,144,142,35,103,145,146,147,142,35,145,147,144,144,143,35,35,142,30,142,35,103,145,146,147,148,30,144,116,116,142,142,35,35,103,103,145,146,147,142,151,151,151,143,148,30,144,116,116,116,142,35,35,103,145,146,147,148,148,35,103,142,35,35,158,161,158,161,151,35,142,35,145,147,151,143,148,30,144,116,142,35,103,145,146,147,35,127,133,143,143,148,35,103,133,151,143,143,35,103,151,151,35,265,30,35,103,265,30,265,30,35,35,142,145,146,142,0,35,33,142,142,0,142,33,142,35,145,146,33,148,142,35,145,147,33,142,142,142,142,35,33,142,0,143,30,144,142,35,103,145,146,147,103,116,142,35,103,33,33,142,151,143,148,30,144,116,142,35,103,145,146,147,151,143,148,30,144,116,142,35,103,145,146,147,151,143,148,30,144,116,142,35,103,145,146,147,151,143,148,30,144,116,142,35,103,145,146,147,0,166,166,166,0,0,0,203,0,202,199,200,201,0,0,0,201,201,201,200,200,200,0,0,203,0,0,169,170,195,170,170,170,170,170,170,170,169,170,183,195,199,200,201,202,203,169,170,183,195,199,200,201,202,203,170,170,170,170,170,193,183,170,169,183,169,183,0,170,169,169,183,195,170,170,170,169,169,195,0,0,170,169,169,170,183,195,195,199,199,200,200,201,201,202,202,203,203,169,170,183,183,183,195,199,200,201,202,203,170,170,170,170,170,183,169,195,193,170,170,170,169,170,183,195,199,200,201,202,203,212,170,195,170,183,170,170,170,170,170,170,170,170,193,170,170,170,170,170,170,170,170,170,170,170,170,170,169,170,0,170,170,170,170,169,183,169,195,199,200,201,202,203,169,170,169,169,169,170,183,195,199,200,201,202,203,169,170,183,195,199,200,201,202,203,0,170,169,170,183,195,199,200,201,202,203,170,170,169,169,170,183,195,199,200,201,202,203,0,266,266,267,267,268,269,268,269,270,270,225,225,0,226,0,0,0,0,0,225,0,226,0,225,226,224,220,221,222,225,226,224,220,221,222,220,221,222,220,221,222,223,220,221,222,0,220,221,222,224,224,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,224,222,224,224,220,221,222,225,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,225,226,224,220,221,222,271,271,272,273,273,272,273,0,208,227,0,208,208,190,208,190,208,208,0,208,208,208,208,208,227,208,208,208,208,208,190,190,208,190,227,208,208,227,208,190,227,208,190,227,227,227,227,208,208,190,190,227,208,208,208,208,208,208,190,227,208,190,227,227,208,190,227,208,190,227,208,190,227,208,190,227,208,190,274,274,275,275,276,277,0,0,278,229,229,229,229,229,229,229,229,229,229,229,229,278,229,229,229,229,229,229,229,234,230,234,198,230,234,198,0,198,198,198,231,198,198,198,198,198,198,198,234,230,231,198,198,0,0,0,0,0,0,0,0,231,0,0,198,198,70,197,197,70,197,230,198,231,232,171,70,197,234,230,198,231,232,171,70,197,234,70,230,231,232,171,70,197,234,230,231,232,171,70,197,234,230,171,171,70,197,234,232,235,232,232,232,230,231,171,234,70,230,198,198,231,232,171,70,197,234,230,230,230,198,198,198,198,231,232,171,70,197,234,230,235,232,232,232,70,230,198,231,232,171,70,197,234,232,70,230,171,70,197,197,242,232,232,232,172,232,197,70,197,230,231,232,171,70,197,234,198,197,197,230,198,231,232,171,70,197,234,230,198,231,232,171,70,197,234,230,198,231,232,171,70,197,234,230,198,231,232,171,70,197,234,279,0,0,248,247,247,0,245,245,245,247,248,0,0,246,248,189,189,189,189,189,189,189,189,189,189,246,245,248,247,189,246,245,248,247,189,189,248,247,189,248,247,248,247,189,189,248,247,189,189,189,189,189,248,247,189,189,189,189,246,246,245,245,248,247,189,246,245,248,247,248,247,189,189,246,245,248,247,189,189,189,189,189,248,247,189,189,189,248,189,248,247,246,245,189,246,245,248,247,189,246,245,248,247,189,246,245,248,247,189,189,189,246,245,248,247,280,280],"f":"````````````{{{d{b}}}f}{{{d{b}}}{{d{{h{f}}}}}}`{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000`{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{{d{A`}}}A`}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{b}}{d{b}}}Ad}````{c{{Af{b}}}Ah}{c{{Af{l}}}Ah}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{A`}}{d{A`}}}Aj}{{{d{b}}{d{jAl}}}An}{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}{{{d{A`}}{d{jAl}}}An}`{cc{}}000{{{d{b}}{d{jc}}}AbB`}{{{d{l}}{d{jc}}}AbB`}{ce{}{}}000````{{{d{A`}}}Bb}`{{{d{b}}{d{b}}}{{Bd{Ad}}}}``{{{d{A`}}}{{Bd{Bf}}}}{{{d{b}}c}AfBh}{{{d{l}}c}AfBh}``{{{d{c}}}e{}{}}000{c{{Af{e}}}{}{}}0000000{{{d{A`}}}{{d{Bj}}}}`{{{d{c}}}Bl{}}000`{{}{{d{Bn}}}}::::``````````````````````````````````````````{{{d{{C`{c}}}}Cb}{{Af{CdCf}}}{ChCj}}{{}Cl}0{{{d{{Cn{ce}}}}}{{d{{D`{ce}}}}}ChDb}{{{d{{d{{Cn{ce}}}}}}}{{Dd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{jc}}}{{d{je}}}{}{}}000{{{d{{Cn{ce}}}}}{{Dn{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}0`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{Cn{cFn}}}}}{{Af{AbEh}}}Ch}2022102102{{{d{c}}}{{Af{AbEh}}}Ch}00{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{D`{cFl}}}}}{{Af{AbEh}}}Ch}{{{d{{D`{cFn}}}}}{{Af{AbEh}}}Ch}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}00`{{{d{{C`{c}}}}}{{C`{c}}}{G`Ch}}{{{d{Fl}}}Fl}{{{d{Fn}}}Fn}{{{d{{Cn{ce}}}}}{{Cn{ce}}}{G`Ch}{G`Db}}{{{d{c}}{d{je}}}Ab{}{}}000{{{d{{C`{c}}}}{d{{C`{c}}}}}Ad{GbCh}}{{{d{Fl}}{d{Fl}}}Ad}{{{d{Fn}}{d{Fn}}}Ad}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AdChDb}{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{Df}}}}Dh}{{Af{{C`{Dj}}Dl}}}}{{{d{{C`{Df}}}}{d{{Gd{c}}}}Dh}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{Dj}}}}{d{{Gd{c}}}}}{{Af{{C`{Gf}}Dl}}}Gh}{{{d{{C`{c}}}}}GjCh}{{{d{{C`{Df}}}}}Gl}{c{{Af{{C`{e}}}}}AhGn}{c{{Af{{Cn{eg}}}}}AhGnDb}{{{d{{C`{Df}}}}}H`}{{{d{{Cn{ce}}}}}Hb{CjCh}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}Aj{HdCh}}{{{d{Fl}}{d{Fl}}}Aj}{{{d{Fn}}{d{Fn}}}Aj}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}AjChDb}`{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}`{{{d{{Cn{ce}}}}{d{Hf}}}{{Af{AbHh}}}ChDb}{{{d{Hj}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{C`{Df}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}}{{{d{{Cn{Dfc}}}}{d{Hl}}Hn{d{{Gd{I`}}}}}{{Af{{Bd{Ib}}Id}}}Db}{{{d{{C`{Df}}}}{d{{Gd{c}}}}{d{If}}{Ih{Dh}}}{{Af{{Bd{{Ij{Dh{C`{Gf}}}}}}Dl}}}Gh}{{{d{{C`{c}}}}{d{jAl}}}{{Af{AbIl}}}Ch}0{{{d{Fl}}{d{jAl}}}{{Af{AbIl}}}}{{{d{Fn}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{Cn{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{{C`{c}}}}e}AjCh{{J`{{d{c}}}{{In{Aj}}}}}}{{{d{{Cn{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{{{Jb{c}}}{{C`{c}}}Ch}{{{Jd{c}}}{{C`{c}}}Ch}{cc{}}{{{Jf{c}}}{{C`{c}}}Ch}{{{Jh{c}}}{{C`{c}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}{{{Jl{c}}}{{C`{c}}}Ch}444{{{D`{ce}}}{{Af{{Cn{ce}}Cf}}}ChDb}{{{D`{ce}}JnK`}{{Cn{ce}}}ChDb}{{{d{Bn}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Bn}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{Bn}}{d{Hf}}}{{Af{{Cn{ce}}Cf}}}GnDb}1{{{d{Kb}}}{{Af{{C`{c}}Cf}}}Gn}{{{d{Kb}}}{{Af{{Cn{ce}}Cf}}}GnDb}{{{d{{Cn{ce}}}}Kd}{{Bd{{d{{Cn{ce}}}}}}}ChDb}{{{d{{Cn{ce}}}}Kd}{{Bd{c}}}ChDb}{{{d{{C`{c}}}}e}{{Af{{Ij{{Dn{{Dn{f}}}}Hb}}Cf}}}{ChCj}{{Kf{c}}}}0{{{d{{Cn{ce}}}}}AjChDb}0{{{d{{C`{Df}}}}}Aj}{{{d{{C`{c}}}}{d{je}}}Ab{KhCh}B`}{{{d{Fl}}{d{jc}}}AbB`}{{{d{Fn}}{d{jc}}}AbB`}{{{d{{Cn{ce}}}}{d{jg}}}AbChDbB`}{ce{}{}}000{{{Cn{ce}}}{{D`{ce}}}ChDb}{{{C`{Df}}}{{Af{{Dn{{C`{Df}}}}Cf}}}}{{Kj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{Kl{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}99:{{{d{{Cn{ce}}}}}{{L`{ce}}}ChDb}{{{d{{Cn{ce}}}}}{{Lb{ce}}}ChDb}{{{d{{C`{c}}}}}{{Af{{Ld{c}}Cf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{{d{{Cn{ce}}}}}{{Af{AbLf}}}ChDb}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{Cn{cFl}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{cFn}}}}}{{Bd{Kd}}}Ch}{{{d{{Cn{ce}}}}}{{Af{KdCf}}}ChDb}{{{d{{C`{c}}}}}{{Af{KdCf}}}Ch}1{{{d{{C`{c}}}}}{{Af{LhCf}}}Ch}{{}{{d{Bn}}}}00{{{Cn{cLj}}}{{Af{{C`{c}}Cf}}}Ch}{c{{C`{c}}}Ch}{c{{Af{{C`{c}}Cf}}}Ch}{{{Cn{cFl}}}{{Af{{C`{c}}Cf}}}Ch}{{Kd{Dn{c}}}{{Af{{C`{c}}Cf}}}Ch}{{{Jj{c}}}{{C`{c}}}Ch}{{{Jd{c}}}{{C`{c}}}Ch}4{{{Cn{cFn}}}{{Af{{C`{c}}Cf}}}Ch}3{{c{Bd{{Ll{c}}}}}{{Af{{C`{c}}Cf}}}Ch}614`{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{If}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{Gd{c}}}}{d{Bn}}}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Cf}}}Mb}1{{{d{If}}{d{Hf}}}{{Af{{Cn{c}}Cf}}}Db}{{{d{{C`{c}}}}{d{{C`{c}}}}}{{Bd{Ad}}}{MdCh}}{{{d{Fl}}{d{Fl}}}{{Bd{Ad}}}}{{{d{Fn}}{d{Fn}}}{{Bd{Ad}}}}{{{d{{Cn{ce}}}}{d{{Cn{ce}}}}}{{Bd{Ad}}}ChDb}{{{d{c}}}KdCh}00{{{C`{Dj}}{d{c}}}{{Af{Mf{C`{Dj}}}}}{{Ed{Dj}}}}0`{{{d{{Cn{ce}}}}}AjChDb}{{{d{{C`{c}}}}}{{Af{AbCf}}}Ch}{{{d{{Cn{ce}}}}}{{Af{AbHh}}}ChDb}{{{d{{C`{c}}}}{d{jMh}}e}{{Af{AbCf}}}{ChCj}{{Kf{c}}}}{{{d{{Cn{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}0{{{d{{C`{c}}}}}{{Af{HbCf}}}{ChCj}}{{{d{{C`{c}}}}}Hb{ChCj}}{{{d{{Cn{ce}}}}}KdChDb}{{{d{{C`{c}}}}e}AfChBh}{{{d{{Cn{ce}}}}g}AfChDbBh}{{}Mj}00{{{d{{Cn{ce}}}}{d{{M`{Fhc}}}}}{{Cn{ce}}}ChDb}`{{{d{c}}}e{}{}}000{{{d{c}}}Ml{}}0{{{d{{C`{Df}}}}{d{{M`{DfLn}}}}}Ml}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{C`{c}}}}{d{ji}}}{{Af{{Mn{g}}}}}ChCh{}{{N`{ceg}}}}{{{d{{Cn{ce}}}}{d{jk}}}{{Af{{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}0000000`{{{d{c}}}Bl{}}000={ce{}{}}000{{{d{{Cn{ce}}}}}AjChDb}{{{d{Bn}}}{{Af{MlId}}}}{{{d{Bn}}}{{Af{{Nb{f}}Id}}}}``````````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{Id}}{d{jAl}}}An}0{NdId}{NfId}{NhId}{NjId}{CfId}{cc{}}{NlId}{NnId}>{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0{{{d{c}}}Bl{}}{ce{}{}}```````````````````````````````````>>>>>>>======={{{d{O`}}}O`}{{{d{Ob}}}Ob}{{{d{Od}}}Od}{{{d{Ib}}}Ib}{{{d{Of}}}Of}{{{d{Hn}}}Hn}{{{d{c}}{d{je}}}Ab{}{}}00000``{{}Of}{{{d{O`}}{d{O`}}}Aj}{{{d{Ob}}{d{Ob}}}Aj}{{{d{Od}}{d{Od}}}Aj}{{{d{Ib}}{d{Ib}}}Aj}{{{d{Of}}{d{Of}}}Aj}{{{d{Nf}}{d{Nf}}}Aj}{{{d{O`}}{d{jAl}}}An}{{{d{Ob}}{d{jAl}}}An}{{{d{Od}}{d{jAl}}}An}{{{d{Ib}}{d{jAl}}}An}{{{d{Of}}{d{jAl}}}An}{{{d{Nf}}{d{jAl}}}An}0{{{d{Hn}}{d{jAl}}}An}{cc{}}00{AjOd}{ObIb}2222{{{d{Ib}}{d{{M`{Ml{Dn{Kd}}}}}}}{{Af{OfNf}}}}{{{d{O`}}{d{jc}}}AbB`}{{{d{Of}}{d{jc}}}AbB`}{{{d{Ob}}}Ml}`{ce{}{}}000000{{{d{Ob}}}Aj}{{{d{Od}}}Aj}{{{d{Of}}}Aj}`{{{d{Of}}{d{Of}}}{{Bd{Ad}}}}{{{d{Ib}}}Aj}`{{{d{O`}}c}AfBh}{{{d{Ob}}c}AfBh}{{{d{Od}}c}AfBh}{{{d{Ib}}c}AfBh}{{{d{Of}}c}AfBh}`{{{d{c}}}e{}{}}00000{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}0000000000000{{{d{c}}}Bl{}}000000>>>>>>>``````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{OhCb}{{Af{OjId}}}}{{{Ol{c}}Cb}{{Af{OjId}}}{{On{Fl}}}}{{{A@`{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@b{c}}Cb}{{Af{OjId}}}{{On{Fn}}}}{{{A@d{c}}Cb}{{Af{OjId}}}{{On{A@f}}}}{{{A@h{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@l{c}}Cb}{{Af{OjId}}}{{A@j{Fl}}}}{{{A@n{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AA`{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAb{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAd{c}}Cb}{{Af{OjId}}}{{A@j{Fn}}}}{{{AAf{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{{{AAh{c}}Cb}{{Af{OjId}}}{{A@j{A@f}}}}{cc{}}00000000000{ce{}{}}00000000000{{Oj{d{{Gd{I`}}}}Cb}{{Af{{Ij{KlKn}}Id}}}}{{c{d{{Gd{I`}}}}Cb}{{Af{{Ij{{C`{Df}}{M`{DfLn}}}}Id}}}{}}00000000000{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000444444444444```````````````````````````````````````````{{}AAj}{{}Cl}{{DfDh}{{Af{DjDl}}}}{{{d{c}}}{{d{e}}}{}{}}00000000000{{{d{jc}}}{{d{je}}}{}{}}00000000000{{{d{{AAl{ce}}}}{d{g}}}{{Eb{{E`{c}}}}}{CjCh}Db{{Ed{c}}}}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}00000{{{d{c}}}{{Af{AbEh}}}Ch}{{{d{{D`{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbEh}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{d{{h{{Dn{f}}}}}}}{{Af{AbEh}}}}{{{d{{AAn{ce}}}}}{{AAn{ce}}}G`Db}{{{d{Cl}}}Cl}{{{d{AB`}}}AB`}{{{d{{AAl{ce}}}}}{{AAl{ce}}}{G`Ch}{G`Db}}{{{d{Df}}}Df}{{{d{Ln}}}Ln}{{{d{ABb}}}ABb}{{{d{ABd}}}ABd}{{{d{ABf}}}ABf}{{{d{c}}{d{je}}}Ab{}{}}00000000{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Ad{GbCh}{GbDb}}{{{d{Df}}{d{Df}}}Ad}{{{d{ABb}}{d{ABb}}}Ad}{{{d{ABf}}{d{ABf}}}Ad}`{{}AB`}{{{d{{AAn{ce}}}}}{{d{g}}}{}Db{}}{{DfDh}{{Af{DjDl}}}}{c{{Af{Df}}}Ah}{{{d{{AAl{ce}}}}}Hb{CjCh}Db}{{{d{Cl}}{d{Cl}}}Aj}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}Aj{HdCh}{HdDb}}{{{d{Df}}{d{Df}}}Aj}{{{d{Ln}}{d{Ln}}}Aj}{{{d{ABb}}{d{ABb}}}Aj}{{{d{ABd}}{d{ABd}}}Aj}{{{d{ABf}}{d{ABf}}}Aj}{{{d{{ABh{c}}}}{d{jAl}}}An{ABjDb}}{{{d{Cl}}{d{jAl}}}An}{{{d{AB`}}{d{jAl}}}An}{{{d{Nh}}{d{jAl}}}An}0{{{d{{AAl{ce}}}}{d{jAl}}}{{Af{AbIl}}}ChDb}0{{{d{Df}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{Ln}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{ABb}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABd}}{d{jAl}}}{{Af{AbIl}}}}{{{d{ABf}}{d{jAl}}}{{Af{AbIl}}}}{{{d{{AAl{ce}}}}g}AjChDb{{J`{{d{c}}}{{In{Aj}}}}}}{ABl{{ABn{c}}}Db}{AC`{{ABn{c}}}Db}{cc{}}0000{CfNh}1{NnNh}2{DjDf}33333{{DfAAj}{{ABh{c}}}Db}{{LnAAj}{{ABh{c}}}Db}{{{d{Bn}}}{{Af{Df}}}}{{{d{Bn}}}{{Af{Ln}}}}{{{d{Kb}}}{{Af{{AAl{ce}}Cf}}}{ACbCh}Db}{{{d{Df}}}{{Bd{ACd}}}}{{{d{Df}}}{{Dn{ACd}}}}{c{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{{}{{Af{{AAn{ADbc}}e}}}Db{}}{{ce}{{Af{{AAn{{ACl{}{{ACf{e}}{ACh{c}}{ACj{g}}}}i}}g}}}{}{{ACn{{h{f}}}}AD`}ABjDb}{c{{Af{{AAn{ADbe}}g}}}{}Db{}}{{{d{{ABn{c}}}}}AjDb}{{{d{Df}}}Aj}{{{d{{AAl{ce}}}}{d{jg}}}Ab{KhCh}{KhDb}B`}{{{d{Df}}{d{jc}}}AbB`}{{{d{ABb}}{d{jc}}}AbB`}{{{d{ABf}}{d{jc}}}AbB`}{ce{}{}}00000000000{DfADd}{On{{Af{{ABh{c}}Nh}}}Db}{{A@j{Bd{ADf}}ACd}{{Af{{ABh{c}}Nh}}}Db}{{{AAn{ec}}{Bd{ADf}}ACd}{{Af{{ABh{c}}Nh}}}Db{{A@j{c}}}}{{{AAn{ec}}}{{Af{{ABh{c}}Nh}}}Db{{On{c}}}}{{{ABh{c}}}{{Af{{ABh{c}}Nh}}}Db}{Df{{Af{{ABh{c}}Nh}}}Db}{Ln{{Af{{ABh{c}}Nh}}}Db}{A@j{{Af{{ABn{c}}Nh}}}Db}{{{ABn{c}}}{{Af{{ABn{c}}Nh}}}Db}{{{AAn{ec}}}{{Af{{ABn{c}}Nh}}}Db{{A@j{c}}}}{{{AAn{ce}}}c{}Db}{Df{{Dn{Df}}}}{Ln{{Dn{Ln}}}}{{{ABn{c}}Cb}{{Bd{ABl}}}Db}{{{ABn{c}}Cb{d{{Gd{e}}}}}AC`DbMb}{{{d{Df}}}Aj}{{}Aj}{{{d{Cl}}}Aj}2{{{d{Ln}}}Aj}212133{{{d{{AAl{ce}}}}}KdChDb}``{{{d{{AAl{ce}}}}}{{Af{{Ld{c}}Cf}}}ChDb}{{}AAj}{{{d{Df}}}ADh}{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Bd{Kd}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}44{{{d{AAj}}{d{AAj}}}AAj}5{{}{{d{Bn}}}}{{Kd{Dn{c}}}{{Af{{AAl{ce}}Cf}}}ChDb}{{{d{Df}}}Kd}``{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}{{{ABh{c}}AAj}{{ABh{c}}}Db}{{{d{{AAl{ce}}}}{d{{AAl{ce}}}}}{{Bd{Ad}}}{MdCh}{MdDb}}{{{d{Df}}{d{Df}}}{{Bd{Ad}}}}{{{d{ABb}}{d{ABb}}}{{Bd{Ad}}}}{{{d{ABf}}{d{ABf}}}{{Bd{Ad}}}}{{{d{c}}}KdCh}{{{d{{AAl{ce}}}}}{{d{{h{c}}}}}ChDb}{{{d{{AAl{ce}}}}}{{Af{AbCf}}}ChDb}{{{d{{AAl{ce}}}}g}{{Af{{Dn{{Dn{f}}}}Cf}}}{CjCh}Db{{Kf{c}}}}{{{d{{AAl{ce}}}}}KdChDb}{{{d{Df}}c}AfBh}{{}Mj}{{{d{{AAl{ce}}}}}{{D`{ce}}}{CjCh}Db}{{}AAj}{{{d{c}}}e{}{}}00000000{{{d{Ln}}{d{{Gd{c}}}}}{{Af{DfADj}}}Mb}{{{d{c}}}Ml{}}000{{{d{{Cn{c{Db{}{{Ef{e}}}}}}}}}{{Af{AbCf}}}Ch{{Fj{}{{Ej{El}}{En{F`}}{Fb{Fd}}{Ff{Fh}}}}ChChChCh}}0{{{d{{AAl{ce}}}}{d{jk}}}{{Af{{AAl{ge}}{Mn{i}}}}}ChDbCh{}{{N`{cgi}}}}{c{{Af{e}}}{}{}}00000000000000000000000{{{d{c}}}Bl{}}00000000000{ce{}{}}00000000000`{{{d{ADl}}}{{Bd{ADn}}}}{{{d{ADl}}}{{Bd{AE`}}}}{{{d{ADl}}Kd}{{Bd{Bj}}}}```````````````````````{{AEbAEb}AEb}{{{d{jAEd}}bAEf{AEj{AEh}}}Ab}`{{{d{AEd}}}{{M`{b{`{{AF`{}{{AEl{{AEn{Hb}}}}}}G`}}}}}}{{{d{jAEd}}{d{AFb}}Dh}{{Af{AbAFd}}}}{{{d{jAEd}}{d{AFb}}DhAFf}{{Af{AbAFh}}}}{{{d{jAEd}}c}Ab{{AFl{}{{AEl{{Ij{{d{AFj}}H`}}}}}}}}{{{d{jAEd}}c}{{Af{AbAFd}}}{{AG`{AFn}}}}{{{d{AEd}}}{{d{{AGd{AGb}}}}}}{{{d{AEd}}}AEb}{{{d{c}}}{{d{e}}}{}{}}00000000{{{d{jc}}}{{d{je}}}{}{}}00000000{{{d{jAEd}}AGf}{{Af{{AGj{AGh}}AGl}}}}{{{d{jAEd}}}{{AGj{AGh}}}}{{{d{AEd}}{d{AFj}}}{{Af{ADnAGn}}}}{{{d{AEd}}{d{AFj}}}{{Af{AE`AGn}}}}{{{d{jAEd}}{d{AFj}}}Ab}``{{{d{AEd}}}AH`}{{{d{AEb}}}AEb}{{{d{AFn}}}AFn}{{{d{c}}{d{je}}}Ab{}{}}0`{{{d{jAEd}}{d{jc}}}{{Af{Aj}}}{{AHd{AHb}}}}`{{}AEb}{{}AFn}{{{d{AHf}}}{{d{c}}}{}}{{{d{AEd}}b}{{Bd{Dh}}}}{{{d{AEd}}{d{If}}}{{Bd{{Ij{bDh}}}}}}{{{d{AEd}}b}Ml}{c{{Af{AEb}}}Ah}{{{d{AEb}}{d{AEb}}}Aj}{{{d{AHf}}{d{AHf}}}Aj}``{{{d{AEd}}{d{jAHh}}AHj}{{Af{AjAHl}}}}{{{d{AEb}}{d{jAl}}}{{Af{AbIl}}}}0{{{d{AEd}}{d{jAl}}}An}{{{d{AFn}}{d{jAl}}}An}{{{d{AHf}}{d{jAl}}}An}0{{{d{AHn}}{d{jAl}}}An}0{{{d{AI`}}{d{jAl}}}An}0{{{d{AIb}}{d{jAl}}}An}0{{{d{AId}}{d{jAl}}}An}0{{{d{AIf}}{d{jAl}}}An}0{cc{}}0{AIhAFn}{{{AIj{b}}}AFn}2222222{{{d{AEd}}b}{{d{Kl}}}}{{{d{AEd}}l{Bd{AIl}}Aj}{{Af{AInAJ`}}}}{{{d{AEd}}b}{{AEj{Hl}}}}{{{d{AEd}}AGf}{{Bd{{AJb{{AEj{AFj}}AGb}}}}}}{{{d{AEd}}Bb}{{Bd{l}}}}````{{{d{jAEd}}AFf}{{Af{AjAJd}}}}{{{d{jAEd}}AFjAJf}{{Af{AjAId}}}}{{{d{jAEd}}BbBj}Ab}{ce{}{}}00000000{{{d{AJh}}{d{If}}}Aj}{{{d{AEd}}{d{If}}}Aj}`{{{d{AEd}}}{{`{{AF`{}{{AEl{{Ij{{d{b}}{d{Kl}}}}}}}}}}}}`{{{d{AEd}}}AJj}{{{d{AEd}}}{{`{{AF`{}{{AEl{l}}}}}}}}0{{{d{AEd}}b}{{`{{AJl{}{{AEl{AHf}}}}}}}}{AHb{{Af{AEdAI`}}}}{{{d{AEd}}}{{d{AJn}}}}{{{d{jAEd}}bDh}Aj}{{{d{AEd}}}Cb}`{{ccCb}{{Af{AEdAHn}}}Kj}{{cc{Bd{AHb}}Cb}{{Af{AEdAIb}}}Kj}{{cc{Bd{AHb}}CbAK`}{{Af{AEdAIb}}}Kj}{{ccCbAK`}{{Af{AEdAHn}}}Kj}{{{d{AEd}}b}Dh}{{{d{jAEd}}b}AHf}{{{d{AEd}}bDh}AHf}{{{d{AEd}}b}{{Af{{Bd{Ib}}Id}}}}{{{d{AEd}}b}{{d{Kl}}}}{{{d{jAEd}}bDh}{{`{{AF`{}{{AEl{AHf}}}}}}}}4{{{d{AEd}}}{{d{{Gd{I`}}}}}}{{{d{AEd}}{d{AFj}}}{{Ij{ADnADn}}}}{{{d{AEb}}c}AfBh}{{{d{AEd}}{d{jAHh}}AHj}{{Af{AjAHl}}}}`{{{d{AEd}}}{{d{{AKb{b}}}}}}{{{d{AEd}}}{{d{AHb}}}}{{{d{AEd}}}{{AKd{b}}}}{{{d{AEd}}}AKf}{{{d{c}}}e{}{}}0{{{d{c}}}Ml{}}000000{{{d{AEb}}}ADn}{{{d{AEd}}}{{`{{AF`{}{{AEl{{AJb{{AEj{AFj}}AGb}}}}}}}}}}`1{c{{Af{e}}}{}{}}00000000000000000`{{{d{AEd}}}{{d{{AGd{AGb}}}}}}{{{d{c}}}Bl{}}00000000{{{d{AEd}}b}{{`{{AF`{}{{AEl{{AEn{Hb}}}}}}G`}}}}{{{d{jAEd}}bDh}Aj}`{ce{}{}}00000000{{c{Bd{c}}Cb{d{{Gd{I`}}}}}{{Af{MlId}}}Kj}```````````````````````{{{d{c}}}{{d{e}}}{}{}}00000{{{d{jc}}}{{d{je}}}{}{}}00000{{{d{AKh}}}AKh}{{{d{AKj}}}AKj}{{{d{AKl}}}AKl}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{AKn}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKh}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKj}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{AL`ALb}}}}{{{d{AKl}}{Dn{n}}{Dn{n}}AE`H`{d{If}}}{{Af{AL`ALb}}}}{{H`AE`{d{If}}}ALd}{{}AKh}{{}AKj}{{}AKl}``{{{d{ALb}}{d{jAl}}}An}0{{{d{ALd}}{d{jAl}}}An}{{{d{AL`}}{d{jAl}}}An}{{{d{AKh}}{d{jAl}}}An}{{{d{AKj}}{d{jAl}}}An}{{{d{AKl}}{d{jAl}}}An}{cc{}}00000{ce{}{}}00000{{{d{AL`}}}H`}{H`AKl}`1{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}{c{{Af{e}}}{}{}}00000000000{{{d{c}}}Bl{}}00000666666`````````````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{jc}}}{{d{je}}}{}{}}00{{{d{ALf}}}ALf}{{{d{c}}{d{je}}}Ab{}{}}{{{d{ALf}}{d{jAl}}}An}0{{{d{AJ`}}{d{jAl}}}An}0{{{d{AGl}}{d{jAl}}}An}0>{ALhAJ`}{ALbAJ`}{ALfAJ`}{cc{}}{NfAJ`}{IdAJ`}2{ce{}{}}00{{{d{c}}}e{}{}}{{{d{c}}}Ml{}}00{c{{Af{e}}}{}{}}00000{{{d{c}}}Bl{}}00444``````````{{{d{c}}}{{d{e}}}{}{}}{{{d{jc}}}{{d{je}}}{}{}}{{{d{ALj}}}{{Bd{Ml}}}}{{{d{ALj}}}Ml}{c{{Af{ALj}}}Ah}{{{d{AEd}}{d{Bn}}Aj}{{Af{ALj{d{Bn}}}}}}{{{d{ALj}}{d{jAl}}}An}0>{{{d{Bn}}}{{Af{ALjc}}}{}}<``{{{d{ALj}}c}AfBh};::9=`````````````````````````````````````{{{d{jHl}}ALlAEf{AEj{AEh}}}{{Bd{{AEj{AEh}}}}}}``{{{d{Hl}}{d{{Gd{I`}}}}}Kn}`::::::::99999999{{Kn{d{{C`{Df}}}}{d{{Gd{I`}}}}}Hl}{{{d{ALl}}}ALl}{{{d{ALn}}}ALn}{{{d{{AM`{c}}}}}{{AM`{c}}}{G`AMbABjG`}}{{{d{AEf}}}AEf}{{{d{Hl}}}Hl}{{{d{AHj}}}AHj}{{{d{AMd}}}AMd}{{{d{c}}{d{je}}}Ab{}{}}000000{{{d{ALl}}{d{ALl}}}Ad}{{{d{AEf}}{d{AEf}}}Ad}{{}AEf}{{}Hl}{{}AHj}{{}AMd}{{{d{{AM`{c}}}}}{{d{e}}}{AMbABjG`}{}}{{{d{AMf}}}{{Bd{Ln}}}}{{{d{{AM`{AMh}}}}}{{Bd{Ln}}}}{{{d{{AM`{{AMj{ABl}}}}}}}{{Bd{Ln}}}}{{{d{{AM`{{AMl{ABl}}}}}}}{{Bd{Ln}}}}{{{d{ALl}}{d{ALl}}}Aj}{{{d{ALn}}{d{ALn}}}Aj}{{{d{AEf}}{d{AEf}}}Aj}{{{d{AMd}}{d{AMd}}}Aj}{{{d{Hl}}ALl}{{Bd{{d{{AEj{AEh}}}}}}}}{{{d{ALl}}{d{jAl}}}An}{{{d{AHl}}{d{jAl}}}An}0{{{d{ALn}}{d{jAl}}}An}{{{d{{AM`{c}}}}{d{jAl}}}An{ABjAMbABjG`}}{{{d{AEf}}{d{jAl}}}An}{{{d{Hl}}{d{jAl}}}An}{{{d{AHj}}{d{jAl}}}An}{{{d{AMd}}{d{jAl}}}An}{cc{}}{FhALl}{ADhALl}{AMnAHl}3{AN`AHl}{ANbAHl}555555{{{d{ALl}}{d{jc}}}AbB`}{{{d{AMf}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMj{ABl}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{AMh}}}}{d{{Gd{I`}}}}}ALl}{{{d{{AM`{{AMl{ABl}}}}}}{d{{Gd{I`}}}}}ALl}{{{d{Hl}}}{{Dn{{d{ALl}}}}}}{ce{}{}}0000000{{cALn}{{AM`{c}}}{AMbABjG`}}{{}Hl}{{{d{ALl}}{d{ALl}}}{{Bd{Ad}}}}{{{d{AEf}}{d{AEf}}}{{Bd{Ad}}}}{{{d{jHl}}ALlAEf}{{Bd{{AEj{AEh}}}}}}``{{{d{ANd}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMj{ABl}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{AMh}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{{AM`{{AMl{ABl}}}}}}{d{jAHh}}Kd{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{AEh}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}}{{{d{c}}{d{jAHh}}{d{AHj}}{d{{Gd{I`}}}}}{{Af{AbAHl}}}{}}`{{{d{Hl}}}{{Dn{{d{{AEj{AEh}}}}}}}}`{{{d{c}}}e{}{}}000000{{{d{c}}}Ml{}}``{c{{Af{e}}}{}{}}000000000000000{{{d{c}}}Bl{}}0000000{ce{}{}}0000000````````````````{{{d{j{AGj{c}}}}{d{e}}}{{d{j{AGj{c}}}}}{}{{ANh{ANf}}}}{{{d{j{AGj{c}}}}BbAInKd}{{Af{{d{j{AGj{c}}}}ANj}}}{}}{{{d{j{AGj{c}}}}BbAInKdBf}{{Af{{d{j{AGj{c}}}}ANj}}}{}}{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}HbADn}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Bb}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Bb}{{Af{{d{j{AGj{c}}}}ANl}}}{}}{{{d{j{AGj{c}}}}{d{{h{Bb}}}}}{{Af{{d{j{AGj{c}}}}ANl}}}{}}{{{d{j{AGj{c}}}}Aj}{{d{j{AGj{c}}}}}{}}{{{d{c}}}{{d{e}}}{}{}}0000{{{d{jc}}}{{d{je}}}{}{}}0000{{{d{j{AGj{c}}}}ANn}{{d{j{AGj{c}}}}}{}}{{{d{{AGj{c}}}}}{{AGj{c}}}G`}{{{d{AO`}}}AO`}{{{d{ANn}}}ANn}{{{d{c}}{d{je}}}Ab{}{}}00{{{d{AO`}}{d{AO`}}}Ad}{{{d{ANn}}{d{ANn}}}Ad}{{{AGj{c}}e}{{AGj{e}}}{}AKn}{{{d{j{AGj{c}}}}Dh}{{d{j{AGj{c}}}}}{}}{{}AO`}{{}ANn}{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}Hb}{{d{j{AGj{c}}}}}{}}11{{{d{j{AGj{c}}}}Bf}{{d{j{AGj{c}}}}}{}}{{{d{AO`}}{d{AO`}}}Aj}{{{d{ANn}}{d{ANn}}}Aj}{{{d{j{AGj{c}}}}ADn}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AE`}{{d{j{AGj{c}}}}}{}}{{{AGj{c}}}{{Af{AHhAJ`}}}AKn}{{{d{{AGj{c}}}}{d{jAl}}}AnABj}{{{d{ANl}}{d{jAl}}}An}0{{{d{ANj}}{d{jAl}}}An}0{{{d{AO`}}{d{jAl}}}An}{{{d{ANn}}{d{jAl}}}An}{cc{}}0000{{{d{AO`}}{d{jc}}}AbB`}{{{d{ANn}}{d{jc}}}AbB`}?{ce{}{}}0000{{{d{j{AGj{c}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AOb}{{d{j{AGj{c}}}}}{}}11{{{d{j{AGj{c}}}}AO`}{{d{j{AGj{c}}}}}{}}{{{d{AO`}}{d{AO`}}}{{Bd{Ad}}}}{{{d{ANn}}{d{ANn}}}{{Bd{Ad}}}}{{{d{j{AGj{c}}}}{M`{Ml{Dn{Kd}}}}b}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}{Dn{{Ij{HbADn}}}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AIl}{{d{j{AGj{c}}}}}{}}{{{d{AO`}}{d{jAFj}}}Ab}{{{d{c}}}e{}{}}00{{{d{c}}}Ml{}}0{c{{Af{e}}}{}{}}000000000{{{d{c}}}Bl{}}0000{{{d{j{AGj{c}}}}{Dn{Bb}}}{{d{j{AGj{c}}}}}{}}{{{d{j{AGj{c}}}}AOd}{{d{j{AGj{c}}}}}{}}?????``","D":"FGh","p":[[6,"KeychainKind",0,1721],[1,"reference"],[1,"u8"],[1,"slice"],[0,"mut"],[5,"LocalOutput",0,1721],[5,"WeightedUtxo",0,1721],[6,"Utxo",0,1721],[1,"unit"],[6,"Ordering",1722],[6,"Result",1723],[10,"Deserializer",1724],[1,"bool"],[5,"Formatter",1725],[8,"Result",1725],[10,"Hasher",1726],[5,"OutPoint",1727],[6,"Option",1728],[5,"Sequence",1727],[10,"Serializer",1729],[5,"TxOut",1727],[5,"TypeId",1730],[1,"str"],[6,"Descriptor",100,1731],[6,"Network",1732],[5,"Address",1733],[6,"Error",1734],[10,"MiniscriptKey",1734],[10,"ToPublicKey",1734],[6,"ScriptContextEnum",693],[5,"Miniscript",100,1735],[6,"Terminal",1736],[10,"ScriptContext",693,1737],[6,"Tree",1738],[6,"DescriptorPublicKey",693,1739],[1,"u32"],[5,"DefiniteDescriptorKey",1739],[6,"ConversionError",1739],[5,"Vec",1740],[6,"Placeholder",1741],[5,"Satisfaction",1741],[10,"AssetProvider",1742],[17,"Key"],[6,"ScriptContextError",1737],[17,"Sha256"],[5,"Hash",1743],[17,"Hash256"],[5,"Hash",1744],[17,"Ripemd160"],[5,"Hash",1745],[17,"Hash160"],[5,"Hash",1746],[10,"ParseableKey",1736],[6,"Legacy",100,1737],[6,"Segwitv0",100,1737],[10,"Clone",1747],[10,"Ord",1722],[5,"Secp256k1",1748],[5,"PublicKey",1749],[10,"Verification",1750],[6,"DescriptorType",1731],[5,"DescriptorId",1751],[10,"FromStrKey",1752],[1,"u64"],[5,"ScriptBuf",1753],[10,"PartialEq",1722],[5,"ExtParams",1754],[6,"AnalysisError",1754],[10,"ExtractPolicy",100],[5,"SignersContainer",1420],[6,"BuildSatisfaction",386],[6,"All",1755],[5,"Policy",386],[6,"Error",354],[5,"Script",1756],[5,"Range",1757],[1,"tuple"],[5,"Error",1725],[17,"Output"],[10,"FnMut",1758],[5,"Pkh",1759],[5,"Wsh",1760],[5,"Sh",1761],[5,"Tr",1762],[5,"Wpkh",1760],[5,"Bare",1759],[5,"Type",1763],[5,"ExtData",1764],[5,"Tree",1765],[1,"usize"],[10,"Satisfier",1741],[10,"Hash",1726],[10,"IntoWalletDescriptor",100],[8,"ExtendedDescriptor",100],[8,"KeyMap",693,1731],[5,"Iter",1766],[5,"PkIter",1766],[6,"Policy",1767],[6,"LiftError",1768],[5,"Weight",1769],[6,"BareCtx",1737],[6,"TapTree",1762],[6,"DescriptorSecretKey",693,1739],[5,"BTreeMap",1770],[10,"Signing",1750],[10,"PartialOrd",1722],[5,"Plan",1742],[5,"TxIn",1727],[6,"SigType",1737],[5,"String",1771],[6,"TranslateErr",1734],[10,"Translator",1734],[1,"array"],[6,"HexToBytesError",1772],[6,"PolicyError",386],[6,"KeyError",693],[6,"Error",1773],[6,"ParsePublicKeyError",1749],[6,"Error",1774],[6,"PkOrF",386],[6,"SatisfiableItem",386],[6,"Satisfaction",386],[5,"Condition",386],[10,"DescriptorTemplate",557],[8,"DescriptorTemplateOut",557],[5,"P2Pkh",557],[10,"IntoDescriptorKey",693],[5,"P2Wpkh_P2Sh",557],[5,"P2Wpkh",557],[5,"P2TR",557],[6,"Tap",1737],[5,"Bip44",557],[10,"DerivableKey",693],[5,"Bip44Public",557],[5,"Bip49",557],[5,"Bip49Public",557],[5,"Bip84",557],[5,"Bip84Public",557],[5,"Bip86",557],[5,"Bip86Public",557],[8,"ValidNetworks",693],[5,"SortedMultiVec",693,1775],[5,"GeneratedKey",693],[5,"PrivateKeyGenerateOptions",693],[5,"SinglePub",693,1739],[5,"SinglePriv",693,1739],[6,"SinglePubKey",693,1739],[6,"DescriptorKey",693],[10,"Debug",1725],[5,"Xpriv",1774],[6,"ExtendedKey",693],[5,"Xpub",1774],[10,"FromStr",1776],[5,"DerivationPath",1774],[17,"Entropy"],[17,"Options"],[17,"Error"],[10,"GeneratableKey",693],[10,"AsMut",1777],[10,"Default",1778],[10,"GeneratableDefaultOptions",693],[5,"Assets",1742],[8,"KeySource",1774],[5,"Fingerprint",1774],[5,"DescriptorKeyParseError",1739],[10,"PsbtUtils",992],[5,"Amount",1779],[5,"FeeRate",1780],[5,"Balance",996,1781],[5,"Wallet",996],[5,"SignerOrdering",1420],[10,"TransactionSigner",1420],[5,"Arc",1782],[17,"Item"],[8,"Indexed",1781],[10,"Iterator",1783],[5,"Block",1784],[5,"CannotConnectError",1785],[5,"BlockId",1786],[6,"ApplyHeaderError",1785],[5,"Transaction",1727],[10,"IntoIterator",1787],[5,"Update",996],[10,"Into",1777],[5,"ConfirmationTimeHeightAnchor",1786],[5,"TxGraph",1788],[5,"Txid",1727],[8,"DefaultCoinSelectionAlgorithm",1221],[5,"TxBuilder",1604],[6,"BuildFeeBumpError",1320],[6,"CalculateFeeError",1788],[5,"CheckPointIter",1785],[8,"ChangeSet",996],[10,"PersistBackend",1789],[5,"AddressInfo",996],[5,"Psbt",1790],[5,"SignOptions",1420],[6,"SignerError",1420],[6,"NewError",996],[6,"LoadError",996],[6,"NewOrLoadError",996],[6,"InsertTxError",996],[6,"ApplyBlockError",996],[5,"SyncResult",1791],[5,"FullScanResult",1791],[5,"PsbtSighashType",1792],[5,"Input",1792],[6,"CreateTxError",1320],[5,"CanonicalTx",1788],[5,"AlterCheckPointError",1785],[6,"ConfirmationTime",1786],[10,"IsDust",996,1793],[5,"CheckPoint",1785],[10,"DoubleEndedIterator",1794],[5,"LocalChain",1785],[5,"BlockHash",1784],[5,"KeychainTxOutIndex",1795],[5,"FullScanRequest",1791],[5,"SyncRequest",1791],[5,"LargestFirstCoinSelection",1221],[5,"OldestFirstCoinSelection",1221],[5,"BranchAndBoundCoinSelection",1221],[10,"CoinSelectionAlgorithm",1221],[5,"CoinSelectionResult",1221],[6,"Error",1221],[6,"Excess",1221],[6,"MiniscriptPsbtError",1320],[6,"Error",1796],[5,"FullyNodedExport",1397],[6,"SignerId",1420],[6,"SignerContext",1420],[5,"SignerWrapper",1420],[10,"Sized",1797],[6,"TapLeavesOptions",1420],[10,"SignerCommon",1420],[5,"PrivateKey",1749],[5,"DescriptorMultiXKey",1739],[5,"DescriptorXKey",1739],[6,"TaprootError",1798],[6,"P2wpkhError",1798],[5,"InputsIndexError",1727],[10,"InputSigner",1420],[5,"PushBytes",1799],[10,"AsRef",1777],[6,"AddForeignUtxoError",1604],[6,"AddUtxoError",1604],[6,"ChangeSpendPolicy",1604],[6,"TxOrdering",1604],[6,"LockTime",1800],[1,"i32"],[15,"Foreign",97],[8,"DerivedDescriptor",100],[15,"PsbtTimelocks",533],[15,"Complete",536],[15,"Partial",536],[15,"PartialComplete",536],[15,"Sha256Preimage",547],[15,"Hash256Preimage",547],[15,"Ripemd160Preimage",547],[15,"Hash160Preimage",547],[15,"Thresh",547],[15,"Multisig",547],[15,"AbsoluteTimelock",547],[15,"RelativeTimelock",547],[10,"ExtScriptContext",693],[15,"UnexpectedConnectedToHash",1211],[15,"ConfirmationHeightCannotBeGreaterThanTip",1213],[15,"LoadedGenesisDoesNotMatch",1215],[15,"LoadedNetworkDoesNotMatch",1215],[15,"LoadedDescriptorDoesNotMatch",1215],[15,"InsufficientFunds",1313],[15,"Change",1315],[15,"NoChange",1315],[15,"RbfSequenceCsv",1391],[15,"LockTime",1391],[15,"FeeTooLow",1391],[15,"FeeRateTooLow",1391],[8,"WalletExport",1397],[15,"Tap",1603],[15,"InvalidTxid",1719]],"r":[[2,100],[4,1721],[6,1721],[7,1420],[8,1604],[9,1721],[10,996],[11,1721],[70,996],[71,100],[104,1731],[106,1739],[113,1737],[114,1735],[119,386],[120,1737],[121,1737],[155,352],[696,1739],[697,1739],[712,1731],[722,1737],[727,1739],[728,1739],[729,1739],[730,1775],[998,1781],[1006,1793]],"b":[[193,"impl-Descriptor%3CDescriptorPublicKey%3E"],[194,"impl-Descriptor%3CDefiniteDescriptorKey%3E"],[213,"impl-Display-for-Descriptor%3CPk%3E"],[214,"impl-Debug-for-Descriptor%3CPk%3E"],[217,"impl-Display-for-Miniscript%3CPk,+Ctx%3E"],[218,"impl-Debug-for-Miniscript%3CPk,+Ctx%3E"],[221,"impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[222,"impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[224,"impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[225,"impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[226,"impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[227,"impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E"],[370,"impl-Display-for-Error"],[371,"impl-Debug-for-Error"],[372,"impl-From%3CHexToBytesError%3E-for-Error"],[373,"impl-From%3CPolicyError%3E-for-Error"],[374,"impl-From%3CKeyError%3E-for-Error"],[375,"impl-From%3CError%3E-for-Error"],[376,"impl-From%3CError%3E-for-Error"],[378,"impl-From%3CParsePublicKeyError%3E-for-Error"],[379,"impl-From%3CError%3E-for-Error"],[461,"impl-Debug-for-PolicyError"],[462,"impl-Display-for-PolicyError"],[811,"impl-Display-for-KeyError"],[812,"impl-Debug-for-KeyError"],[813,"impl-Display-for-SortedMultiVec%3CPk,+Ctx%3E"],[814,"impl-Debug-for-SortedMultiVec%3CPk,+Ctx%3E"],[815,"impl-Debug-for-DescriptorPublicKey"],[816,"impl-Display-for-DescriptorPublicKey"],[817,"impl-Display-for-DescriptorSecretKey"],[818,"impl-Debug-for-DescriptorSecretKey"],[823,"impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E"],[824,"impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E"],[830,"impl-From%3CError%3E-for-KeyError"],[832,"impl-From%3CError%3E-for-KeyError"],[872,"impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[873,"impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK,+Ctx%3E"],[1074,"impl-Display-for-Balance"],[1075,"impl-Debug-for-Balance"],[1078,"impl-Debug-for-AddressInfo"],[1079,"impl-Display-for-AddressInfo"],[1080,"impl-Display-for-NewError"],[1081,"impl-Debug-for-NewError"],[1082,"impl-Debug-for-LoadError"],[1083,"impl-Display-for-LoadError"],[1084,"impl-Debug-for-NewOrLoadError"],[1085,"impl-Display-for-NewOrLoadError"],[1086,"impl-Display-for-InsertTxError"],[1087,"impl-Debug-for-InsertTxError"],[1088,"impl-Debug-for-ApplyBlockError"],[1089,"impl-Display-for-ApplyBlockError"],[1092,"impl-From%3CSyncResult%3E-for-Update"],[1093,"impl-From%3CFullScanResult%3CKeychainKind%3E%3E-for-Update"],[1262,"impl-Debug-for-Error"],[1263,"impl-Display-for-Error"],[1358,"impl-Display-for-MiniscriptPsbtError"],[1359,"impl-Debug-for-MiniscriptPsbtError"],[1360,"impl-Debug-for-CreateTxError"],[1361,"impl-Display-for-CreateTxError"],[1362,"impl-Display-for-BuildFeeBumpError"],[1363,"impl-Debug-for-BuildFeeBumpError"],[1365,"impl-From%3CError%3E-for-CreateTxError"],[1366,"impl-From%3CError%3E-for-CreateTxError"],[1367,"impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError"],[1369,"impl-From%3CPolicyError%3E-for-CreateTxError"],[1370,"impl-From%3CError%3E-for-CreateTxError"],[1407,"impl-Debug-for-FullyNodedExport"],[1408,"impl-Display-for-FullyNodedExport"],[1501,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1502,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1503,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1510,"impl-Debug-for-SignerError"],[1511,"impl-Display-for-SignerError"],[1519,"impl-From%3CHash%3E-for-SignerId"],[1520,"impl-From%3CFingerprint%3E-for-SignerId"],[1521,"impl-From%3CTaprootError%3E-for-SignerError"],[1523,"impl-From%3CP2wpkhError%3E-for-SignerError"],[1524,"impl-From%3CInputsIndexError%3E-for-SignerError"],[1533,"impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1534,"impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E"],[1535,"impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1553,"impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E"],[1554,"impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E"],[1555,"impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E"],[1662,"impl-Debug-for-AddUtxoError"],[1663,"impl-Display-for-AddUtxoError"],[1664,"impl-Display-for-AddForeignUtxoError"],[1665,"impl-Debug-for-AddForeignUtxoError"]],"c":"OjAAAAEAAAAAAAUAEAAAAMEAAwEPAR8DdgN3BQ==","e":"OzAAAAEAAH0DfwADAAAACAABAAsAAAAOABMAJgAJADUAAQA+AAAAQQAAAEUADwBXAAMAXQADAGoAAAB4AAAAjAABAI8AAACRAAcAnAAAAJ4AAQChAAAApAABAKcAAQCrAAEArgABALEAAQC0AAsAxQADAMoAAwDTAAEA1gAJAOEAAwDqAAAA9wADAAIBAAAIAQEADAEBABMBAQApAQMALgEBADwBAQA/AQEAQwEFAE4BBwBXAQMAXAEDAHEBCAB7AQEAfgEEAKYBGQDCAQ4A1AEBANsBAQDqAQAA7QEEAPMBIgA8AhcAVQILAHkCPADkAhcABgMVAB0DAQAgAwAAIgMXAD8DAABBAwAAQwMAAEsDAQBWAwMAZgMAAGkDBABvAwEAfwMBAIQDAACOAwAAkwMDAJwDAACgAwgAqgMDALEDLwD8AwAABAQAAAYEEQAgBAMAJwQCAC0EAgAzBA8ARQQBAH4EAACFBAgAkgQRAKYECACyBAgA0wQRAOYEAgDqBAIA7wQGAAYFGwBHBQ0AVgUCAFoFAQBgBQ8AegUBAH4FAACABQEAgwUAAIcFBQC3BQ8AyAUUAN4FBgDmBQgA8AUCAPQFAQD8BQAA/gUCAAwGAQASBgIAFgYAABoGBwAkBh8AXQYJAGgGBwByBgEAeQYBAH4GBgCKBgEAlwYBAJ0GEwCzBgQA"}],\ ["example_bitcoind_rpc_polling",{"t":"PSISSSGPSPFGSPPNNNNHNNNNNNNNNNONNNNNNNNNNNNNNHNOOOHNNNNNNNNNNNNNNNONNNOO","n":["Block","CHANNEL_BOUND","ChangeSet","DB_COMMIT_DELAY","DB_MAGIC","DB_PATH","Emission","Live","MEMPOOL_EMIT_DELAY","Mempool","RpcArgs","RpcCommands","STDOUT_PRINT_DELAY","Sync","Tip","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","await_flag","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fallback_height","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","main","new_client","rpc_cookie","rpc_password","rpc_user","start_ctrlc_handler","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","url","vzip","vzip","vzip","rpc_args","rpc_args"],"q":[[0,"example_bitcoind_rpc_polling"],[70,"example_bitcoind_rpc_polling::RpcCommands"],[72,"clap::builder::command"],[73,"core::sync::atomic"],[74,"core::time"],[75,"core::fmt"],[76,"clap::parser::matches::arg_matches"],[77,"clap::error"],[78,"core::result"],[79,"anyhow"],[80,"bitcoincore_rpc::client"],[81,"alloc::sync"],[82,"core::any"]],"i":[10,0,0,0,0,0,0,8,0,10,0,0,0,8,10,7,7,8,8,0,10,7,8,10,7,8,7,8,7,8,7,10,7,8,10,7,8,7,8,7,8,8,10,7,8,0,7,7,7,7,0,7,8,10,7,8,10,7,8,10,7,8,7,8,7,8,7,10,7,8,21,22],"f":"```````````````{bb}000{{{f{d}}h}j}{{{f{c}}}{{f{e}}}{}{}}00{{{f{lc}}}{{f{le}}}{}{}}00{{{f{n}}}n}{{{f{A`}}}A`}{{{f{c}}{f{le}}}Ab{}{}}0`{{{f{Ad}}{f{lAf}}}Ah}{{{f{n}}{f{lAf}}}Ah}{{{f{A`}}{f{lAf}}}Ah}{cc{}}00{{{f{Aj}}}{{An{nAl}}}}{{{f{Aj}}}{{An{A`Al}}}}{{{f{lAj}}}{{An{nAl}}}}{{{f{lAj}}}{{An{A`Al}}}}{{{f{B`}}}j}{ce{}{}}00{{}{{Bb{Ab}}}}{{{f{n}}}{{Bb{Bd}}}}```{{}{{Bf{d}}}}{{{f{c}}}e{}{}}0{c{{An{e}}}{}{}}00000{{{f{c}}}Bh{}}00{{{f{ln}}{f{Aj}}}{{An{AbAl}}}}{{{f{lA`}}{f{Aj}}}{{An{AbAl}}}}{{{f{ln}}{f{lAj}}}{{An{AbAl}}}}{{{f{lA`}}{f{lAj}}}{{An{AbAl}}}}`:::``","D":"Bb","p":[[8,"Command",72],[5,"AtomicBool",73],[1,"reference"],[5,"Duration",74],[1,"bool"],[0,"mut"],[5,"RpcArgs",0],[6,"RpcCommands",0],[1,"unit"],[6,"Emission",0],[5,"Formatter",75],[8,"Result",75],[5,"ArgMatches",76],[5,"Error",77],[6,"Result",78],[1,"str"],[8,"Result",79],[5,"Client",80],[5,"Arc",81],[5,"TypeId",82],[15,"Sync",70],[15,"Live",70]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADcACgAAAAEAAwAAAAUAAgAKAAIADwAPACAAAgAmAAQALgABADMADwBEAAQA"}],\ -["example_cli",{"t":"PGFPPPGGFPPFPGIIPPPPPPPIPPPGEONNNNNNNNENNNNNNNNNNNNNNNNOOENNNNNNNNNNNOOHOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOOOOHONNNNNNNNNNOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOO","n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","External","Index","Init","Internal","Keychain","KeychainChangeSet","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","PlannedUtxo","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","args","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands","augment_subcommands","augment_subcommands_for_update","augment_subcommands_for_update","augment_subcommands_for_update","bdk_file_store","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","change_keychain","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db","db_path","default","descriptor","deserialize","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","index","index","index","index_changeset","init","init_changeset","into","into","into","into","into","into","into","into","into_app","into_app_for_update","keymap","network","partial_cmp","planned_utxos","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","change","addr_cmd","address","chain_specific","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":[[0,"example_cli"],[176,"example_cli::AddressCmd"],[177,"example_cli::Commands"],[183,"example_cli::TxOutCmd"],[187,"clap::builder::command"],[188,"core::clone"],[189,"clap::derive"],[190,"core::cmp"],[191,"miniscript::descriptor::key"],[192,"alloc::collections::btree::map"],[193,"bitcoin::address"],[194,"bitcoin::blockdata::transaction"],[195,"core::option"],[196,"anyhow"],[197,"bdk_chain::tx_data_traits"],[198,"bdk_chain::chain_oracle"],[199,"core::result"],[200,"serde::de"],[201,"core::fmt"],[202,"clap::parser::matches::arg_matches"],[203,"clap::error"],[204,"std::sync::mutex"],[205,"bdk_persist::persist"],[206,"bitcoin::network"],[207,"core::default"],[208,"serde::ser"],[209,"core::convert"],[210,"core::ops::function"],[211,"core::marker"],[212,"bdk_tmp_plan"],[213,"alloc::vec"],[214,"alloc::string"],[215,"core::any"]],"i":[4,0,0,4,8,4,0,0,0,11,9,0,11,0,0,0,8,9,10,9,8,9,8,0,4,8,4,0,0,50,34,34,4,9,10,4,9,10,0,21,50,34,4,8,9,10,11,21,50,34,4,8,9,10,11,34,21,0,4,8,9,10,11,4,8,9,10,11,11,34,34,0,50,34,8,34,11,11,11,11,4,8,8,9,10,11,11,21,50,34,4,8,9,10,11,34,4,9,10,34,4,9,10,8,0,4,9,10,14,21,50,21,0,50,21,50,34,4,8,9,10,11,34,34,50,34,11,0,11,4,8,9,10,11,8,11,21,50,34,4,8,9,10,11,21,50,34,4,8,9,10,11,21,50,34,4,8,9,10,11,34,4,9,10,34,4,9,10,21,50,34,4,8,9,10,11,60,61,62,62,62,63,62,64,64,64,64],"f":"``````````````````````````````{bb}0000000`{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{fc}}}{{d{fe}}}{}{}}0000000```{{{d{{h{ce}}}}}{{h{ce}}}{jl}{jn}}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{c}}{d{fe}}}Ah{}{}}0000{{{d{Af}}{d{Af}}}Aj}``{{{d{f{Al{c}}}}{d{e}}{d{{Bb{AnB`}}}}A`BdBf}{{C`{{Bn{Bh{Bl{Bj}}}}}}}CbCd}``{{}A`}`{c{{Cf{Af}}}Ch}{{{d{Af}}{d{Af}}}Cj}{{{d{c}}{d{e}}}Cj{}{}}0{{{d{{h{ce}}}}{d{fCl}}}Cn{D`l}{D`n}}{{{d{A`}}{d{fCl}}}Cn}0{{{d{Ab}}{d{fCl}}}Cn}{{{d{Ad}}{d{fCl}}}Cn}{{{d{Af}}{d{fCl}}}Cn}0{cc{}}0000000{{{d{Db}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{Db}}}{{Cf{{h{ce}}Df}}}ln}{{{d{Db}}}{{Cf{AbDf}}}}{{{d{Db}}}{{Cf{AdDf}}}}{{{d{fDb}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{{h{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{AbDf}}}}{{{d{fDb}}}{{Cf{AdDf}}}}{{{d{Dh}}}{{Cf{A`c}}}{}}{{{d{{Dj{{Al{c}}}}}}{d{{Dj{{Dl{e}}}}}}{d{{Dj{g}}}}{d{{Bb{AnB`}}}}Dnk{h{mi}}}{{C`{Ah}}}Cb{E`EbEdEf{Ej{{Eh{c}}}}}Cdn{{En{i{d{Bh}}}{{El{{C`{Ah}}}}}}}l}{{{d{Dh}}}Cj}00````{{{d{{Fb{F`}}}}{d{Dh}}}{{C`{{Fd{ceg}}}}}ln{E`EbEfEdFfFh}}`{ce{}{}}0000000{{}b}0``{{{d{Af}}{d{Af}}}{{Bl{Aj}}}}{{{d{{Al{c}}}}{d{e}}{d{{Fj{g}}}}}{{Cf{{Fn{{Fl{gc}}}}}}}CbCd{jG`}}{{{d{Af}}c}CfGb}{{{d{c}}}e{}{}}0000{{{d{c}}}Gd{}}0{c{{Cf{e}}}{}{}}000000000000000{{{d{c}}}Gf{}}0000000{{{d{f{Dd{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{Db}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{Db}}}{{Cf{AhDf}}}}{{{d{f{Dd{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{fDb}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{fDb}}}{{Cf{AhDf}}}}{ce{}{}}0000000```````````","D":"E`","p":[[8,"Command",187],[1,"reference"],[0,"mut"],[6,"Commands",0],[10,"Clone",188],[10,"Subcommand",189],[10,"Args",189],[6,"CoinSelectionAlgo",0],[6,"AddressCmd",0],[6,"TxOutCmd",0],[6,"Keychain",0],[1,"unit"],[6,"Ordering",190],[8,"KeychainTxGraph",0],[6,"DescriptorPublicKey",191],[6,"DescriptorSecretKey",191],[5,"BTreeMap",192],[5,"Address",193],[1,"u64"],[5,"Transaction",194],[5,"CreateTxChange",0],[6,"Option",195],[1,"tuple"],[8,"Result",196],[10,"Anchor",197],[10,"ChainOracle",198],[6,"Result",199],[10,"Deserializer",200],[1,"bool"],[5,"Formatter",201],[8,"Result",201],[10,"Debug",201],[5,"ArgMatches",202],[5,"Args",0],[5,"Error",203],[1,"str"],[5,"Mutex",204],[5,"Persist",205],[6,"Network",206],[10,"Default",207],[10,"Append",197],[10,"DeserializeOwned",200],[10,"Serialize",208],[8,"KeychainChangeSet",0],[10,"From",209],[17,"Output"],[10,"FnOnce",210],[1,"u8"],[1,"slice"],[5,"Init",0],[10,"Send",211],[10,"Sync",211],[5,"Assets",212],[8,"PlannedUtxo",0],[5,"Vec",213],[10,"CanDerive",212],[10,"Serializer",208],[5,"String",214],[5,"TypeId",215],[15,"List",176],[15,"Address",177],[15,"Send",177],[15,"TxOut",177],[15,"List",183]],"r":[],"b":[[81,"impl-Debug-for-CoinSelectionAlgo"],[82,"impl-Display-for-CoinSelectionAlgo"],[85,"impl-Debug-for-Keychain"],[86,"impl-Display-for-Keychain"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJMAEQAAAAAAAgABAAUABQANAAQAFQAAABcAAQAaAAAAHAABAB8AKQBKAA0AYAAMAG4AAABwAAAAewABAH4AMgCyAAAAtAACAA=="}],\ +["example_cli",{"t":"PGFPPPGGFPPFPGIIPPPPPPPIPPPGEONNNNNNNNENNNNNNNNNNNNNNNNOOENNNNNNNNNNNOOHOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOOOOHONNNNNNNNNNOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOO","n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","External","Index","Init","Internal","Keychain","KeychainChangeSet","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","PlannedUtxo","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","args","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands","augment_subcommands","augment_subcommands_for_update","augment_subcommands_for_update","augment_subcommands_for_update","bdk_file_store","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","change_keychain","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db","db_path","default","descriptor","deserialize","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","index","index","index","index_changeset","init","init_changeset","into","into","into","into","into","into","into","into","into_app","into_app_for_update","keymap","network","partial_cmp","planned_utxos","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","change","addr_cmd","address","chain_specific","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":[[0,"example_cli"],[176,"example_cli::AddressCmd"],[177,"example_cli::Commands"],[183,"example_cli::TxOutCmd"],[187,"clap::builder::command"],[188,"core::clone"],[189,"clap::derive"],[190,"core::cmp"],[191,"miniscript::descriptor::key"],[192,"alloc::collections::btree::map"],[193,"bitcoin::address"],[194,"bitcoin::blockdata::transaction"],[195,"core::option"],[196,"anyhow"],[197,"bdk_chain::tx_data_traits"],[198,"bdk_chain::chain_oracle"],[199,"core::result"],[200,"serde::de"],[201,"core::fmt"],[202,"clap::parser::matches::arg_matches"],[203,"clap::error"],[204,"std::sync::mutex"],[205,"bdk_file_store::store"],[206,"bitcoin::network"],[207,"core::default"],[208,"serde::ser"],[209,"core::convert"],[210,"core::marker"],[211,"core::ops::function"],[212,"bdk_tmp_plan"],[213,"alloc::vec"],[214,"alloc::string"],[215,"core::any"]],"i":[4,0,0,4,8,4,0,0,0,11,9,0,11,0,0,0,8,9,10,9,8,9,8,0,4,8,4,0,0,52,34,34,4,9,10,4,9,10,0,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,21,0,4,8,9,10,11,4,8,9,10,11,11,34,34,0,52,34,8,34,11,11,11,11,4,8,8,9,10,11,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,8,0,4,9,10,14,21,52,21,0,52,21,52,34,4,8,9,10,11,34,34,52,34,11,0,11,4,8,9,10,11,8,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,21,52,34,4,8,9,10,11,34,4,9,10,34,4,9,10,21,52,34,4,8,9,10,11,60,61,62,62,62,63,62,64,64,64,64],"f":"``````````````````````````````{bb}0000000`{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{fc}}}{{d{fe}}}{}{}}0000000```{{{d{{h{ce}}}}}{{h{ce}}}{jl}{jn}}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{c}}{d{fe}}}Ah{}{}}0000{{{d{Af}}{d{Af}}}Aj}``{{{d{f{Al{c}}}}{d{e}}{d{{Bb{AnB`}}}}A`BdBf}{{C`{{Bn{Bh{Bl{Bj}}}}}}}CbCd}``{{}A`}`{c{{Cf{Af}}}Ch}{{{d{Af}}{d{Af}}}Cj}{{{d{c}}{d{e}}}Cj{}{}}0{{{d{{h{ce}}}}{d{fCl}}}Cn{D`l}{D`n}}{{{d{A`}}{d{fCl}}}Cn}0{{{d{Ab}}{d{fCl}}}Cn}{{{d{Ad}}{d{fCl}}}Cn}{{{d{Af}}{d{fCl}}}Cn}0{cc{}}0000000{{{d{Db}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{Db}}}{{Cf{{h{ce}}Df}}}ln}{{{d{Db}}}{{Cf{AbDf}}}}{{{d{Db}}}{{Cf{AdDf}}}}{{{d{fDb}}}{{Cf{{Dd{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{{h{ce}}Df}}}ln}{{{d{fDb}}}{{Cf{AbDf}}}}{{{d{fDb}}}{{Cf{AdDf}}}}{{{d{Dh}}}{{Cf{A`c}}}{}}{{{d{{Dj{{Al{c}}}}}}{d{{Dj{{Dl{e}}}}}}{d{{Dj{g}}}}{d{{Bb{AnB`}}}}Dnk{h{mi}}}{{C`{Ah}}}Cb{E`EbEdEf{Ej{{Eh{c}}}}ElEnD`}Cdn{{Fb{i{d{Bh}}}{{F`{{C`{Ah}}}}}}}l}{{{d{Dh}}}Cj}00````{{{d{{Ff{Fd}}}}{d{Dh}}}{{C`{{Fh{ceg}}}}}ln{E`EbEfEdD`ElEn}}`{ce{}{}}0000000{{}b}0``{{{d{Af}}{d{Af}}}{{Bl{Aj}}}}{{{d{{Al{c}}}}{d{e}}{d{{Fj{g}}}}}{{Cf{{Fn{{Fl{gc}}}}}}}CbCd{jG`}}{{{d{Af}}c}CfGb}{{{d{c}}}e{}{}}0000{{{d{c}}}Gd{}}0{c{{Cf{e}}}{}{}}000000000000000{{{d{c}}}Gf{}}0000000{{{d{f{Dd{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{Db}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{Db}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{Db}}}{{Cf{AhDf}}}}{{{d{f{Dd{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{f{h{ce}}}}{d{fDb}}}{{Cf{AhDf}}}ln}{{{d{fAb}}{d{fDb}}}{{Cf{AhDf}}}}{{{d{fAd}}{d{fDb}}}{{Cf{AhDf}}}}{ce{}{}}0000000```````````","D":"E`","p":[[8,"Command",187],[1,"reference"],[0,"mut"],[6,"Commands",0],[10,"Clone",188],[10,"Subcommand",189],[10,"Args",189],[6,"CoinSelectionAlgo",0],[6,"AddressCmd",0],[6,"TxOutCmd",0],[6,"Keychain",0],[1,"unit"],[6,"Ordering",190],[8,"KeychainTxGraph",0],[6,"DescriptorPublicKey",191],[6,"DescriptorSecretKey",191],[5,"BTreeMap",192],[5,"Address",193],[1,"u64"],[5,"Transaction",194],[5,"CreateTxChange",0],[6,"Option",195],[1,"tuple"],[8,"Result",196],[10,"Anchor",197],[10,"ChainOracle",198],[6,"Result",199],[10,"Deserializer",200],[1,"bool"],[5,"Formatter",201],[8,"Result",201],[10,"Debug",201],[5,"ArgMatches",202],[5,"Args",0],[5,"Error",203],[1,"str"],[5,"Mutex",204],[5,"Store",205],[6,"Network",206],[10,"Default",207],[10,"Append",197],[10,"DeserializeOwned",200],[10,"Serialize",208],[8,"KeychainChangeSet",0],[10,"From",209],[10,"Send",210],[10,"Sync",210],[17,"Output"],[10,"FnOnce",211],[1,"u8"],[1,"slice"],[5,"Init",0],[5,"Assets",212],[8,"PlannedUtxo",0],[5,"Vec",213],[10,"CanDerive",212],[10,"Serializer",208],[5,"String",214],[5,"TypeId",215],[15,"List",176],[15,"Address",177],[15,"Send",177],[15,"TxOut",177],[15,"List",183]],"r":[],"b":[[81,"impl-Display-for-CoinSelectionAlgo"],[82,"impl-Debug-for-CoinSelectionAlgo"],[85,"impl-Debug-for-Keychain"],[86,"impl-Display-for-Keychain"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJMAEQAAAAAAAgABAAUABQANAAQAFQAAABcAAQAaAAAAHAABAB8AKQBKAA0AYAAMAG4AAABwAAAAewABAH4AMgCyAAAAtAACAA=="}],\ ["example_electrum",{"t":"ISSFGPFPNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["ChangeSet","DB_MAGIC","DB_PATH","ElectrumArgs","ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","client","clone","clone","clone","clone_into","clone_into","clone_into","electrum_args","electrum_url","eq","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","into_app","into_app_for_update","main","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","all_spks","electrum_args","electrum_args","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":[[0,"example_electrum"],[71,"example_electrum::ElectrumCommands"],[80,"clap::builder::command"],[81,"bitcoin::network"],[82,"electrum_client::client"],[83,"anyhow"],[84,"core::fmt"],[85,"clap::parser::matches::arg_matches"],[86,"clap::error"],[87,"core::result"],[88,"core::any"]],"i":[0,0,0,0,0,8,0,8,4,9,4,9,8,8,9,8,4,9,8,4,9,4,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,8,4,9,9,9,0,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,19,20,19,20,19,20,19,19,19],"f":"````````{bb}00000`{{{d{c}}}{{d{e}}}{}{}}00{{{d{fc}}}{{d{fe}}}{}{}}00{{{d{h}}j}{{n{l}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{Ab}}}Ab}{{{d{c}}{d{fe}}}Ad{}{}}00{{{d{A`}}}h}`{{{d{Ab}}{d{Ab}}}Af}{{{d{A`}}{d{fAh}}}Aj}{{{d{h}}{d{fAh}}}Aj}{{{d{Ab}}{d{fAh}}}Aj}{cc{}}00{{{d{Al}}}{{B`{A`An}}}}{{{d{Al}}}{{B`{hAn}}}}{{{d{Al}}}{{B`{AbAn}}}}{{{d{fAl}}}{{B`{A`An}}}}{{{d{fAl}}}{{B`{hAn}}}}{{{d{fAl}}}{{B`{AbAn}}}}{{{d{Bb}}}Af}{ce{}{}}00{{}b}0{{}{{n{Ad}}}}{{{d{c}}}e{}{}}00{c{{B`{e}}}{}{}}00000{{{d{c}}}Bd{}}00{{{d{fA`}}{d{Al}}}{{B`{AdAn}}}}{{{d{fh}}{d{Al}}}{{B`{AdAn}}}}{{{d{fAb}}{d{Al}}}{{B`{AdAn}}}}{{{d{fA`}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fh}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fAb}}{d{fAl}}}{{B`{AdAn}}}};;;`````````","D":"An","p":[[8,"Command",80],[1,"reference"],[0,"mut"],[5,"ElectrumArgs",0],[6,"Network",81],[5,"Client",82],[8,"Result",83],[6,"ElectrumCommands",0],[5,"ScanOptions",0],[1,"unit"],[1,"bool"],[5,"Formatter",84],[8,"Result",84],[5,"ArgMatches",85],[5,"Error",86],[6,"Result",87],[1,"str"],[5,"TypeId",88],[15,"Sync",71],[15,"Scan",71]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEEACAAAAAUABwAAAAkABQAQAA0AHwADACYABgAwABcASQADAA=="}],\ ["example_esplora",{"t":"ISSFGPFPNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["ChangeSet","DB_MAGIC","DB_PATH","EsploraArgs","EsploraCommands","Scan","ScanOptions","Sync","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","client","clone","clone","clone","clone_into","clone_into","clone_into","eq","esplora_args","esplora_url","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","into_app","into_app_for_update","main","parallel_requests","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","all_spks","esplora_args","esplora_args","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":[[0,"example_esplora"],[71,"example_esplora::EsploraCommands"],[80,"clap::builder::command"],[81,"bitcoin::network"],[82,"esplora_client::blocking"],[83,"anyhow"],[84,"core::fmt"],[85,"clap::parser::matches::arg_matches"],[86,"clap::error"],[87,"core::result"],[88,"core::any"]],"i":[0,0,0,0,0,8,0,8,4,9,4,9,8,8,8,4,9,8,4,9,4,8,4,9,8,4,9,9,8,4,8,4,9,8,4,9,8,4,9,8,4,9,8,8,4,9,9,9,0,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,8,4,9,19,20,19,20,19,20,19,19,19],"f":"````````{bb}00000{{{d{c}}}{{d{e}}}{}{}}00{{{d{fc}}}{{d{fe}}}{}{}}00{{{d{h}}j}{{n{l}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{Ab}}}Ab}{{{d{c}}{d{fe}}}Ad{}{}}00{{{d{Ab}}{d{Ab}}}Af}{{{d{A`}}}h}`{{{d{A`}}{d{fAh}}}Aj}{{{d{h}}{d{fAh}}}Aj}{{{d{Ab}}{d{fAh}}}Aj}{cc{}}00{{{d{Al}}}{{B`{A`An}}}}{{{d{Al}}}{{B`{hAn}}}}{{{d{Al}}}{{B`{AbAn}}}}{{{d{fAl}}}{{B`{A`An}}}}{{{d{fAl}}}{{B`{hAn}}}}{{{d{fAl}}}{{B`{AbAn}}}}{{{d{Bb}}}Af}{ce{}{}}00{{}b}0{{}{{n{Ad}}}}`{{{d{c}}}e{}{}}00{c{{B`{e}}}{}{}}00000{{{d{c}}}Bd{}}00{{{d{fA`}}{d{Al}}}{{B`{AdAn}}}}{{{d{fh}}{d{Al}}}{{B`{AdAn}}}}{{{d{fAb}}{d{Al}}}{{B`{AdAn}}}}{{{d{fA`}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fh}}{d{fAl}}}{{B`{AdAn}}}}{{{d{fAb}}{d{fAl}}}{{B`{AdAn}}}};;;`````````","D":"An","p":[[8,"Command",80],[1,"reference"],[0,"mut"],[5,"EsploraArgs",0],[6,"Network",81],[5,"BlockingClient",82],[8,"Result",83],[6,"EsploraCommands",0],[5,"ScanOptions",0],[1,"unit"],[1,"bool"],[5,"Formatter",84],[8,"Result",84],[5,"ArgMatches",85],[5,"Error",86],[6,"Result",87],[1,"str"],[5,"TypeId",88],[15,"Sync",71],[15,"Scan",71]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEEACAAAAAUABwAAAAkAFAAfAAIAJQAGAC8AAgAzABQASQADAA=="}],\ ["wallet_electrum_example",{"t":"SSSSH","n":["BATCH_SIZE","DB_MAGIC","SEND_AMOUNT","STOP_GAP","main"],"q":[[0,"wallet_electrum_example"],[5,"anyhow"],[6,"core::result"]],"i":[0,0,0,0,0],"f":"````{{}{{f{bd}}}}","D":"`","p":[[1,"unit"],[5,"Error",5],[6,"Result",6]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQAAAAUA"}],\ diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js index e6cdf28ae9..83fb82b736 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_chain/bdk_chain-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("bdk_chain", 0, "This crate is a collection of core structures for Bitcoin …\nTrait that “anchors” blockchain data to a specific …\nAn Anchor that can be constructed from a given block, …\nTrait that makes an object appendable.\nMaximum BIP32 derivation index.\nA reference to a block in the canonical chain.\nHow many confirmations are needed f or a coinbase output …\nRepresents a service that tracks the blockchain.\nRepresents the observed position of some chain data.\nAn Anchor implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nAn Anchor implementation that also records the exact …\nThe chain data is seen as confirmed, and in anchored by A.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the ID of a descriptor, defined as the sha256 …\nError type.\nA TxOut with as much data as we can retrieve about it\nAn iterator for derived script pubkeys.\nAn index storing TxOuts that have a script pubkey that …\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nThe script pubkeys that are being tracked by the index.\nReturns the BlockId that the associated blockchain data is …\nThe anchor block.\nThe anchor block.\nAppend another object of the same type onto self.\nReturns a reference to the inner hash (sha256, sh256d …\nThe position of the transaction in outpoint in the overall …\nMaps a ChainPosition<&A> into a ChainPosition<A> by …\nThe exact confirmation height of the transaction.\nThe confirmation height of the transaction being anchored.\nGet the upper bound of the chain data’s confirmation …\nGet the upper bound of the chain data’s confirmation …\nDetermines the upper bound of the confirmation height.\nThe confirmation time of the transaction being anchored.\nGet a reference to the internal descriptor.\nReturns the descriptor id, calculated as the sha256 of the …\nReturns the minimum value (in satoshis) at which an output …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct the anchor from a given block, block height and …\nCreates this wrapper type from the inner hash type.\nGet the best chain’s chain tip.\nThe hash of the block.\nThe height of the block.\nReturns the index associated with the script pubkey.\nContains the IndexedTxGraph and associated types. Refer to …\nAdds a script pubkey to scan for. Returns false and does …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether block of BlockId exists as an ancestor …\nReturns whether ChainPosition is confirmed or not.\nReturns whether ConfirmationTime is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain tip.\nReturns whether the structure is considered empty.\nWhether the txout is considered mature.\nWhether this output is on a coinbase transaction.\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at index has been used …\nModule for keychain related structures.\nThe LocalChain is a local implementation of ChainOracle.\nMarks the script pubkey at index as used even though it …\nComputes the net value transfer effect of tx on the script …\nCreate a new script pubkey iterator from descriptor.\nCreate a new script pubkey iterator from descriptor and a …\nThe location of the TxOut.\nGet a reference to the set of indexed outpoints.\nIterates over all the outputs with script pubkeys in an …\nScans a transaction’s outputs for matching script …\nScan a single TxOut for a matching script pubkey and …\nComputes the total value transfer effect tx has on the …\nThe txid and chain position of the transaction (if any) …\nReturns the script that has been inserted at the index.\nHelper types for spk-based blockchain clients.\nReturns the inner hash (sha256, sh256d etc.).\nModule for structures that store and traverse transactions.\nReturns the txout and script pubkey index of the TxOut at …\nThe TxOut.\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nConstruct an unconfirmed variant using the given last_seen …\nUndoes the effect of mark_used. Returns whether the index …\nIterates over all unused script pubkeys in an index range.\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an IndexedTxGraph.\nThe resultant “changeset” when new transaction data is …\nThe IndexedTxGraph combines a TxGraph and an Indexer …\nUtilities for indexing transaction data.\nBatch insert all transactions of the given block of height.\nBatch insert all transactions of the given block of height…\nApply changeset to itself.\nApplies the ChangeSet to the IndexedTxGraph.\nApply an update directly.\nBatch insert transactions, filtering out those that are …\nBatch insert unconfirmed transactions, filtering out those …\nBatch insert unconfirmed transactions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a reference of the internal transaction graph.\nTxGraph changeset.\nTransaction index.\nScans a transaction for relevant outpoints, which are …\nScan and index the given outpoint and txout.\nIndexer changeset.\nDetermines the ChangeSet between self and an empty Indexer.\nDetermines the ChangeSet between self and an empty …\nInsert an anchor for a given transaction.\nInsert a unix timestamp of when a transaction is seen in …\nInsert and index a transaction into the graph.\nInsert a floating txout of given outpoint.\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the transaction should be included in …\nConstruct a new IndexedTxGraph with a given index.\nBalance, differentiated into various categories.\nRepresents updates to the derivation index of a …\nThe default lookahead for a KeychainTxOutIndex\nThe descriptor has already been assigned to a keychain so …\nA tuple of keychain index and T representing the indexed …\nError returned from KeychainTxOutIndex::insert_descriptor\nThe keychain is already assigned to a descriptor so you can…\nA tuple of keychain K, derivation index (u32) and a T …\nKeychainTxOutIndex controls how script pubkeys are …\nThe keychain doesn’t exist. Most likley hasn’t been …\nGet unbounded spk iterators for all keychains.\nMerge another ChangeSet<K> into self.\nApplies the ChangeSet<K> to the KeychainTxOutIndex<K>\nConfirmed and immediately spendable balance\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nAll coinbase outputs not yet matured\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal SpkTxOutIndex.\nInsert a descriptor with a keychain associated to it.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the changeset are empty.\nReturns whether the spk under the keychain’s index has …\nIterate over all OutPoints that have TxOuts with script …\nIterate over OutPoints that have script pubkeys derived …\nReturn all keychains and their corresponding descriptors.\nContains the keychains that have been added and their …\nContains for each descriptor_id the last revealed index of …\nGet the last derivation index revealed for keychain. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the keychain where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until target_index (inclusive).\nMarks the script pubkey at index as used even though the …\nComputes the net value that this transaction gives to the …\nConstruct a KeychainTxOutIndex with the given lookahead.\nGet the next derivation index for keychain. The next index …\nGets the next unused script pubkey in the keychain. I.e., …\nGet the set of indexed outpoints, corresponding to tracked …\nAttempts to reveal the next script pubkey for keychain.\nReveals script pubkeys of the keychain’s descriptor up …\nConvenience method to call Self::reveal_to_target on …\nIterate over revealed spks of the given keychain with …\nIterate over revealed spks of keychains in range\nComputes the total value transfer effect tx has on the …\nReturn the script that exists under the given keychain’s …\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nReturn the TxOut of outpoint if it has been indexed, and …\nIterate over known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nGet an unbounded spk iterator over a given keychain. …\nUndoes the effect of mark_used. Returns whether the index …\nUnconfirmed UTXOs received from an external wallet\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nThe descriptor you have attempted to reassign\nThe keychain that the descriptor is already assigned to\nThe descriptor that the keychain is already assigned to\nThe keychain that you have attempted to reassign\nRepresents a failure when trying to insert/remove a …\nThe error type for LocalChain::apply_header_connected_to.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe ChangeSet represents changes to LocalChain.\nA LocalChain checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when connected_to block conflicts with either the …\nThis is a local implementation of ChainOracle.\nAn error which occurs when a LocalChain is constructed …\nApply the given changeset.\nUpdate the chain with a given Header connecting it with …\nUpdate the chain with a given Header at height which you …\nApplies the given update to the chain.\nGet the BlockId of the checkpoint.\nRemoves blocks from (and inclusive of) the given block_id.\nExtends the checkpoint linked list by a iterator of block …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a checkpoint from a list of BlockIds in …\nConstructs a LocalChain from a BTreeMap of height to …\nConstruct a LocalChain from an initial changeset.\nConstruct LocalChain from genesis hash.\nConstruct a checkpoint from the given header and block …\nConstruct a LocalChain from a given checkpoint tip.\nGet the genesis hash.\nGet checkpoint at height.\nGet checkpoint at given height (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial ChangeSet, meaning that it can be …\nInserts block_id at its height within the chain.\nInsert a BlockId.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate from this checkpoint in descending height.\nIterate over checkpoints in descending height order.\nConstruct a new base block at the front of a linked list.\nThe original checkpoint’s block hash which cannot be …\nGet the previous checkpoint in the chain\nPuts another checkpoint onto the linked list representing …\nIterate checkpoints over a height range.\nIterate checkpoints over a height range.\nGet the highest checkpoint.\nThe suggested checkpoint to include to connect the two …\nThe attempted update to the original_block hash.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client full scan.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client sync.\nChain on additional OutPoints that will be synced against.\nChain on additional Scripts that will be synced against.\nChain on additional Scripts that will be synced against.\nA checkpoint for the current chain LocalChain::tip. The …\nA checkpoint for the current LocalChain::tip. The full …\nChain on additional Txids that will be synced against.\nThe update to apply to the receiving LocalChain.\nThe update to apply to the receiving TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new SyncRequest from a given cp tip.\nConstruct a new FullScanRequest from a given chain_tip.\nConstruct a new FullScanRequest from a given chain_tip and …\nThe update to apply to the receiving TxGraph.\nThe update to apply to the receiving LocalChain.\nAdd a closure that will be called for OutPoints previously …\nAdd a closure that will be called for Scripts previously …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for Txids previously …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLast active indices for the corresponding keychains (K).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the OutPoints that will be synced against.\nSet the Scripts that will be synced against.\nSet the Scripts for a given keychain.\nSet the Txids that will be synced against.\nTransactions that spend from or to these indexed script …\nIterators of script pubkeys indexed by the keychain index.\nTransactions with these txids.\nErrors returned by TxGraph::calculate_fee.\nA transaction that is included in the chain, or is still …\nThe ChangeSet represents changes to a TxGraph.\nMissing TxOut for one or more of the inputs of the tx\nWhen the transaction is invalid according to the graph it …\nAn iterator that traverses ancestors of a given root …\nAn iterator that traverses transaction descendants.\nA graph of transactions and spends.\nA transaction node in the TxGraph.\nGet all transaction anchors known by TxGraph.\nIterate over all tx outputs known by TxGraph.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies ChangeSet to TxGraph.\nExtends this graph with another so that self becomes the …\nGet the total balance of outpoints that are in chain of …\nBatch insert unconfirmed transactions.\nCalculates the fee of a given transaction. Returns …\nHow the transaction is observed as (confirmed or …\nGiven a transaction, return an iterator of txids that …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIterate over all full transactions in the graph.\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns Some for full …\nGet a transaction node by txid. This only returns Some for …\nObtains a single tx output (if any) at the specified …\nDetermines the ChangeSet between self and an empty TxGraph.\nInserts the given anchor into TxGraph.\nInserts the given seen_at for txid into TxGraph.\nInserts the given transaction into TxGraph.\nInserts the given TxOut at OutPoint.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the graph has any transactions or outputs in it.\nAdded last-seen unix timestamps of transactions.\nThe last-seen unix timestamp of the transaction as …\nList graph transactions that are in chain with chain_tip.\nTransform the TxGraph to have Anchors of another type.\nTransform the ChangeSet to have Anchors of another type.\nConstruct a new TxGraph from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of outpoints that are in chain of …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in chain with chain_tip.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given txid.\nIterates over the transactions spending from txid.\nTxid of the transaction.\nIterates over all outpoints contained within ChangeSet.\nAdded txouts.\nAdded transactions.\nUpdate the last seen time for all unconfirmed transactions.\nCreates an iterator that filters and maps ancestor …\nCreates an iterator that both filters and maps conflicting …\nCreates an iterator that filters and maps descendants from …") \ No newline at end of file +searchState.loadedDescShard("bdk_chain", 0, "This crate is a collection of core structures for Bitcoin …\nTrait that “anchors” blockchain data to a specific …\nAn Anchor that can be constructed from a given block, …\nTrait that makes an object appendable.\nMaximum BIP32 derivation index.\nA reference to a block in the canonical chain.\nHow many confirmations are needed f or a coinbase output …\nRepresents a service that tracks the blockchain.\nRepresents the observed position of some chain data.\nAn Anchor implementation that also records the exact …\nBlock height and timestamp at which a transaction is …\nAn Anchor implementation that also records the exact …\nThe chain data is seen as confirmed, and in anchored by A.\nThe transaction is confirmed\nA trait to extend the functionality of a miniscript …\nRepresents the ID of a descriptor, defined as the sha256 …\nError type.\nA TxOut with as much data as we can retrieve about it\nAn iterator for derived script pubkeys.\nAn index storing TxOuts that have a script pubkey that …\nThe chain data is not confirmed and last seen in the …\nThe transaction is unconfirmed\nThe script pubkeys that are being tracked by the index.\nReturns the BlockId that the associated blockchain data is …\nThe anchor block.\nThe anchor block.\nAppend another object of the same type onto self.\nReturns a reference to the inner hash (sha256, sh256d …\nThe position of the transaction in outpoint in the overall …\nMaps a ChainPosition<&A> into a ChainPosition<A> by …\nThe exact confirmation height of the transaction.\nThe confirmation height of the transaction being anchored.\nGet the upper bound of the chain data’s confirmation …\nGet the upper bound of the chain data’s confirmation …\nDetermines the upper bound of the confirmation height.\nThe confirmation time of the transaction being anchored.\nGet a reference to the internal descriptor.\nReturns the descriptor id, calculated as the sha256 of the …\nReturns the minimum value (in satoshis) at which an output …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct the anchor from a given block, block height and …\nCreates this wrapper type from the inner hash type.\nGet the best chain’s chain tip.\nThe hash of the block.\nThe height of the block.\nReturns the index associated with the script pubkey.\nContains the IndexedTxGraph and associated types. Refer to …\nAdds a script pubkey to scan for. Returns false and does …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether block of BlockId exists as an ancestor …\nReturns whether ChainPosition is confirmed or not.\nReturns whether ConfirmationTime is the confirmed variant.\nWhether the utxo is/was/will be spendable with chain tip.\nReturns whether the structure is considered empty.\nWhether the txout is considered mature.\nWhether this output is on a coinbase transaction.\nWhether any of the inputs of this transaction spend a …\nReturns whether the script pubkey at index has been used …\nModule for keychain related structures.\nThe LocalChain is a local implementation of ChainOracle.\nMarks the script pubkey at index as used even though it …\nComputes the net value transfer effect of tx on the script …\nCreate a new script pubkey iterator from descriptor.\nCreate a new script pubkey iterator from descriptor and a …\nThe location of the TxOut.\nGet a reference to the set of indexed outpoints.\nIterates over all the outputs with script pubkeys in an …\nThis module is home to the PersistBackend trait which …\nScans a transaction’s outputs for matching script …\nScan a single TxOut for a matching script pubkey and …\nComputes the total value transfer effect tx has on the …\nThe txid and chain position of the transaction (if any) …\nReturns the script that has been inserted at the index.\nHelper types for spk-based blockchain clients.\nReturns the inner hash (sha256, sh256d etc.).\nModule for structures that store and traverse transactions.\nReturns the txout and script pubkey index of the TxOut at …\nThe TxOut.\nIterate over all known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nConstruct an unconfirmed variant using the given last_seen …\nUndoes the effect of mark_used. Returns whether the index …\nIterates over all unused script pubkeys in an index range.\nConfirmation height.\nThe last-seen timestamp in unix seconds.\nConfirmation time in unix seconds.\nRepresents changes to an IndexedTxGraph.\nThe resultant “changeset” when new transaction data is …\nThe IndexedTxGraph combines a TxGraph and an Indexer …\nUtilities for indexing transaction data.\nBatch insert all transactions of the given block of height.\nBatch insert all transactions of the given block of height…\nApply changeset to itself.\nApplies the ChangeSet to the IndexedTxGraph.\nApply an update directly.\nBatch insert transactions, filtering out those that are …\nBatch insert unconfirmed transactions, filtering out those …\nBatch insert unconfirmed transactions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a reference of the internal transaction graph.\nTxGraph changeset.\nTransaction index.\nScans a transaction for relevant outpoints, which are …\nScan and index the given outpoint and txout.\nIndexer changeset.\nDetermines the ChangeSet between self and an empty Indexer.\nDetermines the ChangeSet between self and an empty …\nInsert an anchor for a given transaction.\nInsert a unix timestamp of when a transaction is seen in …\nInsert and index a transaction into the graph.\nInsert a floating txout of given outpoint.\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the transaction should be included in …\nConstruct a new IndexedTxGraph with a given index.\nBalance, differentiated into various categories.\nRepresents updates to the derivation index of a …\nThe default lookahead for a KeychainTxOutIndex\nThe descriptor has already been assigned to a keychain so …\nA tuple of keychain index and T representing the indexed …\nError returned from KeychainTxOutIndex::insert_descriptor\nThe keychain is already assigned to a descriptor so you can…\nA tuple of keychain K, derivation index (u32) and a T …\nKeychainTxOutIndex controls how script pubkeys are …\nThe keychain doesn’t exist. Most likley hasn’t been …\nGet unbounded spk iterators for all keychains.\nMerge another ChangeSet<K> into self.\nApplies the ChangeSet<K> to the KeychainTxOutIndex<K>\nConfirmed and immediately spendable balance\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the descriptor associated with the keychain. Returns …\nAll coinbase outputs not yet matured\nReturns the keychain and keychain index associated with …\nReturn a reference to the internal SpkTxOutIndex.\nInsert a descriptor with a keychain associated to it.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the changeset are empty.\nReturns whether the spk under the keychain’s index has …\nIterate over all OutPoints that have TxOuts with script …\nIterate over OutPoints that have script pubkeys derived …\nReturn all keychains and their corresponding descriptors.\nContains the keychains that have been added and their …\nContains for each descriptor_id the last revealed index of …\nGet the last derivation index revealed for keychain. …\nGet the last derivation index that is revealed for each …\nReturns the highest derivation index of the keychain where …\nReturns the highest derivation index of each keychain that …\nGet the lookahead setting.\nStore lookahead scripts until target_index (inclusive).\nMarks the script pubkey at index as used even though the …\nComputes the net value that this transaction gives to the …\nConstruct a KeychainTxOutIndex with the given lookahead.\nGet the next derivation index for keychain. The next index …\nGets the next unused script pubkey in the keychain. I.e., …\nGet the set of indexed outpoints, corresponding to tracked …\nAttempts to reveal the next script pubkey for keychain.\nReveals script pubkeys of the keychain’s descriptor up …\nConvenience method to call Self::reveal_to_target on …\nIterate over revealed spks of the given keychain with …\nIterate over revealed spks of keychains in range\nComputes the total value transfer effect tx has on the …\nReturn the script that exists under the given keychain’s …\nGet the whole balance visible to the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nReturn the TxOut of outpoint if it has been indexed, and …\nIterate over known txouts that spend to tracked script …\nFinds all txouts on a transaction that has previously been …\nGet an unbounded spk iterator over a given keychain. …\nUndoes the effect of mark_used. Returns whether the index …\nUnconfirmed UTXOs received from an external wallet\nIterate over revealed, but unused, spks of the given …\nIterate over revealed, but unused, spks of all keychains.\nThe descriptor you have attempted to reassign\nThe keychain that the descriptor is already assigned to\nThe descriptor that the keychain is already assigned to\nThe keychain that you have attempted to reassign\nRepresents a failure when trying to insert/remove a …\nThe error type for LocalChain::apply_header_connected_to.\nOccurs when the update cannot connect with the original …\nOccurs when an update does not have a common checkpoint …\nThe ChangeSet represents changes to LocalChain.\nA LocalChain checkpoint is used to find the agreement …\nIterates over checkpoints backwards.\nOccurs when connected_to block conflicts with either the …\nThis is a local implementation of ChainOracle.\nAn error which occurs when a LocalChain is constructed …\nApply the given changeset.\nUpdate the chain with a given Header connecting it with …\nUpdate the chain with a given Header at height which you …\nApplies the given update to the chain.\nGet the BlockId of the checkpoint.\nRemoves blocks from (and inclusive of) the given block_id.\nExtends the checkpoint linked list by a iterator of block …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a checkpoint from a list of BlockIds in …\nConstructs a LocalChain from a BTreeMap of height to …\nConstruct a LocalChain from an initial changeset.\nConstruct LocalChain from genesis hash.\nConstruct a checkpoint from the given header and block …\nConstruct a LocalChain from a given checkpoint tip.\nGet the genesis hash.\nGet checkpoint at height.\nGet checkpoint at given height (if it exists).\nGet the block hash of the checkpoint.\nGet the height of the checkpoint.\nThe checkpoint’s height.\nDerives an initial ChangeSet, meaning that it can be …\nInserts block_id at its height within the chain.\nInsert a BlockId.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate from this checkpoint in descending height.\nIterate over checkpoints in descending height order.\nConstruct a new base block at the front of a linked list.\nThe original checkpoint’s block hash which cannot be …\nGet the previous checkpoint in the chain\nPuts another checkpoint onto the linked list representing …\nIterate checkpoints over a height range.\nIterate checkpoints over a height range.\nGet the highest checkpoint.\nThe suggested checkpoint to include to connect the two …\nThe attempted update to the original_block hash.\nA changeset containing crate structures typically …\nThe error the backend returns when it fails to load …\nA persistence backend for writing and loading changesets.\nExtends a changeset so that it acts as a convenient …\nThe error the backend returns when it fails to write.\nStages a new changeset and commits it (alongside any other …\nChanges to the LocalChain.\nCommit the staged changes to the persistence backend.\nReturns the argument unchanged.\nChanges to IndexedTxGraph.\nCalls U::from(self).\nReturn the aggregate changeset C from persistence.\nStores the network type of the transaction data.\nWrites a changeset to the persistence backend.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client full scan.\nData required to perform a spk-based blockchain client …\nData returned from a spk-based blockchain client sync.\nChain on additional OutPoints that will be synced against.\nChain on additional Scripts that will be synced against.\nChain on additional Scripts that will be synced against.\nA checkpoint for the current chain LocalChain::tip. The …\nA checkpoint for the current LocalChain::tip. The full …\nChain on additional Txids that will be synced against.\nThe update to apply to the receiving LocalChain.\nThe update to apply to the receiving TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a new SyncRequest from a given cp tip.\nConstruct a new FullScanRequest from a given chain_tip.\nConstruct a new FullScanRequest from a given chain_tip and …\nThe update to apply to the receiving TxGraph.\nThe update to apply to the receiving LocalChain.\nAdd a closure that will be called for OutPoints previously …\nAdd a closure that will be called for Scripts previously …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for every Script …\nAdd a closure that will be called for Txids previously …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nLast active indices for the corresponding keychains (K).\nTransactions with these outpoints or spent from these …\nPopulate the request with revealed script pubkeys from …\nSet the OutPoints that will be synced against.\nSet the Scripts that will be synced against.\nSet the Scripts for a given keychain.\nSet the Txids that will be synced against.\nTransactions that spend from or to these indexed script …\nIterators of script pubkeys indexed by the keychain index.\nTransactions with these txids.\nErrors returned by TxGraph::calculate_fee.\nA transaction that is included in the chain, or is still …\nThe ChangeSet represents changes to a TxGraph.\nMissing TxOut for one or more of the inputs of the tx\nWhen the transaction is invalid according to the graph it …\nAn iterator that traverses ancestors of a given root …\nAn iterator that traverses transaction descendants.\nA graph of transactions and spends.\nA transaction node in the TxGraph.\nGet all transaction anchors known by TxGraph.\nIterate over all tx outputs known by TxGraph.\nIterates over the heights of that the new transaction …\nThe blocks that the transaction is “anchored” in.\nAdded anchors.\nApplies ChangeSet to TxGraph.\nExtends this graph with another so that self becomes the …\nGet the total balance of outpoints that are in chain of …\nBatch insert unconfirmed transactions.\nCalculates the fee of a given transaction. Returns …\nHow the transaction is observed as (confirmed or …\nGiven a transaction, return an iterator of txids that …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nIterate over floating txouts known by TxGraph.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIterate over all full transactions in the graph.\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nGet a transaction by txid. This only returns Some for full …\nGet a transaction node by txid. This only returns Some for …\nObtains a single tx output (if any) at the specified …\nDetermines the ChangeSet between self and an empty TxGraph.\nInserts the given anchor into TxGraph.\nInserts the given seen_at for txid into TxGraph.\nInserts the given transaction into TxGraph.\nInserts the given TxOut at OutPoint.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the graph has any transactions or outputs in it.\nAdded last-seen unix timestamps of transactions.\nThe last-seen unix timestamp of the transaction as …\nList graph transactions that are in chain with chain_tip.\nTransform the TxGraph to have Anchors of another type.\nTransform the ChangeSet to have Anchors of another type.\nConstruct a new TxGraph from a list of transactions.\nThe transactions spending from this output.\nGet the total balance of outpoints that are in chain of …\nGet a filtered list of outputs from the given outpoints …\nGet a filtered list of unspent outputs (UTXOs) from the …\nGet the position of the transaction in chain with tip …\nGet the txid of the spending transaction and where the …\nList graph transactions that are in chain with chain_tip.\nA partial or full representation of the transaction.\nThe transaction node (as part of the graph).\nReturns known outputs of a given txid.\nIterates over the transactions spending from txid.\nTxid of the transaction.\nIterates over all outpoints contained within ChangeSet.\nAdded txouts.\nAdded transactions.\nUpdate the last seen time for all unconfirmed transactions.\nCreates an iterator that filters and maps ancestor …\nCreates an iterator that both filters and maps conflicting …\nCreates an iterator that filters and maps descendants from …") \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_persist/bdk_persist-desc-0-.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_persist/bdk_persist-desc-0-.js deleted file mode 100644 index 8e9bebaac5..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_persist/bdk_persist-desc-0-.js +++ /dev/null @@ -1 +0,0 @@ -searchState.loadedDescShard("bdk_persist", 0, "BDK Persist\nChanges from a combination of bdk_chain structures.\nPersist wraps a PersistBackend to create a convenient …\nA persistence backend for Persist.\nChanges to the LocalChain.\nCommit the staged changes to the underlying persistence …\nReturns the argument unchanged.\nReturns the argument unchanged.\nChanges to IndexedTxGraph.\nCalls U::from(self).\nCalls U::from(self).\nReturn the aggregate changeset C from persistence.\nStores the network type of the transaction data.\nCreate a new Persist from PersistBackend.\nStage a changeset to be committed later with commit.\nStages a new changeset and commits it (along with any …\nGet the changes that have not been committed yet.\nWrites a changeset to the persistence backend.") \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_wallet/bdk_wallet-desc-0-.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_wallet/bdk_wallet-desc-0-.js index db00b697cf..99f2347ded 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_wallet/bdk_wallet-desc-0-.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search.desc/bdk_wallet/bdk_wallet-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("bdk_wallet", 0, "BDK Wallet\nExternal keychain, used for deriving recipient addresses.\nA UTXO owned by another wallet.\nInternal keychain, used for deriving change addresses.\nTypes of keychains\nA UTXO owned by the local wallet.\nAn unspent output owned by a Wallet.\nAn unspent transaction output (UTXO).\nA Utxo with its satisfaction_weight.\nReturn KeychainKind as a byte\nThe confirmation time for transaction containing this utxo\nThe derivation index for the script pubkey in the wallet\nDescriptors\nMacro to write full descriptors with code\nMacro to write descriptor fragments with code\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this UTXO is spent or not\nType of keychain\nKey formats\nGet the location of the UTXO\nReference to a transaction output\nAdditional functions on the rust-bitcoin Psbt structure.\nThe weight of the witness data and scriptSig expressed in …\nGet the sequence number if an explicit sequence number has …\nGet the TxOut of the UTXO\nTransaction output\nThe UTXO\nGet the version of BDK at runtime\nWallet\nThe location of the output.\nThe information about the input we require to add it to a …\nThe nSequence value to set for this input.\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nAlias for a Descriptor that contains extended derived keys\nScript descriptor\nThe descriptor pubkey, either a single pubkey or an xpub.\nAlias for a Descriptor that can contain extended keys …\nTrait implemented on Descriptors to add a method to …\nThe 0 combinator.\nAlias for the type of maps that represent derivation paths …\nTrait for types which can be converted into an …\nThe consensus key associated with the type. Must be a …\nLegacy ScriptContext To be used as P2SH scripts For …\nThe top-level miniscript abstract syntax tree (AST).\nMultiple extended public keys.\nPay-to-PubKey-Hash\nPay-to-PubKey-Hash\nPay-to-PubKey-Hash\nThe ScriptContext for Miniscript. Additional type …\nSegwitv0 ScriptContext\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nSingle public key.\nThe 1 combinator.\nAlias for the type of maps that represent taproot key …\nPay-to-Taproot\nPay-to-Taproot\nPay-to-Taproot\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-ScriptHash with Segwitv0 context\nPay-to-Witness-ScriptHash with Segwitv0 context\nPay-to-Witness-ScriptHash with Segwitv0 context\nExtended public key (xpub).\nComputes the Bitcoin address of the descriptor, if one …\nGet a reference to the inner AstElem representing the root …\nReplaces all wildcards (i.e. /*) in the descriptor with a …\nEnumerates all child nodes of the current AST node (self) …\nAttempt to produce a non-malleable witness template given …\nAttempt to produce a malleable witness template given the …\nDepending on script Context, some of the Terminals might …\nDepending on script Context, some of the script resource …\nCheck the consensus + policy(if not disabled) rules that …\nConsensus rules at the Miniscript satisfaction time. It is …\nPolicy rules at the Miniscript satisfaction time. It is …\nCheck the consensus + policy(if not disabled) rules …\nEach context has slightly different rules on what Pks are …\nDepending on ScriptContext, fragments can be malleable. …\nCheck whether the given satisfaction is valid under the …\nDescriptor checksum\nWhether the given miniscript contains a raw pkh fragment\nDeprecated name for Self::at_derivation_index.\nConvert all the public keys in the descriptor to …\nConvert all the public keys in the descriptor to …\nGet the DescriptorType of Descriptor\nEncode as a Bitcoin script\nDescriptor errors\nComputes the the underlying script before any hashing is …\nAdditional information helpful for extra analysis.\nCheck whether the miniscript follows the given Extra …\nExtract the spending policy\nUtility method for deriving the descriptor at each index …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAdd type information(Type and Extdata) to Miniscript based …\nCreate a new Miniscript from a Terminal node and a Type …\nParse a Miniscript from string and perform sanity checks …\nAttempt to parse an Miniscripts that don’t follow the …\nAttempt to parse an insane(scripts don’t clear sanity …\nParse an expression tree into a descriptor.\nParse an expression tree into a Miniscript. As a general …\nReturns child node with given index, if any\nReturns Option::Some with cloned n’th public key from …\nReturns satisfying non-malleable witness and scriptSig to …\nReturns a possilbly mallable satisfying non-malleable …\nWhether the miniscript contains a combination of timelocks\nWhether the miniscript has repeated Pk or Pkh\nWhether or not the descriptor has any wildcards i.e. /*.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nExtracts the AstElem representing the root of the …\nGet as many descriptors as different paths in this …\nConvert to wallet descriptor\nWhether or not the descriptor has any wildcards\nWhether this descriptor contains a key that has multiple …\nWhether the miniscript is malleable\nCreates a new Iter iterator that will iterate over all …\nCreates a new PkIter iterator that will iterate over all …\nLifting corresponds to conversion of a miniscript into a …\nDepending on script context, the size of a satifaction …\nMaximum size, in bytes, of a satisfying witness. For …\nComputes an upper bound on the weight of a satisfying …\nMaximum number of witness elements used to satisfy the …\nComputes an upper bound on the difference between a …\nLocal helper function to display error messages with …\nCreate a new bare descriptor from witness script Errors …\nCreate a new pk descriptor\nCreate a new PkH descriptor\nCreate a new sh for a given redeem script Errors when …\nCreate a new sh sortedmulti descriptor with threshold k …\nCreate a new sh wrapper for the given wpkh descriptor\nCreate a new sh wrapper for the given wsh descriptor\nCreate a new sh wrapped wpkh from Pk. Errors when …\nCreate a new sh wrapped wsh descriptor with witness script …\nCreate a new sh wrapped wsh sortedmulti descriptor from …\nCreate new tr descriptor Errors when miniscript exceeds …\nCreate a new Wpkh descriptor Will return Err if …\nCreate a new wsh descriptor from witness script Errors …\nCreate a new wsh sorted multi descriptor Errors when …\nA node in the AST.\nOther top level checks that are context specific\nAttempt to parse a Script into Miniscript representation.\nParse a descriptor that may contain secret keys\nAttempt to parse an insane(scripts don’t clear sanity …\nAttempt to parse an miniscript with extra features that …\nGet the len of public key when serialized based on context …\nReturns a plan if the provided assets are sufficient to …\nReturns a plan if the provided assets are sufficient to …\nDescriptor policy\nWhether all spend paths of miniscript require a signature\nChecks whether the descriptor is safe.\nCheck whether the underlying Miniscript is safe under the …\nAttempts to produce a non-malleable satisfying witness and …\nAttempt to produce non-malleable satisfying witness for the\nAttempt to produce a malleable satisfying witness for the …\nComputes the scriptCode of a transaction output.\nComputes the scriptpubkey of the descriptor.\nSize, in bytes of the script-pubkey. If this Miniscript is …\nThe type of signature required for satisfaction\nSubstitutes raw public keys hashes with the public keys as …\nDescriptor templates\nSerialize a descriptor to string with its secret keys\nCheck top level consensus rules.\nCheck whether the top-level is type B\nConverts a descriptor using abstract keys to one using …\nTranslates a struct from one generic to another where the …\nThe correctness and malleability type information for the …\nComputes the scriptSig that will be in place for an …\nWhether the miniscript can exceed the resource …\nCompute the checksum of a descriptor, excludes any …\nCompute the checksum bytes of a descriptor, excludes any …\nError during base58 decoding\nBIP32 error\nErrors related to the parsing and usage of descriptors\nThe provided wallet descriptors are identical\nThe descriptor contains hardened derivation steps on …\nHex decoding error\nInvalid byte found in the descriptor checksum\nThe provided descriptor doesn’t match its checksum\nInvalid HD Key path, such as having a wildcard but a …\nError thrown while working with keys\nMiniscript error\nThe descriptor contains multipath keys\nKey-related error\nError while extracting and manipulating policies\nReturns the argument unchanged.\nCalls U::from(self).\nAbsolute timeclock timestamp\nCan not add to an item that is Satisfaction::None or …\nCan not add to an item that is …\nOptions to build the satisfaction field in the policy\nCan satisfy the policy item\nAn extra condition that must be satisfied but that is out …\nType for a map of sets of Condition items keyed by each set…\nECDSA Signature for a raw public key\nAn extended key fingerprint\nType for a map of folded sets of Condition items keyed by …\nSHA256 then RIPEMD160 preimage hash\nDouble SHA256 preimage hash\nIncompatible conditions (not currently used)\nIndex out of range for an item to satisfy a …\nCan not merge CSV or timelock values unless both are less …\nMulti-signature public keys with threshold count\nCannot satisfy or contribute to the policy item\nDon’t generate satisfaction field\nNot enough items are selected to satisfy a …\nOnly a partial satisfaction of some kind of threshold …\nCan reach the threshold of some kind of threshold policy\nA unique identifier for a key\nDescriptor spending policy\nErrors that can happen while extracting and manipulating …\nAnalyze the given PSBT to check for existing signatures\nLike Psbt variant and also check for expired timelocks\nA legacy public key\nRelative timelock locktime\nRIPEMD160 preimage hash\nRepresent if and how much a policy item is satisfied by …\nAn item that needs to be satisfied\nSchnorr Signature for a raw public key\nSHA256 preimage hash\nThreshold items with threshold count\nA x-only public key\nHow the wallet’s descriptor can satisfy this policy node\nOptional CheckSequenceVerify condition\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the conditions that are set by the spending policy …\nReturns a unique id for the SatisfiableItem\nIdentifier for this policy node\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the SatisfiableItem is a leaf item\nReturns whether the Satisfaction is a leaf item\nReturns true if there are no extra conditions to verify\nType of this policy node\nReturn whether or not a specific path in the policy tree …\nHow much a given PSBT already satisfies this policy node …\nOptional timelock condition\nCurrent blockchain height\nThe highest confirmation height between the inputs CSV …\nGiven PSBT\nExtra conditions that also need to be satisfied\nExtra conditions that also need to be satisfied\nExtra conditions that also need to be satisfied\nThe items that can be satisfied by the descriptor or are …\nThe items that can be satisfied by the descriptor\nThreshold\nThreshold\nTotal number of items\nTotal number of items\nWhether the items are sorted in lexicographic order (used …\nWhether the items are sorted in lexicographic order (used …\nThe digest value\nThe digest value\nThe digest value\nThe digest value\nThe policy items\nThe raw public key or extended key fingerprint\nThe required threshold count\nThe required threshold count\nThe timelock value\nThe timelock value\nBIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)\nBIP44 public template. Expands to pkh(key/{0,1}/*)\nBIP49 template. Expands to …\nBIP49 public template. Expands to sh(wpkh(key/{0,1}/*))\nBIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)\nBIP84 public template. Expands to wpkh(key/{0,1}/*)\nBIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)\nBIP86 public template. Expands to tr(key/{0,1}/*)\nTrait for descriptor templates that can be built into a …\nType alias for the return type of DescriptorTemplate, …\nP2PKH template. Expands to a descriptor pkh(key)\nP2TR template. Expands to a descriptor tr(key)\nP2WPKH template. Expands to a descriptor wpkh(key)\nP2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))\nBuild the complete descriptor\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBIP32 error\nTrait for keys that can be derived.\nContainer for public or secret keys\nThe descriptor pubkey, either a single pubkey or an xpub.\nThe descriptor secret key, either a single private key or …\nType specifying the amount of entropy required e.g. [u8;32]\nReturned error in case of failure\nTrait that adds extra useful methods to ScriptContexts\nEnum for extended keys that can be either xprv or xpub\nA bitcoin public key (compressed or uncompressed).\nTrait that allows generating a key with the default options\nTrait for keys that can be generated\nOutput of a GeneratableKey key generation\nTrait for objects that can be turned into a public or …\nThe key has an invalid checksum\nThe key is not valid for the given network\nThe key cannot exist in the given script context\nThe consensus key associated with the type. Must be a …\nErrors thrown while working with keys\nAlias type for a map of public key to secret key\nLegacy scripts\nCustom error message\nMiniscript error\nMultiple extended private keys.\nMultiple extended public keys.\nExtra options required by the generate_with_entropy\nA private extended key, aka an xprv\nOptions for generating a PrivateKey\nA public extended key, aka an xpub\nThe ScriptContext for Miniscript. Additional type …\nEnum representation of the known valid ScriptContexts\nSegwitv0 scripts\nSingle public key.\nSingle private key.\nA descriptor bitcoin::PrivateKey with optional origin …\nA descriptor SinglePubKey with optional origin information.\nSingle public key without any origin or range information.\nContents of a “sortedmulti” descriptor\nTaproot scripts\nSet of valid networks for a key\nAn xonly public key.\nExtended private key (xpriv).\nExtended public key (xpub).\nCreate a set containing mainnet, testnet, signet, and …\nReturns the ScriptContext as a ScriptContextEnum\nReplaces any wildcard (i.e. /*) in the key with a …\nAttempt to produce a witness template given the assets …\nDepending on script Context, some of the Terminals might …\nDepending on script Context, some of the script resource …\nCheck the consensus + policy(if not disabled) rules that …\nConsensus rules at the Miniscript satisfaction time. It is …\nPolicy rules at the Miniscript satisfaction time. It is …\nCheck the consensus + policy(if not disabled) rules …\nEach context has slightly different rules on what Pks are …\nDepending on ScriptContext, fragments can be malleable. …\nCheck whether the given satisfaction is valid under the …\nWhether the generated key should be “compressed” or not\nDeprecated name for Self::at_derivation_index.\nEncode as a Bitcoin script\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate an instance given a public key and a set of valid …\nCreate an instance given a secret key and a set of valid …\nParse an expression tree into a SortedMultiVec\nFull path, from the master key\nReturns a vector containing the full derivation paths from …\nGenerate a key given the options with a random entropy\nGenerate a key with the default options and a random …\nGenerate a key given the extra options and the entropy\nGenerate a key with the default options and a given entropy\nReturn whether or not the key contains the private data\nWhether or not the key has a wildcard\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTurn the key into a DescriptorKey within the requested …\nConsume self and turn it into a DescriptorKey by adding …\nConsume self and turn it into an ExtendedKey\nConsumes self and returns the key\nGet as many keys as derivation paths in this key.\nGet as many keys as derivation paths in this key.\nTransform the ExtendedKey into an Xpriv for the given …\nTransform the ExtendedKey into an Xpub for the given …\nWhether or not the key has a wildcard\nReturns whether the script context is Legacy\nReturns whether the script context is …\nWhether or not this key has multiple derivation paths.\nWhether or not this key has multiple derivation paths.\nReturns whether the script context is Segwitv0\nReturns whether the script context is …\nReturns whether the script context is Tap, aka Taproot or …\nReturns whether the script context is …\nThe threshold value for the multisig.\nThe public key.\nThe private key.\nCreate a set only containing mainnet\nThe fingerprint of the master key associated with this …\nDepending on script context, the size of a satifaction …\nMaximum size, in bytes, of a satisfying witness. In …\nMaximum number of witness elements used to satisfy the …\nCompute the intersection of two sets\nThe number of keys in the multisig.\nLocal helper function to display error messages with …\nCreate a new instance of SortedMultiVec given a list of …\nOrigin information (fingerprint and derivation path).\nOrigin information (fingerprint and derivation path).\nOther top level checks that are context specific\nOverride the computed set of valid networks\nGet the len of public key when serialized based on context …\nAccessor for the public keys in the multisig.\nutility function to sanity a sorted multi vec\nAttempt to produce a satisfying witness for the witness …\nSize, in bytes of the script-pubkey. If this Miniscript is …\nThe type of signature required for satisfaction\nCreate Terminal::Multi containing sorted pubkeys\nCreate a set containing testnet and regtest\nReturns the public version of this key.\nCheck top level consensus rules.\nCheck whether the top-level is type B\nThis will panic if fpk returns an uncompressed key when …\nTrait to add functions to extract utxos and calculate fees.\nThe total transaction fee amount, sum of input amounts …\nThe transaction’s fee rate. This value will only be …\nGet the TxOut for the specified input index, if it doesn’…\nA derived address and the index it was found at. For …\nAn error that may occur when applying a block to Wallet.\nBalance, differentiated into various categories.\nOccurs when the update chain cannot connect with original …\nThe changes made to a wallet by applying an Update.\nThe error variant that occurs when the caller attempts to …\nThere was problem with the passed-in descriptor(s).\nThere was a problem with the passed-in descriptor(s).\nThere is a problem with the passed-in descriptor.\nAn error that may occur when inserting a transaction into …\nTrait to check if a value is below the dust limit. We are …\nThe error type when loading a Wallet from persistence.\nThe loaded desccriptor does not match what was provided.\nThe loaded genesis hash does not match what was provided.\nThe loaded network type does not match what was provided.\nData loaded from persistence is missing descriptor.\nData loaded from persistence is missing genesis hash.\nData loaded from persistence is missing network type.\nThe error type when constructing a fresh Wallet.\nError type for when we try load a Wallet from persistence …\nDatabase already has data.\nWallet not initialized, persistence backend is empty.\nWallet is not initialized, persistence backend is empty.\nWe were unable to write the wallet’s data to the …\nLoading data from the persistence backend failed.\nEither writing to or loading from the persistence backend …\nOccurs when the connected_to hash does not match the hash …\nAn update to Wallet.\nA Bitcoin wallet\nAdd an external signer\nAddress\nGet unbounded script pubkey iterators for both Internal …\nIntroduces a block of height to the wallet, and tries to …\nApplies relevant transactions from block of height to the …\nApply relevant unconfirmed transactions to the wallet.\nApplies an update to the wallet and stages the changes …\nReturn the balance, separated into available, …\nBump the fee of a transaction previously created with this …\nStart building a transaction.\nCalculates the fee of a given transaction. Returns …\nCalculate the FeeRate for a given transaction.\nInforms the wallet that you no longer intend to broadcast …\nChanges to the LocalChain.\nUpdate for the wallet’s internal LocalChain.\nGet all the checkpoints the wallet is currently storing …\nCoin selection\nCommits all currently staged changed to the persistence …\nConfirmed and immediately spendable balance\nThe derivation index of this wallet. It will return None …\nFinds how the wallet derived the script pubkey spk.\nReturn the checksum of the public descriptor associated to …\nErrors that can be thrown by the Wallet\nWallet export\nFinalize a PSBT, i.e., for each input determine if …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the descriptor used to create addresses for a …\nget the corresponding PSBT Input for a LocalUtxo\nGet the signers\nGet a single transaction from the wallet as a CanonicalTx …\nReturns the utxo owned by this wallet corresponding to …\nUpdate for the wallet’s internal TxGraph.\nAll coinbase outputs not yet matured\nChild index of this address\nChanges to IndexedTxGraph.\nAdd a new checkpoint to the wallet’s internal view of …\nAdd a transaction to the wallet’s internal view of the …\nInserts a TxOut at OutPoint into the wallet’s …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck whether or not a value is below dust limit\nReturn whether or not a script is part of this wallet …\nType of keychain\nIterator over all keychains in this wallet\nContains the last active derivation indices per keychain (K…\nReturns the latest checkpoint.\nList all relevant outputs (includes both spent and …\nReturn the list of unspent outputs of this wallet\nList addresses that are revealed but unused.\nLoad Wallet from the given persistence backend.\nGet a reference to the inner LocalChain.\nMarks an address used of the given keychain at index.\nGet the Bitcoin network the wallet is using.\nStores the network type of the transaction data.\nInitialize an empty Wallet.\nCreates a wallet that does not persist data.\nCreates a wallet that does not persist data, with a custom …\nEither loads Wallet from persistence, or initializes it if …\nEither loads Wallet from persistence, or initializes it if …\nInitialize an empty Wallet with a custom genesis hash.\nThe index of the next address that you would get if you …\nGet the next unused address for the given keychain, i.e. …\nPeek an address of the given keychain at index without …\nReturn the spending policies for the wallet’s descriptor\nReturn the “public” version of the wallet’s …\nReveal addresses up to and including the target index and …\nAttempt to reveal the next address of the given keychain.\nReturn the secp256k1 context used for all signing …\nCompute the tx’s sent and received Amounts.\nSign a transaction with all the wallet’s signers, in the …\nGeneralized signers\nGet a reference to the inner KeychainTxOutIndex.\nReturns the changes that will be committed with the next …\nCreate a `FullScanRequest for this wallet.\nCreate a partial SyncRequest for this wallet for all …\nGet the whole balance visible to the wallet.\nIterate over the transactions in the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nTransaction builder\nGet a reference to the inner TxGraph.\nGet an unbounded script pubkey iterator for the given …\nUndoes the effect of mark_used and returns whether the …\nUnconfirmed UTXOs received from an external wallet\nDeterministically generate a unique name given the …\nBlock hash of connected_to.\nExpected block hash of connected_to, as derived from block.\nThe internal chain’s tip height.\nThe introduced transaction’s confirmation height.\nThe expected genesis block hash.\nThe expected network type.\nThe block hash loaded from persistence.\nThe network type loaded from persistence.\nThe descriptor loaded from persistence.\nThe keychain of the descriptor not matching\nBranch and bound coin selection tries to avoid needing a …\nBranch and bound coin selection possible attempts with …\nBranch and bound coin selection\nIt’s possible to create spendable output from excess …\nTrait for generalized coin selection algorithms\nResult of a successful coin selection\nDefault coin selection algorithm used by TxBuilder if not …\nErrors that can be thrown by the coin_selection module\nRemaining amount after performing coin selection\nWallet’s UTXO set is not enough to cover recipient’s …\nSimple and dumb coin selection\nIt’s not possible to create spendable output from excess …\nOldestFirstCoinSelection always picks the utxo with the …\nPerform the coin selection\nDecide if change can be created\nRemaining amount after deducing fees and outgoing outputs\nTotal fee amount for the selected utxos in satoshis\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe total value of the inputs selected from the local …\nCreate new instance with target size for change output\nList of outputs selected for use as inputs\nThe total value of the inputs selected.\nSats available for spending\nSats needed for some transaction\nEffective amount available to create change after …\nThe calculated fee for the drain TxOut with the selected …\nThreshold to consider amount as dust for this particular …\nThe deducted change output fee\nExceeding amount of current selection over outgoing value …\nError returned from Wallet::build_fee_bump\nThere was an error with coin selection\nDescriptor key conversion error\nError returned from TxBuilder::finish\nThere was a problem with the descriptors passed in\nWhen bumping a tx the fee rate requested is lower than …\nNode doesn’t have data to estimate a fee rate\nWhen bumping a tx the absolute fee requested is lower than …\nTrying to replace a tx that has a sequence >= 0xFFFFFFFE\nRequested LockTime is less than is required to spend from …\nMiniscript PSBT error\nErrors returned by miniscript when updating inconsistent …\nIn order to use the TxBuilder::add_global_xpubs option …\nMissing non_witness_utxo on foreign utxo for given OutPoint\nCannot build a tx without recipients\nmanually_selected_only option is selected but no utxo has …\nOutput created is under the dust limit, 546 satoshis\nReturn error type for …\nWe were unable to load wallet data from or write wallet …\nThere was a problem while extracting and manipulating …\nPartially signed bitcoin transaction error\nCannot enable RBF with a Sequence >= 0xFFFFFFFE\nCannot enable RBF with Sequence given a required OP_CSV\nSpending policy is not compatible with this KeychainKind\nHappens when trying to bump a transaction that is already …\nThrown when a tx is not found in the internal database\nHappens when trying to spend an UTXO that is not in the …\nHappens when trying to spend an UTXO that is not in the …\nReturn error type for PsbtExt::update_input_with_descriptor\nRequested invalid transaction version ‘0’\nRequested transaction version 1, but at least 2 is needed …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRequired OP_CSV Sequence\nGiven RBF Sequence\nRequested LockTime\nRequired LockTime\nRequired fee absolute value Amount\nRequired fee rate\nStructure that contains the export of a wallet\nAlias for FullyNodedExport\nEarliest block to rescan when looking for the wallet’s …\nEarliest block to rescan when looking for the wallet’s …\nReturn the internal descriptor, if present\nReturn the external descriptor\nExport a wallet\nReturns the argument unchanged.\nCalls U::from(self).\nArbitrary label for the wallet\nArbitrary label for the wallet\nThe signer will sign all the leaves it has a key for.\nDummy identifier\nThe signer won’t sign the specified leaves.\nTo be used only by external libraries implementing …\nThe fingerprint of a BIP32 extended key\nThe signer won’t sign leaves other than the ones …\nInput index is out of range\nPSBT Input signer\nThe private key in use has the right fingerprint but …\nThe non_witness_utxo specified is invalid\nInvalid SIGHASH for the signing context in use\nLegacy context\nMiniscript PSBT error\nThe fingerprint and derivation path are missing from the …\nThe private key is missing for the required public key\nThe non_witness_utxo field of the transaction is required …\nThe witness_script field of the transaction is required to …\nThe witness_utxo field of the transaction is required to …\nThe psbt contains a non-SIGHASH_ALL sighash in one of its …\nThe signer won’t sign any leaf.\nBitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …\nSegwit v0 context (BIP 143)\nError while computing the hash to sign a P2WPKH input.\nError while computing the hash to sign a Taproot input.\nOptions for a software signer\nCommon signer methods\nSigning context\nSigning error\nIdentifier of a signer in the SignersContainers. Used as a …\nDefines the order in which signers are called\nWrapper to pair a signer with its context\nContainer for multiple signers\nTaproot context (BIP 340)\nCustomize which taproot script-path leaves the signer …\nPSBT signer\nError while computing the hash, out of bounds access on …\nThe user canceled the operation\nAdds an external signer to the container for the specified …\nWhether the signer should use the sighash_type set in the …\nWhether we should grind ECDSA signature to ensure signing …\nCreate a map of public keys to secret keys\nWhether the wallet should assume a specific height has …\nBuild a new signer container from a KeyMap\nReturn the secret key for the signer\nFinds the signer with lowest ordering for a given id in …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the SignerId for this signer\nReturns the list of identifiers of all the signers in the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a wrapped signer from a signer and a context\nDefault constructor\nRemoves a signer from the container and returns it\nWhether to remove partial signatures from the PSBT inputs …\nWhether to remove taproot specific fields from the PSBT on …\nSign a single psbt input\nSign all the inputs of the psbt\nWhether we should try to sign a taproot transaction with …\nReturns the list of signers in the container, sorted by …\nSpecifies which Taproot script-spend leaves we should sign …\nWhether the signer should trust the witness_utxo, if the …\nWhether to try finalizing the PSBT after the inputs are …\nWhether the signer can sign for the internal key or not\nError returned from TxBuilder::add_foreign_utxo.\nError returned from TxBuilder::add_utxo and …\nBIP69 / Lexicographic\nUse both change and non-change outputs (default)\nOnly use non-change outputs (see …\nPolicy regarding the use of change outputs when creating a …\nRequested outpoint doesn’t exist in the tx (vout greater …\nForeign utxo outpoint txid does not match PSBT input txid\nForeign utxo missing witness_utxo or non_witness_utxo\nOnly use change outputs (see TxBuilder::only_spend_change)\nRandomized (default)\nA transaction builder\nOrdering of the transaction’s inputs and outputs\nHappens when trying to spend an UTXO that is not in the …\nUnchanged\nAdd data as an output, using OP_RETURN\nAdd a foreign UTXO i.e. a UTXO not owned by this wallet.\nSame as add_foreign_utxo but allows to set the nSequence …\nFill-in the PSBT_GLOBAL_XPUB field with the extended keys …\nAdd a recipient to the internal list\nAdd a utxo to the internal list of unspendable utxos\nAdd a utxo to the internal list of utxos that must be spent\nAdd the list of outpoints to the internal list of UTXOs …\nSet whether or not the dust limit is checked.\nSet a specific ChangeSpendPolicy. See …\nChoose the coin selection algorithm\nSet the current blockchain height.\nDo not spend change outputs\nSets the address to drain excess coins to.\nSpend all the available inputs. This respects filters like …\nEnable signaling RBF\nEnable signaling RBF with a specific nSequence value\nSet an absolute fee The fee_absolute method refers to the …\nSet a custom fee rate.\nFinish building the transaction.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFill-in the psbt::Output::redeem_script and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOnly spend utxos added by add_utxo.\nUse a specific nLockTime while creating the transaction\nOnly spend change outputs\nOnly Fill-in the psbt::Input::witness_utxo field when …\nChoose the ordering for inputs and outputs of the …\nSet the policy path to use while creating the transaction …\nReplace the recipients already added with a new list\nSign with a specific sig hash\nSort transaction inputs and outputs by TxOrdering variant\nReplace the internal list of unspendable utxos with a new …\nBuild a transaction with a specific version\nForeign UTXO outpoint\nPSBT input txid") \ No newline at end of file +searchState.loadedDescShard("bdk_wallet", 0, "BDK Wallet\nExternal keychain, used for deriving recipient addresses.\nA UTXO owned by another wallet.\nInternal keychain, used for deriving change addresses.\nTypes of keychains\nA UTXO owned by the local wallet.\nAn unspent output owned by a Wallet.\nAn unspent transaction output (UTXO).\nA Utxo with its satisfaction_weight.\nReturn KeychainKind as a byte\nThe confirmation time for transaction containing this utxo\nThe derivation index for the script pubkey in the wallet\nDescriptors\nMacro to write full descriptors with code\nMacro to write descriptor fragments with code\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this UTXO is spent or not\nType of keychain\nKey formats\nGet the location of the UTXO\nReference to a transaction output\nAdditional functions on the rust-bitcoin Psbt structure.\nThe weight of the witness data and scriptSig expressed in …\nGet the sequence number if an explicit sequence number has …\nGet the TxOut of the UTXO\nTransaction output\nThe UTXO\nGet the version of BDK at runtime\nWallet\nThe location of the output.\nThe information about the input we require to add it to a …\nThe nSequence value to set for this input.\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nA raw scriptpubkey (including pay-to-pubkey) under Legacy …\nAlias for a Descriptor that contains extended derived keys\nScript descriptor\nThe descriptor pubkey, either a single pubkey or an xpub.\nAlias for a Descriptor that can contain extended keys …\nTrait implemented on Descriptors to add a method to …\nThe 0 combinator.\nAlias for the type of maps that represent derivation paths …\nTrait for types which can be converted into an …\nThe consensus key associated with the type. Must be a …\nLegacy ScriptContext To be used as P2SH scripts For …\nThe top-level miniscript abstract syntax tree (AST).\nMultiple extended public keys.\nPay-to-PubKey-Hash\nPay-to-PubKey-Hash\nPay-to-PubKey-Hash\nThe ScriptContext for Miniscript. Additional type …\nSegwitv0 ScriptContext\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nPay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)\nSingle public key.\nThe 1 combinator.\nAlias for the type of maps that represent taproot key …\nPay-to-Taproot\nPay-to-Taproot\nPay-to-Taproot\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-PubKey-Hash\nPay-to-Witness-ScriptHash with Segwitv0 context\nPay-to-Witness-ScriptHash with Segwitv0 context\nPay-to-Witness-ScriptHash with Segwitv0 context\nExtended public key (xpub).\nComputes the Bitcoin address of the descriptor, if one …\nGet a reference to the inner AstElem representing the root …\nReplaces all wildcards (i.e. /*) in the descriptor with a …\nEnumerates all child nodes of the current AST node (self) …\nAttempt to produce a non-malleable witness template given …\nAttempt to produce a malleable witness template given the …\nDepending on script Context, some of the Terminals might …\nDepending on script Context, some of the script resource …\nCheck the consensus + policy(if not disabled) rules that …\nConsensus rules at the Miniscript satisfaction time. It is …\nPolicy rules at the Miniscript satisfaction time. It is …\nCheck the consensus + policy(if not disabled) rules …\nEach context has slightly different rules on what Pks are …\nDepending on ScriptContext, fragments can be malleable. …\nCheck whether the given satisfaction is valid under the …\nDescriptor checksum\nWhether the given miniscript contains a raw pkh fragment\nDeprecated name for Self::at_derivation_index.\nConvert all the public keys in the descriptor to …\nConvert all the public keys in the descriptor to …\nGet the DescriptorType of Descriptor\nEncode as a Bitcoin script\nDescriptor errors\nComputes the the underlying script before any hashing is …\nAdditional information helpful for extra analysis.\nCheck whether the miniscript follows the given Extra …\nExtract the spending policy\nUtility method for deriving the descriptor at each index …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAdd type information(Type and Extdata) to Miniscript based …\nCreate a new Miniscript from a Terminal node and a Type …\nParse a Miniscript from string and perform sanity checks …\nAttempt to parse an Miniscripts that don’t follow the …\nAttempt to parse an insane(scripts don’t clear sanity …\nParse an expression tree into a descriptor.\nParse an expression tree into a Miniscript. As a general …\nReturns child node with given index, if any\nReturns Option::Some with cloned n’th public key from …\nReturns satisfying non-malleable witness and scriptSig to …\nReturns a possilbly mallable satisfying non-malleable …\nWhether the miniscript contains a combination of timelocks\nWhether the miniscript has repeated Pk or Pkh\nWhether or not the descriptor has any wildcards i.e. /*.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nExtracts the AstElem representing the root of the …\nGet as many descriptors as different paths in this …\nConvert to wallet descriptor\nWhether or not the descriptor has any wildcards\nWhether this descriptor contains a key that has multiple …\nWhether the miniscript is malleable\nCreates a new Iter iterator that will iterate over all …\nCreates a new PkIter iterator that will iterate over all …\nLifting corresponds to conversion of a miniscript into a …\nDepending on script context, the size of a satifaction …\nMaximum size, in bytes, of a satisfying witness. For …\nComputes an upper bound on the weight of a satisfying …\nMaximum number of witness elements used to satisfy the …\nComputes an upper bound on the difference between a …\nLocal helper function to display error messages with …\nCreate a new bare descriptor from witness script Errors …\nCreate a new pk descriptor\nCreate a new PkH descriptor\nCreate a new sh for a given redeem script Errors when …\nCreate a new sh sortedmulti descriptor with threshold k …\nCreate a new sh wrapper for the given wpkh descriptor\nCreate a new sh wrapper for the given wsh descriptor\nCreate a new sh wrapped wpkh from Pk. Errors when …\nCreate a new sh wrapped wsh descriptor with witness script …\nCreate a new sh wrapped wsh sortedmulti descriptor from …\nCreate new tr descriptor Errors when miniscript exceeds …\nCreate a new Wpkh descriptor Will return Err if …\nCreate a new wsh descriptor from witness script Errors …\nCreate a new wsh sorted multi descriptor Errors when …\nA node in the AST.\nOther top level checks that are context specific\nAttempt to parse a Script into Miniscript representation.\nParse a descriptor that may contain secret keys\nAttempt to parse an insane(scripts don’t clear sanity …\nAttempt to parse an miniscript with extra features that …\nGet the len of public key when serialized based on context …\nReturns a plan if the provided assets are sufficient to …\nReturns a plan if the provided assets are sufficient to …\nDescriptor policy\nWhether all spend paths of miniscript require a signature\nChecks whether the descriptor is safe.\nCheck whether the underlying Miniscript is safe under the …\nAttempts to produce a non-malleable satisfying witness and …\nAttempt to produce non-malleable satisfying witness for the\nAttempt to produce a malleable satisfying witness for the …\nComputes the scriptCode of a transaction output.\nComputes the scriptpubkey of the descriptor.\nSize, in bytes of the script-pubkey. If this Miniscript is …\nThe type of signature required for satisfaction\nSubstitutes raw public keys hashes with the public keys as …\nDescriptor templates\nSerialize a descriptor to string with its secret keys\nCheck top level consensus rules.\nCheck whether the top-level is type B\nConverts a descriptor using abstract keys to one using …\nTranslates a struct from one generic to another where the …\nThe correctness and malleability type information for the …\nComputes the scriptSig that will be in place for an …\nWhether the miniscript can exceed the resource …\nCompute the checksum of a descriptor, excludes any …\nCompute the checksum bytes of a descriptor, excludes any …\nError during base58 decoding\nBIP32 error\nErrors related to the parsing and usage of descriptors\nThe provided wallet descriptors are identical\nThe descriptor contains hardened derivation steps on …\nHex decoding error\nInvalid byte found in the descriptor checksum\nThe provided descriptor doesn’t match its checksum\nInvalid HD Key path, such as having a wildcard but a …\nError thrown while working with keys\nMiniscript error\nThe descriptor contains multipath keys\nKey-related error\nError while extracting and manipulating policies\nReturns the argument unchanged.\nCalls U::from(self).\nAbsolute timeclock timestamp\nCan not add to an item that is Satisfaction::None or …\nCan not add to an item that is …\nOptions to build the satisfaction field in the policy\nCan satisfy the policy item\nAn extra condition that must be satisfied but that is out …\nType for a map of sets of Condition items keyed by each set…\nECDSA Signature for a raw public key\nAn extended key fingerprint\nType for a map of folded sets of Condition items keyed by …\nSHA256 then RIPEMD160 preimage hash\nDouble SHA256 preimage hash\nIncompatible conditions (not currently used)\nIndex out of range for an item to satisfy a …\nCan not merge CSV or timelock values unless both are less …\nMulti-signature public keys with threshold count\nCannot satisfy or contribute to the policy item\nDon’t generate satisfaction field\nNot enough items are selected to satisfy a …\nOnly a partial satisfaction of some kind of threshold …\nCan reach the threshold of some kind of threshold policy\nA unique identifier for a key\nDescriptor spending policy\nErrors that can happen while extracting and manipulating …\nAnalyze the given PSBT to check for existing signatures\nLike Psbt variant and also check for expired timelocks\nA legacy public key\nRelative timelock locktime\nRIPEMD160 preimage hash\nRepresent if and how much a policy item is satisfied by …\nAn item that needs to be satisfied\nSchnorr Signature for a raw public key\nSHA256 preimage hash\nThreshold items with threshold count\nA x-only public key\nHow the wallet’s descriptor can satisfy this policy node\nOptional CheckSequenceVerify condition\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the conditions that are set by the spending policy …\nReturns a unique id for the SatisfiableItem\nIdentifier for this policy node\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns whether the SatisfiableItem is a leaf item\nReturns whether the Satisfaction is a leaf item\nReturns true if there are no extra conditions to verify\nType of this policy node\nReturn whether or not a specific path in the policy tree …\nHow much a given PSBT already satisfies this policy node …\nOptional timelock condition\nCurrent blockchain height\nThe highest confirmation height between the inputs CSV …\nGiven PSBT\nExtra conditions that also need to be satisfied\nExtra conditions that also need to be satisfied\nExtra conditions that also need to be satisfied\nThe items that can be satisfied by the descriptor or are …\nThe items that can be satisfied by the descriptor\nThreshold\nThreshold\nTotal number of items\nTotal number of items\nWhether the items are sorted in lexicographic order (used …\nWhether the items are sorted in lexicographic order (used …\nThe digest value\nThe digest value\nThe digest value\nThe digest value\nThe policy items\nThe raw public key or extended key fingerprint\nThe required threshold count\nThe required threshold count\nThe timelock value\nThe timelock value\nBIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)\nBIP44 public template. Expands to pkh(key/{0,1}/*)\nBIP49 template. Expands to …\nBIP49 public template. Expands to sh(wpkh(key/{0,1}/*))\nBIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)\nBIP84 public template. Expands to wpkh(key/{0,1}/*)\nBIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)\nBIP86 public template. Expands to tr(key/{0,1}/*)\nTrait for descriptor templates that can be built into a …\nType alias for the return type of DescriptorTemplate, …\nP2PKH template. Expands to a descriptor pkh(key)\nP2TR template. Expands to a descriptor tr(key)\nP2WPKH template. Expands to a descriptor wpkh(key)\nP2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))\nBuild the complete descriptor\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBIP32 error\nTrait for keys that can be derived.\nContainer for public or secret keys\nThe descriptor pubkey, either a single pubkey or an xpub.\nThe descriptor secret key, either a single private key or …\nType specifying the amount of entropy required e.g. [u8;32]\nReturned error in case of failure\nTrait that adds extra useful methods to ScriptContexts\nEnum for extended keys that can be either xprv or xpub\nA bitcoin public key (compressed or uncompressed).\nTrait that allows generating a key with the default options\nTrait for keys that can be generated\nOutput of a GeneratableKey key generation\nTrait for objects that can be turned into a public or …\nThe key has an invalid checksum\nThe key is not valid for the given network\nThe key cannot exist in the given script context\nThe consensus key associated with the type. Must be a …\nErrors thrown while working with keys\nAlias type for a map of public key to secret key\nLegacy scripts\nCustom error message\nMiniscript error\nMultiple extended private keys.\nMultiple extended public keys.\nExtra options required by the generate_with_entropy\nA private extended key, aka an xprv\nOptions for generating a PrivateKey\nA public extended key, aka an xpub\nThe ScriptContext for Miniscript. Additional type …\nEnum representation of the known valid ScriptContexts\nSegwitv0 scripts\nSingle public key.\nSingle private key.\nA descriptor bitcoin::PrivateKey with optional origin …\nA descriptor SinglePubKey with optional origin information.\nSingle public key without any origin or range information.\nContents of a “sortedmulti” descriptor\nTaproot scripts\nSet of valid networks for a key\nAn xonly public key.\nExtended private key (xpriv).\nExtended public key (xpub).\nCreate a set containing mainnet, testnet, signet, and …\nReturns the ScriptContext as a ScriptContextEnum\nReplaces any wildcard (i.e. /*) in the key with a …\nAttempt to produce a witness template given the assets …\nDepending on script Context, some of the Terminals might …\nDepending on script Context, some of the script resource …\nCheck the consensus + policy(if not disabled) rules that …\nConsensus rules at the Miniscript satisfaction time. It is …\nPolicy rules at the Miniscript satisfaction time. It is …\nCheck the consensus + policy(if not disabled) rules …\nEach context has slightly different rules on what Pks are …\nDepending on ScriptContext, fragments can be malleable. …\nCheck whether the given satisfaction is valid under the …\nWhether the generated key should be “compressed” or not\nDeprecated name for Self::at_derivation_index.\nEncode as a Bitcoin script\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreate an instance given a public key and a set of valid …\nCreate an instance given a secret key and a set of valid …\nParse an expression tree into a SortedMultiVec\nFull path, from the master key\nReturns a vector containing the full derivation paths from …\nGenerate a key given the options with a random entropy\nGenerate a key with the default options and a random …\nGenerate a key given the extra options and the entropy\nGenerate a key with the default options and a given entropy\nReturn whether or not the key contains the private data\nWhether or not the key has a wildcard\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTurn the key into a DescriptorKey within the requested …\nConsume self and turn it into a DescriptorKey by adding …\nConsume self and turn it into an ExtendedKey\nConsumes self and returns the key\nGet as many keys as derivation paths in this key.\nGet as many keys as derivation paths in this key.\nTransform the ExtendedKey into an Xpriv for the given …\nTransform the ExtendedKey into an Xpub for the given …\nWhether or not the key has a wildcard\nReturns whether the script context is Legacy\nReturns whether the script context is …\nWhether or not this key has multiple derivation paths.\nWhether or not this key has multiple derivation paths.\nReturns whether the script context is Segwitv0\nReturns whether the script context is …\nReturns whether the script context is Tap, aka Taproot or …\nReturns whether the script context is …\nThe threshold value for the multisig.\nThe public key.\nThe private key.\nCreate a set only containing mainnet\nThe fingerprint of the master key associated with this …\nDepending on script context, the size of a satifaction …\nMaximum size, in bytes, of a satisfying witness. In …\nMaximum number of witness elements used to satisfy the …\nCompute the intersection of two sets\nThe number of keys in the multisig.\nLocal helper function to display error messages with …\nCreate a new instance of SortedMultiVec given a list of …\nOrigin information (fingerprint and derivation path).\nOrigin information (fingerprint and derivation path).\nOther top level checks that are context specific\nOverride the computed set of valid networks\nGet the len of public key when serialized based on context …\nAccessor for the public keys in the multisig.\nutility function to sanity a sorted multi vec\nAttempt to produce a satisfying witness for the witness …\nSize, in bytes of the script-pubkey. If this Miniscript is …\nThe type of signature required for satisfaction\nCreate Terminal::Multi containing sorted pubkeys\nCreate a set containing testnet and regtest\nReturns the public version of this key.\nCheck top level consensus rules.\nCheck whether the top-level is type B\nThis will panic if fpk returns an uncompressed key when …\nTrait to add functions to extract utxos and calculate fees.\nThe total transaction fee amount, sum of input amounts …\nThe transaction’s fee rate. This value will only be …\nGet the TxOut for the specified input index, if it doesn’…\nA derived address and the index it was found at. For …\nAn error that may occur when applying a block to Wallet.\nBalance, differentiated into various categories.\nOccurs when the update chain cannot connect with original …\nThe changes made to a wallet by applying an Update.\nThe error variant that occurs when the caller attempts to …\nThere was problem with the passed-in descriptor(s).\nThere was a problem with the passed-in descriptor(s).\nThere is a problem with the passed-in descriptor.\nAn error that may occur when inserting a transaction into …\nTrait to check if a value is below the dust limit. We are …\nThe error type when loading a Wallet from a ChangeSet.\nThe loaded desccriptor does not match what was provided.\nThe loaded genesis hash does not match what was provided.\nThe loaded network type does not match what was provided.\nData loaded from persistence is missing descriptor.\nData loaded from persistence is missing genesis hash.\nData loaded from persistence is missing network type.\nThe error type when constructing a fresh Wallet.\nError type for when we try load a Wallet from persistence …\nOccurs when the connected_to hash does not match the hash …\nAn update to Wallet.\nA Bitcoin wallet\nAdd an external signer\nAddress\nGet unbounded script pubkey iterators for both Internal …\nIntroduces a block of height to the wallet, and tries to …\nApplies relevant transactions from block of height to the …\nApply relevant unconfirmed transactions to the wallet.\nApplies an update to the wallet and stages the changes …\nReturn the balance, separated into available, …\nBump the fee of a transaction previously created with this …\nStart building a transaction.\nCalculates the fee of a given transaction. Returns …\nCalculate the FeeRate for a given transaction.\nInforms the wallet that you no longer intend to broadcast …\nChanges to the LocalChain.\nUpdate for the wallet’s internal LocalChain.\nGet all the checkpoints the wallet is currently storing …\nCoin selection\nCommits all currently staged changes to the persist_backend…\nConfirmed and immediately spendable balance\nThe derivation index of this wallet. It will return None …\nFinds how the wallet derived the script pubkey spk.\nReturn the checksum of the public descriptor associated to …\nErrors that can be thrown by the Wallet\nWallet export\nFinalize a PSBT, i.e., for each input determine if …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the descriptor used to create addresses for a …\nget the corresponding PSBT Input for a LocalUtxo\nGet the signers\nGet a single transaction from the wallet as a CanonicalTx …\nReturns the utxo owned by this wallet corresponding to …\nUpdate for the wallet’s internal TxGraph.\nAll coinbase outputs not yet matured\nChild index of this address\nChanges to IndexedTxGraph.\nAdd a new checkpoint to the wallet’s internal view of …\nAdd a transaction to the wallet’s internal view of the …\nInserts a TxOut at OutPoint into the wallet’s …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCheck whether or not a value is below dust limit\nReturn whether or not a script is part of this wallet …\nType of keychain\nIterator over all keychains in this wallet\nContains the last active derivation indices per keychain (K…\nReturns the latest checkpoint.\nList all relevant outputs (includes both spent and …\nReturn the list of unspent outputs of this wallet\nList addresses that are revealed but unused.\nLoad Wallet from the given previously persisted ChangeSet.\nGet a reference to the inner LocalChain.\nMarks an address used of the given keychain at index.\nGet the Bitcoin network the wallet is using.\nStores the network type of the transaction data.\nInitialize an empty Wallet.\nEither loads Wallet from the given ChangeSet or …\nEither loads Wallet from a ChangeSet or initializes it if …\nInitialize an empty Wallet with a custom genesis hash.\nThe index of the next address that you would get if you …\nGet the next unused address for the given keychain, i.e. …\nPeek an address of the given keychain at index without …\nReturn the spending policies for the wallet’s descriptor\nReturn the “public” version of the wallet’s …\nReveal addresses up to and including the target index and …\nAttempt to reveal the next address of the given keychain.\nReturn the secp256k1 context used for all signing …\nCompute the tx’s sent and received Amounts.\nSign a transaction with all the wallet’s signers, in the …\nGeneralized signers\nGet a reference to the inner KeychainTxOutIndex.\nGet the staged ChangeSet that is yet to be committed.\nCreate a `FullScanRequest for this wallet.\nCreate a partial SyncRequest for this wallet for all …\nGet the whole balance visible to the wallet.\nIterate over the transactions in the wallet.\nUnconfirmed UTXOs generated by a wallet tx\nGet sum of trusted_pending and confirmed coins.\nTransaction builder\nGet a reference to the inner TxGraph.\nGet an unbounded script pubkey iterator for the given …\nUndoes the effect of mark_used and returns whether the …\nUnconfirmed UTXOs received from an external wallet\nDeterministically generate a unique name given the …\nBlock hash of connected_to.\nExpected block hash of connected_to, as derived from block.\nThe internal chain’s tip height.\nThe introduced transaction’s confirmation height.\nThe expected genesis block hash.\nThe expected network type.\nThe block hash loaded from persistence.\nThe network type loaded from persistence.\nThe descriptor loaded from persistence.\nThe keychain of the descriptor not matching\nBranch and bound coin selection tries to avoid needing a …\nBranch and bound coin selection possible attempts with …\nBranch and bound coin selection\nIt’s possible to create spendable output from excess …\nTrait for generalized coin selection algorithms\nResult of a successful coin selection\nDefault coin selection algorithm used by TxBuilder if not …\nErrors that can be thrown by the coin_selection module\nRemaining amount after performing coin selection\nWallet’s UTXO set is not enough to cover recipient’s …\nSimple and dumb coin selection\nIt’s not possible to create spendable output from excess …\nOldestFirstCoinSelection always picks the utxo with the …\nPerform the coin selection\nDecide if change can be created\nRemaining amount after deducing fees and outgoing outputs\nTotal fee amount for the selected utxos in satoshis\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe total value of the inputs selected from the local …\nCreate new instance with target size for change output\nList of outputs selected for use as inputs\nThe total value of the inputs selected.\nSats available for spending\nSats needed for some transaction\nEffective amount available to create change after …\nThe calculated fee for the drain TxOut with the selected …\nThreshold to consider amount as dust for this particular …\nThe deducted change output fee\nExceeding amount of current selection over outgoing value …\nError returned from Wallet::build_fee_bump\nThere was an error with coin selection\nDescriptor key conversion error\nError returned from TxBuilder::finish\nThere was a problem with the descriptors passed in\nWhen bumping a tx the fee rate requested is lower than …\nNode doesn’t have data to estimate a fee rate\nWhen bumping a tx the absolute fee requested is lower than …\nTrying to replace a tx that has a sequence >= 0xFFFFFFFE\nRequested LockTime is less than is required to spend from …\nMiniscript PSBT error\nErrors returned by miniscript when updating inconsistent …\nIn order to use the TxBuilder::add_global_xpubs option …\nMissing non_witness_utxo on foreign utxo for given OutPoint\nCannot build a tx without recipients\nmanually_selected_only option is selected but no utxo has …\nOutput created is under the dust limit, 546 satoshis\nReturn error type for …\nThere was a problem while extracting and manipulating …\nPartially signed bitcoin transaction error\nCannot enable RBF with a Sequence >= 0xFFFFFFFE\nCannot enable RBF with Sequence given a required OP_CSV\nSpending policy is not compatible with this KeychainKind\nHappens when trying to bump a transaction that is already …\nThrown when a tx is not found in the internal database\nHappens when trying to spend an UTXO that is not in the …\nHappens when trying to spend an UTXO that is not in the …\nReturn error type for PsbtExt::update_input_with_descriptor\nRequested invalid transaction version ‘0’\nRequested transaction version 1, but at least 2 is needed …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRequired OP_CSV Sequence\nGiven RBF Sequence\nRequested LockTime\nRequired LockTime\nRequired fee absolute value Amount\nRequired fee rate\nStructure that contains the export of a wallet\nAlias for FullyNodedExport\nEarliest block to rescan when looking for the wallet’s …\nEarliest block to rescan when looking for the wallet’s …\nReturn the internal descriptor, if present\nReturn the external descriptor\nExport a wallet\nReturns the argument unchanged.\nCalls U::from(self).\nArbitrary label for the wallet\nArbitrary label for the wallet\nThe signer will sign all the leaves it has a key for.\nDummy identifier\nThe signer won’t sign the specified leaves.\nTo be used only by external libraries implementing …\nThe fingerprint of a BIP32 extended key\nThe signer won’t sign leaves other than the ones …\nInput index is out of range\nPSBT Input signer\nThe private key in use has the right fingerprint but …\nThe non_witness_utxo specified is invalid\nInvalid SIGHASH for the signing context in use\nLegacy context\nMiniscript PSBT error\nThe fingerprint and derivation path are missing from the …\nThe private key is missing for the required public key\nThe non_witness_utxo field of the transaction is required …\nThe witness_script field of the transaction is required to …\nThe witness_utxo field of the transaction is required to …\nThe psbt contains a non-SIGHASH_ALL sighash in one of its …\nThe signer won’t sign any leaf.\nBitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …\nSegwit v0 context (BIP 143)\nError while computing the hash to sign a P2WPKH input.\nError while computing the hash to sign a Taproot input.\nOptions for a software signer\nCommon signer methods\nSigning context\nSigning error\nIdentifier of a signer in the SignersContainers. Used as a …\nDefines the order in which signers are called\nWrapper to pair a signer with its context\nContainer for multiple signers\nTaproot context (BIP 340)\nCustomize which taproot script-path leaves the signer …\nPSBT signer\nError while computing the hash, out of bounds access on …\nThe user canceled the operation\nAdds an external signer to the container for the specified …\nWhether the signer should use the sighash_type set in the …\nWhether we should grind ECDSA signature to ensure signing …\nCreate a map of public keys to secret keys\nWhether the wallet should assume a specific height has …\nBuild a new signer container from a KeyMap\nReturn the secret key for the signer\nFinds the signer with lowest ordering for a given id in …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the SignerId for this signer\nReturns the list of identifiers of all the signers in the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a wrapped signer from a signer and a context\nDefault constructor\nRemoves a signer from the container and returns it\nWhether to remove partial signatures from the PSBT inputs …\nWhether to remove taproot specific fields from the PSBT on …\nSign a single psbt input\nSign all the inputs of the psbt\nWhether we should try to sign a taproot transaction with …\nReturns the list of signers in the container, sorted by …\nSpecifies which Taproot script-spend leaves we should sign …\nWhether the signer should trust the witness_utxo, if the …\nWhether to try finalizing the PSBT after the inputs are …\nWhether the signer can sign for the internal key or not\nError returned from TxBuilder::add_foreign_utxo.\nError returned from TxBuilder::add_utxo and …\nBIP69 / Lexicographic\nUse both change and non-change outputs (default)\nOnly use non-change outputs (see …\nPolicy regarding the use of change outputs when creating a …\nRequested outpoint doesn’t exist in the tx (vout greater …\nForeign utxo outpoint txid does not match PSBT input txid\nForeign utxo missing witness_utxo or non_witness_utxo\nOnly use change outputs (see TxBuilder::only_spend_change)\nRandomized (default)\nA transaction builder\nOrdering of the transaction’s inputs and outputs\nHappens when trying to spend an UTXO that is not in the …\nUnchanged\nAdd data as an output, using OP_RETURN\nAdd a foreign UTXO i.e. a UTXO not owned by this wallet.\nSame as add_foreign_utxo but allows to set the nSequence …\nFill-in the PSBT_GLOBAL_XPUB field with the extended keys …\nAdd a recipient to the internal list\nAdd a utxo to the internal list of unspendable utxos\nAdd a utxo to the internal list of utxos that must be spent\nAdd the list of outpoints to the internal list of UTXOs …\nSet whether or not the dust limit is checked.\nSet a specific ChangeSpendPolicy. See …\nChoose the coin selection algorithm\nSet the current blockchain height.\nDo not spend change outputs\nSets the address to drain excess coins to.\nSpend all the available inputs. This respects filters like …\nEnable signaling RBF\nEnable signaling RBF with a specific nSequence value\nSet an absolute fee The fee_absolute method refers to the …\nSet a custom fee rate.\nFinish building the transaction.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFill-in the psbt::Output::redeem_script and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOnly spend utxos added by add_utxo.\nUse a specific nLockTime while creating the transaction\nOnly spend change outputs\nOnly Fill-in the psbt::Input::witness_utxo field when …\nChoose the ordering for inputs and outputs of the …\nSet the policy path to use while creating the transaction …\nReplace the recipients already added with a new list\nSign with a specific sig hash\nSort transaction inputs and outputs by TxOrdering variant\nReplace the internal list of unspendable utxos with a new …\nBuild a transaction with a specific version\nForeign UTXO outpoint\nPSBT input txid") \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html index d75e264032..14be80a5e9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/settings.html @@ -1 +1 @@ -Settings

      Rustdoc settings

      Back
      \ No newline at end of file +Settings

      Rustdoc settings

      Back
      \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src-files.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src-files.js index b17fe655c5..0cba02cd62 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src-files.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src-files.js @@ -1,12 +1,11 @@ var srcIndex = new Map(JSON.parse('[\ ["bdk_bitcoind_rpc",["",[],["lib.rs"]]],\ -["bdk_chain",["",[["keychain",[],["txout_index.rs"]]],["chain_data.rs","chain_oracle.rs","descriptor_ext.rs","example_utils.rs","indexed_tx_graph.rs","keychain.rs","lib.rs","local_chain.rs","spk_client.rs","spk_iter.rs","spk_txout_index.rs","tx_data_traits.rs","tx_graph.rs"]]],\ +["bdk_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","persist.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",["",[],["bdk_electrum_client.rs","lib.rs"]]],\ ["bdk_esplora",["",[],["async_ext.rs","blocking_ext.rs","lib.rs"]]],\ ["bdk_file_store",["",[],["entry_iter.rs","lib.rs","store.rs"]]],\ ["bdk_hwi",["",[],["lib.rs","signer.rs"]]],\ -["bdk_persist",["",[],["changeset.rs","lib.rs","persist.rs"]]],\ ["bdk_sqlite",["",[],["lib.rs","schema.rs","store.rs"]]],\ ["bdk_testenv",["",[],["lib.rs"]]],\ ["bdk_tmp_plan",["",[],["lib.rs","plan_impls.rs","requirements.rs","template.rs"]]],\ diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html index 5b2880638f..5f11a8c364 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html @@ -1146,7 +1146,7 @@ impl<K: Clone + Ord + Debug> KeychainTxOutIndex<K> { /// Return a reference to the internal [`SpkTxOutIndex`]. /// - /// **WARNING:** The internal index will contain lookahead spks. Refer to + /// **WARNING**: The internal index will contain lookahead spks. Refer to /// [struct-level docs](KeychainTxOutIndex) for more about `lookahead`. pub fn inner(&self) -> &SpkTxOutIndex<(K, u32)> { &self.inner 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 166f1b5c10..00087e907e 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 @@ -96,6 +96,7 @@ 96 97 98 +99
    //! 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 persist;
     pub mod spk_client;
     
     #[allow(unused_imports)]
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/persist.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/persist.rs.html
    new file mode 100644
    index 0000000000..09489a65f1
    --- /dev/null
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/persist.rs.html
    @@ -0,0 +1,559 @@
    +persist.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
    +
    //! This module is home to the [`PersistBackend`] trait which defines the behavior of a data store
    +//! required to persist changes made to BDK data structures.
    +//!
    +//! The [`CombinedChangeSet`] type encapsulates a combination of [`crate`] structures that are
    +//! typically persisted together.
    +
    +#[cfg(feature = "async")]
    +use alloc::boxed::Box;
    +#[cfg(feature = "async")]
    +use async_trait::async_trait;
    +use core::convert::Infallible;
    +use core::fmt::{Debug, Display};
    +
    +use crate::Append;
    +
    +/// A changeset containing [`crate`] structures typically persisted together.
    +#[derive(Debug, Clone, PartialEq)]
    +#[cfg(feature = "miniscript")]
    +#[cfg_attr(
    +    feature = "serde",
    +    derive(crate::serde::Deserialize, crate::serde::Serialize),
    +    serde(
    +        crate = "crate::serde",
    +        bound(
    +            deserialize = "A: Ord + crate::serde::Deserialize<'de>, K: Ord + crate::serde::Deserialize<'de>",
    +            serialize = "A: Ord + crate::serde::Serialize, K: Ord + crate::serde::Serialize",
    +        ),
    +    )
    +)]
    +pub struct CombinedChangeSet<K, A> {
    +    /// Changes to the [`LocalChain`](crate::local_chain::LocalChain).
    +    pub chain: crate::local_chain::ChangeSet,
    +    /// Changes to [`IndexedTxGraph`](crate::indexed_tx_graph::IndexedTxGraph).
    +    pub indexed_tx_graph: crate::indexed_tx_graph::ChangeSet<A, crate::keychain::ChangeSet<K>>,
    +    /// Stores the network type of the transaction data.
    +    pub network: Option<bitcoin::Network>,
    +}
    +
    +#[cfg(feature = "miniscript")]
    +impl<K, A> core::default::Default for CombinedChangeSet<K, A> {
    +    fn default() -> Self {
    +        Self {
    +            chain: core::default::Default::default(),
    +            indexed_tx_graph: core::default::Default::default(),
    +            network: None,
    +        }
    +    }
    +}
    +
    +#[cfg(feature = "miniscript")]
    +impl<K: Ord, A: crate::Anchor> crate::Append for CombinedChangeSet<K, A> {
    +    fn append(&mut self, other: Self) {
    +        crate::Append::append(&mut self.chain, other.chain);
    +        crate::Append::append(&mut self.indexed_tx_graph, other.indexed_tx_graph);
    +        if other.network.is_some() {
    +            debug_assert!(
    +                self.network.is_none() || self.network == other.network,
    +                "network type must either be just introduced or remain the same"
    +            );
    +            self.network = other.network;
    +        }
    +    }
    +
    +    fn is_empty(&self) -> bool {
    +        self.chain.is_empty() && self.indexed_tx_graph.is_empty() && self.network.is_none()
    +    }
    +}
    +
    +#[cfg(feature = "miniscript")]
    +impl<K, A> From<crate::local_chain::ChangeSet> for CombinedChangeSet<K, A> {
    +    fn from(chain: crate::local_chain::ChangeSet) -> Self {
    +        Self {
    +            chain,
    +            ..Default::default()
    +        }
    +    }
    +}
    +
    +#[cfg(feature = "miniscript")]
    +impl<K, A> From<crate::indexed_tx_graph::ChangeSet<A, crate::keychain::ChangeSet<K>>>
    +    for CombinedChangeSet<K, A>
    +{
    +    fn from(
    +        indexed_tx_graph: crate::indexed_tx_graph::ChangeSet<A, crate::keychain::ChangeSet<K>>,
    +    ) -> Self {
    +        Self {
    +            indexed_tx_graph,
    +            ..Default::default()
    +        }
    +    }
    +}
    +
    +#[cfg(feature = "miniscript")]
    +impl<K, A> From<crate::keychain::ChangeSet<K>> for CombinedChangeSet<K, A> {
    +    fn from(indexer: crate::keychain::ChangeSet<K>) -> Self {
    +        Self {
    +            indexed_tx_graph: crate::indexed_tx_graph::ChangeSet {
    +                indexer,
    +                ..Default::default()
    +            },
    +            ..Default::default()
    +        }
    +    }
    +}
    +
    +/// A persistence backend for writing and loading changesets.
    +///
    +/// `C` represents the changeset; a datatype that records changes made to in-memory data structures
    +/// that are to be persisted, or retrieved from persistence.
    +pub trait PersistBackend<C> {
    +    /// The error the backend returns when it fails to write.
    +    type WriteError: Debug + Display;
    +
    +    /// The error the backend returns when it fails to load changesets `C`.
    +    type LoadError: Debug + Display;
    +
    +    /// Writes a changeset to the persistence backend.
    +    ///
    +    /// It is up to the backend what it does with this. It could store every changeset in a list or
    +    /// it inserts the actual changes into a more structured database. All it needs to guarantee is
    +    /// that [`load_from_persistence`] restores a keychain tracker to what it should be if all
    +    /// changesets had been applied sequentially.
    +    ///
    +    /// [`load_from_persistence`]: Self::load_changes
    +    fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError>;
    +
    +    /// Return the aggregate changeset `C` from persistence.
    +    fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>;
    +}
    +
    +impl<C> PersistBackend<C> for () {
    +    type WriteError = Infallible;
    +    type LoadError = Infallible;
    +
    +    fn write_changes(&mut self, _changeset: &C) -> Result<(), Self::WriteError> {
    +        Ok(())
    +    }
    +
    +    fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError> {
    +        Ok(None)
    +    }
    +}
    +
    +#[cfg(feature = "async")]
    +/// An async persistence backend for writing and loading changesets.
    +///
    +/// `C` represents the changeset; a datatype that records changes made to in-memory data structures
    +/// that are to be persisted, or retrieved from persistence.
    +#[async_trait]
    +pub trait PersistBackendAsync<C> {
    +    /// The error the backend returns when it fails to write.
    +    type WriteError: Debug + Display;
    +
    +    /// The error the backend returns when it fails to load changesets `C`.
    +    type LoadError: Debug + Display;
    +
    +    /// Writes a changeset to the persistence backend.
    +    ///
    +    /// It is up to the backend what it does with this. It could store every changeset in a list or
    +    /// it inserts the actual changes into a more structured database. All it needs to guarantee is
    +    /// that [`load_from_persistence`] restores a keychain tracker to what it should be if all
    +    /// changesets had been applied sequentially.
    +    ///
    +    /// [`load_from_persistence`]: Self::load_changes
    +    async fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError>;
    +
    +    /// Return the aggregate changeset `C` from persistence.
    +    async fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError>;
    +}
    +
    +#[cfg(feature = "async")]
    +#[async_trait]
    +impl<C> PersistBackendAsync<C> for () {
    +    type WriteError = Infallible;
    +    type LoadError = Infallible;
    +
    +    async fn write_changes(&mut self, _changeset: &C) -> Result<(), Self::WriteError> {
    +        Ok(())
    +    }
    +
    +    async fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError> {
    +        Ok(None)
    +    }
    +}
    +
    +/// Extends a changeset so that it acts as a convenient staging area for any [`PersistBackend`].
    +///
    +/// Not all changes to the in-memory representation needs to be written to disk right away.
    +/// [`Append::append`] can be used to *stage* changes first and then [`StageExt::commit_to`] can be
    +/// used to write changes to disk.
    +pub trait StageExt: Append + Default + Sized {
    +    /// Commit the staged changes to the persistence `backend`.
    +    ///
    +    /// Changes that are committed (if any) are returned.
    +    ///
    +    /// # Error
    +    ///
    +    /// Returns a backend-defined error if this fails.
    +    fn commit_to<B>(&mut self, backend: &mut B) -> Result<Option<Self>, B::WriteError>
    +    where
    +        B: PersistBackend<Self>,
    +    {
    +        // do not do anything if changeset is empty
    +        if self.is_empty() {
    +            return Ok(None);
    +        }
    +        backend.write_changes(&*self)?;
    +        // only clear if changes are written successfully to backend
    +        Ok(Some(core::mem::take(self)))
    +    }
    +
    +    /// Stages a new `changeset` and commits it (alongside any other previously staged changes) to
    +    /// the persistence `backend`.
    +    ///
    +    /// Convenience method for calling [`Append::append`] and then [`StageExt::commit_to`].
    +    fn append_and_commit_to<B>(
    +        &mut self,
    +        changeset: Self,
    +        backend: &mut B,
    +    ) -> Result<Option<Self>, B::WriteError>
    +    where
    +        B: PersistBackend<Self>,
    +    {
    +        Append::append(self, changeset);
    +        self.commit_to(backend)
    +    }
    +}
    +
    +impl<C: Append + Default> StageExt for C {}
    +
    +/// Extends a changeset so that it acts as a convenient staging area for any
    +/// [`PersistBackendAsync`].
    +///
    +/// Not all changes to the in-memory representation needs to be written to disk right away.
    +/// [`Append::append`] can be used to *stage* changes first and then [`StageExtAsync::commit_to`]
    +/// can be used to write changes to disk.
    +#[cfg(feature = "async")]
    +#[async_trait]
    +pub trait StageExtAsync: Append + Default + Sized + Send + Sync {
    +    /// Commit the staged changes to the persistence `backend`.
    +    ///
    +    /// Changes that are committed (if any) are returned.
    +    ///
    +    /// # Error
    +    ///
    +    /// Returns a backend-defined error if this fails.
    +    async fn commit_to<B>(&mut self, backend: &mut B) -> Result<Option<Self>, B::WriteError>
    +    where
    +        B: PersistBackendAsync<Self> + Send + Sync,
    +    {
    +        // do not do anything if changeset is empty
    +        if self.is_empty() {
    +            return Ok(None);
    +        }
    +        backend.write_changes(&*self).await?;
    +        // only clear if changes are written successfully to backend
    +        Ok(Some(core::mem::take(self)))
    +    }
    +
    +    /// Stages a new `changeset` and commits it (alongside any other previously staged changes) to
    +    /// the persistence `backend`.
    +    ///
    +    /// Convenience method for calling [`Append::append`] and then [`StageExtAsync::commit_to`].
    +    async fn append_and_commit_to<B>(
    +        &mut self,
    +        changeset: Self,
    +        backend: &mut B,
    +    ) -> Result<Option<Self>, B::WriteError>
    +    where
    +        B: PersistBackendAsync<Self> + Send + Sync,
    +    {
    +        Append::append(self, changeset);
    +        self.commit_to(backend).await
    +    }
    +}
    +
    +#[cfg(feature = "async")]
    +#[async_trait]
    +impl<C: Append + Default + Send + Sync> StageExtAsync for C {}
    +
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html index e535161658..e2af80b009 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_client.rs.html @@ -386,15 +386,16 @@ 386 387 388 +389
    //! Helper types for spk-based blockchain clients.
     
     use crate::{
         collections::BTreeMap, keychain::Indexed, local_chain::CheckPoint,
         ConfirmationTimeHeightAnchor, TxGraph,
     };
    -use alloc::{boxed::Box, vec::Vec};
    +use alloc::boxed::Box;
     use bitcoin::{OutPoint, Script, ScriptBuf, Txid};
    -use core::{fmt::Debug, marker::PhantomData, ops::RangeBounds};
    +use core::marker::PhantomData;
     
     /// Data required to perform a spk-based blockchain client sync.
     ///
    @@ -546,12 +547,13 @@
         /// 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>(
    +    pub fn populate_with_revealed_spks<K: Clone + Ord + core::fmt::Debug + Send + Sync>(
             self,
             index: &crate::keychain::KeychainTxOutIndex<K>,
    -        spk_range: impl RangeBounds<K>,
    +        spk_range: impl core::ops::RangeBounds<K>,
         ) -> Self {
             use alloc::borrow::ToOwned;
    +        use alloc::vec::Vec;
             self.chain_spks(
                 index
                     .revealed_spks(spk_range)
    @@ -611,7 +613,7 @@
             index: &crate::keychain::KeychainTxOutIndex<K>,
         ) -> Self
         where
    -        K: Debug,
    +        K: core::fmt::Debug,
         {
             let mut req = Self::from_chain_tip(chain_tip);
             for (keychain, spks) in index.all_unbounded_spk_iters() {
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/store.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/store.rs.html
    index 87e5d9578a..df806ec6aa 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/store.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_file_store/store.rs.html
    @@ -462,10 +462,10 @@
     462
     463
     464
    +465
     
    use crate::{bincode_options, EntryIter, FileError, IterError};
    -use anyhow::anyhow;
    +use bdk_chain::persist::PersistBackend;
     use bdk_chain::Append;
    -use bdk_persist::PersistBackend;
     use bincode::Options;
     use std::{
         fmt::{self, Debug},
    @@ -489,19 +489,21 @@
     impl<C> PersistBackend<C> for Store<C>
     where
         C: Append
    +        + Debug
             + serde::Serialize
             + serde::de::DeserializeOwned
             + core::marker::Send
             + core::marker::Sync,
     {
    -    fn write_changes(&mut self, changeset: &C) -> anyhow::Result<()> {
    +    type WriteError = io::Error;
    +    type LoadError = AggregateChangesetsError<C>;
    +
    +    fn write_changes(&mut self, changeset: &C) -> Result<(), Self::WriteError> {
             self.append_changeset(changeset)
    -            .map_err(|e| anyhow!(e).context("failed to write changes to persistence backend"))
         }
     
    -    fn load_from_persistence(&mut self) -> anyhow::Result<Option<C>> {
    +    fn load_changes(&mut self) -> Result<Option<C>, Self::LoadError> {
             self.aggregate_changesets()
    -            .map_err(|e| anyhow!(e.iter_error).context("error loading from persistence backend"))
         }
     }
     
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/lib.rs.html
    index e3c511de61..622331f611 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/lib.rs.html
    @@ -59,7 +59,7 @@
     //! let first_device = devices.remove(0)?;
     //! let custom_signer = HWISigner::from_device(&first_device, Network::Testnet.into())?;
     //!
    -//! # let mut wallet = Wallet::new_no_persist(
    +//! # let mut wallet = Wallet::new(
     //! #     "",
     //! #     "",
     //! #     Network::Testnet,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/changeset.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/changeset.rs.html
    deleted file mode 100644
    index 6c5cc69d95..0000000000
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/changeset.rs.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -changeset.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
    -
    #![cfg(feature = "miniscript")]
    -
    -use bdk_chain::{bitcoin::Network, indexed_tx_graph, keychain, local_chain, Anchor, Append};
    -
    -/// Changes from a combination of [`bdk_chain`] structures.
    -#[derive(Debug, Clone, PartialEq)]
    -#[cfg_attr(
    -    feature = "serde",
    -    derive(bdk_chain::serde::Deserialize, bdk_chain::serde::Serialize),
    -    serde(
    -        crate = "bdk_chain::serde",
    -        bound(
    -            deserialize = "A: Ord + bdk_chain::serde::Deserialize<'de>, K: Ord + bdk_chain::serde::Deserialize<'de>",
    -            serialize = "A: Ord + bdk_chain::serde::Serialize, K: Ord + bdk_chain::serde::Serialize",
    -        ),
    -    )
    -)]
    -pub struct CombinedChangeSet<K, A> {
    -    /// Changes to the [`LocalChain`](local_chain::LocalChain).
    -    pub chain: local_chain::ChangeSet,
    -    /// Changes to [`IndexedTxGraph`](indexed_tx_graph::IndexedTxGraph).
    -    pub indexed_tx_graph: indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<K>>,
    -    /// Stores the network type of the transaction data.
    -    pub network: Option<Network>,
    -}
    -
    -impl<K, A> Default for CombinedChangeSet<K, A> {
    -    fn default() -> Self {
    -        Self {
    -            chain: Default::default(),
    -            indexed_tx_graph: Default::default(),
    -            network: None,
    -        }
    -    }
    -}
    -
    -impl<K: Ord, A: Anchor> Append for CombinedChangeSet<K, A> {
    -    fn append(&mut self, other: Self) {
    -        Append::append(&mut self.chain, other.chain);
    -        Append::append(&mut self.indexed_tx_graph, other.indexed_tx_graph);
    -        if other.network.is_some() {
    -            debug_assert!(
    -                self.network.is_none() || self.network == other.network,
    -                "network type must either be just introduced or remain the same"
    -            );
    -            self.network = other.network;
    -        }
    -    }
    -
    -    fn is_empty(&self) -> bool {
    -        self.chain.is_empty() && self.indexed_tx_graph.is_empty() && self.network.is_none()
    -    }
    -}
    -
    -impl<K, A> From<local_chain::ChangeSet> for CombinedChangeSet<K, A> {
    -    fn from(chain: local_chain::ChangeSet) -> Self {
    -        Self {
    -            chain,
    -            ..Default::default()
    -        }
    -    }
    -}
    -
    -impl<K, A> From<indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<K>>>
    -    for CombinedChangeSet<K, A>
    -{
    -    fn from(indexed_tx_graph: indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<K>>) -> Self {
    -        Self {
    -            indexed_tx_graph,
    -            ..Default::default()
    -        }
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/lib.rs.html deleted file mode 100644 index 045f1f2c50..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/lib.rs.html +++ /dev/null @@ -1,17 +0,0 @@ -lib.rs - source
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -
    #![doc = include_str!("../README.md")]
    -#![no_std]
    -#![warn(missing_docs)]
    -
    -mod changeset;
    -mod persist;
    -pub use changeset::*;
    -pub use persist::*;
    -
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/persist.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/persist.rs.html deleted file mode 100644 index dd3d99b33a..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_persist/persist.rs.html +++ /dev/null @@ -1,213 +0,0 @@ -persist.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
    -
    extern crate alloc;
    -use alloc::boxed::Box;
    -use bdk_chain::Append;
    -use core::fmt;
    -
    -/// `Persist` wraps a [`PersistBackend`] to create a convenient staging area for changes (`C`)
    -/// before they are persisted.
    -///
    -/// Not all changes to the in-memory representation needs to be written to disk right away, so
    -/// [`Persist::stage`] can be used to *stage* changes first and then [`Persist::commit`] can be used
    -/// to write changes to disk.
    -pub struct Persist<C> {
    -    backend: Box<dyn PersistBackend<C> + Send + Sync>,
    -    stage: C,
    -}
    -
    -impl<C: fmt::Debug> fmt::Debug for Persist<C> {
    -    fn fmt(&self, fmt: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
    -        write!(fmt, "{:?}", self.stage)?;
    -        Ok(())
    -    }
    -}
    -
    -impl<C> Persist<C>
    -where
    -    C: Default + Append,
    -{
    -    /// Create a new [`Persist`] from [`PersistBackend`].
    -    pub fn new(backend: impl PersistBackend<C> + Send + Sync + 'static) -> Self {
    -        let backend = Box::new(backend);
    -        Self {
    -            backend,
    -            stage: Default::default(),
    -        }
    -    }
    -
    -    /// Stage a `changeset` to be committed later with [`commit`].
    -    ///
    -    /// [`commit`]: Self::commit
    -    pub fn stage(&mut self, changeset: C) {
    -        self.stage.append(changeset)
    -    }
    -
    -    /// Get the changes that have not been committed yet.
    -    pub fn staged(&self) -> &C {
    -        &self.stage
    -    }
    -
    -    /// Commit the staged changes to the underlying persistence backend.
    -    ///
    -    /// Changes that are committed (if any) are returned.
    -    ///
    -    /// # Error
    -    ///
    -    /// Returns a backend-defined error if this fails.
    -    pub fn commit(&mut self) -> anyhow::Result<Option<C>> {
    -        if self.stage.is_empty() {
    -            return Ok(None);
    -        }
    -        self.backend
    -            .write_changes(&self.stage)
    -            // if written successfully, take and return `self.stage`
    -            .map(|_| Some(core::mem::take(&mut self.stage)))
    -    }
    -
    -    /// Stages a new changeset and commits it (along with any other previously staged changes) to
    -    /// the persistence backend
    -    ///
    -    /// Convenience method for calling [`stage`] and then [`commit`].
    -    ///
    -    /// [`stage`]: Self::stage
    -    /// [`commit`]: Self::commit
    -    pub fn stage_and_commit(&mut self, changeset: C) -> anyhow::Result<Option<C>> {
    -        self.stage(changeset);
    -        self.commit()
    -    }
    -}
    -
    -/// A persistence backend for [`Persist`].
    -///
    -/// `C` represents the changeset; a datatype that records changes made to in-memory data structures
    -/// that are to be persisted, or retrieved from persistence.
    -pub trait PersistBackend<C> {
    -    /// Writes a changeset to the persistence backend.
    -    ///
    -    /// It is up to the backend what it does with this. It could store every changeset in a list or
    -    /// it inserts the actual changes into a more structured database. All it needs to guarantee is
    -    /// that [`load_from_persistence`] restores a keychain tracker to what it should be if all
    -    /// changesets had been applied sequentially.
    -    ///
    -    /// [`load_from_persistence`]: Self::load_from_persistence
    -    fn write_changes(&mut self, changeset: &C) -> anyhow::Result<()>;
    -
    -    /// Return the aggregate changeset `C` from persistence.
    -    fn load_from_persistence(&mut self) -> anyhow::Result<Option<C>>;
    -}
    -
    -impl<C> PersistBackend<C> for () {
    -    fn write_changes(&mut self, _changeset: &C) -> anyhow::Result<()> {
    -        Ok(())
    -    }
    -
    -    fn load_from_persistence(&mut self) -> anyhow::Result<Option<C>> {
    -        Ok(None)
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html index 5231490a1b..f7d0051537 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_sqlite/store.rs.html @@ -774,9 +774,6 @@ 774 775 776 -777 -778 -779
    use bdk_chain::bitcoin::consensus::{deserialize, serialize};
     use bdk_chain::bitcoin::hashes::Hash;
     use bdk_chain::bitcoin::{Amount, Network, OutPoint, ScriptBuf, Transaction, TxOut};
    @@ -791,10 +788,10 @@
     use std::sync::{Arc, Mutex};
     
     use crate::Error;
    +use bdk_chain::persist::{CombinedChangeSet, PersistBackend};
     use bdk_chain::{
         indexed_tx_graph, keychain, local_chain, tx_graph, Anchor, Append, DescriptorExt, DescriptorId,
     };
    -use bdk_persist::CombinedChangeSet;
     
     /// Persists data in to a relational schema based [SQLite] database file.
     ///
    @@ -836,21 +833,23 @@
         }
     }
     
    -impl<K, A, C> bdk_persist::PersistBackend<C> for Store<K, A>
    +impl<K, A> PersistBackend<CombinedChangeSet<K, A>> for Store<K, A>
     where
         K: Ord + for<'de> Deserialize<'de> + Serialize + Send,
         A: Anchor + for<'de> Deserialize<'de> + Serialize + Send,
    -    C: Clone + From<CombinedChangeSet<K, A>> + Into<CombinedChangeSet<K, A>>,
     {
    -    fn write_changes(&mut self, changeset: &C) -> anyhow::Result<()> {
    -        self.write(&changeset.clone().into())
    -            .map_err(|e| anyhow::anyhow!(e).context("unable to write changes to sqlite database"))
    +    type WriteError = Error;
    +    type LoadError = Error;
    +
    +    fn write_changes(
    +        &mut self,
    +        changeset: &CombinedChangeSet<K, A>,
    +    ) -> Result<(), Self::WriteError> {
    +        self.write(changeset)
         }
     
    -    fn load_from_persistence(&mut self) -> anyhow::Result<Option<C>> {
    +    fn load_changes(&mut self) -> Result<Option<CombinedChangeSet<K, A>>, Self::LoadError> {
             self.read()
    -            .map(|c| c.map(Into::into))
    -            .map_err(|e| anyhow::anyhow!(e).context("unable to read changes from sqlite database"))
         }
     }
     
    @@ -1340,11 +1339,11 @@
         use bdk_chain::bitcoin::Network::Testnet;
         use bdk_chain::bitcoin::{secp256k1, BlockHash, OutPoint};
         use bdk_chain::miniscript::Descriptor;
    +    use bdk_chain::persist::{CombinedChangeSet, PersistBackend};
         use bdk_chain::{
             indexed_tx_graph, keychain, tx_graph, BlockId, ConfirmationHeightAnchor,
             ConfirmationTimeHeightAnchor, DescriptorExt,
         };
    -    use bdk_persist::PersistBackend;
         use std::str::FromStr;
         use std::sync::Arc;
     
    @@ -1355,8 +1354,7 @@
         }
     
         #[test]
    -    fn insert_and_load_aggregate_changesets_with_confirmation_time_height_anchor(
    -    ) -> anyhow::Result<()> {
    +    fn insert_and_load_aggregate_changesets_with_confirmation_time_height_anchor() {
             let (test_changesets, agg_test_changesets) =
                 create_test_changesets(&|height, time, hash| ConfirmationTimeHeightAnchor {
                     confirmation_height: height,
    @@ -1372,15 +1370,13 @@
                 store.write_changes(changeset).expect("write changeset");
             });
     
    -        let agg_changeset = store.load_from_persistence().expect("aggregated changeset");
    +        let agg_changeset = store.load_changes().expect("aggregated changeset");
     
             assert_eq!(agg_changeset, Some(agg_test_changesets));
    -        Ok(())
         }
     
         #[test]
    -    fn insert_and_load_aggregate_changesets_with_confirmation_height_anchor() -> anyhow::Result<()>
    -    {
    +    fn insert_and_load_aggregate_changesets_with_confirmation_height_anchor() {
             let (test_changesets, agg_test_changesets) =
                 create_test_changesets(&|height, _time, hash| ConfirmationHeightAnchor {
                     confirmation_height: height,
    @@ -1395,14 +1391,13 @@
                 store.write_changes(changeset).expect("write changeset");
             });
     
    -        let agg_changeset = store.load_from_persistence().expect("aggregated changeset");
    +        let agg_changeset = store.load_changes().expect("aggregated changeset");
     
             assert_eq!(agg_changeset, Some(agg_test_changesets));
    -        Ok(())
         }
     
         #[test]
    -    fn insert_and_load_aggregate_changesets_with_blockid_anchor() -> anyhow::Result<()> {
    +    fn insert_and_load_aggregate_changesets_with_blockid_anchor() {
             let (test_changesets, agg_test_changesets) =
                 create_test_changesets(&|height, _time, hash| BlockId { height, hash });
     
    @@ -1413,10 +1408,9 @@
                 store.write_changes(changeset).expect("write changeset");
             });
     
    -        let agg_changeset = store.load_from_persistence().expect("aggregated changeset");
    +        let agg_changeset = store.load_changes().expect("aggregated changeset");
     
             assert_eq!(agg_changeset, Some(agg_test_changesets));
    -        Ok(())
         }
     
         fn create_test_changesets<A: Anchor + Copy>(
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/descriptor/template.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/descriptor/template.rs.html
    index 221cc3a697..0cf858c4c9 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/descriptor/template.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/descriptor/template.rs.html
    @@ -995,9 +995,6 @@
     995
     996
     997
    -998
    -999
    -1000
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1081,12 +1078,11 @@
     ///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
     /// let key_internal =
     ///     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
    -/// let mut wallet =
    -///     Wallet::new_no_persist(P2Pkh(key_external), P2Pkh(key_internal), Network::Testnet)?;
    +/// let mut wallet = Wallet::new(P2Pkh(key_external), P2Pkh(key_internal), Network::Testnet)?;
     ///
     /// assert_eq!(
     ///     wallet
    -///         .next_unused_address(KeychainKind::External)?
    +///         .next_unused_address(KeychainKind::External)
     ///         .to_string(),
     ///     "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
     /// );
    @@ -1114,7 +1110,7 @@
     ///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
     /// let key_internal =
     ///     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     P2Wpkh_P2Sh(key_external),
     ///     P2Wpkh_P2Sh(key_internal),
     ///     Network::Testnet,
    @@ -1122,7 +1118,7 @@
     ///
     /// assert_eq!(
     ///     wallet
    -///         .next_unused_address(KeychainKind::External)?
    +///         .next_unused_address(KeychainKind::External)
     ///         .to_string(),
     ///     "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
     /// );
    @@ -1151,12 +1147,11 @@
     ///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
     /// let key_internal =
     ///     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
    -/// let mut wallet =
    -///     Wallet::new_no_persist(P2Wpkh(key_external), P2Wpkh(key_internal), Network::Testnet)?;
    +/// let mut wallet = Wallet::new(P2Wpkh(key_external), P2Wpkh(key_internal), Network::Testnet)?;
     ///
     /// assert_eq!(
     ///     wallet
    -///         .next_unused_address(KeychainKind::External)?
    +///         .next_unused_address(KeychainKind::External)
     ///         .to_string(),
     ///     "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
     /// );
    @@ -1184,12 +1179,11 @@
     ///     bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
     /// let key_internal =
     ///     bitcoin::PrivateKey::from_wif("cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW")?;
    -/// let mut wallet =
    -///     Wallet::new_no_persist(P2TR(key_external), P2TR(key_internal), Network::Testnet)?;
    +/// let mut wallet = Wallet::new(P2TR(key_external), P2TR(key_internal), Network::Testnet)?;
     ///
     /// assert_eq!(
     ///     wallet
    -///         .next_unused_address(KeychainKind::External)?
    +///         .next_unused_address(KeychainKind::External)
     ///         .to_string(),
     ///     "tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
     /// );
    @@ -1218,13 +1212,13 @@
     /// use bdk_wallet::template::Bip44;
     ///
     /// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip44(key.clone(), KeychainKind::External),
     ///     Bip44(key, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1255,13 +1249,13 @@
     ///
     /// let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip44Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Bip44Public(key, fingerprint, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1291,13 +1285,13 @@
     /// use bdk_wallet::template::Bip49;
     ///
     /// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip49(key.clone(), KeychainKind::External),
     ///     Bip49(key, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1328,13 +1322,13 @@
     ///
     /// let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip49Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Bip49Public(key, fingerprint, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1364,13 +1358,13 @@
     /// use bdk_wallet::template::Bip84;
     ///
     /// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip84(key.clone(), KeychainKind::External),
     ///     Bip84(key, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1401,13 +1395,13 @@
     ///
     /// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip84Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Bip84Public(key, fingerprint, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1437,13 +1431,13 @@
     /// use bdk_wallet::template::Bip86;
     ///
     /// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip86(key.clone(), KeychainKind::External),
     ///     Bip86(key, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    @@ -1474,13 +1468,13 @@
     ///
     /// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
    -/// let mut wallet = Wallet::new_no_persist(
    +/// let mut wallet = Wallet::new(
     ///     Bip86Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Bip86Public(key, fingerprint, KeychainKind::Internal),
     ///     Network::Testnet,
     /// )?;
     ///
    -/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37");
    +/// assert_eq!(wallet.next_unused_address(KeychainKind::External).to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37");
     /// assert_eq!(wallet.public_descriptor(KeychainKind::External).to_string(), "tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku");
     /// # Ok::<_, Box<dyn std::error::Error>>(())
     /// ```
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/coin_selection.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/coin_selection.rs.html
    index b4b0d012ce..a23c6ca97e 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/coin_selection.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/coin_selection.rs.html
    @@ -1599,7 +1599,6 @@
     1599
     1600
     1601
    -1602
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1630,7 +1629,6 @@
     //! # use bitcoin::*;
     //! # use bdk_wallet::wallet::{self, ChangeSet, coin_selection::*, coin_selection};
     //! # use bdk_wallet::wallet::error::CreateTxError;
    -//! # use bdk_persist::PersistBackend;
     //! # use bdk_wallet::*;
     //! # use bdk_wallet::wallet::coin_selection::decide_change;
     //! # use anyhow::Error;
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/error.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/error.rs.html
    index 2f62f4d753..16e8ab3fcb 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/error.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/error.rs.html
    @@ -258,15 +258,6 @@
     258
     259
     260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -319,8 +310,6 @@
     pub enum CreateTxError {
         /// There was a problem with the descriptors passed in
         Descriptor(DescriptorError),
    -    /// We were unable to load wallet data from or write wallet data to the persistence backend
    -    Persist(anyhow::Error),
         /// There was a problem while extracting and manipulating policies
         Policy(PolicyError),
         /// Spending policy is not compatible with this [`KeychainKind`]
    @@ -383,13 +372,6 @@
         fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
             match self {
                 Self::Descriptor(e) => e.fmt(f),
    -            Self::Persist(e) => {
    -                write!(
    -                    f,
    -                    "failed to load wallet data from or write wallet data to persistence backend: {}",
    -                    e
    -                )
    -            }
                 Self::Policy(e) => e.fmt(f),
                 CreateTxError::SpendingPolicyRequired(keychain_kind) => {
                     write!(f, "Spending policy required: {:?}", keychain_kind)
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
    index feb6ea26a0..04bce3b594 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/export.rs.html
    @@ -378,7 +378,7 @@
     //! }"#;
     //!
     //! let import = FullyNodedExport::from_str(import)?;
    -//! let wallet = Wallet::new_no_persist(
    +//! let wallet = Wallet::new(
     //!     &import.descriptor(),
     //!     &import.change_descriptor().expect("change descriptor"),
     //!     Network::Testnet,
    @@ -391,7 +391,7 @@
     //! # use bitcoin::*;
     //! # use bdk_wallet::wallet::export::*;
     //! # use bdk_wallet::*;
    -//! let wallet = Wallet::new_no_persist(
    +//! let wallet = Wallet::new(
     //!     "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
     //!     "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)",
     //!     Network::Testnet,
    @@ -571,7 +571,7 @@
         use crate::wallet::Wallet;
     
         fn get_test_wallet(descriptor: &str, change_descriptor: &str, network: Network) -> Wallet {
    -        let mut wallet = Wallet::new_no_persist(descriptor, change_descriptor, network).unwrap();
    +        let mut wallet = Wallet::new(descriptor, change_descriptor, network).unwrap();
             let transaction = Transaction {
                 input: vec![],
                 output: vec![],
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
    index e482c5642e..78be3ea5b0 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/mod.rs.html
    @@ -2577,38 +2577,6 @@
     2577
     2578
     2579
    -2580
    -2581
    -2582
    -2583
    -2584
    -2585
    -2586
    -2587
    -2588
    -2589
    -2590
    -2591
    -2592
    -2593
    -2594
    -2595
    -2596
    -2597
    -2598
    -2599
    -2600
    -2601
    -2602
    -2603
    -2604
    -2605
    -2606
    -2607
    -2608
    -2609
    -2610
    -2611
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -2637,12 +2605,12 @@
         local_chain::{
             self, ApplyHeaderError, CannotConnectError, CheckPoint, CheckPointIter, LocalChain,
         },
    +    persist::{PersistBackend, StageExt},
         spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
         tx_graph::{CanonicalTx, TxGraph},
         Append, BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut,
         Indexed, IndexedTxGraph,
     };
    -use bdk_persist::{Persist, PersistBackend};
     use bitcoin::secp256k1::{All, Secp256k1};
     use bitcoin::sighash::{EcdsaSighashType, TapSighashType};
     use bitcoin::{
    @@ -2696,6 +2664,11 @@
     /// 1. output *descriptors* from which it can derive addresses.
     /// 2. [`signer`]s that can contribute signatures to addresses instantiated from the descriptors.
     ///
    +/// The user is responsible for loading and writing wallet changes using an implementation of
    +/// [`PersistBackend`]. See individual functions and example for instructions on when [`Wallet`]
    +/// state needs to be persisted.
    +///
    +/// [`PersistBackend`]: bdk_chain::persist::PersistBackend
     /// [`signer`]: crate::signer
     #[derive(Debug)]
     pub struct Wallet {
    @@ -2703,7 +2676,7 @@
         change_signers: Arc<SignersContainer>,
         chain: LocalChain,
         indexed_graph: IndexedTxGraph<ConfirmationTimeHeightAnchor, KeychainTxOutIndex<KeychainKind>>,
    -    persist: Persist<ChangeSet>,
    +    stage: ChangeSet,
         network: Network,
         secp: SecpCtx,
     }
    @@ -2747,7 +2720,8 @@
     }
     
     /// The changes made to a wallet by applying an [`Update`].
    -pub type ChangeSet = bdk_persist::CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
    +pub type ChangeSet =
    +    bdk_chain::persist::CombinedChangeSet<KeychainKind, ConfirmationTimeHeightAnchor>;
     
     /// A derived address and the index it was found at.
     /// For convenience this automatically derefs to `Address`
    @@ -2775,36 +2749,6 @@
         }
     }
     
    -impl Wallet {
    -    /// Creates a wallet that does not persist data.
    -    pub fn new_no_persist<E: IntoWalletDescriptor>(
    -        descriptor: E,
    -        change_descriptor: E,
    -        network: Network,
    -    ) -> Result<Self, DescriptorError> {
    -        Self::new(descriptor, change_descriptor, (), network).map_err(|e| match e {
    -            NewError::NonEmptyDatabase => unreachable!("mock-database cannot have data"),
    -            NewError::Descriptor(e) => e,
    -            NewError::Persist(_) => unreachable!("mock-write must always succeed"),
    -        })
    -    }
    -
    -    /// Creates a wallet that does not persist data, with a custom genesis hash.
    -    pub fn new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
    -        descriptor: E,
    -        change_descriptor: E,
    -        network: Network,
    -        genesis_hash: BlockHash,
    -    ) -> Result<Self, crate::descriptor::DescriptorError> {
    -        Self::new_with_genesis_hash(descriptor, change_descriptor, (), network, genesis_hash)
    -            .map_err(|e| match e {
    -                NewError::NonEmptyDatabase => unreachable!("mock-database cannot have data"),
    -                NewError::Descriptor(e) => e,
    -                NewError::Persist(_) => unreachable!("mock-write must always succeed"),
    -            })
    -    }
    -}
    -
     /// The error type when constructing a fresh [`Wallet`].
     ///
     /// Methods [`new`] and [`new_with_genesis_hash`] may return this error.
    @@ -2813,23 +2757,14 @@
     /// [`new_with_genesis_hash`]: Wallet::new_with_genesis_hash
     #[derive(Debug)]
     pub enum NewError {
    -    /// Database already has data.
    -    NonEmptyDatabase,
         /// There was problem with the passed-in descriptor(s).
         Descriptor(crate::descriptor::DescriptorError),
    -    /// We were unable to write the wallet's data to the persistence backend.
    -    Persist(anyhow::Error),
     }
     
     impl fmt::Display for NewError {
         fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
             match self {
    -            NewError::NonEmptyDatabase => write!(
    -                f,
    -                "database already has data - use `load` or `new_or_load` methods instead"
    -            ),
                 NewError::Descriptor(e) => e.fmt(f),
    -            NewError::Persist(e) => e.fmt(f),
             }
         }
     }
    @@ -2837,19 +2772,15 @@
     #[cfg(feature = "std")]
     impl std::error::Error for NewError {}
     
    -/// The error type when loading a [`Wallet`] from persistence.
    +/// The error type when loading a [`Wallet`] from a [`ChangeSet`].
     ///
    -/// Method [`load`] may return this error.
    +/// Method [`load_from_changeset`] may return this error.
     ///
    -/// [`load`]: Wallet::load
    +/// [`load_from_changeset`]: Wallet::load_from_changeset
     #[derive(Debug)]
     pub enum LoadError {
         /// There was a problem with the passed-in descriptor(s).
         Descriptor(crate::descriptor::DescriptorError),
    -    /// Loading data from the persistence backend failed.
    -    Persist(anyhow::Error),
    -    /// Wallet not initialized, persistence backend is empty.
    -    NotInitialized,
         /// Data loaded from persistence is missing network type.
         MissingNetwork,
         /// Data loaded from persistence is missing genesis hash.
    @@ -2862,10 +2793,6 @@
         fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
             match self {
                 LoadError::Descriptor(e) => e.fmt(f),
    -            LoadError::Persist(e) => e.fmt(f),
    -            LoadError::NotInitialized => {
    -                write!(f, "wallet is not initialized, persistence backend is empty")
    -            }
                 LoadError::MissingNetwork => write!(f, "loaded data is missing network type"),
                 LoadError::MissingGenesis => write!(f, "loaded data is missing genesis hash"),
                 LoadError::MissingDescriptor(k) => {
    @@ -2888,10 +2815,6 @@
     pub enum NewOrLoadError {
         /// There is a problem with the passed-in descriptor.
         Descriptor(crate::descriptor::DescriptorError),
    -    /// Either writing to or loading from the persistence backend failed.
    -    Persist(anyhow::Error),
    -    /// Wallet is not initialized, persistence backend is empty.
    -    NotInitialized,
         /// The loaded genesis hash does not match what was provided.
         LoadedGenesisDoesNotMatch {
             /// The expected genesis block hash.
    @@ -2919,14 +2842,6 @@
         fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
             match self {
                 NewOrLoadError::Descriptor(e) => e.fmt(f),
    -            NewOrLoadError::Persist(e) => write!(
    -                f,
    -                "failed to either write to or load from persistence, {}",
    -                e
    -            ),
    -            NewOrLoadError::NotInitialized => {
    -                write!(f, "wallet is not initialized, persistence backend is empty")
    -            }
                 NewOrLoadError::LoadedGenesisDoesNotMatch { expected, got } => {
                     write!(f, "loaded genesis hash is not {}, got {:?}", expected, got)
                 }
    @@ -3014,11 +2929,10 @@
         pub fn new<E: IntoWalletDescriptor>(
             descriptor: E,
             change_descriptor: E,
    -        db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
             network: Network,
         ) -> Result<Self, NewError> {
             let genesis_hash = genesis_block(network).block_hash();
    -        Self::new_with_genesis_hash(descriptor, change_descriptor, db, network, genesis_hash)
    +        Self::new_with_genesis_hash(descriptor, change_descriptor, network, genesis_hash)
         }
     
         /// Initialize an empty [`Wallet`] with a custom genesis hash.
    @@ -3028,15 +2942,9 @@
         pub fn new_with_genesis_hash<E: IntoWalletDescriptor>(
             descriptor: E,
             change_descriptor: E,
    -        mut db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
             network: Network,
             genesis_hash: BlockHash,
         ) -> Result<Self, NewError> {
    -        if let Ok(changeset) = db.load_from_persistence() {
    -            if changeset.is_some() {
    -                return Err(NewError::NonEmptyDatabase);
    -            }
    -        }
             let secp = Secp256k1::new();
             let (chain, chain_changeset) = LocalChain::from_genesis_hash(genesis_hash);
             let mut index = KeychainTxOutIndex::<KeychainKind>::default();
    @@ -3047,13 +2955,11 @@
     
             let indexed_graph = IndexedTxGraph::new(index);
     
    -        let mut persist = Persist::new(db);
    -        persist.stage(ChangeSet {
    +        let staged = ChangeSet {
                 chain: chain_changeset,
                 indexed_tx_graph: indexed_graph.initial_changeset(),
                 network: Some(network),
    -        });
    -        persist.commit().map_err(NewError::Persist)?;
    +        };
     
             Ok(Wallet {
                 signers,
    @@ -3061,12 +2967,12 @@
                 network,
                 chain,
                 indexed_graph,
    -            persist,
    +            stage: staged,
                 secp,
             })
         }
     
    -    /// Load [`Wallet`] from the given persistence backend.
    +    /// Load [`Wallet`] from the given previously persisted [`ChangeSet`].
         ///
         /// Note that the descriptor secret keys are not persisted to the db; this means that after
         /// calling this method the [`Wallet`] **won't** know the secret keys, and as such, won't be
    @@ -3084,10 +2990,11 @@
         /// # use bdk_sqlite::{Store, rusqlite::Connection};
         /// #
         /// # fn main() -> Result<(), anyhow::Error> {
    +    /// # use bdk_chain::persist::PersistBackend;
         /// # let temp_dir = tempfile::tempdir().expect("must create tempdir");
         /// # let file_path = temp_dir.path().join("store.db");
         /// # let conn = Connection::open(file_path).expect("must open connection");
    -    /// # let db = Store::new(conn).expect("must create db");
    +    /// # let mut db = Store::new(conn).expect("must create db");
         /// let secp = Secp256k1::new();
         ///
         /// let (external_descriptor, external_keymap) = Descriptor::parse_descriptor(&secp, "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)").unwrap();
    @@ -3095,8 +3002,8 @@
         ///
         /// let external_signer_container = SignersContainer::build(external_keymap, &external_descriptor, &secp);
         /// let internal_signer_container = SignersContainer::build(internal_keymap, &internal_descriptor, &secp);
    -    ///
    -    /// let mut wallet = Wallet::load(db)?;
    +    /// let changeset = db.load_changes()?.expect("there must be an existing changeset");
    +    /// let mut wallet = Wallet::load_from_changeset(changeset)?;
         ///
         /// external_signer_container.signers().into_iter()
         ///     .for_each(|s| wallet.add_signer(KeychainKind::External, SignerOrdering::default(), s.clone()));
    @@ -3108,20 +3015,7 @@
         ///
         /// Alternatively, you can call [`Wallet::new_or_load`], which will add the private keys of the
         /// passed-in descriptors to the [`Wallet`].
    -    pub fn load(
    -        mut db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
    -    ) -> Result<Self, LoadError> {
    -        let changeset = db
    -            .load_from_persistence()
    -            .map_err(LoadError::Persist)?
    -            .ok_or(LoadError::NotInitialized)?;
    -        Self::load_from_changeset(db, changeset)
    -    }
    -
    -    fn load_from_changeset(
    -        db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
    -        changeset: ChangeSet,
    -    ) -> Result<Self, LoadError> {
    +    pub fn load_from_changeset(changeset: ChangeSet) -> Result<Self, LoadError> {
             let secp = Secp256k1::new();
             let network = changeset.network.ok_or(LoadError::MissingNetwork)?;
             let chain =
    @@ -3149,157 +3043,156 @@
             let mut indexed_graph = IndexedTxGraph::new(index);
             indexed_graph.apply_changeset(changeset.indexed_tx_graph);
     
    -        let persist = Persist::new(db);
    +        let stage = ChangeSet::default();
     
             Ok(Wallet {
                 signers,
                 change_signers,
                 chain,
                 indexed_graph,
    -            persist,
    +            stage,
                 network,
                 secp,
             })
         }
     
    -    /// Either loads [`Wallet`] from persistence, or initializes it if it does not exist.
    +    /// Either loads [`Wallet`] from the given [`ChangeSet`] or initializes it if one does not exist.
    +    ///
    +    /// This method will fail if the loaded [`ChangeSet`] has different parameters to those provided.
    +    ///
    +    /// ```rust,no_run
    +    /// # use bdk_chain::persist::PersistBackend;
    +    /// # use bdk_wallet::Wallet;
    +    /// # use bdk_sqlite::{Store, rusqlite::Connection};
    +    /// # use bitcoin::Network::Testnet;
    +    /// # let conn = Connection::open_in_memory().expect("must open connection");
    +    /// let mut db = Store::new(conn).expect("must create db");
    +    /// let changeset = db.load_changes()?;
    +    ///
    +    /// let external_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)";
    +    /// let internal_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)";
         ///
    -    /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
    +    /// let mut wallet = Wallet::new_or_load(external_descriptor, internal_descriptor, changeset, Testnet)?;
    +    /// # Ok::<(), anyhow::Error>(())
    +    /// ```
         pub fn new_or_load<E: IntoWalletDescriptor>(
             descriptor: E,
             change_descriptor: E,
    -        db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
    +        changeset: Option<ChangeSet>,
             network: Network,
         ) -> Result<Self, NewOrLoadError> {
             let genesis_hash = genesis_block(network).block_hash();
             Self::new_or_load_with_genesis_hash(
                 descriptor,
                 change_descriptor,
    -            db,
    +            changeset,
                 network,
                 genesis_hash,
             )
         }
     
    -    /// Either loads [`Wallet`] from persistence, or initializes it if it does not exist, using the
    +    /// Either loads [`Wallet`] from a [`ChangeSet`] or initializes it if one does not exist, using the
         /// provided descriptor, change descriptor, network, and custom genesis hash.
         ///
    -    /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
    +    /// This method will fail if the loaded [`ChangeSet`] 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.
         pub fn new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
             descriptor: E,
             change_descriptor: E,
    -        mut db: impl PersistBackend<ChangeSet> + Send + Sync + 'static,
    +        changeset: Option<ChangeSet>,
             network: Network,
             genesis_hash: BlockHash,
         ) -> Result<Self, NewOrLoadError> {
    -        let changeset = db
    -            .load_from_persistence()
    -            .map_err(NewOrLoadError::Persist)?;
    -        match changeset {
    -            Some(changeset) => {
    -                let mut wallet = Self::load_from_changeset(db, changeset).map_err(|e| match e {
    -                    LoadError::Descriptor(e) => NewOrLoadError::Descriptor(e),
    -                    LoadError::Persist(e) => NewOrLoadError::Persist(e),
    -                    LoadError::NotInitialized => NewOrLoadError::NotInitialized,
    -                    LoadError::MissingNetwork => NewOrLoadError::LoadedNetworkDoesNotMatch {
    -                        expected: network,
    -                        got: None,
    -                    },
    -                    LoadError::MissingGenesis => NewOrLoadError::LoadedGenesisDoesNotMatch {
    -                        expected: genesis_hash,
    +        if let Some(changeset) = changeset {
    +            let mut wallet = Self::load_from_changeset(changeset).map_err(|e| match e {
    +                LoadError::Descriptor(e) => NewOrLoadError::Descriptor(e),
    +                LoadError::MissingNetwork => NewOrLoadError::LoadedNetworkDoesNotMatch {
    +                    expected: network,
    +                    got: None,
    +                },
    +                LoadError::MissingGenesis => NewOrLoadError::LoadedGenesisDoesNotMatch {
    +                    expected: genesis_hash,
    +                    got: None,
    +                },
    +                LoadError::MissingDescriptor(keychain) => {
    +                    NewOrLoadError::LoadedDescriptorDoesNotMatch {
                             got: None,
    -                    },
    -                    LoadError::MissingDescriptor(keychain) => {
    -                        NewOrLoadError::LoadedDescriptorDoesNotMatch {
    -                            got: None,
    -                            keychain,
    -                        }
    +                        keychain,
                         }
    -                })?;
    -                if wallet.network != network {
    -                    return Err(NewOrLoadError::LoadedNetworkDoesNotMatch {
    -                        expected: network,
    -                        got: Some(wallet.network),
    -                    });
    -                }
    -                if wallet.chain.genesis_hash() != genesis_hash {
    -                    return Err(NewOrLoadError::LoadedGenesisDoesNotMatch {
    -                        expected: genesis_hash,
    -                        got: Some(wallet.chain.genesis_hash()),
    -                    });
    -                }
    -
    -                let (expected_descriptor, expected_descriptor_keymap) = descriptor
    -                    .into_wallet_descriptor(&wallet.secp, network)
    -                    .map_err(NewOrLoadError::Descriptor)?;
    -                let wallet_descriptor = wallet.public_descriptor(KeychainKind::External);
    -                if wallet_descriptor != &expected_descriptor {
    -                    return Err(NewOrLoadError::LoadedDescriptorDoesNotMatch {
    -                        got: Some(wallet_descriptor.clone()),
    -                        keychain: KeychainKind::External,
    -                    });
    -                }
    -                // if expected descriptor has private keys add them as new signers
    -                if !expected_descriptor_keymap.is_empty() {
    -                    let signer_container = SignersContainer::build(
    -                        expected_descriptor_keymap,
    -                        &expected_descriptor,
    -                        &wallet.secp,
    -                    );
    -                    signer_container.signers().into_iter().for_each(|signer| {
    -                        wallet.add_signer(
    -                            KeychainKind::External,
    -                            SignerOrdering::default(),
    -                            signer.clone(),
    -                        )
    -                    });
                     }
    +            })?;
    +            if wallet.network != network {
    +                return Err(NewOrLoadError::LoadedNetworkDoesNotMatch {
    +                    expected: network,
    +                    got: Some(wallet.network),
    +                });
    +            }
    +            if wallet.chain.genesis_hash() != genesis_hash {
    +                return Err(NewOrLoadError::LoadedGenesisDoesNotMatch {
    +                    expected: genesis_hash,
    +                    got: Some(wallet.chain.genesis_hash()),
    +                });
    +            }
     
    -                let (expected_change_descriptor, expected_change_descriptor_keymap) =
    -                    change_descriptor
    -                        .into_wallet_descriptor(&wallet.secp, network)
    -                        .map_err(NewOrLoadError::Descriptor)?;
    -                let wallet_change_descriptor = wallet.public_descriptor(KeychainKind::Internal);
    -                if wallet_change_descriptor != &expected_change_descriptor {
    -                    return Err(NewOrLoadError::LoadedDescriptorDoesNotMatch {
    -                        got: Some(wallet_change_descriptor.clone()),
    -                        keychain: KeychainKind::Internal,
    -                    });
    -                }
    -                // if expected change descriptor has private keys add them as new signers
    -                if !expected_change_descriptor_keymap.is_empty() {
    -                    let signer_container = SignersContainer::build(
    -                        expected_change_descriptor_keymap,
    -                        &expected_change_descriptor,
    -                        &wallet.secp,
    -                    );
    -                    signer_container.signers().into_iter().for_each(|signer| {
    -                        wallet.add_signer(
    -                            KeychainKind::Internal,
    -                            SignerOrdering::default(),
    -                            signer.clone(),
    -                        )
    -                    });
    -                }
    +            let (expected_descriptor, expected_descriptor_keymap) = descriptor
    +                .into_wallet_descriptor(&wallet.secp, network)
    +                .map_err(NewOrLoadError::Descriptor)?;
    +            let wallet_descriptor = wallet.public_descriptor(KeychainKind::External);
    +            if wallet_descriptor != &expected_descriptor {
    +                return Err(NewOrLoadError::LoadedDescriptorDoesNotMatch {
    +                    got: Some(wallet_descriptor.clone()),
    +                    keychain: KeychainKind::External,
    +                });
    +            }
    +            // if expected descriptor has private keys add them as new signers
    +            if !expected_descriptor_keymap.is_empty() {
    +                let signer_container = SignersContainer::build(
    +                    expected_descriptor_keymap,
    +                    &expected_descriptor,
    +                    &wallet.secp,
    +                );
    +                signer_container.signers().into_iter().for_each(|signer| {
    +                    wallet.add_signer(
    +                        KeychainKind::External,
    +                        SignerOrdering::default(),
    +                        signer.clone(),
    +                    )
    +                });
    +            }
     
    -                Ok(wallet)
    +            let (expected_change_descriptor, expected_change_descriptor_keymap) = change_descriptor
    +                .into_wallet_descriptor(&wallet.secp, network)
    +                .map_err(NewOrLoadError::Descriptor)?;
    +            let wallet_change_descriptor = wallet.public_descriptor(KeychainKind::Internal);
    +            if wallet_change_descriptor != &expected_change_descriptor {
    +                return Err(NewOrLoadError::LoadedDescriptorDoesNotMatch {
    +                    got: Some(wallet_change_descriptor.clone()),
    +                    keychain: KeychainKind::Internal,
    +                });
                 }
    -            None => Self::new_with_genesis_hash(
    -                descriptor,
    -                change_descriptor,
    -                db,
    -                network,
    -                genesis_hash,
    -            )
    -            .map_err(|e| match e {
    -                NewError::NonEmptyDatabase => {
    -                    unreachable!("database is already checked to have no data")
    -                }
    -                NewError::Descriptor(e) => NewOrLoadError::Descriptor(e),
    -                NewError::Persist(e) => NewOrLoadError::Persist(e),
    -            }),
    +            // if expected change descriptor has private keys add them as new signers
    +            if !expected_change_descriptor_keymap.is_empty() {
    +                let signer_container = SignersContainer::build(
    +                    expected_change_descriptor_keymap,
    +                    &expected_change_descriptor,
    +                    &wallet.secp,
    +                );
    +                signer_container.signers().into_iter().for_each(|signer| {
    +                    wallet.add_signer(
    +                        KeychainKind::Internal,
    +                        SignerOrdering::default(),
    +                        signer.clone(),
    +                    )
    +                });
    +            }
    +
    +            Ok(wallet)
    +        } else {
    +            Self::new_with_genesis_hash(descriptor, change_descriptor, network, genesis_hash)
    +                .map_err(|e| match e {
    +                    NewError::Descriptor(e) => NewOrLoadError::Descriptor(e),
    +                })
             }
         }
     
    @@ -3343,30 +3236,46 @@
     
         /// Attempt to reveal the next address of the given `keychain`.
         ///
    -    /// This will increment the internal derivation index. If the keychain's descriptor doesn't
    +    /// This will increment the keychain's derivation index. If the keychain's descriptor doesn't
         /// contain a wildcard or every address is already revealed up to the maximum derivation
         /// index defined in [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki),
    -    /// then returns the last revealed address.
    +    /// then the last revealed address will be returned.
         ///
    -    /// # Errors
    +    /// **WARNING**: To avoid address reuse you must persist the changes resulting from one or more
    +    /// calls to this method before closing the wallet. For example:
         ///
    -    /// If writing to persistent storage fails.
    -    pub fn reveal_next_address(&mut self, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
    -        let ((index, spk), index_changeset) = self
    -            .indexed_graph
    -            .index
    +    /// ```rust,no_run
    +    /// # use bdk_chain::persist::PersistBackend;
    +    /// # use bdk_wallet::wallet::{Wallet, ChangeSet};
    +    /// # use bdk_wallet::KeychainKind;
    +    /// # use bdk_sqlite::{Store, rusqlite::Connection};
    +    /// # let conn = Connection::open_in_memory().expect("must open connection");
    +    /// # let mut db = Store::new(conn).expect("must create store");
    +    /// # let changeset = ChangeSet::default();
    +    /// # let mut wallet = Wallet::load_from_changeset(changeset).expect("load wallet");
    +    /// let next_address = wallet.reveal_next_address(KeychainKind::External);
    +    /// wallet.commit_to(&mut db)?;
    +    ///
    +    /// // Now it's safe to show the user their next address!
    +    /// println!("Next address: {}", next_address.address);
    +    /// # Ok::<(), anyhow::Error>(())
    +    /// ```
    +    pub fn reveal_next_address(&mut self, keychain: KeychainKind) -> AddressInfo {
    +        let index = &mut self.indexed_graph.index;
    +        let stage = &mut self.stage;
    +
    +        let ((index, spk), index_changeset) = index
                 .reveal_next_spk(&keychain)
                 .expect("keychain must exist");
     
    -        self.persist
    -            .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())?;
    +        stage.append(indexed_tx_graph::ChangeSet::from(index_changeset).into());
     
    -        Ok(AddressInfo {
    +        AddressInfo {
                 index,
                 address: Address::from_script(spk.as_script(), self.network)
                     .expect("must have address form"),
                 keychain,
    -        })
    +        }
         }
     
         /// Reveal addresses up to and including the target `index` and return an iterator
    @@ -3376,28 +3285,26 @@
         /// 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.
    +    /// **WARNING**: To avoid address reuse you must persist the changes resulting from one or more
    +    /// calls to this method before closing the wallet. See [`Wallet::reveal_next_address`].
         pub fn reveal_addresses_to(
             &mut self,
             keychain: KeychainKind,
             index: u32,
    -    ) -> anyhow::Result<impl Iterator<Item = AddressInfo> + '_> {
    +    ) -> impl Iterator<Item = AddressInfo> + '_ {
             let (spks, index_changeset) = self
                 .indexed_graph
                 .index
                 .reveal_to_target(&keychain, index)
                 .expect("keychain must exist");
     
    -        self.persist
    -            .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())?;
    +        self.stage.append(index_changeset.into());
     
    -        Ok(spks.into_iter().map(move |(index, spk)| AddressInfo {
    +        spks.into_iter().map(move |(index, spk)| AddressInfo {
                 index,
                 address: Address::from_script(&spk, self.network).expect("must have address form"),
                 keychain,
    -        }))
    +        })
         }
     
         /// Get the next unused address for the given `keychain`, i.e. the address with the lowest
    @@ -3406,25 +3313,24 @@
         /// This will attempt to derive and reveal a new address if no newly revealed addresses
         /// are available. See also [`reveal_next_address`](Self::reveal_next_address).
         ///
    -    /// # Errors
    -    ///
    -    /// If writing to persistent storage fails.
    -    pub fn next_unused_address(&mut self, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
    -        let ((index, spk), index_changeset) = self
    -            .indexed_graph
    -            .index
    +    /// **WARNING**: To avoid address reuse you must persist the changes resulting from one or more
    +    /// calls to this method before closing the wallet. See [`Wallet::reveal_next_address`].
    +    pub fn next_unused_address(&mut self, keychain: KeychainKind) -> AddressInfo {
    +        let index = &mut self.indexed_graph.index;
    +
    +        let ((index, spk), index_changeset) = index
                 .next_unused_spk(&keychain)
                 .expect("keychain must exist");
     
    -        self.persist
    -            .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())?;
    +        self.stage
    +            .append(indexed_tx_graph::ChangeSet::from(index_changeset).into());
     
    -        Ok(AddressInfo {
    +        AddressInfo {
                 index,
                 address: Address::from_script(spk.as_script(), self.network)
                     .expect("must have address form"),
                 keychain,
    -        })
    +        }
         }
     
         /// Marks an address used of the given `keychain` at `index`.
    @@ -3563,19 +3469,20 @@
         /// or [`calculate_fee_rate`] on a given transaction. Outputs inserted with this method will
         /// not be returned in [`list_unspent`] or [`list_output`].
         ///
    -    /// Any inserted `TxOut`s are not persisted until [`commit`] is called.
    -    ///
    -    /// **WARNING:** This should only be used to add `TxOut`s that the wallet does not own. Only
    +    /// **WARNINGS:** This should only be used to add `TxOut`s that the wallet does not own. Only
         /// insert `TxOut`s that you trust the values for!
         ///
    +    /// You must persist the changes resulting from one or more calls to this method if you need
    +    /// the inserted `TxOut` data to be reloaded after closing the wallet.
    +    /// See [`Wallet::reveal_next_address`].
    +    ///
         /// [`calculate_fee`]: Self::calculate_fee
         /// [`calculate_fee_rate`]: Self::calculate_fee_rate
         /// [`list_unspent`]: Self::list_unspent
         /// [`list_output`]: Self::list_output
    -    /// [`commit`]: Self::commit
         pub fn insert_txout(&mut self, outpoint: OutPoint, txout: TxOut) {
             let additions = self.indexed_graph.insert_txout(outpoint, txout);
    -        self.persist.stage(ChangeSet::from(additions));
    +        self.stage.append(additions.into());
         }
     
         /// Calculates the fee of a given transaction. Returns [`Amount::ZERO`] if `tx` is a coinbase transaction.
    @@ -3729,11 +3636,14 @@
         }
     
         /// 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).
         ///
    +    /// **WARNING**: You must persist the changes resulting from one or more calls to this method
    +    /// if you need the inserted checkpoint data to be reloaded after closing the wallet.
    +    /// See [`Wallet::reveal_next_address`].
    +    ///
         /// [`commit`]: Self::commit
         pub fn insert_checkpoint(
             &mut self,
    @@ -3741,12 +3651,12 @@
         ) -> Result<bool, local_chain::AlterCheckPointError> {
             let changeset = self.chain.insert_block(block_id)?;
             let changed = !changeset.is_empty();
    -        self.persist.stage(changeset.into());
    +        self.stage.append(changeset.into());
             Ok(changed)
         }
     
    -    /// Add a transaction to the wallet's internal view of the chain. This stages but does not
    -    /// [`commit`] the change.
    +    /// Add a transaction to the wallet's internal view of the chain. This stages the change,
    +    /// you must persist it later.
         ///
         /// Returns whether anything changed with the transaction insertion (e.g. `false` if the
         /// transaction was already inserted at the same position).
    @@ -3755,10 +3665,13 @@
         /// Therefore you should use [`insert_checkpoint`] to insert new checkpoints before manually
         /// inserting new transactions.
         ///
    -    /// **WARNING:** If `position` is confirmed, we anchor the `tx` to a the lowest checkpoint that
    +    /// **WARNING**: If `position` is confirmed, we anchor the `tx` to 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.
         ///
    +    /// You must persist the changes resulting from one or more calls to this method if you need
    +    /// the inserted tx to be reloaded after closing the wallet.
    +    ///
         /// [`commit`]: Self::commit
         /// [`latest_checkpoint`]: Self::latest_checkpoint
         /// [`insert_checkpoint`]: Self::insert_checkpoint
    @@ -3800,7 +3713,7 @@
             }
     
             let changed = !changeset.is_empty();
    -        self.persist.stage(changeset);
    +        self.stage.append(changeset);
             Ok(changed)
         }
     
    @@ -3851,7 +3764,7 @@
         /// # use bdk_wallet::bitcoin::Network;
         /// let descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/0/*)";
         /// let change_descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/1/*)";
    -    /// let wallet = Wallet::new_no_persist(descriptor, change_descriptor, Network::Testnet)?;
    +    /// let wallet = Wallet::new(descriptor, change_descriptor, Network::Testnet)?;
         /// for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
         ///     // secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
         ///     println!("secret_key: {}", secret_key);
    @@ -3878,7 +3791,6 @@
         /// # use bdk_wallet::*;
         /// # use bdk_wallet::wallet::ChangeSet;
         /// # use bdk_wallet::wallet::error::CreateTxError;
    -    /// # use bdk_persist::PersistBackend;
         /// # use anyhow::Error;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
    @@ -4125,11 +4037,7 @@
                         .next_unused_spk(&change_keychain)
                         .expect("keychain must exist");
                     self.indexed_graph.index.mark_used(change_keychain, index);
    -                self.persist
    -                    .stage(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
    -                        index_changeset,
    -                    )));
    -                self.persist.commit().map_err(CreateTxError::Persist)?;
    +                self.stage.append(index_changeset.into());
                     spk
                 }
             };
    @@ -4228,7 +4136,6 @@
         /// # use bdk_wallet::*;
         /// # use bdk_wallet::wallet::ChangeSet;
         /// # use bdk_wallet::wallet::error::CreateTxError;
    -    /// # use bdk_persist::PersistBackend;
         /// # use anyhow::Error;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
    @@ -4407,7 +4314,6 @@
         /// # use bdk_wallet::*;
         /// # use bdk_wallet::wallet::ChangeSet;
         /// # use bdk_wallet::wallet::error::CreateTxError;
    -    /// # use bdk_persist::PersistBackend;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
         /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
    @@ -4930,11 +4836,14 @@
                 .to_string()
         }
     
    -    /// Applies an update to the wallet and stages the changes (but does not [`commit`] them).
    +    /// Applies an update to the wallet and stages the changes (but does not persist them).
         ///
         /// Usually you create an `update` by interacting with some blockchain data source and inserting
         /// transactions related to your wallet into it.
         ///
    +    /// After applying updates you should persist the staged wallet changes. For an example of how
    +    /// to persist staged wallet changes see [`Wallet::reveal_next_address`]. `
    +    ///
         /// [`commit`]: Self::commit
         pub fn apply_update(&mut self, update: impl Into<Update>) -> Result<(), CannotConnectError> {
             let update = update.into();
    @@ -4947,31 +4856,50 @@
                 .indexed_graph
                 .index
                 .reveal_to_target_multi(&update.last_active_indices);
    -        changeset.append(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
    -            index_changeset,
    -        )));
    -        changeset.append(ChangeSet::from(
    -            self.indexed_graph.apply_update(update.graph),
    -        ));
    -        self.persist.stage(changeset);
    +        changeset.append(index_changeset.into());
    +        changeset.append(self.indexed_graph.apply_update(update.graph).into());
    +        self.stage.append(changeset);
             Ok(())
         }
     
    -    /// Commits all currently [`staged`] changed to the persistence backend returning and error when
    -    /// this fails.
    +    /// Commits all currently [`staged`](Wallet::staged) changes to the `persist_backend`.
         ///
    -    /// This returns whether the `update` resulted in any changes.
    +    /// This returns whether anything was persisted.
         ///
    -    /// [`staged`]: Self::staged
    -    pub fn commit(&mut self) -> anyhow::Result<bool> {
    -        self.persist.commit().map(|c| c.is_some())
    +    /// # Error
    +    ///
    +    /// Returns a backend-defined error if this fails.
    +    pub fn commit_to<B>(&mut self, persist_backend: &mut B) -> Result<bool, B::WriteError>
    +    where
    +        B: PersistBackend<ChangeSet>,
    +    {
    +        let committed = StageExt::commit_to(&mut self.stage, persist_backend)?;
    +        Ok(committed.is_some())
         }
     
    -    /// Returns the changes that will be committed with the next call to [`commit`].
    +    /// Commits all currently [`staged`](Wallet::staged) changes to the async `persist_backend`.
         ///
    -    /// [`commit`]: Self::commit
    +    /// This returns whether anything was persisted.
    +    ///
    +    /// # Error
    +    ///
    +    /// Returns a backend-defined error if this fails.
    +    #[cfg(feature = "async")]
    +    pub async fn commit_to_async<B>(
    +        &mut self,
    +        persist_backend: &mut B,
    +    ) -> Result<bool, B::WriteError>
    +    where
    +        B: bdk_chain::persist::PersistBackendAsync<ChangeSet> + Send + Sync,
    +    {
    +        let committed =
    +            bdk_chain::persist::StageExtAsync::commit_to(&mut self.stage, persist_backend).await?;
    +        Ok(committed.is_some())
    +    }
    +
    +    /// Get the staged [`ChangeSet`] that is yet to be committed.
         pub fn staged(&self) -> &ChangeSet {
    -        self.persist.staged()
    +        &self.stage
         }
     
         /// Get a reference to the inner [`TxGraph`].
    @@ -5022,6 +4950,10 @@
         /// 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`].
    +    ///
    +    /// **WARNING**: You must persist the changes resulting from one or more calls to this method
    +    /// if you need the inserted block data to be reloaded after closing the wallet.
    +    /// See [`Wallet::reveal_next_address`].
         pub fn apply_block_connected_to(
             &mut self,
             block: &Block,
    @@ -5039,7 +4971,7 @@
                     .apply_block_relevant(block, height)
                     .into(),
             );
    -        self.persist.stage(changeset);
    +        self.stage.append(changeset);
             Ok(())
         }
     
    @@ -5051,6 +4983,10 @@
         /// 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.
    +    ///
    +    /// **WARNING**: You must persist the changes resulting from one or more calls to this method
    +    /// if you need the applied unconfirmed transactions to be reloaded after closing the wallet.
    +    /// See [`Wallet::reveal_next_address`].
         pub fn apply_unconfirmed_txs<'t>(
             &mut self,
             unconfirmed_txs: impl IntoIterator<Item = (&'t Transaction, u64)>,
    @@ -5058,7 +4994,7 @@
             let indexed_graph_changeset = self
                 .indexed_graph
                 .batch_insert_relevant_unconfirmed(unconfirmed_txs);
    -        self.persist.stage(ChangeSet::from(indexed_graph_changeset));
    +        self.stage.append(indexed_graph_changeset.into());
         }
     }
     
    @@ -5195,7 +5131,7 @@
             let descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)";
             let change_descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/1/*)";
     
    -        let mut wallet = Wallet::new_no_persist(
    +        let mut wallet = Wallet::new(
                 descriptor,
                 change_descriptor,
                 Network::Regtest,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/signer.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/signer.rs.html
    index 1596a23796..92bf49f72d 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/signer.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/signer.rs.html
    @@ -1287,7 +1287,7 @@
     //!
     //! let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/0/*)";
     //! let change_descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/1/*)";
    -//! let mut wallet = Wallet::new_no_persist(descriptor, change_descriptor, Network::Testnet)?;
    +//! let mut wallet = Wallet::new(descriptor, change_descriptor, Network::Testnet)?;
     //! wallet.add_signer(
     //!     KeychainKind::External,
     //!     SignerOrdering(200),
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/tx_builder.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/tx_builder.rs.html
    index 6b61153b0d..05103e55c8 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/tx_builder.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_wallet/wallet/tx_builder.rs.html
    @@ -1021,7 +1021,6 @@
     //! # use bdk_wallet::*;
     //! # use bdk_wallet::wallet::ChangeSet;
     //! # use bdk_wallet::wallet::error::CreateTxError;
    -//! # use bdk_persist::PersistBackend;
     //! # use anyhow::Error;
     //! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
     //! # let mut wallet = doctest_wallet!();
    @@ -1070,7 +1069,6 @@
     /// # use core::str::FromStr;
     /// # use bdk_wallet::wallet::ChangeSet;
     /// # use bdk_wallet::wallet::error::CreateTxError;
    -/// # use bdk_persist::PersistBackend;
     /// # use anyhow::Error;
     /// # let mut wallet = doctest_wallet!();
     /// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
    @@ -1642,7 +1640,6 @@
         /// # use bdk_wallet::*;
         /// # use bdk_wallet::wallet::ChangeSet;
         /// # use bdk_wallet::wallet::error::CreateTxError;
    -    /// # use bdk_persist::PersistBackend;
         /// # use anyhow::Error;
         /// # let to_address =
         /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
    @@ -1677,6 +1674,9 @@
         /// Returns a new [`Psbt`] per [`BIP174`].
         ///
         /// [`BIP174`]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
    +    ///
    +    /// **WARNING**: To avoid change address reuse you must persist the changes resulting from one
    +    /// or more calls to this method before closing the wallet. See [`Wallet::reveal_next_address`].
         pub fn finish(self) -> Result<Psbt, CreateTxError> {
             self.wallet
                 .borrow_mut()
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
    index 8adbc39aa3..86045aa87f 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_bitcoind_rpc_polling/main.rs.html
    @@ -381,6 +381,9 @@
     381
     382
     383
    +384
    +385
    +386
     
    use std::{
         path::PathBuf,
         sync::{
    @@ -394,11 +397,12 @@
         bitcoincore_rpc::{Auth, Client, RpcApi},
         Emitter,
     };
    +use bdk_chain::persist::{PersistBackend, StageExt};
     use bdk_chain::{
         bitcoin::{constants::genesis_block, Block, Transaction},
         indexed_tx_graph, keychain,
         local_chain::{self, LocalChain},
    -    ConfirmationTimeHeightAnchor, IndexedTxGraph,
    +    Append, ConfirmationTimeHeightAnchor, IndexedTxGraph,
     };
     use example_cli::{
         anyhow,
    @@ -520,8 +524,7 @@
             let genesis_hash = genesis_block(args.network).block_hash();
             let (chain, chain_changeset) = LocalChain::from_genesis_hash(genesis_hash);
             let mut db = db.lock().unwrap();
    -        db.stage((chain_changeset, Default::default()));
    -        db.commit()?;
    +        db.write_changes(&(chain_changeset, Default::default()))?;
             chain
         } else {
             LocalChain::from_changeset(init_chain_changeset)?
    @@ -559,6 +562,7 @@
                 let chain_tip = chain.lock().unwrap().tip();
                 let rpc_client = rpc_args.new_client()?;
                 let mut emitter = Emitter::new(&rpc_client, chain_tip, fallback_height);
    +            let mut db_stage = ChangeSet::default();
     
                 let mut last_db_commit = Instant::now();
                 let mut last_print = Instant::now();
    @@ -568,18 +572,18 @@
     
                     let mut chain = chain.lock().unwrap();
                     let mut graph = graph.lock().unwrap();
    -                let mut db = db.lock().unwrap();
     
                     let chain_changeset = chain
                         .apply_update(emission.checkpoint)
                         .expect("must always apply as we receive blocks in order from emitter");
                     let graph_changeset = graph.apply_block_relevant(&emission.block, height);
    -                db.stage((chain_changeset, graph_changeset));
    +                db_stage.append((chain_changeset, graph_changeset));
     
                     // commit staged db changes in intervals
                     if last_db_commit.elapsed() >= DB_COMMIT_DELAY {
    +                    let db = &mut *db.lock().unwrap();
                         last_db_commit = Instant::now();
    -                    db.commit()?;
    +                    db_stage.commit_to(db)?;
                         println!(
                             "[{:>10}s] committed to db (took {}s)",
                             start.elapsed().as_secs_f32(),
    @@ -614,10 +618,12 @@
                     mempool_txs.iter().map(|(tx, time)| (tx, *time)),
                 );
                 {
    -                let mut db = db.lock().unwrap();
    -                db.stage((local_chain::ChangeSet::default(), graph_changeset));
    -                db.commit()?; // commit one last time
    -            }
    +                let db = &mut *db.lock().unwrap();
    +                db_stage.append_and_commit_to(
    +                    (local_chain::ChangeSet::default(), graph_changeset),
    +                    db,
    +                )?;
    +            }
             }
             RpcCommands::Live { rpc_args } => {
                 let RpcArgs {
    @@ -672,9 +678,9 @@
                 let mut tip_height = 0_u32;
                 let mut last_db_commit = Instant::now();
                 let mut last_print = Option::<Instant>::None;
    +            let mut db_stage = ChangeSet::default();
     
                 for emission in rx {
    -                let mut db = db.lock().unwrap();
                     let mut graph = graph.lock().unwrap();
                     let mut chain = chain.lock().unwrap();
     
    @@ -699,12 +705,12 @@
                             continue;
                         }
                     };
    -
    -                db.stage(changeset);
    +                db_stage.append(changeset);
     
                     if last_db_commit.elapsed() >= DB_COMMIT_DELAY {
    +                    let db = &mut *db.lock().unwrap();
                         last_db_commit = Instant::now();
    -                    db.commit()?;
    +                    db_stage.commit_to(db)?;
                         println!(
                             "[{:>10}s] committed to db (took {}s)",
                             start.elapsed().as_secs_f32(),
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html
    index 71f3a8521b..65632a1259 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html
    @@ -734,11 +734,24 @@
     734
     735
     736
    +737
    +738
    +739
    +740
    +741
    +742
    +743
    +744
    +745
    +746
    +747
    +748
     
    pub use anyhow;
     use anyhow::Context;
     use bdk_coin_select::{coin_select_bnb, CoinSelector, CoinSelectorOpt, WeightedValue};
     use bdk_file_store::Store;
     use serde::{de::DeserializeOwned, Serialize};
    +use std::fmt::Debug;
     use std::{cmp::Reverse, collections::BTreeMap, path::PathBuf, sync::Mutex, time::Duration};
     
     use bdk_chain::{
    @@ -758,9 +771,9 @@
         Anchor, Append, ChainOracle, DescriptorExt, FullTxOut,
     };
     pub use bdk_file_store;
    -use bdk_persist::{Persist, PersistBackend};
     pub use clap;
     
    +use bdk_chain::persist::PersistBackend;
     use clap::{Parser, Subcommand};
     
     pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;
    @@ -1182,7 +1195,7 @@
     
     pub fn handle_commands<CS: clap::Subcommand, S: clap::Args, A: Anchor, O: ChainOracle, C>(
         graph: &Mutex<KeychainTxGraph<A>>,
    -    db: &Mutex<Persist<C>>,
    +    db: &Mutex<Store<C>>,
         chain: &Mutex<O>,
         keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
         network: Network,
    @@ -1191,7 +1204,14 @@
     ) -> anyhow::Result<()>
     where
         O::Error: std::error::Error + Send + Sync + 'static,
    -    C: Default + Append + DeserializeOwned + Serialize + From<KeychainChangeSet<A>>,
    +    C: Default
    +        + Append
    +        + DeserializeOwned
    +        + Serialize
    +        + From<KeychainChangeSet<A>>
    +        + Send
    +        + Sync
    +        + Debug,
     {
         match cmd {
             Commands::ChainSpecific(_) => unreachable!("example code should handle this!"),
    @@ -1210,7 +1230,7 @@
                         let ((spk_i, spk), index_changeset) =
                             spk_chooser(index, &Keychain::External).expect("Must exist");
                         let db = &mut *db.lock().unwrap();
    -                    db.stage_and_commit(C::from((
    +                    db.write_changes(&C::from((
                             local_chain::ChangeSet::default(),
                             indexed_tx_graph::ChangeSet::from(index_changeset),
                         )))?;
    @@ -1358,7 +1378,7 @@
                         // If we're unable to persist this, then we don't want to broadcast.
                         {
                             let db = &mut *db.lock().unwrap();
    -                        db.stage_and_commit(C::from((
    +                        db.write_changes(&C::from((
                                 local_chain::ChangeSet::default(),
                                 indexed_tx_graph::ChangeSet::from(index_changeset),
                             )))?;
    @@ -1383,7 +1403,7 @@
                         // We know the tx is at least unconfirmed now. Note if persisting here fails,
                         // it's not a big deal since we can always find it again form
                         // blockchain.
    -                    db.lock().unwrap().stage_and_commit(C::from((
    +                    db.lock().unwrap().write_changes(&C::from((
                             local_chain::ChangeSet::default(),
                             keychain_changeset,
                         )))?;
    @@ -1402,7 +1422,10 @@
     }
     
     /// The initial state returned by [`init`].
    -pub struct Init<CS: clap::Subcommand, S: clap::Args, C> {
    +pub struct Init<CS: clap::Subcommand, S: clap::Args, C>
    +where
    +    C: Default + Append + Serialize + DeserializeOwned + Debug + Send + Sync + 'static,
    +{
         /// Arguments parsed by the cli.
         pub args: Args<CS, S>,
         /// Descriptor keymap.
    @@ -1410,7 +1433,7 @@
         /// Keychain-txout index.
         pub index: KeychainTxOutIndex<Keychain>,
         /// Persistence backend.
    -    pub db: Mutex<Persist<C>>,
    +    pub db: Mutex<Store<C>>,
         /// Initial changeset.
         pub init_changeset: C,
     }
    @@ -1426,6 +1449,7 @@
             + Append
             + Serialize
             + DeserializeOwned
    +        + Debug
             + core::marker::Send
             + core::marker::Sync
             + 'static,
    @@ -1460,13 +1484,13 @@
             Err(err) => return Err(anyhow::anyhow!("failed to init db backend: {:?}", err)),
         };
     
    -    let init_changeset = db_backend.load_from_persistence()?.unwrap_or_default();
    +    let init_changeset = db_backend.load_changes()?.unwrap_or_default();
     
         Ok(Init {
             args,
             keymap,
             index,
    -        db: Mutex::new(Persist::new(db_backend)),
    +        db: Mutex::new(db_backend),
             init_changeset,
         })
     }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    index 18a9a0b9fa..dd3dddeaf8 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    @@ -360,6 +360,7 @@
         sync::Mutex,
     };
     
    +use bdk_chain::persist::PersistBackend;
     use bdk_chain::{
         bitcoin::{constants::genesis_block, Address, Network, Txid},
         collections::BTreeSet,
    @@ -708,8 +709,7 @@
         };
     
         let mut db = db.lock().unwrap();
    -    db.stage(db_changeset);
    -    db.commit()?;
    +    db.write_changes(&db_changeset)?;
         Ok(())
     }
     
    \ 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 7123c3c136..fe95dcb944 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 @@ -371,6 +371,7 @@ sync::Mutex, }; +use bdk_chain::persist::PersistBackend; use bdk_chain::{ bitcoin::{constants::genesis_block, Address, Network, Txid}, indexed_tx_graph::{self, IndexedTxGraph}, @@ -728,8 +729,7 @@ // We persist the changes let mut db = db.lock().unwrap(); - db.stage((local_chain_changeset, indexed_tx_graph_changeset)); - db.commit()?; + db.write_changes(&(local_chain_changeset, indexed_tx_graph_changeset))?; Ok(()) } \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html index bbe374fbe4..542ff3c43e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_electrum_example/main.rs.html @@ -98,11 +98,17 @@ 98 99 100 +101 +102 +103 +104 +105
    const DB_MAGIC: &str = "bdk_wallet_electrum_example";
     const SEND_AMOUNT: Amount = Amount::from_sat(5000);
     const STOP_GAP: usize = 50;
     const BATCH_SIZE: usize = 5;
     
    +use anyhow::anyhow;
     use std::io::Write;
     use std::str::FromStr;
     
    @@ -111,24 +117,28 @@
     use bdk_file_store::Store;
     use bdk_wallet::bitcoin::{Address, Amount};
     use bdk_wallet::chain::collections::HashSet;
    +use bdk_wallet::chain::persist::PersistBackend;
     use bdk_wallet::{bitcoin::Network, Wallet};
     use bdk_wallet::{KeychainKind, SignOptions};
     
     fn main() -> Result<(), anyhow::Error> {
         let db_path = std::env::temp_dir().join("bdk-electrum-example");
    -    let db =
    +    let mut db =
             Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)?;
         let external_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)";
         let internal_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)";
    -
    +    let changeset = db
    +        .load_changes()
    +        .map_err(|e| anyhow!("load changes error: {}", e))?;
         let mut wallet = Wallet::new_or_load(
             external_descriptor,
             internal_descriptor,
    -        db,
    +        changeset,
             Network::Testnet,
         )?;
     
    -    let address = wallet.next_unused_address(KeychainKind::External)?;
    +    let address = wallet.next_unused_address(KeychainKind::External);
    +    wallet.commit_to(&mut db)?;
         println!("Generated Address: {}", address);
     
         let balance = wallet.balance();
    @@ -167,7 +177,7 @@
         println!();
     
         wallet.apply_update(update)?;
    -    wallet.commit()?;
    +    wallet.commit_to(&mut db)?;
     
         let balance = wallet.balance();
         println!("Wallet balance after syncing: {} sats", balance.total());
    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 e2745b6b79..cae4b8aaad 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
    @@ -107,6 +107,9 @@
     107
     108
     109
    +110
    +111
    +112
     
    use std::{collections::BTreeSet, io::Write, str::FromStr};
     
     use bdk_esplora::{esplora_client, EsploraAsyncExt};
    @@ -116,6 +119,7 @@
     };
     
     use bdk_sqlite::{rusqlite::Connection, Store};
    +use bdk_wallet::chain::persist::PersistBackend;
     
     const SEND_AMOUNT: Amount = Amount::from_sat(5000);
     const STOP_GAP: usize = 50;
    @@ -125,18 +129,20 @@
     async fn main() -> Result<(), anyhow::Error> {
         let db_path = "bdk-esplora-async-example.sqlite";
         let conn = Connection::open(db_path)?;
    -    let db = Store::new(conn)?;
    +    let mut db = Store::new(conn)?;
         let external_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)";
         let internal_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)";
    +    let changeset = db.load_changes()?;
     
         let mut wallet = Wallet::new_or_load(
             external_descriptor,
             internal_descriptor,
    -        db,
    +        changeset,
             Network::Signet,
         )?;
     
    -    let address = wallet.next_unused_address(KeychainKind::External)?;
    +    let address = wallet.next_unused_address(KeychainKind::External);
    +    wallet.commit_to(&mut db)?;
         println!("Generated Address: {}", address);
     
         let balance = wallet.balance();
    @@ -184,7 +190,7 @@
         let _ = update.graph_update.update_last_seen_unconfirmed(now);
     
         wallet.apply_update(update)?;
    -    wallet.commit()?;
    +    wallet.commit_to(&mut db)?;
         println!();
     
         let balance = wallet.balance();
    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 90dcd69c4a..605b76a82f 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
    @@ -84,6 +84,9 @@
     84
     85
     86
    +87
    +88
    +89
     
    const DB_MAGIC: &str = "bdk_wallet_esplora_example";
     const SEND_AMOUNT: Amount = Amount::from_sat(1000);
     const STOP_GAP: usize = 5;
    @@ -93,6 +96,7 @@
     
     use bdk_esplora::{esplora_client, EsploraExt};
     use bdk_file_store::Store;
    +use bdk_wallet::chain::persist::PersistBackend;
     use bdk_wallet::{
         bitcoin::{Address, Amount, Network},
         KeychainKind, SignOptions, Wallet,
    @@ -100,19 +104,21 @@
     
     fn main() -> Result<(), anyhow::Error> {
         let db_path = std::env::temp_dir().join("bdk-esplora-example");
    -    let db =
    +    let mut db =
             Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)?;
         let external_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)";
         let internal_descriptor = "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)";
    +    let changeset = db.load_changes()?;
     
         let mut wallet = Wallet::new_or_load(
             external_descriptor,
             internal_descriptor,
    -        db,
    +        changeset,
             Network::Testnet,
         )?;
     
    -    let address = wallet.next_unused_address(KeychainKind::External)?;
    +    let address = wallet.next_unused_address(KeychainKind::External);
    +    wallet.commit_to(&mut db)?;
         println!("Generated Address: {}", address);
     
         let balance = wallet.balance();
    @@ -138,7 +144,7 @@
         let _ = update.graph_update.update_last_seen_unconfirmed(now);
     
         wallet.apply_update(update)?;
    -    wallet.commit()?;
    +    wallet.commit_to(&mut db)?;
         println!();
     
         let balance = wallet.balance();
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_rpc/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_rpc/main.rs.html
    index 9e75107783..8f11b3b8d7 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_rpc/main.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_rpc/main.rs.html
    @@ -183,11 +183,16 @@
     183
     184
     185
    +186
    +187
    +188
    +189
     
    use bdk_bitcoind_rpc::{
         bitcoincore_rpc::{Auth, Client, RpcApi},
         Emitter,
     };
     use bdk_file_store::Store;
    +use bdk_wallet::chain::persist::PersistBackend;
     use bdk_wallet::{
         bitcoin::{Block, Network, Transaction},
         wallet::Wallet,
    @@ -271,13 +276,16 @@
         );
     
         let start_load_wallet = Instant::now();
    +    let mut db = Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(
    +        DB_MAGIC.as_bytes(),
    +        args.db_path,
    +    )?;
    +    let changeset = db.load_changes()?;
    +
         let mut wallet = Wallet::new_or_load(
             &args.descriptor,
             &args.change_descriptor,
    -        Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(
    -            DB_MAGIC.as_bytes(),
    -            args.db_path,
    -        )?,
    +        changeset,
             args.network,
         )?;
         println!(
    @@ -328,7 +336,7 @@
                     let connected_to = block_emission.connected_to();
                     let start_apply_block = Instant::now();
                     wallet.apply_block_connected_to(&block_emission.block, height, connected_to)?;
    -                wallet.commit()?;
    +                wallet.commit_to(&mut db)?;
                     let elapsed = start_apply_block.elapsed().as_secs_f32();
                     println!(
                         "Applied block {} at height {} in {}s",
    @@ -338,7 +346,7 @@
                 Emission::Mempool(mempool_emission) => {
                     let start_apply_mempool = Instant::now();
                     wallet.apply_unconfirmed_txs(mempool_emission.iter().map(|(tx, time)| (tx, *time)));
    -                wallet.commit()?;
    +                wallet.commit_to(&mut db)?;
                     println!(
                         "Applied unconfirmed transactions in {}s",
                         start_apply_mempool.elapsed().as_secs_f32()
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.PersistBackend.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.PersistBackend.js
    new file mode 100644
    index 0000000000..542eeed381
    --- /dev/null
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.PersistBackend.js
    @@ -0,0 +1,5 @@
    +(function() {var implementors = {
    +"bdk_chain":[],
    +"bdk_file_store":[["impl<C> PersistBackend<C> for Store<C>"]],
    +"bdk_sqlite":[["impl<K, A> PersistBackend<CombinedChangeSet<K, A>> for Store<K, A>
    where\n K: Ord + for<'de> Deserialize<'de> + Serialize + Send,\n A: Anchor + for<'de> Deserialize<'de> + Serialize + Send,
    "]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.StageExt.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.StageExt.js new file mode 100644 index 0000000000..1a8211de1a --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/persist/trait.StageExt.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"bdk_chain":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/tx_data_traits/trait.Append.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/tx_data_traits/trait.Append.js index 07fbb5e61e..1a8211de1a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/tx_data_traits/trait.Append.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_chain/tx_data_traits/trait.Append.js @@ -1,4 +1,3 @@ (function() {var implementors = { -"bdk_chain":[], -"bdk_persist":[["impl<K: Ord, A: Anchor> Append for CombinedChangeSet<K, A>"]] +"bdk_chain":[] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_persist/persist/trait.PersistBackend.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_persist/persist/trait.PersistBackend.js deleted file mode 100644 index cccad41209..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/bdk_persist/persist/trait.PersistBackend.js +++ /dev/null @@ -1,5 +0,0 @@ -(function() {var implementors = { -"bdk_file_store":[["impl<C> PersistBackend<C> for Store<C>"]], -"bdk_persist":[], -"bdk_sqlite":[["impl<K, A, C> PersistBackend<C> for Store<K, A>
    where\n K: Ord + for<'de> Deserialize<'de> + Serialize + Send,\n A: Anchor + for<'de> Deserialize<'de> + Serialize + Send,\n C: Clone + From<CombinedChangeSet<K, A>> + Into<CombinedChangeSet<K, A>>,
    "]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js index bec1ab5391..f1497887e2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/clone/trait.Clone.js @@ -1,7 +1,6 @@ (function() {var implementors = { -"bdk_chain":[["impl Clone for ConfirmationTime"],["impl Clone for ApplyHeaderError"],["impl Clone for Balance"],["impl Clone for AlterCheckPointError"],["impl Clone for CannotConnectError"],["impl Clone for CheckPoint"],["impl Clone for LocalChain"],["impl Clone for MissingGenesisError"],["impl Clone for BlockId"],["impl Clone for ConfirmationHeightAnchor"],["impl Clone for ConfirmationTimeHeightAnchor"],["impl Clone for DescriptorId"],["impl<'a, T: Clone, A: Clone> Clone for CanonicalTx<'a, T, A>"],["impl<'a, T: Clone, A: Clone> Clone for TxNode<'a, T, A>"],["impl<A: Clone> Clone for ChainPosition<A>"],["impl<A: Clone> Clone for FullTxOut<A>"],["impl<A: Clone> Clone for ChangeSet<A>"],["impl<A: Clone> Clone for TxGraph<A>"],["impl<A: Clone, IA: Clone> Clone for ChangeSet<A, IA>"],["impl<D: Clone> Clone for SpkIterator<D>"],["impl<I: Clone> Clone for SpkTxOutIndex<I>"],["impl<K: Clone> Clone for InsertDescriptorError<K>"],["impl<K: Clone> Clone for ChangeSet<K>"],["impl<K: Clone> Clone for KeychainTxOutIndex<K>"],["impl<K: Clone> Clone for NoSuchKeychain<K>"]], +"bdk_chain":[["impl Clone for ConfirmationTime"],["impl Clone for ApplyHeaderError"],["impl Clone for Balance"],["impl Clone for AlterCheckPointError"],["impl Clone for CannotConnectError"],["impl Clone for CheckPoint"],["impl Clone for LocalChain"],["impl Clone for MissingGenesisError"],["impl Clone for BlockId"],["impl Clone for ConfirmationHeightAnchor"],["impl Clone for ConfirmationTimeHeightAnchor"],["impl Clone for DescriptorId"],["impl<'a, T: Clone, A: Clone> Clone for CanonicalTx<'a, T, A>"],["impl<'a, T: Clone, A: Clone> Clone for TxNode<'a, T, A>"],["impl<A: Clone> Clone for ChainPosition<A>"],["impl<A: Clone> Clone for FullTxOut<A>"],["impl<A: Clone> Clone for ChangeSet<A>"],["impl<A: Clone> Clone for TxGraph<A>"],["impl<A: Clone, IA: Clone> Clone for ChangeSet<A, IA>"],["impl<D: Clone> Clone for SpkIterator<D>"],["impl<I: Clone> Clone for SpkTxOutIndex<I>"],["impl<K: Clone> Clone for InsertDescriptorError<K>"],["impl<K: Clone> Clone for ChangeSet<K>"],["impl<K: Clone> Clone for KeychainTxOutIndex<K>"],["impl<K: Clone> Clone for NoSuchKeychain<K>"],["impl<K: Clone, A: Clone> Clone for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl Clone for ExcessStrategyKind"],["impl Clone for SelectionConstraint"],["impl Clone for CoinSelectorOpt"],["impl Clone for ExcessStrategy"],["impl Clone for Selection"],["impl Clone for SelectionError"],["impl Clone for WeightedValue"],["impl<'a> Clone for CoinSelector<'a>"]], -"bdk_persist":[["impl<K: Clone, A: Clone> Clone for CombinedChangeSet<K, A>"]], "bdk_tmp_plan":[["impl Clone for SigningError"],["impl Clone for SatisfactionMaterial"],["impl<AK: Clone> Clone for Plan<AK>"],["impl<Ak: Clone> Clone for RequiredSignatures<Ak>"],["impl<Ak: Clone> Clone for PlanKey<Ak>"],["impl<Ak: Clone> Clone for Requirements<Ak>"],["impl<K: Clone> Clone for Assets<K>"]], "bdk_wallet":[["impl Clone for PkOrF"],["impl Clone for Satisfaction"],["impl Clone for SatisfiableItem"],["impl Clone for KeychainKind"],["impl Clone for Utxo"],["impl Clone for ScriptContextEnum"],["impl Clone for MiniscriptPsbtError"],["impl Clone for SignerContext"],["impl Clone for SignerId"],["impl Clone for TapLeavesOptions"],["impl Clone for ChangeSpendPolicy"],["impl Clone for TxOrdering"],["impl Clone for Condition"],["impl Clone for Policy"],["impl Clone for PrivateKeyGenerateOptions"],["impl Clone for LocalOutput"],["impl Clone for WeightedUtxo"],["impl Clone for BranchAndBoundCoinSelection"],["impl Clone for LargestFirstCoinSelection"],["impl Clone for OldestFirstCoinSelection"],["impl Clone for SignOptions"],["impl Clone for SignerOrdering"],["impl Clone for SignersContainer"],["impl Clone for Update"],["impl<'a> Clone for BuildSatisfaction<'a>"],["impl<'a, Cs: Clone> Clone for TxBuilder<'a, Cs>"],["impl<K: Clone, Ctx: ScriptContext> Clone for GeneratedKey<K, Ctx>"],["impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>"]], "example_bitcoind_rpc_polling":[["impl Clone for RpcCommands"],["impl Clone for RpcArgs"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js index 147e590700..3f0f427688 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/cmp/trait.PartialEq.js @@ -1,7 +1,6 @@ (function() {var implementors = { -"bdk_chain":[["impl PartialEq for ConfirmationTime"],["impl PartialEq for ApplyHeaderError"],["impl PartialEq for CalculateFeeError"],["impl PartialEq for Balance"],["impl PartialEq for AlterCheckPointError"],["impl PartialEq for CannotConnectError"],["impl PartialEq for CheckPoint"],["impl PartialEq for LocalChain"],["impl PartialEq for MissingGenesisError"],["impl PartialEq for BlockId"],["impl PartialEq for ConfirmationHeightAnchor"],["impl PartialEq for ConfirmationTimeHeightAnchor"],["impl PartialEq for DescriptorId"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for TxNode<'a, T, A>"],["impl<A: PartialEq> PartialEq for ChainPosition<A>"],["impl<A: PartialEq> PartialEq for FullTxOut<A>"],["impl<A: PartialEq> PartialEq for ChangeSet<A>"],["impl<A: PartialEq> PartialEq for TxGraph<A>"],["impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>"],["impl<K: PartialEq> PartialEq for InsertDescriptorError<K>"],["impl<K: PartialEq> PartialEq for ChangeSet<K>"],["impl<K: PartialEq> PartialEq for NoSuchKeychain<K>"]], +"bdk_chain":[["impl PartialEq for ConfirmationTime"],["impl PartialEq for ApplyHeaderError"],["impl PartialEq for CalculateFeeError"],["impl PartialEq for Balance"],["impl PartialEq for AlterCheckPointError"],["impl PartialEq for CannotConnectError"],["impl PartialEq for CheckPoint"],["impl PartialEq for LocalChain"],["impl PartialEq for MissingGenesisError"],["impl PartialEq for BlockId"],["impl PartialEq for ConfirmationHeightAnchor"],["impl PartialEq for ConfirmationTimeHeightAnchor"],["impl PartialEq for DescriptorId"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq for TxNode<'a, T, A>"],["impl<A: PartialEq> PartialEq for ChainPosition<A>"],["impl<A: PartialEq> PartialEq for FullTxOut<A>"],["impl<A: PartialEq> PartialEq for ChangeSet<A>"],["impl<A: PartialEq> PartialEq for TxGraph<A>"],["impl<A: PartialEq, IA: PartialEq> PartialEq for ChangeSet<A, IA>"],["impl<K: PartialEq> PartialEq for InsertDescriptorError<K>"],["impl<K: PartialEq> PartialEq for ChangeSet<K>"],["impl<K: PartialEq> PartialEq for NoSuchKeychain<K>"],["impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl PartialEq for ExcessStrategyKind"],["impl PartialEq for SelectionConstraint"]], -"bdk_persist":[["impl<K: PartialEq, A: PartialEq> PartialEq for CombinedChangeSet<K, A>"]], "bdk_wallet":[["impl PartialEq for PkOrF"],["impl PartialEq for PolicyError"],["impl PartialEq for Satisfaction"],["impl PartialEq for SatisfiableItem"],["impl PartialEq for KeychainKind"],["impl PartialEq for Utxo"],["impl PartialEq for ScriptContextEnum"],["impl PartialEq for SignerContext"],["impl PartialEq for SignerId"],["impl PartialEq for TapLeavesOptions"],["impl PartialEq for ChangeSpendPolicy"],["impl PartialEq for TxOrdering"],["impl PartialEq for Condition"],["impl PartialEq for Policy"],["impl PartialEq for LocalOutput"],["impl PartialEq for WeightedUtxo"],["impl PartialEq for SignerOrdering"],["impl PartialEq for AddressInfo"]], "example_cli":[["impl PartialEq for Keychain"]], "example_electrum":[["impl PartialEq for ScanOptions"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js index ffa9a2c80c..1e98eceb9a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/convert/trait.From.js @@ -1,8 +1,7 @@ (function() {var implementors = { -"bdk_chain":[["impl From<(&u32, &BlockHash)> for BlockId"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<DescriptorId> for Hash"],["impl From<Hash> for DescriptorId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"]], +"bdk_chain":[["impl From<(&u32, &BlockHash)> for BlockId"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<DescriptorId> for Hash"],["impl From<Hash> for DescriptorId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"],["impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>"],["impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>"],["impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl From<usize> for BnbLimit"],["impl From<Duration> for BnbLimit"]], "bdk_file_store":[["impl From<Error> for FileError"],["impl From<Error> for IterError"]], -"bdk_persist":[["impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>"],["impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>"]], "bdk_tmp_plan":[["impl From<Error> for SigningError"],["impl From<P2wpkhError> for SigningError"],["impl From<TaprootError> for SigningError"]], "bdk_wallet":[["impl From<Error> for CreateTxError"],["impl From<PolicyError> for Error"],["impl From<PolicyError> for CreateTxError"],["impl From<SatisfiableItem> for Policy"],["impl From<KeyError> for Error"],["impl From<Error> for CreateTxError"],["impl From<MiniscriptPsbtError> for CreateTxError"],["impl From<bool> for Satisfaction"],["impl From<FullScanResult<KeychainKind>> for Update"],["impl From<SyncResult> for Update"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for KeyError"],["impl From<Error> for KeyError"],["impl From<Error> for CreateTxError"],["impl From<Fingerprint> for SignerId"],["impl From<Hash> for SignerId"],["impl From<HexToBytesError> for Error"],["impl From<InputsIndexError> for SignerError"],["impl From<P2wpkhError> for SignerError"],["impl From<ParsePublicKeyError> for Error"],["impl From<TaprootError> for SignerError"],["impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>"],["impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>"]], "example_bitcoind_rpc_polling":[["impl From<RpcArgs> for Auth"]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js index 9a56fbd908..42750758cd 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/default/trait.Default.js @@ -1,6 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl Default for Balance"],["impl Default for BlockId"],["impl Default for ConfirmationHeightAnchor"],["impl Default for ConfirmationTimeHeightAnchor"],["impl<A> Default for ChangeSet<A>"],["impl<A> Default for TxGraph<A>"],["impl<A, I: Default> Default for IndexedTxGraph<A, I>"],["impl<A, IA: Default> Default for ChangeSet<A, IA>"],["impl<I> Default for SpkTxOutIndex<I>"],["impl<K> Default for ChangeSet<K>"],["impl<K> Default for KeychainTxOutIndex<K>"]], -"bdk_persist":[["impl<K, A> Default for CombinedChangeSet<K, A>"]], +"bdk_chain":[["impl Default for Balance"],["impl Default for BlockId"],["impl Default for ConfirmationHeightAnchor"],["impl Default for ConfirmationTimeHeightAnchor"],["impl<A> Default for ChangeSet<A>"],["impl<A> Default for TxGraph<A>"],["impl<A, I: Default> Default for IndexedTxGraph<A, I>"],["impl<A, IA: Default> Default for ChangeSet<A, IA>"],["impl<I> Default for SpkTxOutIndex<I>"],["impl<K> Default for ChangeSet<K>"],["impl<K> Default for KeychainTxOutIndex<K>"],["impl<K, A> Default for CombinedChangeSet<K, A>"]], "bdk_tmp_plan":[["impl Default for SatisfactionMaterial"],["impl<Ak> Default for RequiredSignatures<Ak>"],["impl<Ak> Default for Requirements<Ak>"],["impl<K> Default for Assets<K>"]], "bdk_wallet":[["impl Default for TapLeavesOptions"],["impl Default for ChangeSpendPolicy"],["impl Default for TxOrdering"],["impl Default for Condition"],["impl Default for PrivateKeyGenerateOptions"],["impl Default for BranchAndBoundCoinSelection"],["impl Default for LargestFirstCoinSelection"],["impl Default for OldestFirstCoinSelection"],["impl Default for SignOptions"],["impl Default for SignerOrdering"],["impl Default for SignersContainer"],["impl Default for Update"]], "example_cli":[["impl Default for CoinSelectionAlgo"]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js index 4e2755905a..4f4657fd6d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/fmt/trait.Debug.js @@ -1,11 +1,10 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<B: Debug> Debug for BlockEvent<B>"]], -"bdk_chain":[["impl Debug for ConfirmationTime"],["impl Debug for ApplyHeaderError"],["impl Debug for CalculateFeeError"],["impl Debug for Balance"],["impl Debug for AlterCheckPointError"],["impl Debug for CannotConnectError"],["impl Debug for CheckPoint"],["impl Debug for LocalChain"],["impl Debug for MissingGenesisError"],["impl Debug for BlockId"],["impl Debug for ConfirmationHeightAnchor"],["impl Debug for ConfirmationTimeHeightAnchor"],["impl Debug for DescriptorId"],["impl<'a, T: Debug, A: Debug> Debug for CanonicalTx<'a, T, A>"],["impl<'a, T: Debug, A: Debug> Debug for TxNode<'a, T, A>"],["impl<A: Debug> Debug for ChainPosition<A>"],["impl<A: Debug> Debug for FullTxOut<A>"],["impl<A: Debug> Debug for ChangeSet<A>"],["impl<A: Debug> Debug for TxGraph<A>"],["impl<A: Debug, I: Debug> Debug for IndexedTxGraph<A, I>"],["impl<A: Debug, IA: Debug> Debug for ChangeSet<A, IA>"],["impl<I: Debug> Debug for SpkTxOutIndex<I>"],["impl<K: Debug> Debug for InsertDescriptorError<K>"],["impl<K: Debug> Debug for ChangeSet<K>"],["impl<K: Debug> Debug for KeychainTxOutIndex<K>"],["impl<K: Debug> Debug for NoSuchKeychain<K>"]], +"bdk_chain":[["impl Debug for ConfirmationTime"],["impl Debug for ApplyHeaderError"],["impl Debug for CalculateFeeError"],["impl Debug for Balance"],["impl Debug for AlterCheckPointError"],["impl Debug for CannotConnectError"],["impl Debug for CheckPoint"],["impl Debug for LocalChain"],["impl Debug for MissingGenesisError"],["impl Debug for BlockId"],["impl Debug for ConfirmationHeightAnchor"],["impl Debug for ConfirmationTimeHeightAnchor"],["impl Debug for DescriptorId"],["impl<'a, T: Debug, A: Debug> Debug for CanonicalTx<'a, T, A>"],["impl<'a, T: Debug, A: Debug> Debug for TxNode<'a, T, A>"],["impl<A: Debug> Debug for ChainPosition<A>"],["impl<A: Debug> Debug for FullTxOut<A>"],["impl<A: Debug> Debug for ChangeSet<A>"],["impl<A: Debug> Debug for TxGraph<A>"],["impl<A: Debug, I: Debug> Debug for IndexedTxGraph<A, I>"],["impl<A: Debug, IA: Debug> Debug for ChangeSet<A, IA>"],["impl<I: Debug> Debug for SpkTxOutIndex<I>"],["impl<K: Debug> Debug for InsertDescriptorError<K>"],["impl<K: Debug> Debug for ChangeSet<K>"],["impl<K: Debug> Debug for KeychainTxOutIndex<K>"],["impl<K: Debug> Debug for NoSuchKeychain<K>"],["impl<K: Debug, A: Debug> Debug for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl Debug for ExcessStrategyKind"],["impl Debug for SelectionConstraint"],["impl Debug for CoinSelectorOpt"],["impl Debug for ExcessStrategy"],["impl Debug for Selection"],["impl Debug for SelectionError"],["impl Debug for WeightedValue"],["impl<'a> Debug for CoinSelector<'a>"]], "bdk_electrum":[["impl<E: Debug> Debug for BdkElectrumClient<E>"]], "bdk_file_store":[["impl Debug for FileError"],["impl Debug for IterError"],["impl<C> Debug for Store<C>
    where\n C: Sync + Send + Debug,
    "],["impl<C: Debug> Debug for AggregateChangesetsError<C>"]], "bdk_hwi":[["impl Debug for HWISigner"]], -"bdk_persist":[["impl<C: Debug> Debug for Persist<C>"],["impl<K: Debug, A: Debug> Debug for CombinedChangeSet<K, A>"]], "bdk_sqlite":[["impl Debug for Error"],["impl<K, A> Debug for Store<K, A>"]], "bdk_tmp_plan":[["impl Debug for SigningError"],["impl Debug for SatisfactionMaterial"],["impl<AK: Debug> Debug for Plan<AK>"],["impl<Ak: Debug> Debug for RequiredSignatures<Ak>"],["impl<Ak: Debug> Debug for PlanKey<Ak>"],["impl<Ak: Debug> Debug for Requirements<Ak>"],["impl<K: Debug> Debug for Assets<K>"]], "bdk_wallet":[["impl Debug for Error"],["impl Debug for PkOrF"],["impl Debug for PolicyError"],["impl Debug for Satisfaction"],["impl Debug for SatisfiableItem"],["impl Debug for KeychainKind"],["impl Debug for Utxo"],["impl Debug for KeyError"],["impl Debug for ScriptContextEnum"],["impl Debug for Error"],["impl Debug for Excess"],["impl Debug for ApplyBlockError"],["impl Debug for InsertTxError"],["impl Debug for LoadError"],["impl Debug for NewError"],["impl Debug for NewOrLoadError"],["impl Debug for BuildFeeBumpError"],["impl Debug for CreateTxError"],["impl Debug for MiniscriptPsbtError"],["impl Debug for SignerContext"],["impl Debug for SignerError"],["impl Debug for SignerId"],["impl Debug for TapLeavesOptions"],["impl Debug for AddForeignUtxoError"],["impl Debug for AddUtxoError"],["impl Debug for ChangeSpendPolicy"],["impl Debug for TxOrdering"],["impl Debug for Condition"],["impl Debug for Policy"],["impl Debug for PrivateKeyGenerateOptions"],["impl Debug for LocalOutput"],["impl Debug for WeightedUtxo"],["impl Debug for BranchAndBoundCoinSelection"],["impl Debug for CoinSelectionResult"],["impl Debug for LargestFirstCoinSelection"],["impl Debug for OldestFirstCoinSelection"],["impl Debug for FullyNodedExport"],["impl Debug for SignOptions"],["impl Debug for SignerOrdering"],["impl Debug for SignersContainer"],["impl Debug for AddressInfo"],["impl Debug for Update"],["impl Debug for Wallet"],["impl<'a> Debug for BuildSatisfaction<'a>"],["impl<'a, Cs: Debug> Debug for TxBuilder<'a, Cs>"],["impl<Ctx: Debug + ScriptContext> Debug for DescriptorKey<Ctx>"],["impl<S: Debug + Sized + Debug + Clone> Debug for SignerWrapper<S>"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js index 0056774fbb..aa59f8f512 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Freeze.js @@ -1,11 +1,10 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Freeze for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Freeze for BlockEvent<B>
    where\n B: Freeze,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Freeze for Balance",1,["bdk_chain::keychain::Balance"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Freeze for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>
    where\n T: Freeze,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>
    where\n T: Freeze,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>
    where\n F: Freeze,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>
    where\n F: Freeze,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Freeze for ChainPosition<A>
    where\n A: Freeze,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Freeze for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Freeze for FullTxOut<A>
    where\n A: Freeze,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>
    where\n I: Freeze,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>
    where\n IA: Freeze,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Freeze for SpkIterator<D>
    where\n D: Freeze,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !Freeze for InsertDescriptorError<K>",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Freeze for NoSuchKeychain<K>
    where\n K: Freeze,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Freeze for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Freeze for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl Freeze for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Freeze for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Freeze for Balance",1,["bdk_chain::keychain::Balance"]],["impl Freeze for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Freeze for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Freeze for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Freeze for CanonicalTx<'a, T, A>
    where\n T: Freeze,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Freeze for TxNode<'a, T, A>
    where\n T: Freeze,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Freeze for TxAncestors<'g, A, F>
    where\n F: Freeze,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for TxDescendants<'g, A, F>
    where\n F: Freeze,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Freeze for ChainPosition<A>
    where\n A: Freeze,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Freeze for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Freeze for FullTxOut<A>
    where\n A: Freeze,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Freeze for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Freeze for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Freeze for IndexedTxGraph<A, I>
    where\n I: Freeze,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for ChangeSet<A, IA>
    where\n IA: Freeze,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Freeze for SpkIterator<D>
    where\n D: Freeze,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Freeze for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !Freeze for InsertDescriptorError<K>",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Freeze for ChangeSet<K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Freeze for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Freeze for NoSuchKeychain<K>
    where\n K: Freeze,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Freeze for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Freeze for CombinedChangeSet<K, A>",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> Freeze for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl Freeze for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Freeze for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Freeze for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Freeze for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Freeze for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Freeze for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Freeze for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Freeze for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Freeze for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Freeze for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> Freeze for BnbIter<'c, 'f, S>
    where\n S: Freeze,
    ",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Freeze for Bnb<'c, S>
    where\n S: Freeze,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl Freeze for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> !Freeze for BdkElectrumClient<E>",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Freeze for ElectrumFullScanResult<K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl Freeze for FileError",1,["bdk_file_store::FileError"]],["impl Freeze for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Freeze for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Freeze for AggregateChangesetsError<C>
    where\n C: Freeze,
    ",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Freeze for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Freeze for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> Freeze for Persist<C>
    where\n C: Freeze,
    ",1,["bdk_persist::persist::Persist"]],["impl<K, A> Freeze for CombinedChangeSet<K, A>",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl Freeze for Error",1,["bdk_sqlite::Error"]],["impl<K, A> !Freeze for Store<K, A>",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl !Freeze for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl Freeze for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl Freeze for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> !Freeze for Plan<AK>",1,["bdk_tmp_plan::Plan"]],["impl<Ak> Freeze for PlanState<Ak>
    where\n Ak: Freeze,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> Freeze for RequiredSignatures<Ak>
    where\n Ak: Freeze,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> Freeze for PlanKey<Ak>
    where\n Ak: Freeze,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> Freeze for Requirements<Ak>
    where\n Ak: Freeze,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> Freeze for Assets<K>",1,["bdk_tmp_plan::Assets"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js index 4d03041d57..65b33f68c9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Send.js @@ -1,17 +1,16 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Send for Emitter<'c, C>
    where\n C: Sync,
    ",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Send for BlockEvent<B>
    where\n B: Send,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Send for Balance",1,["bdk_chain::keychain::Balance"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Send for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Send for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>
    where\n T: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Send for TxNode<'a, T, A>
    where\n T: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>
    where\n F: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>
    where\n F: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Send for ChainPosition<A>
    where\n A: Send,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Send for SyncResult<A>
    where\n A: Send,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Send for FullTxOut<A>
    where\n A: Send,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Send for ChangeSet<A>
    where\n A: Send,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Send for TxGraph<A>
    where\n A: Send,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Send for IndexedTxGraph<A, I>
    where\n I: Send,\n A: Send,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>
    where\n IA: Send,\n A: Send,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Send for SpkIterator<D>
    where\n D: Send,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Send for SpkTxOutIndex<I>
    where\n I: Send,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> Send for InsertDescriptorError<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Send for ChangeSet<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Send for NoSuchKeychain<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Send for FullScanRequest<K>
    where\n K: Send,
    ",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Send for FullScanResult<K, A>
    where\n K: Send,\n A: Send,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl Send for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Send for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Send for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Send for Balance",1,["bdk_chain::keychain::Balance"]],["impl Send for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Send for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Send for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Send for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Send for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Send for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Send for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Send for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Send for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Send for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Send for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Send for CanonicalTx<'a, T, A>
    where\n T: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Send for TxNode<'a, T, A>
    where\n T: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Send for TxAncestors<'g, A, F>
    where\n F: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Send for TxDescendants<'g, A, F>
    where\n F: Send,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Send for ChainPosition<A>
    where\n A: Send,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Send for SyncResult<A>
    where\n A: Send,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Send for FullTxOut<A>
    where\n A: Send,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Send for ChangeSet<A>
    where\n A: Send,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Send for TxGraph<A>
    where\n A: Send,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Send for IndexedTxGraph<A, I>
    where\n I: Send,\n A: Send,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Send for ChangeSet<A, IA>
    where\n IA: Send,\n A: Send,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Send for SpkIterator<D>
    where\n D: Send,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Send for SpkTxOutIndex<I>
    where\n I: Send,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> Send for InsertDescriptorError<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Send for ChangeSet<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Send for KeychainTxOutIndex<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Send for NoSuchKeychain<K>
    where\n K: Send,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Send for FullScanRequest<K>
    where\n K: Send,
    ",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Send for CombinedChangeSet<K, A>
    where\n K: Send,\n A: Send,
    ",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> Send for FullScanResult<K, A>
    where\n K: Send,\n A: Send,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl Send for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Send for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Send for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Send for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Send for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Send for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Send for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Send for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Send for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Send for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !Send for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Send for Bnb<'c, S>
    where\n S: Send,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl Send for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Send for BdkElectrumClient<E>
    where\n E: Send,
    ",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Send for ElectrumFullScanResult<K>
    where\n K: Send,
    ",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl Send for FileError",1,["bdk_file_store::FileError"]],["impl Send for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Send for EntryIter<'t, T>
    where\n T: Send,
    ",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Send for AggregateChangesetsError<C>
    where\n C: Send,
    ",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Send for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Send for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> Send for Persist<C>
    where\n C: Send,
    ",1,["bdk_persist::persist::Persist"]],["impl<K, A> Send for CombinedChangeSet<K, A>
    where\n K: Send,\n A: Send,
    ",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl Send for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Send for Store<K, A>
    where\n K: Send,\n A: Send,
    ",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl Send for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl Send for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl Send for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> Send for Plan<AK>
    where\n AK: Send,
    ",1,["bdk_tmp_plan::Plan"]],["impl<Ak> Send for PlanState<Ak>
    where\n Ak: Send,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> Send for RequiredSignatures<Ak>
    where\n Ak: Send,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> Send for PlanKey<Ak>
    where\n Ak: Send,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> Send for Requirements<Ak>
    where\n Ak: Send,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> Send for Assets<K>
    where\n K: Send,
    ",1,["bdk_tmp_plan::Assets"]]], "bdk_wallet":[["impl Send for Error",1,["bdk_wallet::descriptor::error::Error"]],["impl Send for PkOrF",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl Send for PolicyError",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl Send for Satisfaction",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl Send for SatisfiableItem",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl Send for KeychainKind",1,["bdk_wallet::types::KeychainKind"]],["impl Send for Utxo",1,["bdk_wallet::types::Utxo"]],["impl Send for KeyError",1,["bdk_wallet::keys::KeyError"]],["impl Send for ScriptContextEnum",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl Send for Error",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl Send for Excess",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl Send for ApplyBlockError",1,["bdk_wallet::wallet::ApplyBlockError"]],["impl Send for InsertTxError",1,["bdk_wallet::wallet::InsertTxError"]],["impl Send for LoadError",1,["bdk_wallet::wallet::LoadError"]],["impl Send for NewError",1,["bdk_wallet::wallet::NewError"]],["impl Send for NewOrLoadError",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl Send for BuildFeeBumpError",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl Send for CreateTxError",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl Send for MiniscriptPsbtError",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl Send for SignerContext",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl Send for SignerError",1,["bdk_wallet::wallet::signer::SignerError"]],["impl Send for SignerId",1,["bdk_wallet::wallet::signer::SignerId"]],["impl Send for TapLeavesOptions",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl Send for AddForeignUtxoError",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl Send for AddUtxoError",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl Send for ChangeSpendPolicy",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl Send for TxOrdering",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl Send for Condition",1,["bdk_wallet::descriptor::policy::Condition"]],["impl Send for Policy",1,["bdk_wallet::descriptor::policy::Policy"]],["impl Send for PrivateKeyGenerateOptions",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl Send for LocalOutput",1,["bdk_wallet::types::LocalOutput"]],["impl Send for WeightedUtxo",1,["bdk_wallet::types::WeightedUtxo"]],["impl Send for BranchAndBoundCoinSelection",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Send for CoinSelectionResult",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl Send for LargestFirstCoinSelection",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Send for OldestFirstCoinSelection",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Send for FullyNodedExport",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl Send for SignOptions",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl Send for SignerOrdering",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl Send for SignersContainer",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl Send for AddressInfo",1,["bdk_wallet::wallet::AddressInfo"]],["impl Send for Update",1,["bdk_wallet::wallet::Update"]],["impl Send for Wallet",1,["bdk_wallet::wallet::Wallet"]],["impl<'a> Send for BuildSatisfaction<'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<'a, Cs> !Send for TxBuilder<'a, Cs>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl<Ctx> Send for DescriptorKey<Ctx>
    where\n Ctx: Send,
    ",1,["bdk_wallet::keys::DescriptorKey"]],["impl<Ctx> Send for ExtendedKey<Ctx>
    where\n Ctx: Send,
    ",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K> Send for Bip44<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> Send for Bip44Public<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> Send for Bip49<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> Send for Bip49Public<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> Send for Bip84<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> Send for Bip84Public<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> Send for Bip86<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> Send for Bip86Public<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<K> Send for P2Pkh<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> Send for P2TR<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> Send for P2Wpkh<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> Send for P2Wpkh_P2Sh<K>
    where\n K: Send,
    ",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K, Ctx> Send for GeneratedKey<K, Ctx>
    where\n K: Send,\n Ctx: Send,
    ",1,["bdk_wallet::keys::GeneratedKey"]],["impl<S> Send for SignerWrapper<S>
    where\n S: Send,
    ",1,["bdk_wallet::wallet::signer::SignerWrapper"]]], "example_bitcoind_rpc_polling":[["impl Send for Emission",1,["example_bitcoind_rpc_polling::Emission"]],["impl Send for RpcCommands",1,["example_bitcoind_rpc_polling::RpcCommands"]],["impl Send for RpcArgs",1,["example_bitcoind_rpc_polling::RpcArgs"]]], -"example_cli":[["impl Send for AddressCmd",1,["example_cli::AddressCmd"]],["impl Send for CoinSelectionAlgo",1,["example_cli::CoinSelectionAlgo"]],["impl Send for Keychain",1,["example_cli::Keychain"]],["impl Send for TxOutCmd",1,["example_cli::TxOutCmd"]],["impl Send for CreateTxChange",1,["example_cli::CreateTxChange"]],["impl<CS, S> Send for Commands<CS, S>
    where\n CS: Send,\n S: Send,
    ",1,["example_cli::Commands"]],["impl<CS, S> Send for Args<CS, S>
    where\n CS: Send,\n S: Send,
    ",1,["example_cli::Args"]],["impl<CS, S, C> Send for Init<CS, S, C>
    where\n C: Send,\n CS: Send,\n S: Send,
    ",1,["example_cli::Init"]]], +"example_cli":[["impl Send for AddressCmd",1,["example_cli::AddressCmd"]],["impl Send for CoinSelectionAlgo",1,["example_cli::CoinSelectionAlgo"]],["impl Send for Keychain",1,["example_cli::Keychain"]],["impl Send for TxOutCmd",1,["example_cli::TxOutCmd"]],["impl Send for CreateTxChange",1,["example_cli::CreateTxChange"]],["impl<CS, S> Send for Commands<CS, S>
    where\n CS: Send,\n S: Send,
    ",1,["example_cli::Commands"]],["impl<CS, S> Send for Args<CS, S>
    where\n CS: Send,\n S: Send,
    ",1,["example_cli::Args"]],["impl<CS, S, C> Send for Init<CS, S, C>
    where\n CS: Send,\n S: Send,
    ",1,["example_cli::Init"]]], "example_electrum":[["impl Send for ElectrumCommands",1,["example_electrum::ElectrumCommands"]],["impl Send for ElectrumArgs",1,["example_electrum::ElectrumArgs"]],["impl Send for ScanOptions",1,["example_electrum::ScanOptions"]]], "example_esplora":[["impl Send for EsploraCommands",1,["example_esplora::EsploraCommands"]],["impl Send for EsploraArgs",1,["example_esplora::EsploraArgs"]],["impl Send for ScanOptions",1,["example_esplora::ScanOptions"]]], "wallet_rpc":[["impl Send for Emission",1,["wallet_rpc::Emission"]],["impl Send for Args",1,["wallet_rpc::Args"]]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js index 0a9ed01375..ccb6384b8e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,7 +1,6 @@ (function() {var implementors = { -"bdk_chain":[["impl StructuralPartialEq for ConfirmationTime"],["impl StructuralPartialEq for ApplyHeaderError"],["impl StructuralPartialEq for CalculateFeeError"],["impl StructuralPartialEq for Balance"],["impl StructuralPartialEq for AlterCheckPointError"],["impl StructuralPartialEq for CannotConnectError"],["impl StructuralPartialEq for LocalChain"],["impl StructuralPartialEq for MissingGenesisError"],["impl StructuralPartialEq for BlockId"],["impl StructuralPartialEq for ConfirmationHeightAnchor"],["impl StructuralPartialEq for ConfirmationTimeHeightAnchor"],["impl StructuralPartialEq for DescriptorId"],["impl<'a, T, A> StructuralPartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T, A> StructuralPartialEq for TxNode<'a, T, A>"],["impl<A> StructuralPartialEq for ChainPosition<A>"],["impl<A> StructuralPartialEq for FullTxOut<A>"],["impl<A> StructuralPartialEq for ChangeSet<A>"],["impl<A> StructuralPartialEq for TxGraph<A>"],["impl<A, IA> StructuralPartialEq for ChangeSet<A, IA>"],["impl<K> StructuralPartialEq for InsertDescriptorError<K>"],["impl<K> StructuralPartialEq for ChangeSet<K>"],["impl<K> StructuralPartialEq for NoSuchKeychain<K>"]], +"bdk_chain":[["impl StructuralPartialEq for ConfirmationTime"],["impl StructuralPartialEq for ApplyHeaderError"],["impl StructuralPartialEq for CalculateFeeError"],["impl StructuralPartialEq for Balance"],["impl StructuralPartialEq for AlterCheckPointError"],["impl StructuralPartialEq for CannotConnectError"],["impl StructuralPartialEq for LocalChain"],["impl StructuralPartialEq for MissingGenesisError"],["impl StructuralPartialEq for BlockId"],["impl StructuralPartialEq for ConfirmationHeightAnchor"],["impl StructuralPartialEq for ConfirmationTimeHeightAnchor"],["impl StructuralPartialEq for DescriptorId"],["impl<'a, T, A> StructuralPartialEq for CanonicalTx<'a, T, A>"],["impl<'a, T, A> StructuralPartialEq for TxNode<'a, T, A>"],["impl<A> StructuralPartialEq for ChainPosition<A>"],["impl<A> StructuralPartialEq for FullTxOut<A>"],["impl<A> StructuralPartialEq for ChangeSet<A>"],["impl<A> StructuralPartialEq for TxGraph<A>"],["impl<A, IA> StructuralPartialEq for ChangeSet<A, IA>"],["impl<K> StructuralPartialEq for InsertDescriptorError<K>"],["impl<K> StructuralPartialEq for ChangeSet<K>"],["impl<K> StructuralPartialEq for NoSuchKeychain<K>"],["impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>"]], "bdk_coin_select":[["impl StructuralPartialEq for ExcessStrategyKind"],["impl StructuralPartialEq for SelectionConstraint"]], -"bdk_persist":[["impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>"]], "bdk_wallet":[["impl StructuralPartialEq for PkOrF"],["impl StructuralPartialEq for PolicyError"],["impl StructuralPartialEq for Satisfaction"],["impl StructuralPartialEq for SatisfiableItem"],["impl StructuralPartialEq for KeychainKind"],["impl StructuralPartialEq for Utxo"],["impl StructuralPartialEq for ScriptContextEnum"],["impl StructuralPartialEq for SignerContext"],["impl StructuralPartialEq for SignerId"],["impl StructuralPartialEq for TapLeavesOptions"],["impl StructuralPartialEq for ChangeSpendPolicy"],["impl StructuralPartialEq for TxOrdering"],["impl StructuralPartialEq for Condition"],["impl StructuralPartialEq for Policy"],["impl StructuralPartialEq for LocalOutput"],["impl StructuralPartialEq for WeightedUtxo"],["impl StructuralPartialEq for SignerOrdering"],["impl StructuralPartialEq for AddressInfo"]], "example_cli":[["impl StructuralPartialEq for Keychain"]], "example_electrum":[["impl StructuralPartialEq for ScanOptions"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js index 521a4ded86..3cee48fdf8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Sync.js @@ -1,17 +1,16 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Sync for Emitter<'c, C>
    where\n C: Sync,
    ",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Sync for BlockEvent<B>
    where\n B: Sync,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !Sync for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Sync for Balance",1,["bdk_chain::keychain::Balance"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Sync for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Sync for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>
    where\n T: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>
    where\n T: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>
    where\n F: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>
    where\n F: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Sync for ChainPosition<A>
    where\n A: Sync,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Sync for SyncResult<A>
    where\n A: Sync,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Sync for FullTxOut<A>
    where\n A: Sync,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Sync for ChangeSet<A>
    where\n A: Sync,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Sync for TxGraph<A>
    where\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Sync for IndexedTxGraph<A, I>
    where\n I: Sync,\n A: Sync,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>
    where\n IA: Sync,\n A: Sync,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Sync for SpkIterator<D>
    where\n D: Sync,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Sync for SpkTxOutIndex<I>
    where\n I: Sync,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !Sync for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Sync for InsertDescriptorError<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Sync for ChangeSet<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Sync for NoSuchKeychain<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> Sync for FullScanResult<K, A>
    where\n K: Sync,\n A: Sync,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl !Sync for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Sync for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Sync for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Sync for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Sync for Balance",1,["bdk_chain::keychain::Balance"]],["impl Sync for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Sync for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Sync for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Sync for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Sync for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Sync for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Sync for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Sync for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Sync for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Sync for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Sync for CanonicalTx<'a, T, A>
    where\n T: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Sync for TxNode<'a, T, A>
    where\n T: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Sync for TxAncestors<'g, A, F>
    where\n F: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Sync for TxDescendants<'g, A, F>
    where\n F: Sync,\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Sync for ChainPosition<A>
    where\n A: Sync,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Sync for SyncResult<A>
    where\n A: Sync,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Sync for FullTxOut<A>
    where\n A: Sync,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Sync for ChangeSet<A>
    where\n A: Sync,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Sync for TxGraph<A>
    where\n A: Sync,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Sync for IndexedTxGraph<A, I>
    where\n I: Sync,\n A: Sync,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Sync for ChangeSet<A, IA>
    where\n IA: Sync,\n A: Sync,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Sync for SpkIterator<D>
    where\n D: Sync,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Sync for SpkTxOutIndex<I>
    where\n I: Sync,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !Sync for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> Sync for InsertDescriptorError<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Sync for ChangeSet<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Sync for KeychainTxOutIndex<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Sync for NoSuchKeychain<K>
    where\n K: Sync,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> Sync for CombinedChangeSet<K, A>
    where\n K: Sync,\n A: Sync,
    ",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> Sync for FullScanResult<K, A>
    where\n K: Sync,\n A: Sync,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl Sync for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Sync for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Sync for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Sync for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Sync for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Sync for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Sync for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Sync for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Sync for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Sync for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !Sync for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Sync for Bnb<'c, S>
    where\n S: Sync,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl Sync for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Sync for BdkElectrumClient<E>
    where\n E: Sync,
    ",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Sync for ElectrumFullScanResult<K>
    where\n K: Sync,
    ",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl Sync for FileError",1,["bdk_file_store::FileError"]],["impl Sync for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Sync for EntryIter<'t, T>
    where\n T: Sync,
    ",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Sync for AggregateChangesetsError<C>
    where\n C: Sync,
    ",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Sync for Store<C>",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Sync for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> Sync for Persist<C>
    where\n C: Sync,
    ",1,["bdk_persist::persist::Persist"]],["impl<K, A> Sync for CombinedChangeSet<K, A>
    where\n K: Sync,\n A: Sync,
    ",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl Sync for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Sync for Store<K, A>
    where\n K: Sync,\n A: Sync,
    ",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl Sync for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl Sync for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl Sync for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> Sync for Plan<AK>
    where\n AK: Sync,
    ",1,["bdk_tmp_plan::Plan"]],["impl<Ak> Sync for PlanState<Ak>
    where\n Ak: Sync,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> Sync for RequiredSignatures<Ak>
    where\n Ak: Sync,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> Sync for PlanKey<Ak>
    where\n Ak: Sync,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> Sync for Requirements<Ak>
    where\n Ak: Sync,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> Sync for Assets<K>
    where\n K: Sync,
    ",1,["bdk_tmp_plan::Assets"]]], "bdk_wallet":[["impl Sync for Error",1,["bdk_wallet::descriptor::error::Error"]],["impl Sync for PkOrF",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl Sync for PolicyError",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl Sync for Satisfaction",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl Sync for SatisfiableItem",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl Sync for KeychainKind",1,["bdk_wallet::types::KeychainKind"]],["impl Sync for Utxo",1,["bdk_wallet::types::Utxo"]],["impl Sync for KeyError",1,["bdk_wallet::keys::KeyError"]],["impl Sync for ScriptContextEnum",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl Sync for Error",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl Sync for Excess",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl Sync for ApplyBlockError",1,["bdk_wallet::wallet::ApplyBlockError"]],["impl Sync for InsertTxError",1,["bdk_wallet::wallet::InsertTxError"]],["impl Sync for LoadError",1,["bdk_wallet::wallet::LoadError"]],["impl Sync for NewError",1,["bdk_wallet::wallet::NewError"]],["impl Sync for NewOrLoadError",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl Sync for BuildFeeBumpError",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl Sync for CreateTxError",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl Sync for MiniscriptPsbtError",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl Sync for SignerContext",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl Sync for SignerError",1,["bdk_wallet::wallet::signer::SignerError"]],["impl Sync for SignerId",1,["bdk_wallet::wallet::signer::SignerId"]],["impl Sync for TapLeavesOptions",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl Sync for AddForeignUtxoError",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl Sync for AddUtxoError",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl Sync for ChangeSpendPolicy",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl Sync for TxOrdering",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl Sync for Condition",1,["bdk_wallet::descriptor::policy::Condition"]],["impl Sync for Policy",1,["bdk_wallet::descriptor::policy::Policy"]],["impl Sync for PrivateKeyGenerateOptions",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl Sync for LocalOutput",1,["bdk_wallet::types::LocalOutput"]],["impl Sync for WeightedUtxo",1,["bdk_wallet::types::WeightedUtxo"]],["impl Sync for BranchAndBoundCoinSelection",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Sync for CoinSelectionResult",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl Sync for LargestFirstCoinSelection",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Sync for OldestFirstCoinSelection",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Sync for FullyNodedExport",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl Sync for SignOptions",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl Sync for SignerOrdering",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl Sync for SignersContainer",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl Sync for AddressInfo",1,["bdk_wallet::wallet::AddressInfo"]],["impl Sync for Update",1,["bdk_wallet::wallet::Update"]],["impl Sync for Wallet",1,["bdk_wallet::wallet::Wallet"]],["impl<'a> Sync for BuildSatisfaction<'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<'a, Cs> !Sync for TxBuilder<'a, Cs>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl<Ctx> Sync for DescriptorKey<Ctx>
    where\n Ctx: Sync,
    ",1,["bdk_wallet::keys::DescriptorKey"]],["impl<Ctx> Sync for ExtendedKey<Ctx>
    where\n Ctx: Sync,
    ",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K> Sync for Bip44<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> Sync for Bip44Public<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> Sync for Bip49<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> Sync for Bip49Public<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> Sync for Bip84<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> Sync for Bip84Public<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> Sync for Bip86<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> Sync for Bip86Public<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<K> Sync for P2Pkh<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> Sync for P2TR<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> Sync for P2Wpkh<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> Sync for P2Wpkh_P2Sh<K>
    where\n K: Sync,
    ",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K, Ctx> Sync for GeneratedKey<K, Ctx>
    where\n K: Sync,\n Ctx: Sync,
    ",1,["bdk_wallet::keys::GeneratedKey"]],["impl<S> Sync for SignerWrapper<S>
    where\n S: Sync,
    ",1,["bdk_wallet::wallet::signer::SignerWrapper"]]], "example_bitcoind_rpc_polling":[["impl Sync for Emission",1,["example_bitcoind_rpc_polling::Emission"]],["impl Sync for RpcCommands",1,["example_bitcoind_rpc_polling::RpcCommands"]],["impl Sync for RpcArgs",1,["example_bitcoind_rpc_polling::RpcArgs"]]], -"example_cli":[["impl Sync for AddressCmd",1,["example_cli::AddressCmd"]],["impl Sync for CoinSelectionAlgo",1,["example_cli::CoinSelectionAlgo"]],["impl Sync for Keychain",1,["example_cli::Keychain"]],["impl Sync for TxOutCmd",1,["example_cli::TxOutCmd"]],["impl Sync for CreateTxChange",1,["example_cli::CreateTxChange"]],["impl<CS, S> Sync for Commands<CS, S>
    where\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Commands"]],["impl<CS, S> Sync for Args<CS, S>
    where\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Args"]],["impl<CS, S, C> Sync for Init<CS, S, C>
    where\n C: Sync + Send,\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Init"]]], +"example_cli":[["impl Sync for AddressCmd",1,["example_cli::AddressCmd"]],["impl Sync for CoinSelectionAlgo",1,["example_cli::CoinSelectionAlgo"]],["impl Sync for Keychain",1,["example_cli::Keychain"]],["impl Sync for TxOutCmd",1,["example_cli::TxOutCmd"]],["impl Sync for CreateTxChange",1,["example_cli::CreateTxChange"]],["impl<CS, S> Sync for Commands<CS, S>
    where\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Commands"]],["impl<CS, S> Sync for Args<CS, S>
    where\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Args"]],["impl<CS, S, C> Sync for Init<CS, S, C>
    where\n CS: Sync,\n S: Sync,
    ",1,["example_cli::Init"]]], "example_electrum":[["impl Sync for ElectrumCommands",1,["example_electrum::ElectrumCommands"]],["impl Sync for ElectrumArgs",1,["example_electrum::ElectrumArgs"]],["impl Sync for ScanOptions",1,["example_electrum::ScanOptions"]]], "example_esplora":[["impl Sync for EsploraCommands",1,["example_esplora::EsploraCommands"]],["impl Sync for EsploraArgs",1,["example_esplora::EsploraArgs"]],["impl Sync for ScanOptions",1,["example_esplora::ScanOptions"]]], "wallet_rpc":[["impl Sync for Emission",1,["wallet_rpc::Emission"]],["impl Sync for Args",1,["wallet_rpc::Args"]]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js index 82027a823d..09c72f8b71 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/marker/trait.Unpin.js @@ -1,11 +1,10 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> Unpin for Emitter<'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Unpin for BlockEvent<B>
    where\n B: Unpin,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Unpin for Balance",1,["bdk_chain::keychain::Balance"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Unpin for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Unpin for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>
    where\n T: Unpin,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>
    where\n T: Unpin,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>
    where\n F: Unpin,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>
    where\n F: Unpin,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Unpin for ChainPosition<A>
    where\n A: Unpin,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Unpin for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Unpin for FullTxOut<A>
    where\n A: Unpin,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>
    where\n I: Unpin,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>
    where\n IA: Unpin,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Unpin for SpkIterator<D>
    where\n D: Unpin,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Unpin for SpkTxOutIndex<I>
    where\n I: Unpin,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> Unpin for InsertDescriptorError<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Unpin for NoSuchKeychain<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Unpin for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Unpin for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl Unpin for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Unpin for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl Unpin for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl Unpin for Balance",1,["bdk_chain::keychain::Balance"]],["impl Unpin for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Unpin for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Unpin for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl Unpin for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Unpin for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl Unpin for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Unpin for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl Unpin for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl Unpin for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Unpin for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl Unpin for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> Unpin for CanonicalTx<'a, T, A>
    where\n T: Unpin,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> Unpin for TxNode<'a, T, A>
    where\n T: Unpin,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> Unpin for TxAncestors<'g, A, F>
    where\n F: Unpin,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Unpin for TxDescendants<'g, A, F>
    where\n F: Unpin,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> Unpin for ChainPosition<A>
    where\n A: Unpin,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> Unpin for SyncResult<A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> Unpin for FullTxOut<A>
    where\n A: Unpin,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> Unpin for ChangeSet<A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> Unpin for TxGraph<A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> Unpin for IndexedTxGraph<A, I>
    where\n I: Unpin,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Unpin for ChangeSet<A, IA>
    where\n IA: Unpin,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> Unpin for SpkIterator<D>
    where\n D: Unpin,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> Unpin for SpkTxOutIndex<I>
    where\n I: Unpin,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> Unpin for InsertDescriptorError<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> Unpin for ChangeSet<K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Unpin for KeychainTxOutIndex<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> Unpin for NoSuchKeychain<K>
    where\n K: Unpin,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K> Unpin for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Unpin for CombinedChangeSet<K, A>",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> Unpin for FullScanResult<K, A>",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl Unpin for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl Unpin for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl Unpin for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Unpin for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Unpin for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl Unpin for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Unpin for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl Unpin for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Unpin for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> Unpin for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> Unpin for BnbIter<'c, 'f, S>
    where\n S: Unpin,
    ",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> Unpin for Bnb<'c, S>
    where\n S: Unpin,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl Unpin for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> Unpin for BdkElectrumClient<E>
    where\n E: Unpin,
    ",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> Unpin for ElectrumFullScanResult<K>",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl Unpin for FileError",1,["bdk_file_store::FileError"]],["impl Unpin for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> Unpin for EntryIter<'t, T>
    where\n T: Unpin,
    ",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> Unpin for AggregateChangesetsError<C>
    where\n C: Unpin,
    ",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> Unpin for Store<C>
    where\n C: Unpin,
    ",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl Unpin for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> Unpin for Persist<C>
    where\n C: Unpin,
    ",1,["bdk_persist::persist::Persist"]],["impl<K, A> Unpin for CombinedChangeSet<K, A>",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl Unpin for Error",1,["bdk_sqlite::Error"]],["impl<K, A> Unpin for Store<K, A>
    where\n K: Unpin,\n A: Unpin,
    ",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl Unpin for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl Unpin for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl Unpin for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> Unpin for Plan<AK>
    where\n AK: Unpin,
    ",1,["bdk_tmp_plan::Plan"]],["impl<Ak> Unpin for PlanState<Ak>
    where\n Ak: Unpin,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> Unpin for RequiredSignatures<Ak>
    where\n Ak: Unpin,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> Unpin for PlanKey<Ak>
    where\n Ak: Unpin,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> Unpin for Requirements<Ak>
    where\n Ak: Unpin,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> Unpin for Assets<K>
    where\n K: Unpin,
    ",1,["bdk_tmp_plan::Assets"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index ce12b1e2e5..88f30630b1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,11 +1,10 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> RefUnwindSafe for Emitter<'c, C>
    where\n C: RefUnwindSafe,
    ",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> RefUnwindSafe for BlockEvent<B>
    where\n B: RefUnwindSafe,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !RefUnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl RefUnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>
    where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>
    where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>
    where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>
    where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> RefUnwindSafe for ChainPosition<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> RefUnwindSafe for SyncResult<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> RefUnwindSafe for FullTxOut<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> RefUnwindSafe for ChangeSet<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> RefUnwindSafe for TxGraph<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>
    where\n I: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>
    where\n IA: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> RefUnwindSafe for SpkIterator<D>
    where\n D: RefUnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> RefUnwindSafe for SpkTxOutIndex<I>
    where\n I: RefUnwindSafe,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !RefUnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> RefUnwindSafe for InsertDescriptorError<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> RefUnwindSafe for ChangeSet<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for NoSuchKeychain<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> RefUnwindSafe for FullScanResult<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl !RefUnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl RefUnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl RefUnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl RefUnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>
    where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>
    where\n T: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> RefUnwindSafe for TxAncestors<'g, A, F>
    where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>
    where\n F: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> RefUnwindSafe for ChainPosition<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> RefUnwindSafe for SyncResult<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> RefUnwindSafe for FullTxOut<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> RefUnwindSafe for ChangeSet<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> RefUnwindSafe for TxGraph<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>
    where\n I: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for ChangeSet<A, IA>
    where\n IA: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> RefUnwindSafe for SpkIterator<D>
    where\n D: RefUnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> RefUnwindSafe for SpkTxOutIndex<I>
    where\n I: RefUnwindSafe,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !RefUnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> RefUnwindSafe for InsertDescriptorError<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> RefUnwindSafe for ChangeSet<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for NoSuchKeychain<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> RefUnwindSafe for FullScanResult<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl RefUnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl RefUnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl RefUnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl RefUnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl RefUnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl RefUnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl RefUnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl RefUnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl RefUnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> RefUnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !RefUnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> RefUnwindSafe for Bnb<'c, S>
    where\n S: RefUnwindSafe,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl RefUnwindSafe for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> RefUnwindSafe for BdkElectrumClient<E>
    where\n E: RefUnwindSafe,
    ",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> RefUnwindSafe for ElectrumFullScanResult<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl !RefUnwindSafe for FileError",1,["bdk_file_store::FileError"]],["impl !RefUnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> RefUnwindSafe for EntryIter<'t, T>
    where\n T: RefUnwindSafe,
    ",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> !RefUnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> RefUnwindSafe for Store<C>
    where\n C: RefUnwindSafe,
    ",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl !RefUnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> !RefUnwindSafe for Persist<C>",1,["bdk_persist::persist::Persist"]],["impl<K, A> RefUnwindSafe for CombinedChangeSet<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl !RefUnwindSafe for Error",1,["bdk_sqlite::Error"]],["impl<K, A> RefUnwindSafe for Store<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl !RefUnwindSafe for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl RefUnwindSafe for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl RefUnwindSafe for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> RefUnwindSafe for Plan<AK>
    where\n AK: RefUnwindSafe,
    ",1,["bdk_tmp_plan::Plan"]],["impl<Ak> RefUnwindSafe for PlanState<Ak>
    where\n Ak: RefUnwindSafe,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> RefUnwindSafe for RequiredSignatures<Ak>
    where\n Ak: RefUnwindSafe,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> RefUnwindSafe for PlanKey<Ak>
    where\n Ak: RefUnwindSafe,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> RefUnwindSafe for Requirements<Ak>
    where\n Ak: RefUnwindSafe,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> RefUnwindSafe for Assets<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_tmp_plan::Assets"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 3b5f4dbc53..49e1b31e91 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,11 +1,10 @@ (function() {var implementors = { "bdk_bitcoind_rpc":[["impl<'c, C> UnwindSafe for Emitter<'c, C>
    where\n C: RefUnwindSafe,
    ",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> UnwindSafe for BlockEvent<B>
    where\n B: UnwindSafe,
    ",1,["bdk_bitcoind_rpc::BlockEvent"]]], -"bdk_chain":[["impl !UnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl UnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl UnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>
    where\n T: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>
    where\n T: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>
    where\n F: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>
    where\n F: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> UnwindSafe for ChainPosition<A>
    where\n A: UnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> UnwindSafe for SyncResult<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> UnwindSafe for FullTxOut<A>
    where\n A: UnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> UnwindSafe for ChangeSet<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> UnwindSafe for TxGraph<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>
    where\n I: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>
    where\n IA: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> UnwindSafe for SpkIterator<D>
    where\n D: UnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> UnwindSafe for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !UnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> UnwindSafe for InsertDescriptorError<K>
    where\n K: UnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> UnwindSafe for ChangeSet<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> UnwindSafe for NoSuchKeychain<K>
    where\n K: UnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> UnwindSafe for FullScanResult<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], +"bdk_chain":[["impl !UnwindSafe for SyncRequest",1,["bdk_chain::spk_client::SyncRequest"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for ApplyHeaderError",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl UnwindSafe for CalculateFeeError",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl UnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl UnwindSafe for AlterCheckPointError",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for MissingGenesisError",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeHeightAnchor",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl UnwindSafe for DescriptorId",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>
    where\n T: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>
    where\n T: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'g, A, F> UnwindSafe for TxAncestors<'g, A, F>
    where\n F: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>
    where\n F: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<A> UnwindSafe for ChainPosition<A>
    where\n A: UnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl<A> UnwindSafe for SyncResult<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::SyncResult"]],["impl<A> UnwindSafe for FullTxOut<A>
    where\n A: UnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A> UnwindSafe for ChangeSet<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<A> UnwindSafe for TxGraph<A>
    where\n A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>
    where\n I: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for ChangeSet<A, IA>
    where\n IA: UnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<D> UnwindSafe for SpkIterator<D>
    where\n D: UnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]],["impl<I> UnwindSafe for SpkTxOutIndex<I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<K> !UnwindSafe for FullScanRequest<K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K> UnwindSafe for InsertDescriptorError<K>
    where\n K: UnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::InsertDescriptorError"]],["impl<K> UnwindSafe for ChangeSet<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> UnwindSafe for NoSuchKeychain<K>
    where\n K: UnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::NoSuchKeychain"]],["impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::persist::CombinedChangeSet"]],["impl<K, A> UnwindSafe for FullScanResult<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_chain::spk_client::FullScanResult"]]], "bdk_coin_select":[["impl UnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]],["impl UnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl UnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl UnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl UnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl UnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl UnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl UnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl UnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl<'a> UnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl<'c, 'f, S> !UnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl<'c, S> UnwindSafe for Bnb<'c, S>
    where\n S: UnwindSafe,
    ",1,["bdk_coin_select::bnb::Bnb"]]], "bdk_electrum":[["impl UnwindSafe for ElectrumSyncResult",1,["bdk_electrum::bdk_electrum_client::ElectrumSyncResult"]],["impl<E> UnwindSafe for BdkElectrumClient<E>
    where\n E: UnwindSafe,
    ",1,["bdk_electrum::bdk_electrum_client::BdkElectrumClient"]],["impl<K> UnwindSafe for ElectrumFullScanResult<K>
    where\n K: RefUnwindSafe,
    ",1,["bdk_electrum::bdk_electrum_client::ElectrumFullScanResult"]]], "bdk_file_store":[["impl !UnwindSafe for FileError",1,["bdk_file_store::FileError"]],["impl !UnwindSafe for IterError",1,["bdk_file_store::entry_iter::IterError"]],["impl<'t, T> !UnwindSafe for EntryIter<'t, T>",1,["bdk_file_store::entry_iter::EntryIter"]],["impl<C> !UnwindSafe for AggregateChangesetsError<C>",1,["bdk_file_store::store::AggregateChangesetsError"]],["impl<C> UnwindSafe for Store<C>
    where\n C: UnwindSafe,
    ",1,["bdk_file_store::store::Store"]]], "bdk_hwi":[["impl UnwindSafe for HWISigner",1,["bdk_hwi::signer::HWISigner"]]], -"bdk_persist":[["impl<C> !UnwindSafe for Persist<C>",1,["bdk_persist::persist::Persist"]],["impl<K, A> UnwindSafe for CombinedChangeSet<K, A>
    where\n K: RefUnwindSafe,\n A: RefUnwindSafe,
    ",1,["bdk_persist::changeset::CombinedChangeSet"]]], "bdk_sqlite":[["impl !UnwindSafe for Error",1,["bdk_sqlite::Error"]],["impl<K, A> UnwindSafe for Store<K, A>
    where\n K: UnwindSafe,\n A: UnwindSafe,
    ",1,["bdk_sqlite::store::Store"]]], "bdk_testenv":[["impl !UnwindSafe for TestEnv",1,["bdk_testenv::TestEnv"]]], "bdk_tmp_plan":[["impl UnwindSafe for SigningError",1,["bdk_tmp_plan::requirements::SigningError"]],["impl UnwindSafe for SatisfactionMaterial",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<AK> UnwindSafe for Plan<AK>
    where\n AK: UnwindSafe,
    ",1,["bdk_tmp_plan::Plan"]],["impl<Ak> UnwindSafe for PlanState<Ak>
    where\n Ak: UnwindSafe,
    ",1,["bdk_tmp_plan::PlanState"]],["impl<Ak> UnwindSafe for RequiredSignatures<Ak>
    where\n Ak: UnwindSafe,
    ",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl<Ak> UnwindSafe for PlanKey<Ak>
    where\n Ak: UnwindSafe,
    ",1,["bdk_tmp_plan::template::PlanKey"]],["impl<Ak> UnwindSafe for Requirements<Ak>
    where\n Ak: UnwindSafe,
    ",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<K> UnwindSafe for Assets<K>
    where\n K: UnwindSafe,
    ",1,["bdk_tmp_plan::Assets"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js index bfe6ea6d38..24d5536a59 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/de/trait.Deserialize.js @@ -1,6 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for Balance"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationHeightAnchor"],["impl<'de> Deserialize<'de> for ConfirmationTimeHeightAnchor"],["impl<'de> Deserialize<'de> for DescriptorId"],["impl<'de, A> Deserialize<'de> for ChangeSet<A>
    where\n A: Ord + Deserialize<'de>,
    "],["impl<'de, A, IA> Deserialize<'de> for ChangeSet<A, IA>
    where\n A: Ord + Deserialize<'de>,\n IA: Deserialize<'de>,
    "],["impl<'de, K> Deserialize<'de> for ChangeSet<K>
    where\n K: Ord + Deserialize<'de>,
    "]], -"bdk_persist":[["impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
    where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,
    "]], +"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for Balance"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationHeightAnchor"],["impl<'de> Deserialize<'de> for ConfirmationTimeHeightAnchor"],["impl<'de> Deserialize<'de> for DescriptorId"],["impl<'de, A> Deserialize<'de> for ChangeSet<A>
    where\n A: Ord + Deserialize<'de>,
    "],["impl<'de, A, IA> Deserialize<'de> for ChangeSet<A, IA>
    where\n A: Ord + Deserialize<'de>,\n IA: Deserialize<'de>,
    "],["impl<'de, K> Deserialize<'de> for ChangeSet<K>
    where\n K: Ord + Deserialize<'de>,
    "],["impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
    where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,
    "]], "bdk_wallet":[["impl<'de> Deserialize<'de> for KeychainKind"],["impl<'de> Deserialize<'de> for LocalOutput"],["impl<'de> Deserialize<'de> for FullyNodedExport"]], "example_cli":[["impl<'de> Deserialize<'de> for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js index bc0cee2fea..fd95cedb02 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/trait.impl/serde/ser/trait.Serialize.js @@ -1,6 +1,5 @@ (function() {var implementors = { -"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for Balance"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationHeightAnchor"],["impl Serialize for ConfirmationTimeHeightAnchor"],["impl Serialize for DescriptorId"],["impl<A> Serialize for ChangeSet<A>
    where\n A: Ord + Serialize,
    "],["impl<A, IA> Serialize for ChangeSet<A, IA>
    where\n A: Ord + Serialize,\n IA: Serialize,
    "],["impl<K> Serialize for ChangeSet<K>
    where\n K: Ord + Serialize,
    "]], -"bdk_persist":[["impl<K, A> Serialize for CombinedChangeSet<K, A>
    where\n A: Ord + Serialize,\n K: Ord + Serialize,
    "]], +"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for Balance"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationHeightAnchor"],["impl Serialize for ConfirmationTimeHeightAnchor"],["impl Serialize for DescriptorId"],["impl<A> Serialize for ChangeSet<A>
    where\n A: Ord + Serialize,
    "],["impl<A, IA> Serialize for ChangeSet<A, IA>
    where\n A: Ord + Serialize,\n IA: Serialize,
    "],["impl<K> Serialize for ChangeSet<K>
    where\n K: Ord + Serialize,
    "],["impl<K, A> Serialize for CombinedChangeSet<K, A>
    where\n A: Ord + Serialize,\n K: Ord + Serialize,
    "]], "bdk_wallet":[["impl Serialize for PkOrF"],["impl Serialize for Satisfaction"],["impl Serialize for SatisfiableItem"],["impl Serialize for KeychainKind"],["impl Serialize for Condition"],["impl Serialize for Policy"],["impl Serialize for LocalOutput"],["impl Serialize for FullyNodedExport"]], "example_cli":[["impl Serialize for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_chain/persist/struct.CombinedChangeSet.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_chain/persist/struct.CombinedChangeSet.js new file mode 100644 index 0000000000..9b4e0552a9 --- /dev/null +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_chain/persist/struct.CombinedChangeSet.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"bdk_wallet":[["
    source§

    impl<K, A> Append for CombinedChangeSet<K, A>
    where\n K: Ord,\n A: Anchor,

    source§

    fn append(&mut self, other: CombinedChangeSet<K, A>)

    Append another object of the same type onto self.
    source§

    fn is_empty(&self) -> bool

    Returns whether the structure is considered empty.
    ","Append","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> Clone for CombinedChangeSet<K, A>
    where\n K: Clone,\n A: Clone,

    source§

    fn clone(&self) -> CombinedChangeSet<K, A>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> Debug for CombinedChangeSet<K, A>
    where\n K: Debug,\n A: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> Default for CombinedChangeSet<K, A>

    source§

    fn default() -> CombinedChangeSet<K, A>

    Returns the “default value” for a type. Read more
    ","Default","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
    where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,

    source§

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<CombinedChangeSet<K, A>, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>

    source§

    fn from(chain: BTreeMap<u32, Option<BlockHash>>) -> CombinedChangeSet<K, A>

    Converts to this type from the input type.
    ","From>>","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

    source§

    fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> CombinedChangeSet<K, A>

    Converts to this type from the input type.
    ","From>>","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> From<ChangeSet<K>> for CombinedChangeSet<K, A>

    source§

    fn from(indexer: ChangeSet<K>) -> CombinedChangeSet<K, A>

    Converts to this type from the input type.
    ","From>","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> PartialEq for CombinedChangeSet<K, A>
    where\n K: PartialEq,\n A: PartialEq,

    source§

    fn eq(&self, other: &CombinedChangeSet<K, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> Serialize for CombinedChangeSet<K, A>
    where\n A: Ord + Serialize,\n K: Ord + Serialize,

    source§

    fn serialize<__S>(\n &self,\n __serializer: __S\n) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","bdk_wallet::wallet::ChangeSet"],["
    source§

    impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>

    ","StructuralPartialEq","bdk_wallet::wallet::ChangeSet"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_persist/changeset/struct.CombinedChangeSet.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_persist/changeset/struct.CombinedChangeSet.js deleted file mode 100644 index 78a4f46972..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_persist/changeset/struct.CombinedChangeSet.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var type_impls = { -"bdk_wallet":[["
    §

    impl<K, A> Append for CombinedChangeSet<K, A>
    where\n K: Ord,\n A: Anchor,

    §

    fn append(&mut self, other: CombinedChangeSet<K, A>)

    Append another object of the same type onto self.
    §

    fn is_empty(&self) -> bool

    Returns whether the structure is considered empty.
    ","Append","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> Clone for CombinedChangeSet<K, A>
    where\n K: Clone,\n A: Clone,

    §

    fn clone(&self) -> CombinedChangeSet<K, A>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> Debug for CombinedChangeSet<K, A>
    where\n K: Debug,\n A: Debug,

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> Default for CombinedChangeSet<K, A>

    §

    fn default() -> CombinedChangeSet<K, A>

    Returns the “default value” for a type. Read more
    ","Default","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<'de, K, A> Deserialize<'de> for CombinedChangeSet<K, A>
    where\n A: Ord + Deserialize<'de>,\n K: Ord + Deserialize<'de>,

    §

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<CombinedChangeSet<K, A>, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> From<BTreeMap<u32, Option<BlockHash>>> for CombinedChangeSet<K, A>

    §

    fn from(chain: BTreeMap<u32, Option<BlockHash>>) -> CombinedChangeSet<K, A>

    Converts to this type from the input type.
    ","From>>","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> From<ChangeSet<A, ChangeSet<K>>> for CombinedChangeSet<K, A>

    §

    fn from(indexed_tx_graph: ChangeSet<A, ChangeSet<K>>) -> CombinedChangeSet<K, A>

    Converts to this type from the input type.
    ","From>>","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> PartialEq for CombinedChangeSet<K, A>
    where\n K: PartialEq,\n A: PartialEq,

    §

    fn eq(&self, other: &CombinedChangeSet<K, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> Serialize for CombinedChangeSet<K, A>
    where\n A: Ord + Serialize,\n K: Ord + Serialize,

    §

    fn serialize<__S>(\n &self,\n __serializer: __S\n) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","bdk_wallet::wallet::ChangeSet"],["
    §

    impl<K, A> StructuralPartialEq for CombinedChangeSet<K, A>

    ","StructuralPartialEq","bdk_wallet::wallet::ChangeSet"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.js index 33eb80efb7..6d6ac5f00c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/type.impl/bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"bdk_wallet":[["
    source§

    impl BranchAndBoundCoinSelection

    source

    pub fn new(size_of_change: u64) -> Self

    Create new instance with target size for change output

    \n
    ",0,"bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Clone for BranchAndBoundCoinSelection

    source§

    fn clone(&self) -> BranchAndBoundCoinSelection

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl CoinSelectionAlgorithm for BranchAndBoundCoinSelection

    source§

    fn coin_select(\n &self,\n required_utxos: Vec<WeightedUtxo>,\n optional_utxos: Vec<WeightedUtxo>,\n fee_rate: FeeRate,\n target_amount: u64,\n drain_script: &Script\n) -> Result<CoinSelectionResult, Error>

    Perform the coin selection Read more
    ","CoinSelectionAlgorithm","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Debug for BranchAndBoundCoinSelection

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Default for BranchAndBoundCoinSelection

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    ","Default","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"]] +"bdk_wallet":[["
    source§

    impl BranchAndBoundCoinSelection

    source

    pub fn new(size_of_change: u64) -> Self

    Create new instance with target size for change output

    \n
    ",0,"bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Clone for BranchAndBoundCoinSelection

    source§

    fn clone(&self) -> BranchAndBoundCoinSelection

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl CoinSelectionAlgorithm for BranchAndBoundCoinSelection

    source§

    fn coin_select(\n &self,\n required_utxos: Vec<WeightedUtxo>,\n optional_utxos: Vec<WeightedUtxo>,\n fee_rate: FeeRate,\n target_amount: u64,\n drain_script: &Script\n) -> Result<CoinSelectionResult, Error>

    Perform the coin selection Read more
    ","CoinSelectionAlgorithm","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Debug for BranchAndBoundCoinSelection

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"],["
    source§

    impl Default for BranchAndBoundCoinSelection

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    ","Default","bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html index 42ee1f922c..5eb8161c6a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html @@ -1 +1 @@ -main in wallet_electrum_example - Rust

    Function wallet_electrum_example::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file +main in wallet_electrum_example - Rust

    Function wallet_electrum_example::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html index bd7a48c8a0..9538f69b11 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html @@ -1 +1 @@ -wallet_electrum_example - Rust

    Crate wallet_electrum_example

    source ·

    Constants§

    Functions§

    \ No newline at end of file +wallet_electrum_example - Rust

    Crate wallet_electrum_example

    source ·

    Constants§

    Functions§

    \ No newline at end of file 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 6ad3bf0efc..afe3fdef1f 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 c06e864fd1..bb515d0853 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: Amount;
    \ 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: Amount;
    \ 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 cc92fbaf81..313a88a4fa 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 b4bf97f675..982a4b2b93 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

    Function wallet_esplora_async::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file +main in wallet_esplora_async - Rust

    Function wallet_esplora_async::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html index cff01f8456..7cc450697a 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§

    \ No newline at end of file +wallet_esplora_async - Rust

    Crate wallet_esplora_async

    source ·

    Constants§

    Functions§

    \ 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 834203816f..b2da6b6fed 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

    Function wallet_esplora_blocking::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file +main in wallet_esplora_blocking - Rust

    Function wallet_esplora_blocking::main

    source ·
    pub(crate) fn main() -> Result<(), Error>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_blocking/index.html index f034169fa5..dc18b5b362 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§

    \ No newline at end of file +wallet_esplora_blocking - Rust

    Crate wallet_esplora_blocking

    source ·

    Constants§

    Functions§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/constant.DB_MAGIC.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/constant.DB_MAGIC.html index 12b62e5c2d..85a0d3bca0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/constant.DB_MAGIC.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/constant.DB_MAGIC.html @@ -1 +1 @@ -DB_MAGIC in wallet_rpc - Rust

    Constant wallet_rpc::DB_MAGIC

    source ·
    pub(crate) const DB_MAGIC: &str = "bdk-rpc-wallet-example";
    \ No newline at end of file +DB_MAGIC in wallet_rpc - Rust

    Constant wallet_rpc::DB_MAGIC

    source ·
    pub(crate) const DB_MAGIC: &str = "bdk-rpc-wallet-example";
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/enum.Emission.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/enum.Emission.html index 6929340578..4d766ec764 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/enum.Emission.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/enum.Emission.html @@ -1,8 +1,8 @@ -Emission in wallet_rpc - Rust

    Enum wallet_rpc::Emission

    source ·
    pub(crate) enum Emission {
    +Emission in wallet_rpc - Rust

    Enum wallet_rpc::Emission

    source ·
    pub(crate) enum Emission {
         SigTerm,
         Block(BlockEvent<Block>),
         Mempool(Vec<(Transaction, u64)>),
    -}

    Variants§

    §

    SigTerm

    §

    Block(BlockEvent<Block>)

    §

    Mempool(Vec<(Transaction, u64)>)

    Trait Implementations§

    source§

    impl Debug for Emission

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    SigTerm

    §

    Block(BlockEvent<Block>)

    §

    Mempool(Vec<(Transaction, u64)>)

    Trait Implementations§

    source§

    impl Debug for Emission

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/fn.main.html index aa49621d12..bf69294f97 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/fn.main.html @@ -1 +1 @@ -main in wallet_rpc - Rust

    Function wallet_rpc::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file +main in wallet_rpc - Rust

    Function wallet_rpc::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/index.html index 1dfcf18e68..104fd7c2a4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/index.html @@ -1 +1 @@ -wallet_rpc - Rust

    Crate wallet_rpc

    source ·

    Structs§

    • Bitcoind RPC example using bdk_wallet::Wallet.

    Enums§

    Constants§

    Functions§

    \ No newline at end of file +wallet_rpc - Rust

    Crate wallet_rpc

    source ·

    Structs§

    • Bitcoind RPC example using bdk_wallet::Wallet.

    Enums§

    Constants§

    Functions§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/struct.Args.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/struct.Args.html index 10b045e66a..76717a3dd9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/struct.Args.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_rpc/struct.Args.html @@ -1,4 +1,4 @@ -Args in wallet_rpc - Rust

    Struct wallet_rpc::Args

    source ·
    pub struct Args {
    +Args in wallet_rpc - Rust

    Struct wallet_rpc::Args

    source ·
    pub struct Args {
         pub descriptor: String,
         pub change_descriptor: String,
         pub start_height: u32,
    @@ -20,15 +20,15 @@ count.

    §rpc_cookie: Option<PathBuf>

    RPC auth cookie file

    §rpc_user: Option<String>

    RPC auth username

    §rpc_pass: Option<String>

    RPC auth password

    -

    Implementations§

    source§

    impl Args

    source

    pub(crate) fn client(&self) -> Result<Client>

    Trait Implementations§

    source§

    impl Args for Args

    source§

    fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    impl CommandFactory for Args

    source§

    fn into_app<'b>() -> Command<'b>

    Deprecated, replaced with CommandFactory::command
    source§

    fn into_app_for_update<'b>() -> Command<'b>

    Deprecated, replaced with CommandFactory::command_for_update
    §

    fn command<'help>() -> App<'help>

    Build a [Command] that can instantiate Self. Read more
    §

    fn command_for_update<'help>() -> App<'help>

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Args

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Args

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Implementations§

    source§

    impl Args

    source

    pub(crate) fn client(&self) -> Result<Client>

    Trait Implementations§

    source§

    impl Args for Args

    source§

    fn augment_args<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

    Append to [Command] so it can update self. Read more
    source§

    impl CommandFactory for Args

    source§

    fn into_app<'b>() -> Command<'b>

    Deprecated, replaced with CommandFactory::command
    source§

    fn into_app_for_update<'b>() -> Command<'b>

    Deprecated, replaced with CommandFactory::command_for_update
    §

    fn command<'help>() -> App<'help>

    Build a [Command] that can instantiate Self. Read more
    §

    fn command_for_update<'help>() -> App<'help>

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Args

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Args

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    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( +) -> 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 Args

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Self
    where +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for Args

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Self
    where 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>,