From: github-actions Date: Fri, 12 Apr 2024 16:05:46 +0000 (+0000) Subject: Publish autogenerated nightly docs X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/scripts/struct.ShortId.html?a=commitdiff_plain;h=994eebd67e095e3f934da19db0e90674222f227c;p=bitcoindevkit.org Publish autogenerated nightly docs --- diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html index 0a192df217..f548b05c65 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Descriptor.html @@ -1,5 +1,5 @@ Descriptor in bdk::descriptor - Rust
pub enum Descriptor<Pk>where
    Pk: MiniscriptKey,
{ + logo

Descriptor

pub enum Descriptor<Pk>where
    Pk: MiniscriptKey,
{ Bare(Bare<Pk>), Pkh(Pkh<Pk>), Wpkh(Wpkh<Pk>), @@ -64,7 +64,7 @@ that input was satisfied with the largest possible witness:

ⓘ
for i in 0..transaction.input.len() {
     assert_eq!(
         descriptor_for_input[i].max_weight_to_satisfy(),
-        transaction.input[i].segwit_weight() - Txin::default().segwit_weight()
+        transaction.input[i].segwit_weight() - TxIn::default().segwit_weight()
     );
 }

Instead, for legacy transactions, the following will hold for each input @@ -73,7 +73,7 @@ if that input was satisfied with the largest possible witness:

ⓘ
for i in 0..transaction.input.len() {
     assert_eq!(
         descriptor_for_input[i].max_weight_to_satisfy(),
-        transaction.input[i].legacy_weight() - Txin::default().legacy_weight()
+        transaction.input[i].legacy_weight() - TxIn::default().legacy_weight()
     );
 }

Assumes all ECDSA signatures are 73 bytes, including push opcode and @@ -119,6 +119,10 @@ construct one using the satisfier S.

Attempts to produce a non-malleable satisfying witness and scriptSig to spend an output controlled by the given descriptor; add the data to a given TxIn output.

+

Returns a plan if the provided assets are sufficient to produce a non-malleable satisfaction

+

If the assets aren’t sufficient for generating a Plan, the descriptor is returned

+

Returns a plan if the provided assets are sufficient to produce a malleable satisfaction

+

If the assets aren’t sufficient for generating a Plan, the descriptor is returned

👎Deprecated: use has_wildcards instead

Whether or not the descriptor has any wildcards

Whether or not the descriptor has any wildcards i.e. /*.

Replaces all wildcards (i.e. /*) in the descriptor with a particular derivation index, @@ -139,10 +143,10 @@ default(0x02) y-coordinate.

See at_derivation_index and [derived_descriptor] for more documentation.

Errors

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

-

Parse a descriptor that may contain secret keys

+

Parse a descriptor that may contain secret keys

Internally turns every secret key found into the corresponding public key and then returns a a descriptor that only contains public keys and a map to lookup the secret key given a public key.

-

Serialize a descriptor to string with its secret keys

+

Serialize a descriptor to string with its secret keys

Utility method for deriving the descriptor at each index in a range to find one matching script_pubkey.

If it finds a match then it returns the index it was derived at and the concrete @@ -153,7 +157,7 @@ returned will be meaningless).

Get as many descriptors as different paths in this descriptor.

For multipath descriptors it will return as many descriptors as there is “parallel” paths. For regular descriptors it will just return itself.

-

Convert all the public keys in the descriptor to [bitcoin::PublicKey] by deriving them or +

Convert all the public keys in the descriptor to [bitcoin::PublicKey] by deriving them or otherwise converting them. All [bitcoin::secp256k1::XOnlyPublicKey]s are converted to by adding a default(0x02) y-coordinate.

Examples
@@ -169,11 +173,11 @@ default(0x02) y-coordinate.

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

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

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the minimum value (in satoshis) at which an output is broadcastable. -Panics if the descriptor wildcard is hardened. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Extract the spending policy
Run a predicate on every key in the descriptor, returning whether +

Trait Implementations§

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

Parse an expression tree into a descriptor.

-
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert the object into an abstract policy
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used +the predicate returned true for any key Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more

Parse an expression tree into a descriptor.

+
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Converts this object into an abstract policy.
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.DescriptorPublicKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.DescriptorPublicKey.html index 69ae9106b4..087efde4bd 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.DescriptorPublicKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.DescriptorPublicKey.html @@ -1,18 +1,24 @@ DescriptorPublicKey in bdk::descriptor - Rust
pub enum DescriptorPublicKey {
+                    logo

DescriptorPublicKey

pub enum DescriptorPublicKey {
     Single(SinglePub),
-    XPub(DescriptorXKey<ExtendedPubKey>),
-    MultiXPub(DescriptorMultiXKey<ExtendedPubKey>),
+    XPub(DescriptorXKey<Xpub>),
+    MultiXPub(DescriptorMultiXKey<Xpub>),
 }
Expand description

The descriptor pubkey, either a single pubkey or an xpub.

Variants§

§

Single(SinglePub)

Single public key.

-
§

XPub(DescriptorXKey<ExtendedPubKey>)

Extended public key (xpub).

-
§

MultiXPub(DescriptorMultiXKey<ExtendedPubKey>)

Multiple extended public keys.

+
§

XPub(DescriptorXKey<Xpub>)

Extended public key (xpub).

+
§

MultiXPub(DescriptorMultiXKey<Xpub>)

Multiple extended public keys.

Implementations§

The fingerprint of the master key associated with this key, 0x00000000 if none.

Full path, from the master key

For wildcard keys this will return the path up to the wildcard, so you can get full paths by appending one additional derivation step, according to the wildcard type (hardened or normal).

For multipath extended keys, this returns None.

+

Returns a vector containing the full derivation paths from the master key. +The vector will contain just one element for single keys, and multiple elements +for multipath extended keys.

+

For wildcard keys this will return the path up to the wildcard, so you +can get full paths by appending one additional derivation step, according +to the wildcard type (hardened or normal).

👎Deprecated: use has_wildcard instead

Whether or not the key has a wildcard

Whether or not the key has a wildcard

👎Deprecated: use at_derivation_index instead

Deprecated name for Self::at_derivation_index.

@@ -33,7 +39,7 @@ to the wildcard type (hardened or normal).

For raw public key and single-path extended keys it will return the key itself. For multipath extended keys it will return a single-path extended key per derivation path.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Turn the key into a DescriptorKey within the requested ScriptContext
The associated [bitcoin::hashes::sha256::Hash] for this [MiniscriptKey], used in the +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert self into a Assets struct
Turn the key into a DescriptorKey within the requested ScriptContext
The associated [bitcoin::hashes::sha256::Hash] for this [MiniscriptKey], used in the sha256 fragment. Read more
The associated [miniscript::hash256::Hash] for this [MiniscriptKey], used in the hash256 fragment. Read more
The associated [bitcoin::hashes::ripemd160::Hash] for this [MiniscriptKey] type, used in the ripemd160 fragment. Read more
The associated [bitcoin::hashes::hash160::Hash] for this [MiniscriptKey] type, used in diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html index 1a327f0b7b..078ddd3281 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html @@ -1,5 +1,5 @@ Error in bdk::descriptor::error - Rust

Enum bdk::descriptor::error::Error

source ·
pub enum Error {
+                    logo

Error

Enum bdk::descriptor::error::Error

source ·
pub enum Error {
     InvalidHdKeyPath,
     InvalidDescriptorChecksum,
     HardenedDerivationXpub,
@@ -11,7 +11,7 @@
     Base58(Error),
     Pk(Error),
     Miniscript(Error),
-    Hex(Error),
+    Hex(HexToBytesError),
 }
Expand description

Errors related to the parsing and usage of descriptors

Variants§

§

InvalidHdKeyPath

Invalid HD Key path, such as having a wildcard but a length != 1

§

InvalidDescriptorChecksum

The provided descriptor doesn’t match its checksum

@@ -24,8 +24,8 @@
§

Base58(Error)

Error during base58 decoding

§

Pk(Error)

Key-related error

§

Miniscript(Error)

Miniscript error

-
§

Hex(Error)

Hex decoding error

-

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

+
§

Hex(HexToBytesError)

Hex decoding error

+

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html index 37245b2c73..ce749653c9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/index.html @@ -1,8 +1,8 @@ bdk::descriptor - Rust

Module bdk::descriptor

source ·
Expand description

Descriptors

+ logo

Module descriptor

Module bdk::descriptor

source ·
Expand description

Descriptors

This module contains generic utilities to work with descriptors, plus some re-exported types from [miniscript].

-

Re-exports

pub use self::checksum::calc_checksum;
pub use self::error::Error as DescriptorError;
pub use self::policy::Policy;

Modules

Descriptor checksum
Descriptor errors
Descriptor policy
Descriptor templates

Structs

Top-level script AST type

Enums

Script descriptor
The descriptor pubkey, either a single pubkey or an xpub.
Legacy ScriptContext +

Re-exports

pub use self::checksum::calc_checksum;
pub use self::error::Error as DescriptorError;
pub use self::policy::Policy;

Modules

Descriptor checksum
Descriptor errors
Descriptor policy
Descriptor templates

Structs

The top-level miniscript abstract syntax tree (AST).

Enums

Script descriptor
The descriptor pubkey, either a single pubkey or an xpub.
Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under Bare ScriptContext
Segwitv0 ScriptContext

Traits

Trait implemented on Descriptors to add a method to extract the spending policy
Trait for types which can be converted into an ExtendedDescriptor and a KeyMap usable by a wallet in a specific [Network]
The ScriptContext for Miniscript. Additional type information associated with diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js index 2ac12011d7..d738efbc83 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":[["Descriptor","Script descriptor"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["Legacy","Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"],["Segwitv0","Segwitv0 ScriptContext"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["Miniscript","Top-level script AST type"]],"trait":[["ExtractPolicy","Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"],["IntoWalletDescriptor","Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["DerivedDescriptor","Alias for a [`Descriptor`] that contains extended derived keys"],["ExtendedDescriptor","Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"],["HdKeyPaths","Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"],["TapKeyOrigins","Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["Descriptor","Script descriptor"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["Legacy","Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"],["Segwitv0","Segwitv0 ScriptContext"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["Miniscript","The top-level miniscript abstract syntax tree (AST)."]],"trait":[["ExtractPolicy","Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"],["IntoWalletDescriptor","Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["DerivedDescriptor","Alias for a [`Descriptor`] that contains extended derived keys"],["ExtendedDescriptor","Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"],["HdKeyPaths","Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"],["TapKeyOrigins","Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html index 6c1243b689..6bd8dd5666 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html @@ -1,12 +1,12 @@ -Miniscript in bdk::descriptor - Rust

Struct bdk::descriptor::Miniscript

Expand description

The top-level miniscript abstract syntax tree (AST).

+

Fields§

§node: Terminal<Pk, Ctx>

A node in the AST.

+
§ty: Type

The correctness and malleability type information for the AST node.

§ext: ExtData

Additional information helpful for extra analysis.

Implementations§

Whether all spend paths of miniscript require a signature

Whether the miniscript is malleable

@@ -43,8 +43,37 @@ Display code of type_check.

This does not check the typing rules. The user is responsible for ensuring that the type provided is correct.

You should almost always use Miniscript::from_ast instead of this function.

-

Extracts the AstElem representing the root of the miniscript

+

Extracts the AstElem representing the root of the miniscript

Get a reference to the inner AstElem representing the root of miniscript

+

Encode as a Bitcoin script

+

Size, in bytes of the script-pubkey. If this Miniscript is used outside +of segwit (e.g. in a bare or P2SH descriptor), this quantity should be +multiplied by 4 to compute the weight.

+

In general, it is not recommended to use this function directly, but +to instead call the corresponding function on a Descriptor, which +will handle the segwit/non-segwit technicalities for you.

+

Maximum number of witness elements used to satisfy the Miniscript +fragment, including the witness script itself. Used to estimate +the weight of the VarInt that specifies this number in a serialized +transaction.

+

This function may returns Error when the Miniscript is +impossible to satisfy

+

Maximum size, in bytes, of a satisfying witness. For Segwit outputs +one_cost should be set to 2, since the number 1 requires two +bytes to encode. For non-segwit outputs one_cost should be set to +1, since OP_1 is available in scriptSigs.

+

In general, it is not recommended to use this function directly, but +to instead call the corresponding function on a Descriptor, which +will handle the segwit/non-segwit technicalities for you.

+

All signatures are assumed to be 73 bytes in size, including the +length prefix (segwit) or push opcode (pre-segwit) and sighash +postfix.

+

Attempt to produce non-malleable satisfying witness for the +witness script represented by the parse tree

+

Attempt to produce a malleable satisfying witness for the +witness script represented by the parse tree

+

Attempt to produce a non-malleable witness template given the assets available

+

Attempt to produce a malleable witness template given the assets available

Attempt to parse an insane(scripts don’t clear sanity checks) script into a Miniscript representation. Use this to parse scripts with repeated pubkeys, timelock mixing, malleable @@ -86,53 +115,26 @@ parse such scripts.

).expect("Even length hex")) .expect("Compressed keys are allowed in Segwit context");
-

Encode as a Bitcoin script

-

Size, in bytes of the script-pubkey. If this Miniscript is used outside -of segwit (e.g. in a bare or P2SH descriptor), this quantity should be -multiplied by 4 to compute the weight.

-

In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

Maximum number of witness elements used to satisfy the Miniscript -fragment, including the witness script itself. Used to estimate -the weight of the VarInt that specifies this number in a serialized -transaction.

-

This function may returns Error when the Miniscript is -impossible to satisfy

-

Maximum size, in bytes, of a satisfying witness. For Segwit outputs -one_cost should be set to 2, since the number 1 requires two -bytes to encode. For non-segwit outputs one_cost should be set to -1, since OP_1 is available in scriptSigs.

-

In general, it is not recommended to use this function directly, but -to instead call the corresponding function on a Descriptor, which -will handle the segwit/non-segwit technicalities for you.

-

All signatures are assumed to be 73 bytes in size, including the -length prefix (segwit) or push opcode (pre-segwit) and sighash -postfix.

-

Attempt to parse an insane(scripts don’t clear sanity checks) +

Substitutes raw public keys hashes with the public keys as provided by map.

+

Attempt to parse an insane(scripts don’t clear sanity checks) from string into a Miniscript representation. Use this to parse scripts with repeated pubkeys, timelock mixing, malleable scripts without sig or scripts that can exceed resource limits. Some of the analysis guarantees of miniscript are lost when dealing with insane scripts. In general, in a multi-party setting users should only accept sane scripts.

-

Attempt to parse an Miniscripts that don’t follow the spec. +

Attempt to parse an Miniscripts that don’t follow the spec. Use this to parse scripts with repeated pubkeys, timelock mixing, malleable scripts, raw pubkey hashes without sig or scripts that can exceed resource limits.

Use [ExtParams] builder to specify the types of non-sane rules to allow while parsing.

-

Attempt to produce non-malleable satisfying witness for the -witness script represented by the parse tree

-

Attempt to produce a malleable satisfying witness for the -witness script represented by the parse tree

-

Lifting corresponds conversion of miniscript into Policy -[policy.semantic.Policy] for human readable or machine analysis. -However, naively lifting miniscripts can result in incorrect -interpretations that don’t correspond underlying semantics when -we try to spend them on bitcoin network. -This can occur if the miniscript contains a

+

Lifting corresponds to conversion of a miniscript into a [Semantic] +policy for human readable or machine analysis. However, naively lifting +miniscripts can result in incorrect interpretations that don’t +correspond to the underlying semantics when we try to spend them on +bitcoin network. This can occur if the miniscript contains:

    -
  1. Timelock combination
  2. -
  3. Contains a spend that exceeds resource limits
  4. +
  5. A combination of timelocks
  6. +
  7. A spend that exceeds resource limits

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Extract the spending policy
Run a predicate on every key in the descriptor, returning whether the predicate returned true for every key Read more
Run a predicate on every key in the descriptor, returning whether @@ -141,24 +143,22 @@ See Miniscript::sanity_check checks.

The associated error which can be returned from parsing.

Parse an expression tree into a Miniscript. As a general rule, this should not be called directly; rather go through the descriptor API.

-
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert the object into an abstract policy

Ord of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

-
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more

PartialEq of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

+

Hash of Miniscript must depend only on node and not the type information.

+

The type information and extra properties are implied by the AST.

+
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Converts this object into an abstract policy.

Ord of Miniscript must depend only on node and not the type information.

+

The type information and extra properties are implied by the AST.

+
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more

PartialEq of Miniscript must depend only on node and not the type information.

+

The type information and extra properties are implied by the AST.

This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

PartialOrd of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

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

PartialOrd of Miniscript must depend only on node and not the type information.

+

The type information and extra properties are implied by the AST.

This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
Serialize this value into the given Serde serializer. Read more

Translates a struct from one generic to another where the translation +operator. Read more

Serialize this value into the given Serde serializer. Read more

Translates a struct from one generic to another where the translation for Pk is provided by [Translator]

-
The associated output type. This must be Self<Q>.

Eq of Miniscript must depend only on node and not the type information. -The type information and extra_properties can be deterministically determined -by the ast.

+
The associated output type. This must be Self<Q>.
Interpret the node as an abstract node.
Accessor for the number of children this node has.
Accessor for the nth child of the node, if a child with that index exists.
Obtains an iterator of all the nodes rooted at the node, in pre-order.
Obtains a verbose iterator of all the nodes rooted at the DAG, in pre-order. Read more
Obtains an iterator of all the nodes rooted at the DAG, in post order. Read more

Eq of Miniscript must depend only on node and not the type information.

+

The type information and extra properties are implied by the AST.

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html index c460f520e1..2259c5f402 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html @@ -5,7 +5,7 @@

Example

use bdk::template::Bip44;
 
-let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
 let mut wallet = Wallet::new_no_persist(
     Bip44(key.clone(), KeychainKind::External),
     Some(Bip44(key, KeychainKind::Internal)),
@@ -18,4 +18,4 @@
 

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html index 4e65940b49..7da8cf3226 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44Public.html @@ -7,7 +7,7 @@ for the key.

Example

use bdk::template::Bip44Public;
 
-let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
+let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
 let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
 let mut wallet = Wallet::new_no_persist(
     Bip44Public(key.clone(), fingerprint, KeychainKind::External),
@@ -21,4 +21,4 @@ for the key.

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html index ef5966faf6..ed5b976de2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49.html @@ -5,7 +5,7 @@

Example

use bdk::template::Bip49;
 
-let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
 let mut wallet = Wallet::new_no_persist(
     Bip49(key.clone(), KeychainKind::External),
     Some(Bip49(key, KeychainKind::Internal)),
@@ -18,4 +18,4 @@
 

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html index 4fdb687224..dea763eb65 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip49Public.html @@ -7,7 +7,7 @@ for the key.

Example

use bdk::template::Bip49Public;
 
-let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
+let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
 let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
 let mut wallet = Wallet::new_no_persist(
     Bip49Public(key.clone(), fingerprint, KeychainKind::External),
@@ -21,4 +21,4 @@ for the key.

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html index 47ca6a50c1..21d3b192e5 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84.html @@ -5,7 +5,7 @@

Example

use bdk::template::Bip84;
 
-let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
 let mut wallet = Wallet::new_no_persist(
     Bip84(key.clone(), KeychainKind::External),
     Some(Bip84(key, KeychainKind::Internal)),
@@ -18,4 +18,4 @@
 

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html index c37090b1ce..38a315da26 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip84Public.html @@ -7,7 +7,7 @@ for the key.

Example

use bdk::template::Bip84Public;
 
-let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
+let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
 let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
 let mut wallet = Wallet::new_no_persist(
     Bip84Public(key.clone(), fingerprint, KeychainKind::External),
@@ -21,4 +21,4 @@ for the key.

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86.html index 3e6b45fc44..a34caa03ad 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86.html @@ -5,7 +5,7 @@

Example

use bdk::template::Bip86;
 
-let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
 let mut wallet = Wallet::new_no_persist(
     Bip86(key.clone(), KeychainKind::External),
     Some(Bip86(key, KeychainKind::Internal)),
@@ -18,4 +18,4 @@
 

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86Public.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86Public.html index 623951bda3..eb3e8a5c47 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86Public.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip86Public.html @@ -7,7 +7,7 @@ for the key.

Example

use bdk::template::Bip86Public;
 
-let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
+let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
 let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
 let mut wallet = Wallet::new_no_persist(
     Bip86Public(key.clone(), fingerprint, KeychainKind::External),
@@ -21,4 +21,4 @@ for the key.

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html index 4cba07c4b9..73475c1122 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Pkh.html @@ -15,4 +15,4 @@

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2TR.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2TR.html index 941d896056..f624703e0f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2TR.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2TR.html @@ -15,4 +15,4 @@

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html index 0b24d29e58..cd3e9911c9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh.html @@ -16,4 +16,4 @@

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html index f25d7fa83f..1aca8d4d40 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.P2Wpkh_P2Sh.html @@ -16,4 +16,4 @@

Calls U::from(self).

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

-
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
Convert to wallet descriptor
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html index 671810ed41..b7c80070e6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html @@ -1,5 +1,5 @@ KeychainKind in bdk - Rust

Enum bdk::KeychainKind

source ·
pub enum KeychainKind {
+                    logo

KeychainKind

Enum bdk::KeychainKind

source ·
pub enum KeychainKind {
     External,
     Internal,
 }
Expand description

Types of keychains

@@ -10,9 +10,8 @@ by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Calculate the base32 serialized length
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Error type if conversion fails
Check if all values are in range and return array-like struct of u5 values

Returns the argument unchanged.

+operator. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

-
Encode as base32 and write it to the supplied writer -Implementations shouldn’t allocate. Read more
Convert Self to base32 vector
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file +
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/index.html index 3311ae48d2..7bfb11a3a0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/index.html @@ -167,4 +167,4 @@ that the Wallet can use to update its view of the chain.

submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

-

Re-exports

pub extern crate bitcoin;
pub extern crate miniscript;
pub use descriptor::template;
pub use descriptor::HdKeyPaths;
pub use wallet::signer;
pub use wallet::signer::SignOptions;
pub use wallet::tx_builder::TxBuilder;
pub use wallet::Wallet;
pub use bdk_chain as chain;

Modules

Descriptors
Key formats
Additional functions on the rust-bitcoin PartiallySignedTransaction structure.
Wallet

Macros

Macro to write full descriptors with code
Macro to write descriptor fragments with code

Structs

An unspent output owned by a Wallet.
A Utxo with its satisfaction_weight.

Enums

Types of keychains
An unspent transaction output (UTXO).

Functions

Get the version of BDK at runtime
\ No newline at end of file +

Re-exports

pub extern crate bitcoin;
pub extern crate miniscript;
pub use descriptor::template;
pub use descriptor::HdKeyPaths;
pub use wallet::signer;
pub use wallet::signer::SignOptions;
pub use wallet::tx_builder::TxBuilder;
pub use wallet::Wallet;
pub use bdk_chain as chain;

Modules

Descriptors
Key formats
Additional functions on the rust-bitcoin Psbt structure.
Wallet

Macros

Macro to write full descriptors with code
Macro to write descriptor fragments with code

Structs

An unspent output owned by a Wallet.
A Utxo with its satisfaction_weight.

Enums

Types of keychains
An unspent transaction output (UTXO).

Functions

Get the version of BDK at runtime
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html index 46b15d126c..459dec563c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorPublicKey.html @@ -1,18 +1,24 @@ DescriptorPublicKey in bdk::keys - Rust
pub enum DescriptorPublicKey {
+                    logo

DescriptorPublicKey

pub enum DescriptorPublicKey {
     Single(SinglePub),
-    XPub(DescriptorXKey<ExtendedPubKey>),
-    MultiXPub(DescriptorMultiXKey<ExtendedPubKey>),
+    XPub(DescriptorXKey<Xpub>),
+    MultiXPub(DescriptorMultiXKey<Xpub>),
 }
Expand description

The descriptor pubkey, either a single pubkey or an xpub.

Variants§

§

Single(SinglePub)

Single public key.

-
§

XPub(DescriptorXKey<ExtendedPubKey>)

Extended public key (xpub).

-
§

MultiXPub(DescriptorMultiXKey<ExtendedPubKey>)

Multiple extended public keys.

+
§

XPub(DescriptorXKey<Xpub>)

Extended public key (xpub).

+
§

MultiXPub(DescriptorMultiXKey<Xpub>)

Multiple extended public keys.

Implementations§

The fingerprint of the master key associated with this key, 0x00000000 if none.

Full path, from the master key

For wildcard keys this will return the path up to the wildcard, so you can get full paths by appending one additional derivation step, according to the wildcard type (hardened or normal).

For multipath extended keys, this returns None.

+

Returns a vector containing the full derivation paths from the master key. +The vector will contain just one element for single keys, and multiple elements +for multipath extended keys.

+

For wildcard keys this will return the path up to the wildcard, so you +can get full paths by appending one additional derivation step, according +to the wildcard type (hardened or normal).

👎Deprecated: use has_wildcard instead

Whether or not the key has a wildcard

Whether or not the key has a wildcard

👎Deprecated: use at_derivation_index instead

Deprecated name for Self::at_derivation_index.

@@ -33,7 +39,7 @@ to the wildcard type (hardened or normal).

For raw public key and single-path extended keys it will return the key itself. For multipath extended keys it will return a single-path extended key per derivation path.

-

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Turn the key into a DescriptorKey within the requested ScriptContext
The associated [bitcoin::hashes::sha256::Hash] for this [MiniscriptKey], used in the +

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert self into a Assets struct
Turn the key into a DescriptorKey within the requested ScriptContext
The associated [bitcoin::hashes::sha256::Hash] for this [MiniscriptKey], used in the sha256 fragment. Read more
The associated [miniscript::hash256::Hash] for this [MiniscriptKey], used in the hash256 fragment. Read more
The associated [bitcoin::hashes::ripemd160::Hash] for this [MiniscriptKey] type, used in the ripemd160 fragment. Read more
The associated [bitcoin::hashes::hash160::Hash] for this [MiniscriptKey] type, used in diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html index d384fbf27b..fbcfb1bc0d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html @@ -1,12 +1,12 @@ DescriptorSecretKey in bdk::keys - Rust
pub enum DescriptorSecretKey {
     Single(SinglePriv),
-    XPrv(DescriptorXKey<ExtendedPrivKey>),
-    MultiXPrv(DescriptorMultiXKey<ExtendedPrivKey>),
+    XPrv(DescriptorXKey<Xpriv>),
+    MultiXPrv(DescriptorMultiXKey<Xpriv>),
 }
Expand description

The descriptor secret key, either a single private key or an xprv.

Variants§

§

Single(SinglePriv)

Single private key.

-
§

XPrv(DescriptorXKey<ExtendedPrivKey>)

Extended private key (xpriv).

-
§

MultiXPrv(DescriptorMultiXKey<ExtendedPrivKey>)

Multiple extended private keys.

+
§

XPrv(DescriptorXKey<Xpriv>)

Extended private key (xpriv).

+
§

MultiXPrv(DescriptorMultiXKey<Xpriv>)

Multiple extended private keys.

Implementations§

Returns the public version of this key.

If the key is an “XPrv”, the hardened derivation steps will be applied before converting it to a public key.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html index d8fc1d6e8a..f8a5e6c1b1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.ExtendedKey.html @@ -1,21 +1,21 @@ ExtendedKey in bdk::keys - Rust

Enum bdk::keys::ExtendedKey

source ·
pub enum ExtendedKey<Ctx: ScriptContext = Legacy> {
-    Private((ExtendedPrivKey, PhantomData<Ctx>)),
-    Public((ExtendedPubKey, PhantomData<Ctx>)),
+                    logo

ExtendedKey

Enum bdk::keys::ExtendedKey

source ·
pub enum ExtendedKey<Ctx: ScriptContext = Legacy> {
+    Private((Xpriv, PhantomData<Ctx>)),
+    Public((Xpub, PhantomData<Ctx>)),
 }
Expand description

Enum for extended keys that can be either xprv or xpub

-

An instance of ExtendedKey can be constructed from an ExtendedPrivKey -or an ExtendedPubKey by using the From trait.

+

An instance of ExtendedKey can be constructed from an Xpriv +or an Xpub by using the From trait.

Defaults to the Legacy context.

-

Variants§

§

Private((ExtendedPrivKey, PhantomData<Ctx>))

A private extended key, aka an xprv

-
§

Public((ExtendedPubKey, PhantomData<Ctx>))

A public extended key, aka an xpub

+

Variants§

§

Private((Xpriv, PhantomData<Ctx>))

A private extended key, aka an xprv

+
§

Public((Xpub, PhantomData<Ctx>))

A public extended key, aka an xpub

Implementations§

Return whether or not the key contains the private data

-

Transform the ExtendedKey into an ExtendedPrivKey for the +

Transform the ExtendedKey into an Xpriv for the given [Network], if the key contains the private data

-

Transform the ExtendedKey into an ExtendedPubKey for the +

Transform the ExtendedKey into an Xpub for the given [Network]

Trait Implementations§

Identity conversion

Consume self and turn it into an ExtendedKey
Consume self and turn it into a DescriptorKey by adding the extra metadata, such as -key origin and derivation path Read more
Converts to this type from the input type.
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

+key origin and derivation path Read more
Converts to this type from the input type.
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html index 2642eab9b8..aa2dd84b4f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html @@ -1,5 +1,5 @@ SortedMultiVec in bdk::keys - Rust

Encode as a Bitcoin script

Attempt to produce a satisfying witness for the witness script represented by the parse tree

+

Attempt to produce a witness template given the assets available

Size, in bytes of the script-pubkey. If this Miniscript is used outside of segwit (e.g. in a bare or P2SH descriptor), this quantity should be multiplied by 4 to compute the weight.

@@ -39,7 +40,7 @@ length prefix (segwit) or push opcode (pre-segwit) and sighash postfix.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Run a predicate on every key in the descriptor, returning whether the predicate returned true for every key Read more
Run a predicate on every key in the descriptor, returning whether -the predicate returned true for any key Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Convert the object into an abstract policy
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used +the predicate returned true for any key Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
Converts this object into an abstract policy.
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html index 14e8950268..3e2c77f65e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.DerivableKey.html @@ -1,5 +1,5 @@ DerivableKey in bdk::keys - Rust

Trait bdk::keys::DerivableKey

source ·
pub trait DerivableKey<Ctx: ScriptContext = Legacy>: Sized {
+                    logo

DerivableKey

Trait bdk::keys::DerivableKey

source ·
pub trait DerivableKey<Ctx: ScriptContext = Legacy>: Sized {
     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError>;
 
     fn into_descriptor_key(
        self,
        origin: Option<KeySource>,
        derivation_path: DerivationPath
    ) -> Result<DescriptorKey<Ctx>, KeyError> { ... } @@ -12,8 +12,8 @@ for (DerivableKey, DerivationPath) and generally recommended to implement this trait instead of IntoDescriptorKey. The same rules regarding script context and valid networks apply.

Examples

-

Key types that can be directly converted into an ExtendedPrivKey or -an ExtendedPubKey can implement only the required into_extended_key() method.

+

Key types that can be directly converted into an Xpriv or +an Xpub can implement only the required into_extended_key() method.

use bdk::bitcoin;
 use bdk::bitcoin::bip32;
@@ -27,7 +27,7 @@ an ExtendedPubKey can impleme
 
 impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        let xprv = bip32::ExtendedPrivKey {
+        let xprv = bip32::Xpriv {
             network: self.network,
             depth: 0,
             parent_fingerprint: bip32::Fingerprint::default(),
@@ -41,7 +41,7 @@ an ExtendedPubKey can impleme
 }

Types that don’t internally encode the [Network] in which they are valid need some extra steps to override the set of valid networks, otherwise only the network specified in the -ExtendedPrivKey or ExtendedPubKey will be considered valid.

+Xpriv or Xpub will be considered valid.

use bdk::bitcoin;
 use bdk::bitcoin::bip32;
@@ -56,7 +56,7 @@ steps to override the set of valid networks, otherwise only the network specifie
 
 impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-        let xprv = bip32::ExtendedPrivKey {
+        let xprv = bip32::Xpriv {
             network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
             depth: 0,
             parent_fingerprint: bip32::Fingerprint::default(),
@@ -84,5 +84,5 @@ steps to override the set of valid networks, otherwise only the network specifie
 

Required Methods§

Consume self and turn it into an ExtendedKey

Provided Methods§

Consume self and turn it into a DescriptorKey by adding the extra metadata, such as key origin and derivation path

-

Implementations on Foreign Types§

Implementors§

Identity conversion

+

Implementations on Foreign Types§

Implementors§

Identity conversion

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html index b942d5942d..095581dfd6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.GeneratableKey.html @@ -1,5 +1,5 @@ GeneratableKey in bdk::keys - Rust

Trait bdk::keys::GeneratableKey

source ·
pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
+                    logo

GeneratableKey

Trait bdk::keys::GeneratableKey

source ·
pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
     type Entropy: AsMut<[u8]> + Default;
     type Options;
     type Error: Debug;
@@ -18,4 +18,4 @@ implements it, the returned 

Returned error in case of failure

Required Methods§

Generate a key given the extra options and the entropy

Provided Methods§

Generate a key given the options with a random entropy

-

Implementations on Foreign Types§

Implementors§

\ No newline at end of file +

Implementations on Foreign Types§

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html index 59e233fec9..28530f824b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.IntoDescriptorKey.html @@ -103,4 +103,4 @@ makes the compiler (correctly) fail.

Required Methods§

Turn the key into a DescriptorKey within the requested ScriptContext

Implementations on Foreign Types§

Implementors§

The “identity” conversion is used internally by some bdk::fragments

-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html index a2e9d34d12..3d60bba0c2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/type.KeyMap.html @@ -1,5 +1,5 @@ KeyMap in bdk::keys - Rust

Type Definition bdk::keys::KeyMap

Expand description

Alias type for a map of public key to secret key

+ logo

KeyMap

Type Definition bdk::keys::KeyMap

Expand description

Alias type for a map of public key to secret key

This map is returned whenever a descriptor that contains secrets is parsed using Descriptor::parse_descriptor, since the descriptor will always only contain public keys. This map allows looking up the corresponding secret key given a diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html index 57b8fbe9bd..3eb46b9520 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.descriptor.html @@ -1,5 +1,5 @@ descriptor in bdk - Rust

Macro bdk::descriptor

source ·
macro_rules! descriptor {
+                    logo

Macro bdk::descriptor

source ·
macro_rules! descriptor {
     ( bare ( $( $minisc:tt )* ) ) => { ... };
     ( sh ( wsh ( $( $minisc:tt )* ) ) ) => { ... };
     ( shwsh ( $( $minisc:tt )* ) ) => { ... };
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html
index 6c32295d5a..c6d9c6c363 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/macro.fragment.html
@@ -1,5 +1,5 @@
 fragment in bdk - Rust

Macro bdk::fragment

source ·
macro_rules! fragment {
+                    logo

Macro bdk::fragment

source ·
macro_rules! fragment {
     ( $modif:tt : $( $tail:tt )* ) => { ... };
     ( true ) => { ... };
     ( false ) => { ... };
diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/index.html
index ff81be0603..9b10019bd3 100644
--- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/index.html
+++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/index.html
@@ -1,3 +1,3 @@
-bdk::psbt - Rust

Module bdk::psbt

source ·
Expand description

Additional functions on the rust-bitcoin PartiallySignedTransaction structure.

+bdk::psbt - Rust

Module bdk::psbt

source ·
Expand description

Additional functions on the rust-bitcoin Psbt structure.

Traits

Trait to add functions to extract utxos and calculate fees.
\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/trait.PsbtUtils.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/trait.PsbtUtils.html index 8eb20f9058..2055aba374 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/trait.PsbtUtils.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/psbt/trait.PsbtUtils.html @@ -8,7 +8,7 @@

The total transaction fee amount, sum of input amounts minus sum of output amounts, in sats. If the PSBT is missing a TxOut for an input returns None.

The transaction’s fee rate. This value will only be accurate if calculated AFTER the -PartiallySignedTransaction is finalized and all witness/signature data is added to the +Psbt is finalized and all witness/signature data is added to the transaction. If the PSBT is missing a TxOut for an input returns None.

-

Implementations on Foreign Types§

Implementors§

\ No newline at end of file +

Implementations on Foreign Types§

Implementors§

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js index 24cba1aee6..c3780c6996 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":[["KeychainKind","Types of keychains"],["Utxo","An unspent transaction output (UTXO)."]],"externcrate":[["bitcoin",""],["miniscript",""]],"fn":[["version","Get the version of BDK at runtime"]],"macro":[["descriptor","Macro to write full descriptors with code"],["fragment","Macro to write descriptor fragments with code"]],"mod":[["descriptor","Descriptors"],["keys","Key formats"],["psbt","Additional functions on the `rust-bitcoin` `PartiallySignedTransaction` structure."],["wallet","Wallet"]],"struct":[["LocalOutput","An unspent output owned by a `Wallet`."],["WeightedUtxo","A [`Utxo`] with its `satisfaction_weight`."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["KeychainKind","Types of keychains"],["Utxo","An unspent transaction output (UTXO)."]],"externcrate":[["bitcoin",""],["miniscript",""]],"fn":[["version","Get the version of BDK at runtime"]],"macro":[["descriptor","Macro to write full descriptors with code"],["fragment","Macro to write descriptor fragments with code"]],"mod":[["descriptor","Descriptors"],["keys","Key formats"],["psbt","Additional functions on the `rust-bitcoin` `Psbt` structure."],["wallet","Wallet"]],"struct":[["LocalOutput","An unspent output owned by a `Wallet`."],["WeightedUtxo","A [`Utxo`] with its `satisfaction_weight`."]]}; \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalOutput.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalOutput.html index 4b6d906a78..f10c54b56f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalOutput.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalOutput.html @@ -5,14 +5,14 @@ pub keychain: KeychainKind, pub is_spent: bool, pub derivation_index: u32, - pub confirmation_time: ConfirmationTime, + pub confirmation_time: ConfirmationTime, }
Expand description

An unspent output owned by a Wallet.

Fields§

§outpoint: OutPoint

Reference to a transaction output

§txout: TxOut

Transaction output

§keychain: KeychainKind

Type of keychain

§is_spent: bool

Whether this UTXO is spent or not

§derivation_index: u32

The derivation index for the script pubkey in the wallet

-
§confirmation_time: ConfirmationTime

The confirmation time for transaction containing this utxo

+
§confirmation_time: ConfirmationTime

The confirmation time for transaction containing this utxo

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Error.html index 38a7222391..dac1ff10e4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Error.html @@ -1,5 +1,5 @@ Error in bdk::wallet::coin_selection - Rust
pub enum Error {
+                    logo

Error

pub enum Error {
     InsufficientFunds {
         needed: u64,
         available: u64,
@@ -14,7 +14,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§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

+

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Excess.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Excess.html index 16dabe0ac0..0d6cd4d4f2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Excess.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Excess.html @@ -1,5 +1,5 @@ Excess in bdk::wallet::coin_selection - Rust
pub enum Excess {
+                    logo

Excess

pub enum Excess {
     NoChange {
         dust_threshold: u64,
         remaining_amount: u64,
@@ -17,7 +17,7 @@
 
§

Change

Fields

§amount: u64

Effective amount available to create change after deducting the change output fee

§fee: u64

The deducted change output fee

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

-

Trait Implementations§

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

+

Trait Implementations§

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/fn.decide_change.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/fn.decide_change.html index ea5853cbee..bb373c3b1a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/fn.decide_change.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/fn.decide_change.html @@ -1,5 +1,5 @@ decide_change in bdk::wallet::coin_selection - Rust
pub fn decide_change(
    remaining_amount: u64,
    fee_rate: FeeRate,
    drain_script: &Script
) -> Excess
Expand description

Decide if change can be created

+ logo
pub fn decide_change(
    remaining_amount: u64,
    fee_rate: FeeRate,
    drain_script: &Script
) -> Excess
Expand description

Decide if change can be created

  • remaining_amount: the amount in which the selected coins exceed the target amount
  • fee_rate: required fee rate for the current selection
  • diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html index 2c299f074b..d43d7cf2a9 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/index.html @@ -1,5 +1,5 @@ bdk::wallet::coin_selection - Rust

    Module bdk::wallet::coin_selection

    source ·
    Expand description

    Coin selection

    + logo

    Module coin_selection

    Module bdk::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 @@ -26,9 +26,10 @@ be used if it is not explicitly set.

    .scan( (&mut selected_amount, &mut additional_weight), |(selected_amount, additional_weight), weighted_utxo| { - **selected_amount += weighted_utxo.utxo.txout().value; + **selected_amount += weighted_utxo.utxo.txout().value.to_sat(); **additional_weight += Weight::from_wu( - (TxIn::default().segwit_weight() + weighted_utxo.satisfaction_weight) + (TxIn::default().segwit_weight().to_wu() + + weighted_utxo.satisfaction_weight as u64) as u64, ); Some(weighted_utxo.utxo) diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html index 6216d67342..c7792b9bb2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html @@ -1,8 +1,8 @@ BranchAndBoundCoinSelection in bdk::wallet::coin_selection - Rust
    pub struct BranchAndBoundCoinSelection { /* private fields */ }
    Expand description

    Branch and bound coin selection

    + logo

    BranchAndBoundCoinSelection

    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§

    Create new instance with target size for change output

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Implementations§

    Create new instance with target size for change output

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html index 7ebcfbaa6f..6fc1ea28ea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.CoinSelectionResult.html @@ -1,5 +1,5 @@ CoinSelectionResult in bdk::wallet::coin_selection - Rust

    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§

    The total value of the inputs selected.

    -

    The total value of the inputs selected from the local wallet.

    -

    Trait Implementations§

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Implementations§

    The total value of the inputs selected.

    +

    The total value of the inputs selected from the local wallet.

    +

    Trait Implementations§

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html index e60add1ff5..5cdbfacf1f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html @@ -1,8 +1,8 @@ LargestFirstCoinSelection in bdk::wallet::coin_selection - Rust
    pub struct LargestFirstCoinSelection;
    Expand description

    Simple and dumb coin selection

    + logo

    LargestFirstCoinSelection

    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§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html index 2170deaa0e..27f08d9b09 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html @@ -1,8 +1,8 @@ OldestFirstCoinSelection in bdk::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

    + logo

    OldestFirstCoinSelection

    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§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html index b7efe3b5ca..a50b5acc24 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.html @@ -1,11 +1,11 @@ CoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust
    pub trait CoinSelectionAlgorithm: Debug {
    +                    logo

    CoinSelectionAlgorithm

    pub trait CoinSelectionAlgorithm: Debug {
         fn coin_select(
            &self,
            required_utxos: Vec<WeightedUtxo>,
            optional_utxos: Vec<WeightedUtxo>,
            fee_rate: FeeRate,
            target_amount: u64,
            drain_script: &Script
        ) -> Result<CoinSelectionResult, Error>; }
    Expand description

    Trait for generalized coin selection algorithms

    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§

    Perform the coin selection

    +

    Required Methods§

    Perform the coin selection

    • database: a reference to the wallet’s database that can be used to lookup additional details for a specific UTXO
    • @@ -18,4 +18,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/coin_selection/type.DefaultCoinSelectionAlgorithm.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html index 90d580d8c0..09a3d3e37f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html @@ -1,4 +1,4 @@ DefaultCoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust
    pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
    Expand description

    Default coin selection algorithm used by TxBuilder if not + logo

    DefaultCoinSelectionAlgorithm

    pub type DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
    Expand description

    Default coin selection algorithm used by TxBuilder if not overridden

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/enum.ApplyBlockError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/enum.ApplyBlockError.html index 08c05e5ebd..202c59861a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/enum.ApplyBlockError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/enum.ApplyBlockError.html @@ -1,12 +1,12 @@ ApplyBlockError in bdk::wallet - Rust

    Enum bdk::wallet::ApplyBlockError

    source ·
    pub enum ApplyBlockError {
    -    CannotConnect(CannotConnectError),
    +    CannotConnect(CannotConnectError),
         UnexpectedConnectedToHash {
             connected_to_hash: BlockHash,
             expected_hash: BlockHash,
         },
     }
    Expand description

    An error that may occur when applying a block to Wallet.

    -

    Variants§

    §

    CannotConnect(CannotConnectError)

    Occurs when the update chain cannot connect with original chain.

    +

    Variants§

    §

    CannotConnect(CannotConnectError)

    Occurs when the update chain cannot connect with original chain.

    §

    UnexpectedConnectedToHash

    Fields

    §connected_to_hash: BlockHash

    Block hash of connected_to.

    §expected_hash: BlockHash

    Expected block hash of connected_to, as derived from block.

    Occurs when the connected_to hash does not match the hash derived from block.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html index a65fefa5b8..f27b8adf6e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/fn.wallet_name_from_descriptor.html @@ -1,4 +1,4 @@ wallet_name_from_descriptor in bdk::wallet - Rust
    pub fn wallet_name_from_descriptor<T>(
        descriptor: T,
        change_descriptor: Option<T>,
        network: Network,
        secp: &Secp256k1<All>
    ) -> Result<String, DescriptorError>where
        T: IntoWalletDescriptor,
    Expand description

    Deterministically generate a unique name given the descriptors defining the wallet

    + logo
    pub fn wallet_name_from_descriptor<T>(
        descriptor: T,
        change_descriptor: Option<T>,
        network: Network,
        secp: &Secp256k1<All>
    ) -> Result<String, DescriptorError>where
        T: IntoWalletDescriptor,
    Expand description

    Deterministically generate a unique name given the descriptors defining the wallet

    Compatible with wallet_name_from_descriptor

    \ 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 5a1f53bc74..06f6157ec7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/index.html @@ -1,5 +1,5 @@ bdk::wallet - Rust

    Module bdk::wallet

    source ·
    Expand description

    Wallet

    + logo

    Module wallet

    Module bdk::wallet

    source ·
    Expand description

    Wallet

    This module defines the Wallet.

    Modules

    Coin selection
    Errors that can be thrown by the Wallet
    Wallet export
    Generalized signers
    Transaction builder

    Structs

    A derived address and the index it was found at. For convenience this automatically derefs to Address
    Balance, differentiated into various categories.
    The changes made to a wallet by applying an Update.
    An update to Wallet.
    A Bitcoin wallet

    Enums

    The address index selection strategy to use to derived an address from the wallet’s external diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerContext.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerContext.html index b3b412dac8..d2150ec9e8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerContext.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerContext.html @@ -1,5 +1,5 @@ SignerContext in bdk::wallet::signer - Rust
    pub enum SignerContext {
    +                    logo

    SignerContext

    pub enum SignerContext {
         Legacy,
         Segwitv0,
         Tap {
    @@ -11,9 +11,9 @@
     
    §

    Segwitv0

    Segwit v0 context (BIP 143)

    §

    Tap

    Fields

    §is_internal_key: bool

    Whether the signer can sign for the internal key or not

    Taproot context (BIP 340)

    -

    Trait Implementations§

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html index 2e70a42da8..c4a513b715 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerError.html @@ -1,5 +1,5 @@ SignerError in bdk::wallet::signer - Rust

    Enum bdk::wallet::signer::SignerError

    source ·
    pub enum SignerError {
    +                    logo

    SignerError

    Enum bdk::wallet::signer::SignerError

    source ·
    pub enum SignerError {
     
    Show 14 variants MissingKey, InvalidKey, UserCanceled, @@ -34,7 +34,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§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html index ba44a1a390..5acb4010a0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.SignerId.html @@ -1,5 +1,5 @@ SignerId in bdk::wallet::signer - Rust

    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§

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +operator. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.TapLeavesOptions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.TapLeavesOptions.html index 2c1fe98afa..0b90a48238 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.TapLeavesOptions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/enum.TapLeavesOptions.html @@ -1,5 +1,5 @@ TapLeavesOptions in bdk::wallet::signer - Rust
    pub enum TapLeavesOptions {
    +                    logo

    TapLeavesOptions

    pub enum TapLeavesOptions {
         All,
         Include(Vec<TapLeafHash>),
         Exclude(Vec<TapLeafHash>),
    @@ -10,9 +10,9 @@
     some of the specified leaves, if it doesn’t have the right key to sign them.

    §

    Exclude(Vec<TapLeafHash>)

    The signer won’t sign the specified leaves.

    §

    None

    The signer won’t sign any leaf.

    -

    Trait Implementations§

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html index d57d7f85ee..27f5f3e406 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/index.html @@ -1,5 +1,5 @@ bdk::wallet::signer - Rust

    Module bdk::wallet::signer

    source ·
    Expand description

    Generalized signers

    + logo

    Module signer

    Module bdk::wallet::signer

    source ·
    Expand description

    Generalized signers

    This module provides the ability to add customized signers to a Wallet through the Wallet::add_signer function.

    @@ -23,7 +23,7 @@ through the Wallet::add_ impl InputSigner for CustomSigner { fn sign_input( &self, - psbt: &mut psbt::PartiallySignedTransaction, + psbt: &mut Psbt, input_index: usize, _sign_options: &SignOptions, _secp: &Secp256k1<All>, diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html index 4099398cba..b9085644ba 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignOptions.html @@ -1,5 +1,5 @@ SignOptions in bdk::wallet::signer - Rust

    Struct bdk::wallet::signer::SignOptions

    source ·
    pub struct SignOptions {
    +                    logo

    SignOptions

    Struct bdk::wallet::signer::SignOptions

    source ·
    pub struct SignOptions {
         pub trust_witness_utxo: bool,
         pub assume_height: Option<u32>,
         pub allow_all_sighashes: bool,
    @@ -46,7 +46,7 @@ or not. This option is ignored if we’re signing a non-taproot PSBT.

    §allow_grinding: bool

    Whether we should grind ECDSA signature to ensure signing with low r or not. Defaults to true, i.e., we always grind ECDSA signature to sign with low r.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html index b9a74f0374..9ee2a00bc3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerOrdering.html @@ -1,13 +1,13 @@ SignerOrdering in bdk::wallet::signer - Rust

    Struct bdk::wallet::signer::SignerOrdering

    source ·
    pub struct SignerOrdering(pub usize);
    Expand description

    Defines the order in which signers are called

    + logo

    SignerOrdering

    Struct bdk::wallet::signer::SignerOrdering

    source ·
    pub struct SignerOrdering(pub usize);
    Expand description

    Defines the order in which signers are called

    The default value is 100. Signers with an ordering above that will be called later, and they will thus see the partial signatures added to the transaction once they get to sign themselves.

    -

    Tuple Fields§

    §0: usize

    Trait Implementations§

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

    Tuple Fields§

    §0: usize

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +operator. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerWrapper.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerWrapper.html index 775bedce9f..2690479b9b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerWrapper.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignerWrapper.html @@ -1,8 +1,8 @@ SignerWrapper in bdk::wallet::signer - Rust

    Struct bdk::wallet::signer::SignerWrapper

    source ·
    pub struct SignerWrapper<S: Sized + Debug + Clone> { /* private fields */ }
    Expand description

    Wrapper to pair a signer with its context

    -

    Implementations§

    Create a wrapped signer from a signer and a context

    -

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    The resulting type after dereferencing.
    Dereferences the value.
    Sign a single psbt input
    Sign a single psbt input
    Sign a single psbt input
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    + logo

    SignerWrapper

    Struct bdk::wallet::signer::SignerWrapper

    source ·
    pub struct SignerWrapper<S: Sized + Debug + Clone> { /* private fields */ }
    Expand description

    Wrapper to pair a signer with its context

    +

    Implementations§

    Create a wrapped signer from a signer and a context

    +

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    The resulting type after dereferencing.
    Dereferences the value.
    Sign a single psbt input
    Sign a single psbt input
    Sign a single psbt input
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    -
    The resulting type after obtaining ownership.
    Creates owned data from borrowed data, usually by cloning. Read more
    Uses borrowed data to replace owned data, usually by cloning. Read more
    Sign all the inputs of the psbt
    The type returned in the event of a conversion error.
    Performs the conversion.
    The type returned in the event of a conversion error.
    Performs the conversion.
    \ No newline at end of file +
    The resulting type after obtaining ownership.
    Creates owned data from borrowed data, usually by cloning. Read more
    Uses borrowed data to replace owned data, usually by cloning. Read more
    Sign all the inputs of the psbt
    The type returned in the event of a conversion error.
    Performs the conversion.
    The type returned in the event of a conversion error.
    Performs the conversion.
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html index 7c1768b8d7..1fcb2c38ea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/struct.SignersContainer.html @@ -1,17 +1,17 @@ SignersContainer in bdk::wallet::signer - Rust
    pub struct SignersContainer(_);
    Expand description

    Container for multiple signers

    -

    Implementations§

    Create a map of public keys to secret keys

    -

    Build a new signer container from a KeyMap

    + logo

    SignersContainer

    pub struct SignersContainer(_);
    Expand description

    Container for multiple signers

    +

    Implementations§

    Create a map of public keys to secret keys

    +

    Build a new signer container from a KeyMap

    Also looks at the corresponding descriptor to determine the SignerContext to attach to the signers

    -

    Default constructor

    -

    Adds an external signer to the container for the specified id. Optionally returns the +

    Default constructor

    +

    Adds an external signer to the container for the specified id. Optionally returns the signer that was previously in the container, if any

    -

    Removes a signer from the container and returns it

    -

    Returns the list of identifiers of all the signers in the container

    -

    Returns the list of signers in the container, sorted by lowest to highest ordering

    -

    Finds the signer with lowest ordering for a given id in the container.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Removes a signer from the container and returns it

    +

    Returns the list of identifiers of all the signers in the container

    +

    Returns the list of signers in the container, sorted by lowest to highest ordering

    +

    Finds the signer with lowest ordering for a given id in the container.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.InputSigner.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.InputSigner.html index 40e3cf52a8..acb414a497 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.InputSigner.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.InputSigner.html @@ -1,9 +1,9 @@ InputSigner in bdk::wallet::signer - Rust

    Trait bdk::wallet::signer::InputSigner

    source ·
    pub trait InputSigner: SignerCommon {
    -    fn sign_input(
            &self,
            psbt: &mut PartiallySignedTransaction,
            input_index: usize,
            sign_options: &SignOptions,
            secp: &Secp256k1<All>
        ) -> Result<(), SignerError>; + logo

    InputSigner

    Trait bdk::wallet::signer::InputSigner

    source ·
    pub trait InputSigner: SignerCommon {
    +    fn sign_input(
            &self,
            psbt: &mut Psbt,
            input_index: usize,
            sign_options: &SignOptions,
            secp: &Secp256k1<All>
        ) -> Result<(), SignerError>; }
    Expand description

    PSBT Input signer

    This trait can be implemented to provide custom signers to the wallet. If the signer supports signing individual inputs, this trait should be implemented and BDK will provide automatically an implementation for TransactionSigner.

    -

    Required Methods§

    Sign a single psbt input

    -

    Implementors§

    \ No newline at end of file +

    Required Methods§

    Sign a single psbt input

    +

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.SignerCommon.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.SignerCommon.html index aca6a2f2d2..fb369645f4 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.SignerCommon.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.SignerCommon.html @@ -1,14 +1,14 @@ SignerCommon in bdk::wallet::signer - Rust

    Trait bdk::wallet::signer::SignerCommon

    source ·
    pub trait SignerCommon: Debug + Send + Sync {
    +                    logo

    SignerCommon

    Trait bdk::wallet::signer::SignerCommon

    source ·
    pub trait SignerCommon: Debug + Send + Sync {
         fn id(&self, secp: &Secp256k1<All>) -> SignerId;
     
         fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> { ... }
     }
    Expand description

    Common signer methods

    -

    Required Methods§

    Return the SignerId for this signer

    +

    Required Methods§

    Return the SignerId for this signer

    The SignerId can be used to lookup a signer in the Wallet’s signers map or to compare two signers.

    -

    Provided Methods§

    Return the secret key for the signer

    +

    Provided Methods§

    Return the secret key for the signer

    This is used internally to reconstruct the original descriptor that may contain secrets. External signers that are meant to keep key isolated should just return None here (which is the default for this method, if not overridden).

    -

    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/signer/trait.TransactionSigner.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.TransactionSigner.html index 2fed136674..399a7be3ea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.TransactionSigner.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/signer/trait.TransactionSigner.html @@ -1,8 +1,8 @@ TransactionSigner in bdk::wallet::signer - Rust
    pub trait TransactionSigner: SignerCommon {
    -    fn sign_transaction(
            &self,
            psbt: &mut PartiallySignedTransaction,
            sign_options: &SignOptions,
            secp: &Secp256k1<All>
        ) -> Result<(), SignerError>; + logo

    TransactionSigner

    pub trait TransactionSigner: SignerCommon {
    +    fn sign_transaction(
            &self,
            psbt: &mut Psbt,
            sign_options: &SignOptions,
            secp: &Secp256k1<All>
        ) -> Result<(), SignerError>; }
    Expand description

    PSBT signer

    This trait can be implemented when the signer can’t sign inputs individually, but signs the whole transaction at once.

    -

    Required Methods§

    Sign all the inputs of the psbt

    -

    Implementors§

    \ No newline at end of file +

    Required Methods§

    Sign all the inputs of the psbt

    +

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html index 1181967c09..0dd349c0a8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.AddressInfo.html @@ -1,5 +1,5 @@ AddressInfo in bdk::wallet - Rust

    Fields§

    §index: u32

    Child index of this address

    §address: Address

    Address

    §keychain: KeychainKind

    Type of keychain

    -

    Methods from Deref<Target = Address>§

    Gets the address type of the address.

    +

    Methods from Deref<Target = Address>§

    Returns a reference to the payload of this address.

    +

    Returns a reference to the network of this address.

    +

    Returns a reference to the unchecked address, which is dangerous to use if the address +is invalid in the context of NetworkUnchecked.

    +

    Gets the address type of the address.

    Returns

    None if unknown, non-standard or related to the future witness version.

    Checks whether or not the address is following Bitcoin standardness rules when @@ -20,13 +24,10 @@ can use this method to check whether or not they can spend from this address.

    SegWit addresses with unassigned witness versions or non-standard program sizes are considered non-standard.

    -
    👎Deprecated since 0.30.0: Use Address::is_spend_standard instead

    Checks whether or not the address is following Bitcoin standardness rules.

    -

    SegWit addresses with unassigned witness versions or non-standard program sizes are -considered non-standard.

    Generates a script pubkey spending to this address.

    Creates a URI string bitcoin:address optimized to be encoded in QR codes.

    -

    If the address is bech32, both the schema and the address become uppercase. -If the address is base58, the schema is lowercase and the address is left mixed case.

    +

    If the address is bech32, the address becomes uppercase. +If the address is base58, the address is left mixed case.

    Quoting BIP 173 “inside QR codes uppercase SHOULD be used, as those permit the use of alphanumeric mode, which is 45% more compact than the normal byte mode.”

    Note however that despite BIP21 explicitly stating that the bitcoin: prefix should be @@ -46,7 +47,9 @@ given key. For taproot addresses, the supplied key is assumed to be tweaked

    assumed to have already been tweaked.

    Returns true if the address creates a particular script This function doesn’t make any allocations.

    -

    Parsed addresses do not always have one network. The problem is that legacy testnet, +

    Returns a reference to the checked address. +This function is dangerous in case the address is not a valid checked address.

    +

    Parsed addresses do not always have one network. The problem is that legacy testnet, regtest and signet addresse use the same prefix instead of multiple different ones. When parsing, such addresses are always assumed to be testnet addresses (the same is true for bech32 signet addresses). So if one wants to check if an address belongs to a certain diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html index 5e3c1aaa12..412deea90d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Balance.html @@ -1,5 +1,5 @@ Balance in bdk::wallet - Rust

    Struct bdk::wallet::Balance

    pub struct Balance {
    +                    logo

    Balance

    Struct bdk::wallet::Balance

    source ·
    pub struct Balance {
         pub immature: u64,
         pub trusted_pending: u64,
         pub untrusted_pending: u64,
    @@ -9,13 +9,13 @@
     
    §trusted_pending: u64

    Unconfirmed UTXOs generated by a wallet tx

    §untrusted_pending: u64

    Unconfirmed UTXOs received from an external wallet

    §confirmed: u64

    Confirmed and immediately spendable balance

    -

    Implementations§

    Get sum of trusted_pending and confirmed coins.

    +

    Implementations§

    Get sum of trusted_pending and confirmed coins.

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

    -

    Get the whole balance visible to the wallet.

    -

    Trait Implementations§

    The resulting type after applying the + operator.
    Performs the + operation. Read more
    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    Returns the “default value” for a type. Read more
    Deserialize this value from the given Serde deserializer. Read more
    Formats the value using the given formatter. Read more
    This method tests for self and other values to be equal, and is used +

    Get the whole balance visible to the wallet.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.ChangeSet.html index 9baea2aba8..f5962751ed 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.ChangeSet.html @@ -1,13 +1,13 @@ ChangeSet in bdk::wallet - Rust

    Struct bdk::wallet::ChangeSet

    source ·
    pub struct ChangeSet {
    -    pub chain: ChangeSet,
    -    pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>,
    +    pub chain: ChangeSet,
    +    pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>,
         pub network: Option<Network>,
     }
    Expand description

    The changes made to a wallet by applying an Update.

    -

    Fields§

    §chain: ChangeSet

    Changes to the LocalChain.

    -
    §indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>

    Changes to IndexedTxGraph.

    +

    Fields§

    §chain: ChangeSet

    Changes to the LocalChain.

    +
    §indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>

    Changes to IndexedTxGraph.

    §network: Option<Network>

    Stores the network type of the wallet.

    -

    Trait Implementations§

    Append another object of the same type onto self.
    Returns whether the structure is considered empty.
    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    Returns the “default value” for a type. Read more
    Deserialize this value from the given Serde deserializer. Read more
    Converts to this type from the input type.
    Converts to this type from the input type.
    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Update.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Update.html index acc4c3b32d..36b90e7b75 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Update.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Update.html @@ -1,14 +1,14 @@ Update in bdk::wallet - Rust

    Struct bdk::wallet::Update

    source ·
    pub struct Update {
         pub last_active_indices: BTreeMap<KeychainKind, u32>,
    -    pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
    -    pub chain: Option<Update>,
    +    pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
    +    pub chain: Option<Update>,
     }
    Expand description

    An update to Wallet.

    -

    It updates [bdk_chain::keychain::KeychainTxOutIndex], [bdk_chain::TxGraph] and [local_chain::LocalChain] atomically.

    +

    It updates bdk_chain::keychain::KeychainTxOutIndex, bdk_chain::TxGraph and local_chain::LocalChain atomically.

    Fields§

    §last_active_indices: BTreeMap<KeychainKind, u32>

    Contains the last active derivation indices per keychain (K), which is used to update the -[KeychainTxOutIndex].

    -
    §graph: TxGraph<ConfirmationTimeHeightAnchor>

    Update for the wallet’s internal [TxGraph].

    -
    §chain: Option<Update>

    Update for the wallet’s internal LocalChain.

    +KeychainTxOutIndex.

    +
    §graph: TxGraph<ConfirmationTimeHeightAnchor>

    Update for the wallet’s internal TxGraph.

    +
    §chain: Option<Update>

    Update for the wallet’s internal LocalChain.

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

    That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html index a6ff301b78..f483cb9ecb 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/struct.Wallet.html @@ -8,7 +8,7 @@ Its main components are:

    Implementations§

    Creates a wallet that does not persist data.

    Creates a wallet that does not persist data, with a custom genesis hash.

    -

    Infallibly return a derived address using the external descriptor, see AddressIndex for +

    Infallibly return a derived address using the external descriptor, see AddressIndex for available address index selection strategies. If none of the keys in the descriptor are derivable (i.e. does not end with /*) then the same address will always be returned for any AddressIndex.

    Panics
    @@ -22,21 +22,21 @@ be returned for any
    Panics

    This panics when the caller requests for an address of derivation index greater than the BIP32 max index.

    -

    Initialize an empty Wallet.

    -

    Initialize an empty Wallet with a custom genesis hash.

    +

    Initialize an empty Wallet.

    +

    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.

    -

    Load Wallet from the given persistence backend.

    -

    Either loads Wallet from persistence, or initializes it if it does not exist.

    +

    Load Wallet from the given persistence backend.

    +

    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.

    -

    Either loads Wallet from persistence, or initializes it if it does not exist (with a +

    Either loads Wallet from persistence, or initializes it if it does not exist (with a custom genesis hash).

    This method will fail if the loaded Wallet has different parameters to those provided. This is like Wallet::new_or_load with an additional genesis_hash parameter. This is useful for syncing from alternative networks.

    Get the Bitcoin network the wallet is using.

    Iterator over all keychains in this wallet

    -

    Return a derived address using the external descriptor, see AddressIndex for +

    Return a derived address using the external descriptor, see AddressIndex for available address index selection strategies. If none of the keys in the descriptor are derivable (i.e. does not end with /*) then the same address will always be returned for any AddressIndex.

    A PersistBackend<ChangeSet>::WriteError will result if unable to persist the new address @@ -44,7 +44,7 @@ to the PersistBackend.

    Panics

    This panics when the caller requests for an address of derivation index greater than the BIP32 max index.

    -

    Return a derived address using the internal (change) descriptor.

    +

    Return a derived address using the internal (change) descriptor.

    If the wallet doesn’t have an internal descriptor it will use the external descriptor.

    A PersistBackend<ChangeSet>::WriteError will result if unable to persist the new address to the PersistBackend.

    @@ -60,8 +60,8 @@ BIP32 max index.

    Return the list of unspent outputs of this wallet

    List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).

    To list only unspent outputs (UTXOs), use Wallet::list_unspent instead.

    -

    Get all the checkpoints the wallet is currently storing indexed by height.

    -

    Returns the latest checkpoint.

    +

    Get all the checkpoints the wallet is currently storing indexed by height.

    +

    Returns the latest checkpoint.

    Get unbounded script pubkey iterators for both Internal and External keychains.

    This is intended to be used when doing a full scan of your addresses (e.g. after restoring from seed words). You pass the BTreeMap of iterators to a blockchain data source (e.g. @@ -72,14 +72,14 @@ script pubkeys the wallet is storing internally).

    See all_unbounded_spk_iters for more documentation

    Returns the utxo owned by this wallet corresponding to outpoint if it exists in the wallet’s database.

    -

    Inserts a [TxOut] at [OutPoint] into the wallet’s transaction graph.

    +

    Inserts a [TxOut] at [OutPoint] into the wallet’s transaction graph.

    This is used for providing a previous output’s value so that we can use calculate_fee or calculate_fee_rate on a given transaction. Outputs inserted with this method will not be returned in list_unspent or list_output.

    Any inserted TxOuts are not persisted until commit is called.

    WARNING: This should only be used to add TxOuts that the wallet does not own. Only insert TxOuts that you trust the values for!

    -

    Calculates the fee of a given transaction. Returns 0 if tx is a coinbase transaction.

    +

    Calculates the fee of a given transaction. Returns 0 if tx is a coinbase transaction.

    To calculate the fee for a [Transaction] with inputs not owned by this wallet you must manually insert the TxOut(s) into the tx graph using the insert_txout function.

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

    @@ -87,9 +87,9 @@ manually insert the TxOut(s) into the tx graph using the
    let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
     let fee = wallet.calculate_fee(&tx).expect("fee");
    -
    let tx = &psbt.clone().extract_tx();
    +
    let tx = &psbt.clone().extract_tx().expect("tx");
     let fee = wallet.calculate_fee(tx).expect("fee");
    -

    Calculate the [FeeRate] for a given transaction.

    +

    Calculate the [FeeRate] for a given transaction.

    To calculate the fee rate for a [Transaction] with inputs not owned by this wallet you must manually insert the TxOut(s) into the tx graph using the insert_txout function.

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

    @@ -97,8 +97,8 @@ manually insert the TxOut(s) into the tx graph using the
    let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
     let fee_rate = wallet.calculate_fee_rate(&tx).expect("fee rate");
    -
    let tx = psbt.clone().extract_tx();
    -let fee_rate = wallet.calculate_fee_rate(&tx).expect("fee rate");
    +
    let tx = &psbt.clone().extract_tx().expect("tx");
    +let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");

    Compute the tx’s sent and received amounts (in satoshis).

    This method returns a tuple (sent, received). Sent is the sum of the txin amounts that spend from previous txouts tracked by this wallet. Received is the summation @@ -107,14 +107,14 @@ of this tx’s outputs that send to script pubkeys tracked by this wallet.

    let tx = wallet.get_tx(txid).expect("tx exists").tx_node.tx;
     let (sent, received) = wallet.sent_and_received(&tx);
    -
    let tx = &psbt.clone().extract_tx();
    +
    let tx = &psbt.clone().extract_tx().expect("tx");
     let (sent, received) = wallet.sent_and_received(tx);
    -

    Get a single transaction from the wallet as a [CanonicalTx] (if the transaction exists).

    +

    Get a single transaction from the wallet as a CanonicalTx (if the transaction exists).

    CanonicalTx contains the full transaction alongside meta-data such as:

      -
    • Blocks that the transaction is Anchored in. These may or may not be blocks that exist +
    • Blocks that the transaction is Anchored in. These may or may not be blocks that exist in the best chain.
    • -
    • The [ChainPosition] of the transaction in the best chain - whether the transaction is +
    • The ChainPosition of the transaction in the best chain - whether the transaction is confirmed or unconfirmed. If the transaction is confirmed, the anchor which proves the confirmation is provided. If the transaction is unconfirmed, the unix timestamp of when the transaction was last seen in the mempool is provided.
    • @@ -147,11 +147,11 @@ the transaction was last seen in the mempool is provided. last_seen, ), }
    -

    Add a new checkpoint to the wallet’s internal view of the chain. +

    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).

    -

    Add a transaction to the wallet’s internal view of the chain. This stages but does not +

    Add a transaction to the wallet’s internal view of the chain. This stages but does not commit the change.

    Returns whether anything changed with the transaction insertion (e.g. false if the transaction was already inserted at the same position).

    @@ -161,7 +161,7 @@ inserting new transactions.

    WARNING: If position is confirmed, we anchor the tx to a the lowest checkpoint that is >= the position’s height. The caller is responsible for ensuring the tx exists in our local view of the best chain’s history.

    -

    Iterate over the transactions in the wallet.

    +

    Iterate over the transactions in the wallet.

    Return the balance, separated into available, trusted-pending, untrusted-pending and immature values.

    Add an external signer

    @@ -186,7 +186,7 @@ values.

    }; // sign and broadcast ...
    -

    Bump the fee of a transaction previously created with this wallet.

    +

    Bump the fee of a transaction previously created with this wallet.

    Returns an error if the transaction is already confirmed or doesn’t explicitly signal replace by fee (RBF). If the transaction can be fee bumped then it returns a TxBuilder pre-populated with the inputs and outputs of the original transaction.

    @@ -199,7 +199,7 @@ pre-populated with the inputs and outputs of the original transaction.

    builder.finish()? }; let _ = wallet.sign(&mut psbt, SignOptions::default())?; -let tx = psbt.extract_tx(); +let tx = psbt.clone().extract_tx().expect("tx"); // broadcast tx but it's taking too long to confirm so we want to bump the fee let mut psbt = { let mut builder = wallet.build_fee_bump(tx.txid())?; @@ -211,7 +211,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
    -

    Sign a transaction with all the wallet’s signers, in the order specified by every signer’s +

    Sign a transaction with all the wallet’s signers, in the order specified by every signer’s SignerOrdering. This function returns the Result type with an encapsulated bool that has the value true if the PSBT was finalized, or false otherwise.

    The SignOptions can be used to tweak the behavior of the software signers, and the way the transaction is finalized at the end. Note that it can’t be guaranteed that every @@ -225,52 +225,52 @@ in this library will.

    }; let finalized = wallet.sign(&mut psbt, SignOptions::default())?; assert!(finalized, "we should have signed all the inputs");
    -

    Return the spending policies for the wallet’s descriptor

    -

    Return the “public” version of the wallet’s descriptor, meaning a new descriptor that has +

    Return the spending policies for the wallet’s descriptor

    +

    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

    -

    Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass +

    Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass validation and construct the respective scriptSig or scriptWitness. Please refer to BIP174 for further information.

    Returns true if the PSBT could be finalized, and false otherwise.

    The SignOptions can be used to tweak the behavior of the finalizer.

    -

    Return the secp256k1 context used for all signing operations

    -

    Returns the descriptor used to create addresses for a particular keychain.

    -

    The derivation index of this wallet. It will return None if it has not derived any addresses. +

    Return the secp256k1 context used for all signing operations

    +

    Returns the descriptor used to create addresses for a particular keychain.

    +

    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.

    -

    The index of the next address that you would get if you were to ask the wallet for a new address

    -

    Informs the wallet that you no longer intend to broadcast a tx that was built from it.

    +

    The index of the next address that you would get if you were to ask the wallet for a new address

    +

    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.

    -

    get the corresponding PSBT Input for a LocalUtxo

    -

    Return the checksum of the public descriptor associated to keychain

    +

    get the corresponding PSBT Input for a LocalUtxo

    +

    Return the checksum of the public descriptor associated to keychain

    Internally calls Self::get_descriptor_for_keychain to fetch the right descriptor

    -

    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 commit them).

    Usually you create an update by interacting with some blockchain data source and inserting transactions related to your wallet into it.

    -

    Commits all currently staged changed to the persistence backend returning and error when +

    Commits all currently staged changed to the persistence backend returning and error when this fails.

    This returns whether the update resulted in any changes.

    -

    Returns the changes that will be committed with the next call to commit.

    -

    Get a reference to the inner [TxGraph].

    -

    Get a reference to the inner [KeychainTxOutIndex].

    -

    Get a reference to the inner [LocalChain].

    -

    Introduces a block of height to the wallet, and tries to connect it to the +

    Returns the changes that will be committed with the next call to commit.

    +

    Get a reference to the inner TxGraph.

    +

    Get a reference to the inner KeychainTxOutIndex.

    +

    Get a reference to the inner LocalChain.

    +

    Introduces a block of height to the wallet, and tries to connect it to the prev_blockhash of the block’s header.

    This is a convenience method that is equivalent to calling apply_block_connected_to with prev_blockhash and height-1 as the connected_to parameter.

    -

    Applies relevant transactions from block of height to the wallet, and connects the +

    Applies relevant transactions from block of height to the wallet, and connects the block to the internal chain.

    The connected_to parameter informs the wallet how this block connects to the internal -[LocalChain]. Relevant transactions are filtered from the block and inserted into the -internal [TxGraph].

    -

    Apply relevant unconfirmed transactions to the wallet.

    +LocalChain. Relevant transactions are filtered from the block and inserted into the +internal TxGraph.

    +

    Apply relevant unconfirmed transactions to the wallet.

    Transactions that are not relevant are filtered out.

    This method takes in an iterator of (tx, last_seen) where last_seen is the timestamp of when the transaction was last seen in the mempool. This is used for conflict resolution when there is conflicting unconfirmed transactions. The transaction with the later last_seen is prioritized.

    -

    Trait Implementations§

    Converts this type into a shared reference of the (usually inferred) input type.
    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

    Converts this type into a shared reference of the (usually inferred) input type.
    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html index 8d0a58597d..6533024cfd 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/index.html @@ -1,5 +1,5 @@ bdk::wallet::tx_builder - Rust

    Module bdk::wallet::tx_builder

    source ·
    Expand description

    Transaction builder

    + logo

    Module tx_builder

    Module bdk::wallet::tx_builder

    source ·
    Expand description

    Transaction builder

    Example

    // create a TxBuilder from a wallet
     let mut tx_builder = wallet.build_tx();
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html
    index 7b89336676..501af9c524 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/tx_builder/struct.TxBuilder.html
    @@ -196,7 +196,7 @@ add them using 

    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.

    -

    Finish building the transaction.

    +

    Finish building the transaction.

    Returns a new [Psbt] per BIP174.

    Replace the recipients already added with a new list

    Add a recipient to the internal list

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.BlockEvent.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.BlockEvent.html index 96fa8fd92c..8c40bf3c0f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.BlockEvent.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.BlockEvent.html @@ -1,18 +1,18 @@ BlockEvent in bdk_bitcoind_rpc - Rust
    pub struct BlockEvent<B> {
         pub block: B,
    -    pub checkpoint: CheckPoint,
    +    pub checkpoint: CheckPoint,
     }
    Expand description

    A newly emitted block from Emitter.

    Fields§

    §block: B

    Either a full [Block] or [Header] of the new block.

    -
    §checkpoint: CheckPoint

    The checkpoint of the new block.

    -

    A [CheckPoint] is a node of a linked list of [BlockId]s. This checkpoint is linked to -all [BlockId]s originally passed in Emitter::new as well as emitted blocks since then. +

    §checkpoint: CheckPoint

    The checkpoint of the new block.

    +

    A CheckPoint is a node of a linked list of BlockIds. This checkpoint is linked to +all BlockIds originally passed in Emitter::new as well as emitted blocks since then. These blocks are guaranteed to be of the same chain.

    This is important as BDK structures require block-to-apply to be connected with another block in the original chain.

    Implementations§

    The block height of this new block.

    The block hash of this new block.

    -

    The [BlockId] of a previous block that this block connects to.

    -

    This either returns a [BlockId] of a previously emitted block or from the chain we started +

    The BlockId of a previous block that this block connects to.

    +

    This either returns a BlockId of a previously emitted block or from the chain we started with (passed in as last_cp in Emitter::new).

    This value is derived from BlockEvent::checkpoint.

    Trait Implementations§

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.Emitter.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.Emitter.html index f18b7bc898..aec3eeb9e3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.Emitter.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_bitcoind_rpc/struct.Emitter.html @@ -1,6 +1,6 @@ Emitter in bdk_bitcoind_rpc - Rust

    Struct bdk_bitcoind_rpc::Emitter

    source ·
    pub struct Emitter<'c, C> { /* private fields */ }
    Expand description

    The Emitter is used to emit data sourced from [bitcoincore_rpc::Client].

    Refer to module-level documentation for more.

    -

    Implementations§

    Construct a new Emitter.

    +

    Implementations§

    Construct a new Emitter.

    last_cp informs the emitter of the chain we are starting off with. This way, the emitter can start emission from a block that connects to the original chain.

    start_height starts emission from a given height (if there are no conflicts with the diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxAncestors.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxAncestors.html index 995bbb0230..c0c8ba8978 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxAncestors.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxAncestors.html @@ -1,4 +1,4 @@ -TxAncestors in bdk_chain::tx_graph - Rust

    pub struct TxAncestors<'g, A, F> { /* private fields */ }
    Expand description

    An iterator that traverses ancestors of a given root transaction.

    +TxAncestors in bdk_chain::tx_graph - Rust
    pub struct TxAncestors<'g, A, F> { /* private fields */ }
    Expand description

    An iterator that traverses ancestors of a given root transaction.

    The iterator excludes partial transactions.

    Returned by the walk_ancestors method of TxGraph.

    Trait Implementations§

    The type of the elements being iterated over.
    Advances the iterator and returns the next value. Read more
    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    Returns the bounds on the remaining length of the iterator. Read more
    Consumes the iterator, counting the number of iterations and returning it. Read more
    Consumes the iterator, returning the last element. Read more
    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    Returns the nth element of the iterator. Read more
    Creates an iterator starting at the same point, but stepping by @@ -33,9 +33,9 @@ less than those of another. Read more
    Determines if the elements of this Iterator are lexicographically greater than those of another. Read more
    Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more
    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction -function. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would -happen it returns None. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would -happen it returns None. Read more

    Returns the argument unchanged.

    +function. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Adapts the byte iterator to output GF32 field elements instead. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would +happen it returns None. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would +happen it returns None. Read more
    Adapts the Fe32 iterator to output bytes instead. Read more
    Adapts the Fe32 iterator to encode the field elements into a bech32 address.

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxDescendants.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxDescendants.html index bec332c775..0cbb5973e3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxDescendants.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxDescendants.html @@ -1,4 +1,4 @@ -TxDescendants in bdk_chain::tx_graph - Rust
    pub struct TxDescendants<'g, A, F> { /* private fields */ }
    Expand description

    An iterator that traverses transaction descendants.

    +TxDescendants in bdk_chain::tx_graph - Rust
    pub struct TxDescendants<'g, A, F> { /* private fields */ }
    Expand description

    An iterator that traverses transaction descendants.

    Returned by the walk_descendants method of TxGraph.

    Trait Implementations§

    The type of the elements being iterated over.
    Advances the iterator and returns the next value. Read more
    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    Returns the bounds on the remaining length of the iterator. Read more
    Consumes the iterator, counting the number of iterations and returning it. Read more
    Consumes the iterator, returning the last element. Read more
    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    Returns the nth element of the iterator. Read more
    Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more
    Takes two iterators and creates a new iterator over both in sequence. Read more
    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator @@ -32,9 +32,9 @@ less than those of another. Read more
    Determines if the elements of this Iterator are lexicographically greater than those of another. Read more
    Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more
    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction -function. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would -happen it returns None. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would -happen it returns None. Read more

    Returns the argument unchanged.

    +function. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Adapts the byte iterator to output GF32 field elements instead. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would +happen it returns None. Read more
    Calculate the sum over the iterator using checked arithmetic. If an over or underflow would +happen it returns None. Read more
    Adapts the Fe32 iterator to output bytes instead. Read more
    Adapts the Fe32 iterator to encode the field elements into a bech32 address.

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html index e8ac7f8a71..f6b3ae8838 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/index.html @@ -1,4 +1,4 @@ -bdk_electrum - Rust

    Crate bdk_electrum

    source ·
    Expand description

    This crate is used for updating structures of [bdk_chain] with data from an Electrum server.

    +bdk_electrum - Rust

    Crate bdk_electrum

    source ·
    Expand description

    This crate is used for updating structures of bdk_chain with data from an Electrum server.

    The two primary methods are ElectrumExt::sync and ElectrumExt::full_scan. In most cases ElectrumExt::sync is used to sync the transaction histories of scripts that the application cares about, for example the scripts for all the receive addresses of a Wallet’s keychain that it @@ -6,9 +6,9 @@ has shown a user. RelevantTxids.

    +bdk_chain including RelevantTxids.

    The RelevantTxids only includes txids and not full transactions. The caller is responsible -for obtaining full transactions before applying new data to their [bdk_chain]. This can be +for obtaining full transactions before applying new data to their bdk_chain. This can be done with these steps:

    1. @@ -19,4 +19,4 @@ done with these steps:

    Refer to example_electrum for a complete example.

    -

    Re-exports

    pub use bdk_chain;
    pub use electrum_client;

    Structs

    Combination of chain and transactions updates from electrum
    Represents updates fetched from an Electrum server, but excludes full transactions.

    Traits

    Trait to extend [Client] functionality.
    \ No newline at end of file +

    Re-exports

    pub use bdk_chain;
    pub use electrum_client;

    Structs

    Combination of chain and transactions updates from electrum
    Represents updates fetched from an Electrum server, but excludes full transactions.

    Traits

    Trait to extend [Client] functionality.
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html index 3847723c9d..1a7f6a4080 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html @@ -1,10 +1,10 @@ ElectrumUpdate in bdk_electrum - Rust
    pub struct ElectrumUpdate {
    -    pub chain_update: Update,
    +    pub chain_update: Update,
         pub relevant_txids: RelevantTxids,
     }
    Expand description

    Combination of chain and transactions updates from electrum

    We have to update the chain and the txids at the same time since we anchor the txids to the same chain tip that we check before and after we gather the txids.

    -

    Fields§

    §chain_update: Update

    Chain update

    +

    Fields§

    §chain_update: Update

    Chain update

    §relevant_txids: RelevantTxids

    Transaction updates from electrum

    Trait Implementations§

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.RelevantTxids.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.RelevantTxids.html index 01393d6843..5931a1e64e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.RelevantTxids.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.RelevantTxids.html @@ -1,13 +1,13 @@ RelevantTxids in bdk_electrum - Rust
    pub struct RelevantTxids(_);
    Expand description

    Represents updates fetched from an Electrum server, but excludes full transactions.

    -

    To provide a complete update to [TxGraph], you’ll need to call Self::missing_full_txs to -determine the full transactions missing from [TxGraph]. Then call Self::into_tx_graph to +

    To provide a complete update to TxGraph, you’ll need to call Self::missing_full_txs to +determine the full transactions missing from TxGraph. Then call Self::into_tx_graph to fetch the full transactions from Electrum and finalize the update.

    -

    Implementations§

    Determine the full transactions that are missing from graph.

    +

    Implementations§

    Determine the full transactions that are missing from graph.

    Refer to RelevantTxids for more details.

    -

    Finalizes the [TxGraph] update by fetching missing txids from the client.

    +

    Finalizes the TxGraph update by fetching missing txids from the client.

    Refer to RelevantTxids for more details.

    -

    Finalizes the update by fetching missing txids from the client, where the -resulting [TxGraph] has anchors of type [ConfirmationTimeHeightAnchor].

    +

    Finalizes the update by fetching missing txids from the client, where the +resulting TxGraph has anchors of type ConfirmationTimeHeightAnchor.

    Refer to RelevantTxids for more details.

    Note: The confirmation time might not be precisely correct if there has been a reorg.

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html index 3f306830db..9c0b023a42 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html @@ -1,9 +1,9 @@ ElectrumExt in bdk_electrum - Rust
    pub trait ElectrumExt {
    -    fn full_scan<K: Ord + Clone>(
            &self,
            prev_tip: CheckPoint,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
            stop_gap: usize,
            batch_size: usize
        ) -> Result<(ElectrumUpdate, BTreeMap<K, u32>), Error>; - fn sync(
            &self,
            prev_tip: CheckPoint,
            misc_spks: impl IntoIterator<Item = ScriptBuf>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            batch_size: usize
        ) -> Result<ElectrumUpdate, Error>; + fn full_scan<K: Ord + Clone>(
            &self,
            prev_tip: CheckPoint,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
            stop_gap: usize,
            batch_size: usize
        ) -> Result<(ElectrumUpdate, BTreeMap<K, u32>), Error>; + fn sync(
            &self,
            prev_tip: CheckPoint,
            misc_spks: impl IntoIterator<Item = ScriptBuf>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            batch_size: usize
        ) -> Result<ElectrumUpdate, Error>; }
    Expand description

    Trait to extend [Client] functionality.

    -

    Required Methods§

    Full scan the keychain scripts specified with the blockchain (via an Electrum client) and -returns updates for [bdk_chain] data structures.

    +

    Required Methods§

    Full scan the keychain scripts specified with the blockchain (via an Electrum client) and +returns updates for bdk_chain data structures.

    • prev_tip: the most recent blockchain tip present locally
    • keychain_spks: keychains that we want to scan transactions for
    • @@ -11,12 +11,12 @@ returns updates for [bdk_chain] data structures.

      The full scan for each keychain stops after a gap of stop_gap script pubkeys with no associated transactions. batch_size specifies the max number of script pubkeys to request for in a single batch request.

      -

    Sync a set of scripts with the blockchain (via an Electrum client) for the data specified -and returns updates for [bdk_chain] data structures.

    +

    Sync a set of scripts with the blockchain (via an Electrum client) for the data specified +and returns updates for bdk_chain data structures.

    • prev_tip: the most recent blockchain tip present locally
    • misc_spks: an iterator of scripts we want to sync transactions for
    • -
    • txids: transactions for which we want updated [Anchor]s
    • +
    • txids: transactions for which we want updated Anchors
    • outpoints: transactions associated with these outpoints (residing, spending) that we want to include in the update
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html index e0b91720eb..47b4c8d0cf 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/index.html @@ -27,6 +27,6 @@ has shown a user. bdk_chain -via a new TxGraph to be appended to any existing TxGraph data.

    +via a new TxGraph to be appended to any existing TxGraph data.

    Refer to example_esplora for a complete example.

    Re-exports

    pub use esplora_client;

    Traits

    Trait to extend the functionality of [esplora_client::AsyncClient].
    Trait to extend the functionality of [esplora_client::BlockingClient].
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html index 711cfef08a..ccb70a88b3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html @@ -1,21 +1,21 @@ EsploraAsyncExt in bdk_esplora - Rust
    pub trait EsploraAsyncExt {
    -    fn update_local_chain<'life0, 'async_trait>(
            &'life0 self,
            local_tip: CheckPoint,
            request_heights: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = u32> + Send> + Send
        ) -> Pin<Box<dyn Future<Output = Result<Update, Box<Error>>> + Send + 'async_trait>>
        where
            Self: 'async_trait,
            'life0: 'async_trait
    ; - fn full_scan<'life0, 'async_trait, K>(
            &'life0 self,
            keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, ScriptBuf)> + Send> + Send>,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Box<Error>>> + Send + 'async_trait>>
        where
            K: 'async_trait + Ord + Clone + Send,
            Self: 'async_trait,
            'life0: 'async_trait
    ; - fn sync<'life0, 'async_trait>(
            &'life0 self,
            misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = ScriptBuf> + Send> + Send,
            txids: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Txid> + Send> + Send,
            outpoints: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = OutPoint> + Send> + Send,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<TxGraph<ConfirmationTimeHeightAnchor>, Box<Error>>> + Send + 'async_trait>>
        where
            Self: 'async_trait,
            'life0: 'async_trait
    ; + fn update_local_chain<'life0, 'async_trait>(
            &'life0 self,
            local_tip: CheckPoint,
            request_heights: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = u32> + Send> + Send
        ) -> Pin<Box<dyn Future<Output = Result<Update, Box<Error>>> + Send + 'async_trait>>
        where
            Self: 'async_trait,
            'life0: 'async_trait
    ; + fn full_scan<'life0, 'async_trait, K>(
            &'life0 self,
            keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, ScriptBuf)> + Send> + Send>,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Box<Error>>> + Send + 'async_trait>>
        where
            K: 'async_trait + Ord + Clone + Send,
            Self: 'async_trait,
            'life0: 'async_trait
    ; + fn sync<'life0, 'async_trait>(
            &'life0 self,
            misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = ScriptBuf> + Send> + Send,
            txids: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Txid> + Send> + Send,
            outpoints: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = OutPoint> + Send> + Send,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<TxGraph<ConfirmationTimeHeightAnchor>, Box<Error>>> + Send + 'async_trait>>
        where
            Self: 'async_trait,
            'life0: 'async_trait
    ; }
    Expand description

    Trait to extend the functionality of [esplora_client::AsyncClient].

    Refer to crate-level documentation for more.

    -

    Required Methods§

    Prepare a LocalChain update with blocks fetched from Esplora.

    +

    Required Methods§

    Prepare a LocalChain update with blocks fetched from Esplora.

      -
    • local_tip is the previous tip of LocalChain::tip.
    • +
    • local_tip is the previous tip of LocalChain::tip.
    • request_heights is the block heights that we are interested in fetching from Esplora.
    -

    The result of this method can be applied to LocalChain::apply_update.

    +

    The result of this method can be applied to LocalChain::apply_update.

    Consistency

    The chain update returned is guaranteed to be consistent as long as there is not a large re-org during the call. The size of re-org we can tollerate is server dependent but will be at least 10.

    -

    Full scan the keychain scripts specified with the blockchain (via an Esplora client) and -returns a [TxGraph] and a map of last active indices.

    +

    Full scan the keychain scripts specified with the blockchain (via an Esplora client) and +returns a TxGraph and a map of last active indices.

    • keychain_spks: keychains that we want to scan transactions for
    @@ -31,14 +31,14 @@ such as BTCPay Server, and Sparrow.

    A stop_gap of 0 will be treated as a stop_gap of 1.

    -

    Sync a set of scripts with the blockchain (via an Esplora client) for the data -specified and return a [TxGraph].

    +

    Sync a set of scripts with the blockchain (via an Esplora client) for the data +specified and return a TxGraph.

    • misc_spks: scripts that we want to sync transactions for
    • -
    • txids: transactions for which we want updated [ConfirmationTimeHeightAnchor]s
    • +
    • txids: transactions for which we want updated ConfirmationTimeHeightAnchors
    • outpoints: transactions associated with these outpoints (residing, spending) that we want to include in the update

    If the scripts to sync are unknown, such as when restoring or importing a keychain that may include scripts that have been used, use full_scan with the keychain.

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html index b0aaf8513e..06b1a74bb6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraExt.html @@ -1,21 +1,21 @@ EsploraExt in bdk_esplora - Rust

    Trait bdk_esplora::EsploraExt

    source ·
    pub trait EsploraExt {
    -    fn update_local_chain(
            &self,
            local_tip: CheckPoint,
            request_heights: impl IntoIterator<Item = u32>
        ) -> Result<Update, Box<Error>>; - fn full_scan<K: Ord + Clone>(
            &self,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Box<Error>>; - fn sync(
            &self,
            misc_spks: impl IntoIterator<Item = ScriptBuf>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            parallel_requests: usize
        ) -> Result<TxGraph<ConfirmationTimeHeightAnchor>, Box<Error>>; + fn update_local_chain(
            &self,
            local_tip: CheckPoint,
            request_heights: impl IntoIterator<Item = u32>
        ) -> Result<Update, Box<Error>>; + fn full_scan<K: Ord + Clone>(
            &self,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Result<(TxGraph<ConfirmationTimeHeightAnchor>, BTreeMap<K, u32>), Box<Error>>; + fn sync(
            &self,
            misc_spks: impl IntoIterator<Item = ScriptBuf>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            parallel_requests: usize
        ) -> Result<TxGraph<ConfirmationTimeHeightAnchor>, Box<Error>>; }
    Expand description

    Trait to extend the functionality of [esplora_client::BlockingClient].

    Refer to crate-level documentation for more.

    -

    Required Methods§

    Prepare a LocalChain update with blocks fetched from Esplora.

    +

    Required Methods§

    Prepare a LocalChain update with blocks fetched from Esplora.

      -
    • local_tip is the previous tip of LocalChain::tip.
    • +
    • local_tip is the previous tip of LocalChain::tip.
    • request_heights is the block heights that we are interested in fetching from Esplora.
    -

    The result of this method can be applied to LocalChain::apply_update.

    +

    The result of this method can be applied to LocalChain::apply_update.

    Consistency

    The chain update returned is guaranteed to be consistent as long as there is not a large re-org during the call. The size of re-org we can tollerate is server dependent but will be at least 10.

    -

    Full scan the keychain scripts specified with the blockchain (via an Esplora client) and -returns a [TxGraph] and a map of last active indices.

    +

    Full scan the keychain scripts specified with the blockchain (via an Esplora client) and +returns a TxGraph and a map of last active indices.

    • keychain_spks: keychains that we want to scan transactions for
    @@ -31,14 +31,14 @@ such as BTCPay Server, and Sparrow.

    A stop_gap of 0 will be treated as a stop_gap of 1.

    -

    Sync a set of scripts with the blockchain (via an Esplora client) for the data -specified and return a [TxGraph].

    +

    Sync a set of scripts with the blockchain (via an Esplora client) for the data +specified and return a TxGraph.

    • misc_spks: scripts that we want to sync transactions for
    • -
    • txids: transactions for which we want updated [ConfirmationTimeHeightAnchor]s
    • +
    • txids: transactions for which we want updated ConfirmationTimeHeightAnchors
    • outpoints: transactions associated with these outpoints (residing, spending) that we want to include in the update

    If the scripts to sync are unknown, such as when restoring or importing a keychain that may include scripts that have been used, use full_scan with the keychain.

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file 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 2858606387..bcbc3630de 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,6 +1,6 @@ bdk_file_store - Rust

    Crate bdk_file_store

    source ·
    Expand description

    BDK File Store

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

    +Persist.

    The main structure is Store, which can be used with bdk’s Wallet to persist wallet data into a flat file.

    Structs

    Iterator over entries in a file store.
    Persists an append-only list of changesets (C) to a single file.

    Enums

    Error that occurs due to problems encountered with the file.
    Error type for EntryIter.
    \ No newline at end of file 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 5199b27a9e..2e664f3be5 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,6 +1,6 @@ Store in bdk_file_store - Rust

    Struct bdk_file_store::Store

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

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

    The changesets are the results of altering a tracker implementation (T).

    -

    Implementations§

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

    +

    Implementations§

    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.

    Open an existing Store.

    @@ -30,7 +30,7 @@ changeset will be written over the erroring entry (or the end of the file if non changeset.

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

    -

    Trait Implementations§

    Formats the value using the given formatter. Read more
    The error the backend returns when it fails to write.
    The error the backend returns when it fails to load changesets C.
    Writes a changeset to the persistence backend. Read more
    Return the aggregate changeset C from persistence.

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

    Formats the value using the given formatter. Read more
    The error the backend returns when it fails to write.
    The error the backend returns when it fails to load changesets C.
    Writes a changeset to the persistence backend. Read more
    Return the aggregate changeset C from persistence.

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/index.html index 86da9b7579..e8b9bcec10 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/index.html @@ -1,5 +1,5 @@ bdk_hwi - Rust

    Crate bdk_hwi

    source ·
    Expand description

    HWI Signer

    -

    This crate contains HWISigner, an implementation of a TransactionSigner to be +

    This crate contains HWISigner, an implementation of a TransactionSigner to be used with hardware wallets.

    let mut devices = HWIClient::enumerate()?;
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/struct.HWISigner.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/struct.HWISigner.html
    index 9ed341ed66..b18d2baff8 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/struct.HWISigner.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_hwi/struct.HWISigner.html
    @@ -1,7 +1,7 @@
     HWISigner in bdk_hwi - Rust

    Struct bdk_hwi::HWISigner

    source ·
    pub struct HWISigner { /* private fields */ }
    Expand description

    Custom signer for Hardware Wallets

    This ignores sign_options and leaves the decisions up to the hardware wallet.

    Implementations§

    Create a instance from the specified device and chain

    -

    Trait Implementations§

    Formats the value using the given formatter. Read more
    Return the SignerId for this signer Read more
    Return the secret key for the signer Read more
    Sign all the inputs of the psbt

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

    Formats the value using the given formatter. Read more
    Return the [SignerId] for this signer Read more
    Return the secret key for the signer Read more
    Sign all the inputs of the psbt

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.PlanState.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.PlanState.html index 5fa144ddd8..f08e374012 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.PlanState.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.PlanState.html @@ -1,4 +1,4 @@ -PlanState in bdk_tmp_plan - Rust

    Enum bdk_tmp_plan::PlanState

    source ·
    pub enum PlanState<Ak> {
    +PlanState in bdk_tmp_plan - Rust

    Enum bdk_tmp_plan::PlanState

    source ·
    pub enum PlanState<Ak> {
         Complete {
             final_script_sig: Option<ScriptBuf>,
             final_script_witness: Option<Witness>,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.RequiredSignatures.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.RequiredSignatures.html
    index 52162167a0..d54bc9f568 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.RequiredSignatures.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.RequiredSignatures.html
    @@ -1,4 +1,4 @@
    -RequiredSignatures in bdk_tmp_plan - Rust
    pub enum RequiredSignatures<Ak> {
    +RequiredSignatures in bdk_tmp_plan - Rust
    pub enum RequiredSignatures<Ak> {
         Legacy {
             keys: Vec<PlanKey<Ak>>,
         },
    @@ -22,7 +22,7 @@
     
    §

    TapScript

    Fields

    §leaf_hash: TapLeafHash

    The leaf hash of the script being used

    §plan_keys: Vec<PlanKey<Ak>>

    The keys in the script that require signatures

    Taproot script path signatures are required

    -

    Implementations§

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Implementations§

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html index 9f68f349e3..25e3744a8e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.SigningError.html @@ -1,7 +1,7 @@ -SigningError in bdk_tmp_plan - Rust
    pub enum SigningError {
    +SigningError in bdk_tmp_plan - Rust
    pub enum SigningError {
         SigHashError(Error),
         DerivationError(Error),
    -}

    Variants§

    §

    SigHashError(Error)

    §

    DerivationError(Error)

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Variants§

    §

    SigHashError(Error)

    §

    DerivationError(Error)

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/fn.plan_satisfaction.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/fn.plan_satisfaction.html index 9a1111c3c5..2f629678d3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/fn.plan_satisfaction.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/fn.plan_satisfaction.html @@ -1 +1 @@ -plan_satisfaction in bdk_tmp_plan - Rust
    pub fn plan_satisfaction<Ak>(
        desc: &Descriptor<DefiniteDescriptorKey>,
        assets: &Assets<Ak>
    ) -> Option<Plan<Ak>>where
        Ak: CanDerive + Clone,
    \ No newline at end of file +plan_satisfaction in bdk_tmp_plan - Rust
    pub fn plan_satisfaction<Ak>(
        desc: &Descriptor<DefiniteDescriptorKey>,
        assets: &Assets<Ak>
    ) -> Option<Plan<Ak>>where
        Ak: CanDerive + Clone,
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/index.html index f2d1851040..64f2931367 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/index.html @@ -1,4 +1,4 @@ -bdk_tmp_plan - Rust

    Crate bdk_tmp_plan

    source ·
    Expand description

    A spending plan or plan for short is a representation of a particular spending path on a +bdk_tmp_plan - Rust

    Crate bdk_tmp_plan

    source ·
    Expand description

    A spending plan or plan for short is a representation of a particular spending path on a descriptor. This allows us to analayze a choice of spending path without producing any signatures or other witness data for it.

    To make a plan you provide the descriptor with “assets” like which keys you are able to use, hash diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Assets.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Assets.html index 91be5a4595..0157d66fc8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Assets.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Assets.html @@ -1,4 +1,4 @@ -Assets in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Assets

    source ·
    pub struct Assets<K> {
    +Assets in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Assets

    source ·
    pub struct Assets<K> {
         pub keys: Vec<K>,
         pub txo_age: Option<Sequence>,
         pub max_locktime: Option<LockTime>,
    @@ -6,7 +6,7 @@
         pub hash256: Vec<Hash>,
         pub ripemd160: Vec<Hash>,
         pub hash160: Vec<Hash>,
    -}

    Fields§

    §keys: Vec<K>§txo_age: Option<Sequence>§max_locktime: Option<LockTime>§sha256: Vec<Hash>§hash256: Vec<Hash>§ripemd160: Vec<Hash>§hash160: Vec<Hash>

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Fields§

    §keys: Vec<K>§txo_age: Option<Sequence>§max_locktime: Option<LockTime>§sha256: Vec<Hash>§hash256: Vec<Hash>§ripemd160: Vec<Hash>§hash160: Vec<Hash>

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Plan.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Plan.html index 9ad3d9da62..170f8b590f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Plan.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Plan.html @@ -1,11 +1,11 @@ -Plan in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Plan

    source ·
    pub struct Plan<AK> { /* private fields */ }
    Expand description

    A plan represents a particular spending path for a descriptor.

    +Plan in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Plan

    source ·
    pub struct Plan<AK> { /* private fields */ }
    Expand description

    A plan represents a particular spending path for a descriptor.

    See the module level documentation for more info.

    -

    Implementations§

    The expected satisfaction weight for the plan if it is completed.

    -

    Witness version for the plan

    -

    The minimum required locktime height or time on the transaction using the plan.

    -

    The minimum required sequence (height or time) on the input to satisfy the plan

    -

    The minimum required transaction version required on the transaction using the plan.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Implementations§

    The expected satisfaction weight for the plan if it is completed.

    +

    Witness version for the plan

    +

    The minimum required locktime height or time on the transaction using the plan.

    +

    The minimum required sequence (height or time) on the input to satisfy the plan

    +

    The minimum required transaction version required on the transaction using the plan.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Requirements.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Requirements.html index 544df9dc83..74e8b6140c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Requirements.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Requirements.html @@ -1,4 +1,4 @@ -Requirements in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Requirements

    source ·
    pub struct Requirements<Ak> {
    +Requirements in bdk_tmp_plan - Rust

    Struct bdk_tmp_plan::Requirements

    source ·
    pub struct Requirements<Ak> {
         pub signatures: RequiredSignatures<Ak>,
         pub sha256_images: HashSet<Hash>,
         pub hash160_images: HashSet<Hash>,
    @@ -10,8 +10,8 @@
     
    §hash160_images: HashSet<Hash>

    required hash160 pre-images

    §hash256_images: HashSet<Hash>

    required hash256 pre-images

    §ripemd160_images: HashSet<Hash>

    required ripemd160 pre-images

    -

    Implementations§

    Whether any hash pre-images are required in the plan

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Implementations§

    Whether any hash pre-images are required in the plan

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.SatisfactionMaterial.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.SatisfactionMaterial.html index 3ee5565448..ffd2ba058b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.SatisfactionMaterial.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.SatisfactionMaterial.html @@ -1,4 +1,4 @@ -SatisfactionMaterial in bdk_tmp_plan - Rust
    pub struct SatisfactionMaterial {
    +SatisfactionMaterial in bdk_tmp_plan - Rust
    pub struct SatisfactionMaterial {
         pub schnorr_sigs: BTreeMap<DefiniteDescriptorKey, Signature>,
         pub ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, Signature>,
         pub sha256_preimages: BTreeMap<Hash, Vec<u8>>,
    @@ -12,7 +12,7 @@
     
    §hash160_preimages: BTreeMap<Hash, Vec<u8>>

    hash160 pre-images under their images

    §hash256_preimages: BTreeMap<Hash, Vec<u8>>

    hash256 pre-images under their images

    §ripemd160_preimages: BTreeMap<Hash, Vec<u8>>

    ripemd160 pre-images under their images

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/trait.CanDerive.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/trait.CanDerive.html index 6ff2c7ccc4..0210a5a2e6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/trait.CanDerive.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/trait.CanDerive.html @@ -1,3 +1,3 @@ -CanDerive in bdk_tmp_plan - Rust

    Trait bdk_tmp_plan::CanDerive

    source ·
    pub trait CanDerive {
    +CanDerive in bdk_tmp_plan - Rust

    Trait bdk_tmp_plan::CanDerive

    source ·
    pub trait CanDerive {
         fn can_derive(&self, key: &DefiniteDescriptorKey) -> Option<DerivationPath>;
    -}

    Required Methods§

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +}

    Required Methods§

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_bitcoind_rpc_polling/type.ChangeSet.html index 74f57a74be..cacf4366b1 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 Definition 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 Definition 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 afdb275538..e0c51e63f2 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,7 +10,7 @@
     
    §

    List

    Fields

    §change: bool

    List change addresses

    List all addresses

    §

    Index

    Get last revealed address index for each keychain.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    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 5cd7083445..da0b058fa4 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
    pub enum CoinSelectionAlgo {
    +CoinSelectionAlgo in example_cli - Rust
    pub enum CoinSelectionAlgo {
         LargestFirst,
         SmallestFirst,
         OldestFirst,
         NewestFirst,
         BranchAndBound,
    -}

    Variants§

    §

    LargestFirst

    §

    SmallestFirst

    §

    OldestFirst

    §

    NewestFirst

    §

    BranchAndBound

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    Returns the “default value” for a type. Read more
    Formats the value using the given formatter. Read more
    The associated error which can be returned from parsing.
    Parses a string s to return a value of this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Variants§

    §

    LargestFirst

    §

    SmallestFirst

    §

    OldestFirst

    §

    NewestFirst

    §

    BranchAndBound

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    Formats the value using the given formatter. Read more
    Returns the “default value” for a type. Read more
    Formats the value using the given formatter. Read more
    The associated error which can be returned from parsing.
    Parses a string s to return a value of this type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html index 9016e8e94e..81ba5f4106 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,7 +19,7 @@
     
    §

    Send

    Fields

    §value: u64

    Amount to send in satoshis

    §address: Address<NetworkUnchecked>

    Destination address

    §coin_select: CoinSelectionAlgo
    §chain_specific: S

    Send coins to an address.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    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 8588aa70b3..a4bc3b61ac 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,11 +1,11 @@ -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§

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

    Variants§

    §

    External

    §

    Internal

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Compare self to key and return true if they are equal.

    Returns the argument unchanged.

    +operator. Read more
    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Gets the TypeId of self. Read more
    Immutably borrows from an owned value. Read more
    Mutably borrows from an owned value. Read more
    Compare self to key and return true if they are equal.

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.TxOutCmd.html index 2da4351fa2..ab2eff4573 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,7 +10,7 @@
     
    §confirmed: bool

    Return only confirmed outputs.

    §unconfirmed: bool

    Return only unconfirmed outputs.

    List transaction outputs.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    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 c698a8bfbe..190dd36f49 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 +1 @@ -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: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
        cs_algorithm: CoinSelectionAlgo,
        address: Address,
        value: u64
    ) -> Result<(Transaction, Option<CreateTxChange>)>where
        O::Error: Error + Send + Sync + 'static,
    \ No newline at end of file +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>,
        cs_algorithm: CoinSelectionAlgo,
        address: Address,
        value: u64
    ) -> Result<(Transaction, Option<CreateTxChange>)>where
        O::Error: Error + Send + Sync + 'static,
    \ No newline at end of file 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 91c07bf640..daae353ae6 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 +1 @@ -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<Database<C>>,
        chain: &Mutex<O>,
        keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
        network: Network,
        broadcast: impl FnOnce(S, &Transaction) -> Result<()>,
        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 +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<Database<C>>,
        chain: &Mutex<O>,
        keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
        network: Network,
        broadcast: impl FnOnce(S, &Transaction) -> Result<()>,
        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 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 ae432a1386..3c326e8d73 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,3 +1,3 @@ -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,
    Expand description

    Parses command line arguments and initializes all components, creating +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,
    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 9afcc2756b..bbeb908988 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 +1 @@ -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>
    ) -> Result<Vec<PlannedUtxo<K, A>>, O::Error>
    \ No newline at end of file +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>
    ) -> Result<Vec<PlannedUtxo<K, A>>, O::Error>
    \ No newline at end of file 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 10ebf41ede..5fbfacd320 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

    pub use anyhow;
    pub use bdk_file_store;
    pub use clap;

    Structs

    The initial state returned by init.

    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

    The initial state returned by init.

    Enums

    Functions

    Parses command line arguments and initializes all components, creating a file store with the given parameters, or loading one if it exists.

    Type Definitions

    \ 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 4944f923cf..2b5f3edcc0 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,11 +1,11 @@ -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§

    Append to [Command] so it can instantiate Self. Read more
    Append to [Command] so it can update self. Read more
    Deprecated, replaced with CommandFactory::command
    Deprecated, replaced with CommandFactory::command_for_update
    Build a [Command] that can instantiate Self. Read more
    Build a [Command] that can update self. Read more
    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    Assign values from ArgMatches to self.
    Assign values from ArgMatches to self.
    Parse from std::env::args_os(), exit on error
    Parse from std::env::args_os(), return Err on error.
    Parse from iterator, exit on error
    Parse from iterator, return Err on error.
    Update from iterator, exit on error
    Update from iterator, return Err on error.

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Fields§

    §descriptor: String§change_descriptor: Option<String>§network: Network§db_path: PathBuf§cp_limit: usize§command: Commands<CS, S>

    Trait Implementations§

    Append to [Command] so it can instantiate Self. Read more
    Append to [Command] so it can update self. Read more
    Deprecated, replaced with CommandFactory::command
    Deprecated, replaced with CommandFactory::command_for_update
    Build a [Command] that can instantiate Self. Read more
    Build a [Command] that can update self. Read more
    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    Assign values from ArgMatches to self.
    Assign values from ArgMatches to self.
    Parse from std::env::args_os(), exit on error
    Parse from std::env::args_os(), return Err on error.
    Parse from iterator, exit on error
    Parse from iterator, return Err on error.
    Update from iterator, exit on error
    Update from iterator, return Err on error.

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.CreateTxChange.html index e04b843a48..69309dc374 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,8 +1,8 @@ -CreateTxChange in example_cli - Rust
    pub struct CreateTxChange {
    -    pub index_changeset: ChangeSet<Keychain>,
    +CreateTxChange in example_cli - Rust
    pub struct CreateTxChange {
    +    pub index_changeset: ChangeSet<Keychain>,
         pub change_keychain: Keychain,
         pub index: u32,
    -}

    Fields§

    §index_changeset: ChangeSet<Keychain>§change_keychain: Keychain§index: u32

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Fields§

    §index_changeset: ChangeSet<Keychain>§change_keychain: Keychain§index: u32

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/struct.Init.html index 3c0b06a958..07a6ef259c 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,13 +1,13 @@ -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> {
         pub args: Args<CS, S>,
         pub keymap: KeyMap,
    -    pub index: KeychainTxOutIndex<Keychain>,
    +    pub index: KeychainTxOutIndex<Keychain>,
         pub db: Mutex<Database<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.

    +
    §index: KeychainTxOutIndex<Keychain>

    Keychain-txout index.

    §db: Mutex<Database<C>>

    Persistence backend.

    §init_changeset: C

    Initial changeset.

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.Database.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.Database.html index f9b77b1ab0..70a890db01 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.Database.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/type.Database.html @@ -1 +1 @@ -Database in example_cli - Rust

    Type Definition example_cli::Database

    source ·
    pub type Database<C> = Persist<Store<C>, C>;
    \ No newline at end of file +Database in example_cli - Rust

    Type Definition example_cli::Database

    source ·
    pub type Database<C> = Persist<Store<C>, C>;
    \ No newline at end of file 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 6ad4e05f81..2eb3cb6f36 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 Definition 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 Definition 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 9796925320..e9f67fd509 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 +1 @@ -KeychainTxGraph in example_cli - Rust

    Type Definition example_cli::KeychainTxGraph

    source ·
    pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;
    \ No newline at end of file +KeychainTxGraph in example_cli - Rust

    Type Definition example_cli::KeychainTxGraph

    source ·
    pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;
    \ No newline at end of file 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 67ef4aebc5..11ed4c16d7 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 Definition 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 Definition 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/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/type.ChangeSet.html index e4f850fe8f..b17942f23e 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 Definition 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 Definition 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/type.ChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html index 17a9a772b4..a98214f7c6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_esplora/type.ChangeSet.html @@ -1 +1 @@ -ChangeSet in example_esplora - Rust

    Type Definition example_esplora::ChangeSet

    source ·
    pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
    \ No newline at end of file +ChangeSet in example_esplora - Rust

    Type Definition example_esplora::ChangeSet

    source ·
    pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.SignerCommon.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.SignerCommon.js index b008aa7a79..fb042c4512 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.SignerCommon.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.SignerCommon.js @@ -1,4 +1,4 @@ (function() {var implementors = { "bdk":[], -"bdk_hwi":[["impl SignerCommon for HWISigner"]] +"bdk_hwi":[["impl SignerCommon for HWISigner"]] };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/implementors/bdk/wallet/signer/trait.TransactionSigner.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.TransactionSigner.js index ea6c96cd81..68919d45f8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.TransactionSigner.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk/wallet/signer/trait.TransactionSigner.js @@ -1,4 +1,4 @@ (function() {var implementors = { "bdk":[], -"bdk_hwi":[["impl TransactionSigner for HWISigner"]] +"bdk_hwi":[["impl TransactionSigner for HWISigner"]] };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/implementors/bdk_chain/persist/trait.PersistBackend.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/persist/trait.PersistBackend.js index ddbe6660df..425e53ff1b 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/persist/trait.PersistBackend.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/persist/trait.PersistBackend.js @@ -1,4 +1,4 @@ (function() {var implementors = { "bdk_chain":[], -"bdk_file_store":[["impl<C> PersistBackend<C> for Store<C>where
        C: Append + Serialize + DeserializeOwned,
    "]] +"bdk_file_store":[["impl<C> PersistBackend<C> for Store<C>where
        C: Append + Serialize + DeserializeOwned,
    "]] };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/implementors/bdk_chain/tx_data_traits/trait.Append.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/tx_data_traits/trait.Append.js index 2b650fa85a..7b3d82a242 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/tx_data_traits/trait.Append.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/bdk_chain/tx_data_traits/trait.Append.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"bdk":[["impl Append for ChangeSet"]], +"bdk":[["impl Append for ChangeSet"]], "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/implementors/core/convert/trait.AsRef.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js index 8528302c07..10305d41fc 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.AsRef.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"bdk":[["impl AsRef<[u8]> for KeychainKind"],["impl<D> AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet<D>"]], +"bdk":[["impl AsRef<[u8]> for KeychainKind"],["impl<D> AsRef<TxGraph<ConfirmationTimeHeightAnchor>> for Wallet<D>"]], "bdk_chain":[["impl<K> AsRef<BTreeMap<K, u32, Global>> for ChangeSet<K>"],["impl<A> AsRef<TxGraph<A>> for TxGraph<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/implementors/core/convert/trait.From.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js index 1e946e7bfe..9eaab63f21 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/convert/trait.From.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl From<KeyError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<PolicyError> for Error"],["impl From<bool> for Satisfaction"],["impl From<SatisfiableItem> for Policy"],["impl<Ctx: ScriptContext> From<ExtendedPubKey> for ExtendedKey<Ctx>"],["impl<Ctx: ScriptContext> From<ExtendedPrivKey> for ExtendedKey<Ctx>"],["impl From<Error> for KeyError"],["impl From<Error> for KeyError"],["impl From<Hash> for SignerId"],["impl From<Fingerprint> for SignerId"],["impl From<Error> for SignerError"],["impl<P> From<Error> for CreateTxError<P>"],["impl<P> From<PolicyError> for CreateTxError<P>"],["impl<P> From<MiniscriptPsbtError> for CreateTxError<P>"],["impl<P> From<Error> for CreateTxError<P>"],["impl<P> From<Error> for CreateTxError<P>"],["impl From<BTreeMap<u32, Option<BlockHash>, Global>> for ChangeSet"],["impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet"]], +"bdk":[["impl From<KeyError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<HexToBytesError> for Error"],["impl From<PolicyError> for Error"],["impl From<bool> for Satisfaction"],["impl From<SatisfiableItem> for Policy"],["impl<Ctx: ScriptContext> From<Xpub> for ExtendedKey<Ctx>"],["impl<Ctx: ScriptContext> From<Xpriv> for ExtendedKey<Ctx>"],["impl From<Error> for KeyError"],["impl From<Error> for KeyError"],["impl From<Hash> for SignerId"],["impl From<Fingerprint> for SignerId"],["impl From<Error> for SignerError"],["impl<P> From<Error> for CreateTxError<P>"],["impl<P> From<PolicyError> for CreateTxError<P>"],["impl<P> From<MiniscriptPsbtError> for CreateTxError<P>"],["impl<P> From<Error> for CreateTxError<P>"],["impl<P> From<Error> for CreateTxError<P>"],["impl From<BTreeMap<u32, Option<BlockHash>, Global>> for ChangeSet"],["impl From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>> for ChangeSet"]], "bdk_chain":[["impl From<ChainPosition<ConfirmationTimeHeightAnchor>> for ConfirmationTime"],["impl From<(u32, BlockHash)> for BlockId"],["impl From<BlockId> for (u32, BlockHash)"],["impl From<(&u32, &BlockHash)> for BlockId"],["impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>"],["impl<A, K> From<ChangeSet<K>> for ChangeSet<A, ChangeSet<K>>"]], "bdk_coin_select":[["impl From<usize> for BnbLimit"],["impl From<Duration> for BnbLimit"]], "bdk_file_store":[["impl From<Error> for IterError"],["impl From<Error> for FileError"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js index 224882ce60..7717a85a1a 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,16 +1,16 @@ var searchIndex = JSON.parse('{\ -"bdk":{"doc":"bdk","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,11,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,4,3,4,3,13,3,13,13,13,13,4,8,13,13,13,4,13,13,13,13,13,4,4,13,13,13,13,13,3,3,13,13,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","check_base32","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","write_base32","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","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","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressIndex","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LastUnused","Load","Load","LoadError","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingGenesis","MissingNetwork","New","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Peek","UnexpectedConnectedToHash","Update","Wallet","Write","Write","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","get_address","get_balance","get_descriptor_for_keychain","get_internal_address","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","load","local_chain","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","policies","provide","provide","provide","provide","provide","public_descriptor","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_address","try_get_internal_address","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::ApplyBlockError","","bdk::wallet::InsertTxError","","bdk::wallet::NewOrLoadError","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Error","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::error::CreateTxError","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","","","An unspent transaction output (UTXO).","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","Additional functions on the rust-bitcoin …","The weight of the witness data and scriptSig expressed in …","Get the sequence number if an explicit sequence number has …","","","","","","","","","","","","","","","","","Get the TxOut of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","","The location of the output.","The information about the input we require to add it to a …","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Legacy ScriptContext To be used as P2SH scripts For …","Top-level script AST type","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","Replaces all wildcards (i.e. /*) in the descriptor with a …","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","","","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for Self::at_derivation_index.","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","Encode as a Bitcoin script","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending policy","","","Utility method for deriving the descriptor at each index …","","","","","","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","Create a new Miniscript from a Terminal node and a Type …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. /*.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extracts the AstElem representing the root of the …","Get as many descriptors as different paths in this …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple …","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds conversion of miniscript into Policy […","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Computes an upper bound on the difference between a …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the Abstract Syntax Tree(","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","Get the len of public key when serialized based on context …","","","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","The correctness and malleability type information for the …","","","","","Computes the scriptSig that will be in place for an …","","","","","Whether the miniscript can exceed the resource …","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","The descriptor contains multipath keys","Key-related error","Error while extracting and manipulating policies","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to …","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)","BIP86 public template. Expands to tr(key/{0,1}/*)","Trait for descriptor templates that can be built into a …","Type alias for the return type of DescriptorTemplate, …","P2PKH template. Expands to a descriptor pkh(key)","P2TR template. Expands to a descriptor tr(key)","P2WPKH template. Expands to a descriptor wpkh(key)","P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))","","","","","","","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. [u8;32]","Returned error in case of failure","Trait that adds extra useful methods to ScriptContexts","Enum for extended keys that can be either xprv or xpub","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a GeneratableKey key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with keys","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Multiple extended private keys.","Multiple extended public keys.","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single public key.","Single private key.","A descriptor bitcoin::PrivateKey with optional origin …","A descriptor SinglePubKey with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the ScriptContext as a ScriptContextEnum","Replaces any wildcard (i.e. /*) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name for Self::at_derivation_index.","","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the ExtendedKey into an ExtendedPrivKey for the …","Transform the ExtendedKey into an ExtendedPubKey for the …","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is …","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is Segwitv0","Returns whether the script context is …","Returns whether the script context is Tap, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of SortedMultiVec given a list of …","","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the TxOut for the specified input index, if it doesn’…","The address index selection strategy to use to derived an …","A derived address and the index it was found at. For …","An error that may occur when applying a block to Wallet.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original …","The changes made to a wallet by applying an Update.","The error variant that occurs when the caller attempts to …","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into …","Trait to check if a value is below the dust limit. We are …","Return the address for the current descriptor index if it …","Loading data from the persistence backend failed.","Loading from the persistence backend failed.","The error type when loading a Wallet from persistence.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","Return a new address after incrementing the current …","The error type when constructing a fresh Wallet.","Error type for when we try load a Wallet from persistence …","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","Return the address for a specific descriptor index. Does …","Occurs when the connected_to hash does not match the hash …","An update to Wallet.","A Bitcoin wallet","We were unable to write the wallet’s data to the …","Writing to the persistence backend failed.","","Add an external signer","Address","Get unbounded script pubkey iterators for both Internal …","","Introduces a block of height to the wallet, and tries to …","Applies relevant transactions from block of height to the …","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if tx …","Calculate the FeeRate for a given transaction.","Informs the wallet that you no longer intend to broadcast …","Update for the wallet’s internal LocalChain.","Changes to the LocalChain.","Get all the checkpoints the wallet is currently storing …","","","","","","","Coin selection","Commits all currently staged changed to the persistence …","Confirmed and immediately spendable balance","","","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","","","Errors that can be thrown by the Wallet","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Infallibly return a derived address using the external …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Infallibly return a derived address using the internal …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a CanonicalTx …","Returns the utxo owned by this wallet corresponding to …","Update for the wallet’s internal TxGraph.","All coinbase outputs not yet matured","Child index of this address","Changes to IndexedTxGraph.","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Inserts a TxOut at OutPoint into the wallet’s …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Contains the last active derivation indices per keychain (K…","Returns the latest checkpoint.","List all relevant outputs (includes both spent and …","Return the list of unspent outputs of this wallet","Load Wallet from the given persistence backend.","Get a reference to the inner LocalChain.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty Wallet.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom …","Either loads Wallet from persistence, or initializes it if …","Either loads Wallet from persistence, or initializes it if …","Initialize an empty Wallet with a custom genesis hash.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","","","","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","Compute the tx’s sent and received amounts (in satoshis).","","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns the changes that will be committed with the next …","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","Return a derived address using the external descriptor, …","Return a derived address using the internal (change) …","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","","","","","","Get an unbounded script pubkey iterator for the given …","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","","Deterministically generate a unique name given the …","Block hash of connected_to.","Expected block hash of connected_to, as derived from block.","The internal chain’s tip height.","The introduced transaction’s confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Errors that can be thrown by the coin_selection module","Remaining amount after performing coin selection","Wallet’s UTXO set is not enough to cover recipient’s …","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Error returned from Wallet::build_fee_bump","The change_policy was set but the wallet does not have a …","There was an error with coin selection","Descriptor key conversion error","Error returned from TxBuilder::finish","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","Wallet’s UTXO set is not enough to cover recipient’s …","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Requested LockTime is less than is required to spend from …","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent …","In order to use the TxBuilder::add_global_xpubs option …","Missing non_witness_utxo on foreign utxo for given OutPoint","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Return error type for …","We were unable to write wallet data to the persistence …","There was a problem while extracting and manipulating …","Partially signed bitcoin transaction error","Cannot enable RBF with a Sequence >= 0xFFFFFFFE","Cannot enable RBF with Sequence given a required OP_CSV","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the …","Happens when trying to spend an UTXO that is not in the …","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version ‘0’","Requested transaction version 1, but at least 2 is needed …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV Sequence","Sats needed for some transaction","Given RBF Sequence","Requested LockTime","Required LockTime","Required fee absolute value (satoshi)","Required fee rate","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","To be used only by external libraries implementing …","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Whether to remove taproot specific fields from the PSBT on …","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","Error returned from TxBuilder::add_foreign_utxo.","Error returned from TxBuilder::add_utxo and …","Error returned from TxBuilder::allow_shrinking","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Requested outpoint doesn’t exist in the tx (vout greater …","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Happens when trying to spend an UTXO that is not in the …","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence …","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee The fee_absolute method refers to the …","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","","","","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,10,0,1,0,10,0,0,0,0,0,0,1,1,1,1,8,9,10,1,8,9,10,0,1,1,8,9,10,1,8,9,10,1,8,8,0,0,1,8,1,8,9,10,1,8,9,10,0,1,8,9,10,1,8,1,8,9,10,8,8,0,10,8,1,0,9,10,1,8,0,0,1,8,9,10,1,8,9,10,1,8,9,10,10,8,1,8,9,10,9,0,1,8,9,10,0,1,195,195,195,21,0,0,0,0,0,0,0,0,47,0,0,29,21,0,0,0,21,29,0,21,21,21,29,21,34,35,27,21,21,34,35,27,21,34,35,27,27,0,47,34,35,47,35,47,47,34,35,47,34,35,47,47,34,35,47,34,35,47,34,35,0,21,34,35,27,21,34,35,27,21,34,35,27,27,21,21,21,21,21,27,21,27,21,34,35,27,0,21,27,27,196,21,27,21,21,21,34,35,27,27,21,27,21,21,21,21,21,21,21,34,35,27,27,27,21,27,27,27,21,27,27,27,21,21,27,27,21,21,34,35,27,21,34,35,27,27,21,163,60,21,21,27,27,27,21,27,27,47,34,35,27,21,27,21,47,34,35,21,21,21,21,21,21,21,21,21,21,21,21,21,21,27,47,27,21,27,27,21,34,35,27,47,34,35,0,27,21,27,21,27,27,21,21,27,21,27,47,34,35,0,21,34,35,27,21,27,21,47,47,21,27,21,34,35,27,21,34,35,27,27,21,34,35,27,21,21,34,35,27,27,0,0,46,46,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,80,73,73,0,81,0,0,80,79,0,80,80,73,73,73,80,81,44,73,81,81,0,0,0,44,44,79,80,80,0,0,80,80,80,79,79,80,81,45,82,73,44,79,80,81,45,82,73,44,79,80,81,45,82,44,79,80,81,45,82,44,45,82,82,79,80,81,45,82,73,79,80,81,45,82,73,73,44,79,80,81,81,45,45,82,73,44,45,79,82,80,45,79,80,81,45,82,73,44,80,81,82,45,82,73,45,45,79,80,81,45,82,82,79,80,81,45,82,44,73,79,80,81,45,82,73,44,79,80,81,45,82,73,44,79,80,81,45,82,73,44,79,80,81,45,82,73,44,197,197,197,198,199,200,199,200,199,200,199,200,199,200,201,202,203,204,205,206,206,205,207,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,209,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,84,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,86,87,88,90,92,93,94,95,96,97,98,99,74,0,0,0,0,210,210,0,0,108,0,0,0,0,74,74,74,47,0,0,26,74,74,105,29,210,112,0,112,0,0,26,29,105,0,0,0,0,26,0,108,105,29,0,211,29,112,102,110,26,103,74,104,29,105,106,107,108,112,102,110,26,103,74,104,29,105,106,107,108,47,47,47,47,47,47,47,47,47,102,26,103,104,29,105,106,107,108,102,26,103,104,29,105,106,107,108,104,29,106,108,103,103,102,29,29,104,26,104,29,105,106,107,108,110,26,103,74,74,104,104,29,29,105,105,106,107,108,104,112,112,112,102,110,26,103,74,74,74,104,29,29,105,106,107,108,110,110,29,105,104,29,210,212,210,212,112,29,104,29,106,108,112,102,110,26,103,74,104,29,105,106,107,108,85,91,102,102,110,29,105,91,112,102,102,29,105,112,112,29,211,26,29,105,211,26,211,26,29,29,104,106,107,104,0,29,47,104,104,0,47,104,29,106,107,47,110,104,29,106,108,47,104,74,104,104,104,29,47,104,0,102,26,103,104,29,105,106,107,108,105,74,104,29,105,47,47,104,112,102,110,26,103,74,104,29,105,106,107,108,112,102,110,26,103,74,104,29,105,106,107,108,112,102,110,26,103,74,104,29,105,106,107,108,112,102,110,26,103,74,104,29,105,106,107,108,0,213,213,213,0,0,0,0,151,0,150,147,148,149,0,0,146,148,149,0,149,149,148,148,146,0,0,147,148,149,146,151,0,0,147,149,119,120,142,120,125,120,120,120,120,120,119,120,131,125,146,142,147,148,149,150,151,119,120,131,125,146,142,147,148,149,150,151,120,120,120,120,120,131,125,120,119,131,125,119,131,125,0,120,119,119,131,125,142,120,120,120,119,125,119,125,142,0,0,120,119,119,120,131,125,146,142,142,147,147,148,148,149,149,150,150,151,151,119,120,131,125,125,125,146,142,147,148,149,150,151,120,120,120,120,120,120,120,120,131,119,142,125,120,120,120,119,120,131,125,146,142,147,148,149,150,151,214,125,120,142,120,131,120,120,120,120,120,120,125,120,120,120,120,120,120,120,120,147,148,149,150,151,120,120,120,119,125,120,0,120,120,119,131,125,119,142,147,148,149,150,151,119,120,119,119,119,120,131,125,146,142,147,148,149,150,151,120,120,119,120,131,125,146,142,147,148,149,150,151,0,120,119,120,131,125,146,142,147,148,149,150,151,120,119,119,120,131,125,146,142,147,148,149,150,151,0,215,215,216,216,217,218,217,218,171,171,0,172,0,0,0,0,0,171,0,172,0,171,172,170,167,168,169,171,172,170,167,168,169,167,168,169,167,168,169,187,167,168,169,0,167,168,169,170,170,171,171,172,170,167,168,169,171,172,170,167,168,169,171,172,170,167,168,169,170,169,171,170,170,167,168,169,171,171,172,170,167,168,169,171,172,170,167,168,169,171,172,170,167,168,169,171,172,170,167,168,169,219,219,220,221,221,220,221,0,158,158,173,0,158,158,137,158,158,137,158,158,0,158,158,158,158,158,173,158,158,158,158,158,158,137,137,158,137,173,158,158,173,158,137,173,158,137,173,173,173,173,158,158,137,137,173,158,158,158,158,158,158,137,173,158,137,173,158,137,173,173,158,137,173,158,137,173,158,137,173,158,137,173,158,137,222,223,222,223,224,224,225,226,0,0,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,181,176,181,145,176,181,145,0,145,145,145,178,145,145,145,145,145,145,145,181,176,178,145,0,0,0,0,0,0,0,0,178,0,0,145,43,144,144,43,144,176,145,178,180,121,43,144,181,176,145,178,180,121,43,144,181,43,176,178,180,121,43,144,181,176,178,180,121,43,144,181,176,121,121,43,144,181,180,227,180,180,180,176,178,121,181,43,176,145,145,178,180,121,43,144,181,176,176,176,145,145,178,180,121,43,144,181,176,227,180,180,180,43,176,145,178,180,121,43,144,181,180,43,176,121,145,43,144,144,228,180,180,180,122,180,144,43,144,176,178,180,121,43,144,181,145,144,144,176,145,178,180,121,43,144,181,176,145,178,180,121,43,144,181,176,145,178,180,121,43,144,181,176,145,178,180,121,43,144,181,229,0,0,0,192,0,191,191,0,0,188,188,190,188,191,192,0,0,0,189,192,136,136,136,136,136,136,136,136,136,136,138,135,136,189,188,190,192,191,138,135,136,189,188,190,192,191,136,138,135,136,192,191,138,135,136,192,191,192,191,136,136,138,135,192,191,136,136,136,136,136,192,191,136,136,136,138,135,136,189,189,188,188,190,190,192,191,138,135,136,189,188,190,192,191,192,191,136,138,135,136,189,188,190,192,191,136,136,136,136,136,192,191,136,189,188,190,136,136,192,138,135,136,192,191,189,188,190,138,135,136,189,188,190,192,191,138,135,136,189,188,190,192,191,138,135,136,189,188,190,192,191,136,136,138,135,136,189,188,190,192,191,230,230],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[7,[[6,[4,5]]]]]],[1,1],[8,8],[9,9],[10,10],[[]],[[]],[[]],[[]],[[1,1],11],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[8]]]],[[1,1],12],[[8,8],12],[[9,9],12],[[10,10],12],[[1,13],14],[[8,13],14],[[9,13],14],[[10,13],14],0,[[]],[[]],[[]],[[]],[1],[8],[[]],[[]],[[]],[[]],0,0,0,[10,15],0,[[1,1],[[16,[11]]]],0,0,[10,[[16,[17]]]],[1,7],[8,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[10,18],0,[[],19],[[],19],[[],19],[[],19],0,[[],20],[[]],[[]],[[]],[[]],0,[[],7],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[21,22],[[7,[[24,[23]],25]]]],[[],26],[[],26],[27,28],[[[21,[29]],30],[[7,[[21,[31]],32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[27,[[6,[27,5]]]],0,[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[[],[[7,[33]]]],[[],[[7,[33]]]],[[],[[7,[33]]]],[28,[[7,[33]]]],[28,[[7,[33]]]],[28,[[7,[33]]]],[[],[[7,[33]]]],[[],[[7,[33]]]],[[],[[7,[33]]]],0,[21,21],[34,34],[35,35],[27,27],[[]],[[]],[[]],[[]],[[21,21],11],[[34,34],11],[[35,35],11],[[27,27],11],[27,12],[[[21,[29]],30],[[7,[[21,[31]],32]]]],[[[21,[31]],36],[[7,[[21,[37]],32]]]],[[[21,[29]],36,30],[[7,[[21,[37]],32]]]],[21,38],[[],[[7,[21]]]],[[],[[7,[27]]]],[[[21,[29]]],39],[27,40],[[21,21],12],[[34,34],12],[[35,35],12],[[27,27],12],0,[21,[[7,[40,25]]]],0,[[27,41],[[7,[42]]]],[[43,44,36],[[7,[[16,[45]],46]]]],[[[21,[29]],43,44,36],[[7,[[16,[45]],46]]]],[[[27,[29,47]],43,44,36],[[7,[[16,[45]],46]]]],[[[21,[29]],36,48,[49,[30]]],[[7,[16,32]]]],[[21,13],[[7,[50]]]],[[21,13],[[7,[50]]]],[[34,13],[[7,[50]]]],[[35,13],[[7,[50]]]],[[27,13],[[7,[50]]]],[[27,13],[[7,[50]]]],[21,12],[27,12],[51,21],[52,21],[[]],[53,21],[54,21],[55,21],[56,21],[[]],[[]],[[]],[28,[[7,[27,25]]]],[[28,57,58],27],[20,[[7,[21,25]]]],[20,[[7,[27,25]]]],[[20,41],[[7,[27,25]]]],[20,[[7,[27,25]]]],[59,[[7,[21,25]]]],[59,[[7,[27,25]]]],[[27,3],[[16,[27]]]],[[27,3],16],[21,[[7,[25]]]],[21,[[7,[25]]]],[27,12],[27,12],[[[21,[29]]],12],[21],[34],[35],[27],[[]],[[]],[[]],[[]],[27,28],[[[21,[29]]],[[7,[[6,[[21,[29]],5]],25]]]],[[36,22],[[7,[46]]]],[[60,36,22],[[7,[46]]]],[[[21,[29]]],12],[[[21,[29]]],12],[27,12],[27,61],[27,62],[21,[[7,[63,25]]]],[27,[[7,[63,25]]]],[27,[[7,[64]]]],[27,[[16,[3]]]],[27,[[16,[3]]]],[27,[[16,[3]]]],[27,[[7,[3,25]]]],[21,[[7,[3,25]]]],[27,[[7,[3,25]]]],[21,[[7,[3,25]]]],[[],20],[[],20],[[],20],[[[27,[65]]],[[7,[21,25]]]],[[],21],[[],[[7,[21,25]]]],[[[27,[34]]],[[7,[21,25]]]],[[3,[6,[5]]],[[7,[21,25]]]],[53,21],[52,21],[[],[[7,[21,25]]]],[[[27,[35]]],[[7,[21,25]]]],[[3,[6,[5]]],[[7,[21,25]]]],[[[16,[66]]],[[7,[21,25]]]],[[],[[7,[21,25]]]],[[[27,[35]]],[[7,[21,25]]]],[[3,[6,[5]]],[[7,[21,25]]]],0,[27,[[7,[25]]]],[48,[[7,[27,25]]]],[[36,20],[[7,[25]]]],[48,[[7,[27,25]]]],[[48,41],[[7,[27,25]]]],[[21,21],[[16,[11]]]],[[34,34],[[16,[11]]]],[[35,35],[[16,[11]]]],[[27,27],[[16,[11]]]],[[],3],[[],3],[[],3],0,[27,12],[21,[[7,[25]]]],[27,[[7,[42]]]],[[21,67],[[7,[25]]]],[27,[[7,[[6,[[6,[2,5]],5]],25]]]],[27,[[7,[[6,[[6,[2,5]],5]],25]]]],[21,[[7,[40,25]]]],[21,40],[27,3],[21,7],[27,7],[[],68],[[],68],[[],68],0,[[]],[[]],[[]],[[]],[[],69],[[],69],[[[21,[29]],70],69],[27,[[7,[25]]]],[27,[[7,[25]]]],[21,[[7,[71]]]],[27,[[7,[71]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],19],[[],19],[[],19],[[],19],[21,40],[[]],[[]],[[]],[[]],[27,12],[20,[[7,[69,46]]]],[20,[[7,[46]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[46,13],14],[[46,13],14],[72,46],[73,46],[[]],[74,46],[75,46],[76,46],[25,46],[77,46],[[]],[78],[[],69],[[],7],[[],7],[[],19],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[79,79],[80,80],[81,81],[45,45],[82,82],[44,44],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],82],[[79,79],12],[[80,80],12],[[81,81],12],[[45,45],12],[[82,82],12],[[73,73],12],[[79,13],14],[[80,13],14],[[81,13],14],[[45,13],14],[[82,13],14],[[73,13],14],[[73,13],14],[[44,13],14],[[]],[[]],[12,81],[[]],[[]],[80,45],[[]],[[]],[[]],[[45,83],[[7,[82,73]]]],[79],[82],[80,69],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[80,12],[81,12],[82,12],0,[[82,82],[[16,[11]]]],[78],[45,12],0,[79,7],[80,7],[81,7],[45,7],[82,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],69],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[22,[[7,[84,46]]]],[[[86,[[85,[34]]]],22],[[7,[84,46]]]],[[[87,[[85,[35]]]],22],[[7,[84,46]]]],[[[88,[[85,[35]]]],22],[[7,[84,46]]]],[[[90,[[85,[89]]]],22],[[7,[84,46]]]],[[[92,[[91,[34]]]],22],[[7,[84,46]]]],[[[93,[[91,[34]]]],22],[[7,[84,46]]]],[[[94,[[91,[35]]]],22],[[7,[84,46]]]],[[[95,[[91,[35]]]],22],[[7,[84,46]]]],[[[96,[[91,[35]]]],22],[[7,[84,46]]]],[[[97,[[91,[35]]]],22],[[7,[84,46]]]],[[[98,[[91,[89]]]],22],[[7,[84,46]]]],[[[99,[[91,[89]]]],22],[[7,[84,46]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[84,36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[36,22],[[7,[46]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],100],[[],26],[[29,30],[[7,[31,32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[27,[[7,[33]]]],[[],[[7,[33]]]],[28,[[7,[33]]]],[[],[[7,[33]]]],[[[102,[101,47]]],[[102,[101,47]]]],[26,26],[103,103],[104,104],[29,29],[105,105],[106,106],[107,107],[108,108],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[104,104],11],[[29,29],11],[[106,106],11],[[108,108],11],0,[[],103],[[[102,[47]]]],[[29,30],[[7,[31,32]]]],[[],[[7,[29]]]],[104,40],[[26,26],12],[[104,104],12],[[29,29],12],[[105,105],12],[[106,106],12],[[107,107],12],[[108,108],12],[[[110,[[0,[109,47]]]],13],14],[[26,13],14],[[103,13],14],[[74,13],14],[[74,13],14],[[104,13],[[7,[50]]]],[[104,13],[[7,[50]]]],[[29,13],[[7,[50]]]],[[29,13],[[7,[50]]]],[[105,13],[[7,[50]]]],[[105,13],[[7,[50]]]],[[106,13],[[7,[50]]]],[[107,13],[[7,[50]]]],[[108,13],[[7,[50]]]],[104,12],[111,[[112,[47]]]],[[]],[113,[[112,[47]]]],[[]],[[]],[[]],[[]],[25,74],[75,74],[[]],[[]],[[]],[31,29],[[]],[[]],[[]],[[]],[[29,100],[[110,[47]]]],[[105,100],[[110,[47]]]],[20,[[7,[29]]]],[20,[[7,[105]]]],[59,[[7,[104,25]]]],[29,[[16,[114]]]],[[],[[7,[102]]]],[[],[[7,[102]]]],[[],[[7,[102]]]],[[],[[7,[102]]]],[[[112,[47]]],12],[29,12],[104],[29],[106],[108],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[7,[110,74]]]],[[[16,[115]],114],[[7,[110,74]]]],[[102,[16,[115]],114],[[7,[110,74]]]],[102,[[7,[110,74]]]],[[[110,[47]]],[[7,[[110,[47]],74]]]],[29,[[7,[[110,[47]],74]]]],[105,[[7,[[110,[47]],74]]]],[[],[[7,[112,74]]]],[[[112,[47]]],[[7,[[112,[47]],74]]]],[102,[[7,[112,74]]]],[[[102,[47]]]],[29,[[6,[29,5]]]],[105,[[6,[105,5]]]],[[[112,[47]],22],[[16,[111]]]],[[[112,[47]],22,36],113],[29,12],[[],12],[26,12],[29,12],[105,12],[[],12],[26,12],[[],12],[26,12],[29,12],[29,12],0,0,0,[104,[[7,[63,25]]]],[[],100],[29,116],[27,[[16,[3]]]],[104,3],[104,3],[[100,100],100],[[],20],[[3,[6,[5]]],[[7,[104,25]]]],[29,3],0,0,[27,[[7,[25]]]],[[[110,[47]],100],[[110,[47]]]],[[104,104],[[16,[11]]]],[[29,29],[[16,[11]]]],[[106,106],[[16,[11]]]],[[108,108],[[16,[11]]]],[[],3],0,[78],[104,[[7,[25]]]],[104,[[7,[[6,[[6,[2,5]],5]],25]]]],[104,3],[29,7],[[],68],[104,28],[[],100],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[105,36],[[7,[29,117]]]],[[],69],[[],69],[[],69],[[],69],[27,[[7,[25]]]],[27,[[7,[25]]]],[104,[[7,[104,71]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[16,[39]]]],[[],[[16,[118]]]],[3,[[16,[18]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[119,119],119],[[120,1,121,[123,[122]]]],0,[120,[[83,[1,[0,[124,101]]]]]],[[125,125]],[[120,126,30],[[7,[127]]]],[[120,126,30,128],[[7,[129]]]],[[120,130]],[[120,131],[[7,[127]]]],[120,132],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[120,133],[[7,[[136,[134,135]],137]]]],[120,[[136,[134,138]]]],[[120,139],[[7,[39,140]]]],[[120,139],[[7,[118,140]]]],[[120,139]],0,0,[120,141],[119,119],[131,131],[125,125],[[]],[[]],[[]],0,[120,[[7,[12]]]],0,[[],119],[[],131],[[],125],[142],[[120,1],[[16,[30]]]],[[120,48],16],[[120,1],69],[[],[[7,[119]]]],[[],[[7,[125]]]],[[119,119],12],[[125,125],12],[[142,142],12],0,0,[[120,143,144],[[7,[12,145]]]],[[119,13],[[7,[50]]]],[[119,13],[[7,[50]]]],[[[120,[109]],13],14],[[131,13],14],[[125,13],14],[[146,13],14],[[142,13],14],[[142,13],14],[[[147,[109]],13],14],[[147,13],14],[[[148,[109]],13],14],[[148,13],14],[[[149,[109,109]],13],14],[[149,13],14],[[150,13],14],[[150,13],14],[[151,13],14],[[151,13],14],[[]],[[]],[[]],[[[154,[152,[153,[1]]]]],125],[155,125],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[120,146],142],[120,119],[[120,1],60],[[120,146],142],[[120,8,[16,[156]],12],[[7,[157,158]]]],[[120,1],[[123,[43]]]],[[120,133],[[16,[[159,[[123,[139]],152]]]]]],[[120,15],[[16,[8]]]],0,0,0,0,[[120,128],[[7,[12,160]]]],[[120,139,161],[[7,[12,150]]]],[[120,15,18]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[48,12],[125,12],[[120,48],12],0,[120,83],0,[120,162],[120,124],[120,124],[[163,[16,[163]]],[[7,[120,148]]]],[120,164],[120,22],0,[[163,[16,[163]],22],[[7,[120,147]]]],[[163,[16,[163]],22],[[7,[120,46]]]],[[163,[16,[163]],22,165],[[7,[120,46]]]],[[163,[16,[163]],22],[[7,[120,149]]]],[[163,[16,[163]],22,165],[[7,[120,149]]]],[[163,[16,[163]],22,165],[[7,[120,147]]]],[[120,1],30],[[120,1],[[7,[[16,[45]],46]]]],[78],[78],[78],[78],[78],[[120,1],[[16,[60]]]],[120,36],[[120,139]],[119,7],[125,7],[[120,143,144],[[7,[12,145]]]],0,[120,166],[120,125],[[]],[[]],[[]],[[],69],[[],69],[[],69],[[],69],[[],69],[[],69],[[],69],[119,39],[120,124],0,[119,39],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[120,146],[[7,[142]]]],[[120,146],[[7,[142]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[120,132],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[120,1],[[0,[124,101]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[16,22,36],[[7,[69,46]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[167,167],[168,168],[169,169],[[]],[[]],[[]],[[[6,[9]],[6,[9]],118,39,48],[[7,[170,171]]]],[[167,[6,[9]],[6,[9]],118,39,48],[[7,[170,171]]]],[[168,[6,[9]],[6,[9]],118,39,48],[[7,[170,171]]]],[[169,[6,[9]],[6,[9]],118,39,48],[[7,[170,171]]]],[[39,118,48],172],[[],167],[[],168],[[],169],0,0,[[171,13],14],[[171,13],14],[[172,13],14],[[170,13],14],[[167,13],14],[[168,13],14],[[169,13],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[170,39],[39,169],[78],0,[170,39],[[]],[[]],[[]],[[],69],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[173,173],[[]],[[173,13],14],[[173,13],14],[[[158,[109]],13],14],[[158,13],14],[[137,13],14],[[137,13],14],[[]],[[]],[171,158],[46,158],[173,158],[174,158],[73,158],[[]],[[]],[[]],[[]],[78],[78],[78],[[]],[[],69],[[],69],[[],69],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[175,[[16,[69]]]],[175,69],[[],[[7,[175]]]],[[120,20,12],[[7,[175,20]]]],[[175,13],14],[[]],[20,[[7,[175]]]],[[]],0,[175,7],[175,69],[[],7],[[],7],[[],19],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[43,176,121,[123,[122]]],[[16,[[123,[122]]]]]],0,0,[[43,36],177],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[177,21,36],43],[176,176],[178,178],[[[180,[[0,[101,179,109,101]]]]],[[180,[[0,[101,179,109,101]]]]]],[121,121],[43,43],[144,144],[181,181],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[176,176],11],[[121,121],11],[[],121],[[],43],[[],144],[[],181],[[[180,[[0,[179,109,101]]]]]],[[],[[16,[105]]]],[[[180,[182]]],[[16,[105]]]],[[[180,[[183,[111]]]]],[[16,[105]]]],[[[180,[[184,[111]]]]],[[16,[105]]]],[[176,176],12],[[178,178],12],[[121,121],12],[[181,181],12],[[43,176],[[16,[123]]]],[[176,13],14],[[145,13],14],[[145,13],14],[[178,13],14],[[[180,[[0,[109,179,109,101]]]],13],14],[[121,13],14],[[43,13],14],[[144,13],14],[[181,13],14],[[]],[116,176],[185,176],[[]],[186,145],[[]],[[]],[[]],[[]],[[]],[[]],[176],[36,176],[[[180,[182]],36],176],[[[180,[[183,[111]]]],36],176],[[[180,[[184,[111]]]],36],176],[43,[[6,[176]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[179,109,101]],178],[[180,[[0,[179,109,101]]]]]],[[],43],[[176,176],[[16,[11]]]],[[121,121],[[16,[11]]]],[78],[[43,176,121],[[16,[[123,[122]]]]]],0,0,[[143,3,144,36],[[7,[145]]]],[[[180,[182]],143,3,144,36],[[7,[145]]]],[[[180,[[184,[111]]]],143,3,144,36],[[7,[145]]]],[[[180,[[183,[111]]]],143,3,144,36],[[7,[145]]]],[[143,144,36],[[7,[145]]]],[[143,144,36],[[7,[145]]]],0,[43,[[6,[123]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],69],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[136,[187,138]]],[[136,[187,138]]]],[[136,15,157,3],[[7,[136,188]]]],[[136,15,157,3,17],[[7,[136,188]]]],[136,136],[[[136,[187,138]],40,39],[[136,[187,138]]]],[[136,15],136],[[136,15],[[7,[136,189]]]],[136,[[7,[136,189]]]],[[136,12],136],[[[136,[134,135]],40],[[7,[[136,[134,135]],190]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[136,191],136],[138,138],[135,135],[[[136,[101]]],[[136,[101]]]],[192,192],[191,191],[[]],[[]],[[]],[[]],[[]],[[192,192],11],[[191,191],11],[[136,187],[[136,[187]]]],[[136,30],136],[[],138],[[],135],[[],192],[[],191],[136,136],[[[136,[187,138]],40],[[136,[187,138]]]],[136,136],[136,136],[[136,17],136],[[192,192],12],[[191,191],12],[[136,39],136],[[136,118],136],[[[136,[187]]],[[7,[143,158]]]],[[138,13],14],[[135,13],14],[[[136,[109,109,109]],13],14],[[189,13],14],[[189,13],14],[[188,13],14],[[188,13],14],[[190,13],14],[[190,13],14],[[192,13],14],[[191,13],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[192],[191],[136,136],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[136,136],[[136,193],136],[136,136],[136,136],[[136,192],136],[[192,192],[[16,[11]]]],[[191,191],[[16,[11]]]],[[136,[83,[69,[6,[3]]]],1],136],[78],[78],[78],[[[136,[187,138]],6],[[136,[187,138]]]],[[136,156],136],[[192,139]],[[]],[[]],[[]],[[]],[[]],[[],69],[[],69],[[],69],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[136,[6,[15]]],136],[[136,194],136],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[15,"usize"],[3,"u5"],[3,"Global"],[3,"Vec"],[4,"Result"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Sh"],[3,"Wsh"],[3,"Wpkh"],[3,"Pkh"],[3,"Tr"],[3,"Bare"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"TxIn"],[4,"SigType"],[3,"String"],[3,"HashMap"],[4,"TranslateErr"],[4,"Error"],[4,"PolicyError"],[4,"KeyError"],[4,"Error"],[4,"Error"],[4,"Error"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[3,"BTreeMap"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[3,"SortedMultiVec"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"ExtendedPrivKey"],[4,"ExtendedKey"],[3,"ExtendedPubKey"],[3,"DerivationPath"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[3,"AddressInfo"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"SignerError"],[4,"AddressIndex"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[6,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"IntoWalletDescriptor"],[3,"LocalChain"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"DescriptorXKey"],[3,"DescriptorMultiXKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\ +"bdk":{"doc":"bdk","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,4,3,4,3,13,3,13,13,13,13,4,8,13,13,13,4,13,13,13,13,13,4,4,13,13,13,13,13,3,3,13,13,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressIndex","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LastUnused","Load","Load","LoadError","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingGenesis","MissingNetwork","New","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Peek","UnexpectedConnectedToHash","Update","Wallet","Write","Write","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","get_address","get_balance","get_descriptor_for_keychain","get_internal_address","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","load","local_chain","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","policies","provide","provide","provide","provide","provide","public_descriptor","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_address","try_get_internal_address","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::ApplyBlockError","","bdk::wallet::InsertTxError","","bdk::wallet::NewOrLoadError","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Error","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::error::CreateTxError","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","","","An unspent transaction output (UTXO).","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","Additional functions on the rust-bitcoin Psbt structure.","The weight of the witness data and scriptSig expressed in …","Get the sequence number if an explicit sequence number has …","","","","","","","","","","","","","","","","","Get the TxOut of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","The location of the output.","The information about the input we require to add it to a …","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Legacy ScriptContext To be used as P2SH scripts For …","The top-level miniscript abstract syntax tree (AST).","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","","Replaces all wildcards (i.e. /*) in the descriptor with a …","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","Attempt to produce a non-malleable witness template given …","Attempt to produce a malleable witness template given the …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","","","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for Self::at_derivation_index.","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","Encode as a Bitcoin script","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending policy","","","Utility method for deriving the descriptor at each index …","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","Create a new Miniscript from a Terminal node and a Type …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. /*.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extracts the AstElem representing the root of the …","Get as many descriptors as different paths in this …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple …","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds to conversion of a miniscript into a …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Computes an upper bound on the difference between a …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the AST.","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","Get the len of public key when serialized based on context …","","","Returns a plan if the provided assets are sufficient to …","Returns a plan if the provided assets are sufficient to …","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Substitutes raw public keys hashes with the public keys as …","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","The correctness and malleability type information for the …","","","","","Computes the scriptSig that will be in place for an …","","","","","Whether the miniscript can exceed the resource …","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","The descriptor contains multipath keys","Key-related error","Error while extracting and manipulating policies","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to …","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","BIP86 template. Expands to tr(key/86'/{0,1}'/0'/{0,1}/*)","BIP86 public template. Expands to tr(key/{0,1}/*)","Trait for descriptor templates that can be built into a …","Type alias for the return type of DescriptorTemplate, …","P2PKH template. Expands to a descriptor pkh(key)","P2TR template. Expands to a descriptor tr(key)","P2WPKH template. Expands to a descriptor wpkh(key)","P2WPKH-P2SH template. Expands to a descriptor sh(wpkh(key))","","","","","","","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. [u8;32]","Returned error in case of failure","Trait that adds extra useful methods to ScriptContexts","Enum for extended keys that can be either xprv or xpub","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a GeneratableKey key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with keys","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Multiple extended private keys.","Multiple extended public keys.","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single public key.","Single private key.","A descriptor bitcoin::PrivateKey with optional origin …","A descriptor SinglePubKey with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the ScriptContext as a ScriptContextEnum","Replaces any wildcard (i.e. /*) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Attempt to produce a witness template given the assets …","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name for Self::at_derivation_index.","","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Returns a vector containing the full derivation paths from …","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the ExtendedKey into an Xpriv for the given …","Transform the ExtendedKey into an Xpub for the given …","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is …","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is Segwitv0","Returns whether the script context is …","Returns whether the script context is Tap, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of SortedMultiVec given a list of …","","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the TxOut for the specified input index, if it doesn’…","The address index selection strategy to use to derived an …","A derived address and the index it was found at. For …","An error that may occur when applying a block to Wallet.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original …","The changes made to a wallet by applying an Update.","The error variant that occurs when the caller attempts to …","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into …","Trait to check if a value is below the dust limit. We are …","Return the address for the current descriptor index if it …","Loading data from the persistence backend failed.","Loading from the persistence backend failed.","The error type when loading a Wallet from persistence.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","Return a new address after incrementing the current …","The error type when constructing a fresh Wallet.","Error type for when we try load a Wallet from persistence …","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","Return the address for a specific descriptor index. Does …","Occurs when the connected_to hash does not match the hash …","An update to Wallet.","A Bitcoin wallet","We were unable to write the wallet’s data to the …","Writing to the persistence backend failed.","","Add an external signer","Address","Get unbounded script pubkey iterators for both Internal …","","Introduces a block of height to the wallet, and tries to …","Applies relevant transactions from block of height to the …","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if tx …","Calculate the FeeRate for a given transaction.","Informs the wallet that you no longer intend to broadcast …","Update for the wallet’s internal LocalChain.","Changes to the LocalChain.","Get all the checkpoints the wallet is currently storing …","","","","","","","Coin selection","Commits all currently staged changed to the persistence …","Confirmed and immediately spendable balance","","","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","","","Errors that can be thrown by the Wallet","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Infallibly return a derived address using the external …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Infallibly return a derived address using the internal …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a CanonicalTx …","Returns the utxo owned by this wallet corresponding to …","Update for the wallet’s internal TxGraph.","All coinbase outputs not yet matured","Child index of this address","Changes to IndexedTxGraph.","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Inserts a TxOut at OutPoint into the wallet’s …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Contains the last active derivation indices per keychain (K…","Returns the latest checkpoint.","List all relevant outputs (includes both spent and …","Return the list of unspent outputs of this wallet","Load Wallet from the given persistence backend.","Get a reference to the inner LocalChain.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty Wallet.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom …","Either loads Wallet from persistence, or initializes it if …","Either loads Wallet from persistence, or initializes it if …","Initialize an empty Wallet with a custom genesis hash.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","","","","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","Compute the tx’s sent and received amounts (in satoshis).","","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns the changes that will be committed with the next …","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","Return a derived address using the external descriptor, …","Return a derived address using the internal (change) …","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","","","","","","Get an unbounded script pubkey iterator for the given …","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","","Deterministically generate a unique name given the …","Block hash of connected_to.","Expected block hash of connected_to, as derived from block.","The internal chain’s tip height.","The introduced transaction’s confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Errors that can be thrown by the coin_selection module","Remaining amount after performing coin selection","Wallet’s UTXO set is not enough to cover recipient’s …","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Error returned from Wallet::build_fee_bump","The change_policy was set but the wallet does not have a …","There was an error with coin selection","Descriptor key conversion error","Error returned from TxBuilder::finish","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","Wallet’s UTXO set is not enough to cover recipient’s …","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Requested LockTime is less than is required to spend from …","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent …","In order to use the TxBuilder::add_global_xpubs option …","Missing non_witness_utxo on foreign utxo for given OutPoint","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Return error type for …","We were unable to write wallet data to the persistence …","There was a problem while extracting and manipulating …","Partially signed bitcoin transaction error","Cannot enable RBF with a Sequence >= 0xFFFFFFFE","Cannot enable RBF with Sequence given a required OP_CSV","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the …","Happens when trying to spend an UTXO that is not in the …","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version ‘0’","Requested transaction version 1, but at least 2 is needed …","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV Sequence","Sats needed for some transaction","Given RBF Sequence","Requested LockTime","Required LockTime","Required fee absolute value (satoshi)","Required fee rate","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","To be used only by external libraries implementing …","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Whether to remove taproot specific fields from the PSBT on …","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","Error returned from TxBuilder::add_foreign_utxo.","Error returned from TxBuilder::add_utxo and …","Error returned from TxBuilder::allow_shrinking","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Requested outpoint doesn’t exist in the tx (vout greater …","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Happens when trying to spend an UTXO that is not in the …","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence …","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee The fee_absolute method refers to the …","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","","","","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,5,0,1,0,5,0,0,0,0,0,0,1,1,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,4,5,1,3,3,0,0,1,3,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,1,3,4,5,3,3,0,5,3,1,0,4,5,1,3,0,0,1,3,4,5,1,3,4,5,1,3,4,5,5,3,1,3,4,5,4,0,1,3,4,5,0,198,198,198,17,0,0,0,0,0,0,0,0,48,0,0,26,17,0,0,0,17,26,0,17,17,17,26,17,35,36,23,23,17,17,35,36,23,17,35,36,23,23,23,23,0,48,35,36,48,36,48,48,35,36,48,35,36,48,48,35,36,48,35,36,48,35,36,0,17,35,36,23,17,35,36,23,17,35,36,23,23,17,17,17,17,17,23,17,23,17,35,36,23,0,17,23,23,199,17,23,17,17,17,35,36,23,23,17,23,17,17,17,17,17,17,17,35,36,23,23,23,17,23,23,23,17,23,23,23,17,17,23,23,17,17,35,36,23,17,35,36,23,23,17,166,62,17,17,23,23,23,17,23,23,48,35,36,23,17,23,17,48,35,36,17,17,17,17,17,17,17,17,17,17,17,17,17,17,23,48,23,17,23,23,17,35,36,23,48,35,36,17,17,0,23,17,23,17,23,23,17,17,23,17,23,48,35,36,23,0,17,35,36,23,17,23,17,48,48,17,23,17,35,36,23,17,35,36,23,23,17,35,36,23,17,17,35,36,23,23,0,0,47,47,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,83,76,76,0,84,0,0,83,82,0,83,83,76,76,76,83,84,45,76,84,84,0,0,0,45,45,82,83,83,0,0,83,83,83,82,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,45,82,83,84,46,85,45,46,85,85,82,83,84,46,85,76,82,83,84,46,85,76,76,45,82,83,84,84,46,46,85,76,45,46,82,85,83,46,82,83,84,46,85,76,45,83,84,85,46,85,76,46,46,82,83,84,46,85,85,82,83,84,46,85,45,76,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,76,45,82,83,84,46,85,76,45,200,200,200,201,202,203,202,203,202,203,202,203,202,203,204,205,206,207,208,209,209,208,210,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,212,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,86,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,88,89,90,92,94,95,96,97,98,99,100,101,80,0,0,0,0,213,213,0,0,110,0,0,0,0,80,80,80,48,0,0,22,80,80,107,26,213,114,0,114,0,0,22,26,107,0,0,0,0,22,0,110,107,26,0,214,26,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,103,48,48,48,48,48,48,48,48,48,105,22,106,103,26,107,108,109,110,105,22,106,103,26,107,108,109,110,103,26,108,110,106,106,105,26,26,103,22,103,26,107,108,109,110,112,22,106,80,80,103,103,26,26,107,107,108,109,110,103,114,114,114,105,112,22,106,80,80,80,103,26,26,107,108,109,110,112,112,26,107,103,26,26,213,215,213,215,114,26,103,26,108,110,114,105,112,22,106,80,103,26,107,108,109,110,26,87,93,105,105,112,26,107,93,114,105,105,26,107,114,114,26,214,22,26,107,214,22,214,22,26,26,103,108,109,103,0,26,48,103,103,0,48,103,26,108,109,48,112,103,26,108,110,48,103,80,103,103,103,26,48,103,0,105,22,106,103,26,107,108,109,110,107,80,103,26,107,48,48,103,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,114,105,112,22,106,80,103,26,107,108,109,110,0,216,216,216,0,0,0,0,154,0,153,150,151,152,0,0,149,151,152,0,152,152,151,151,149,0,0,150,151,152,149,154,0,0,150,152,122,123,145,123,128,123,123,123,123,123,122,123,134,128,149,145,150,151,152,153,154,122,123,134,128,149,145,150,151,152,153,154,123,123,123,123,123,134,128,123,122,134,128,122,134,128,0,123,122,122,134,128,145,123,123,123,122,128,122,128,145,0,0,123,122,122,123,134,128,149,145,145,150,150,151,151,152,152,153,153,154,154,122,123,134,128,128,128,149,145,150,151,152,153,154,123,123,123,123,123,123,123,123,134,122,145,128,123,123,123,122,123,134,128,149,145,150,151,152,153,154,217,128,123,145,123,134,123,123,123,123,123,123,128,123,123,123,123,123,123,123,123,150,151,152,153,154,123,123,123,122,128,123,0,123,123,122,134,128,122,145,150,151,152,153,154,122,123,122,122,122,123,134,128,149,145,150,151,152,153,154,123,123,122,123,134,128,149,145,150,151,152,153,154,0,123,122,123,134,128,149,145,150,151,152,153,154,123,122,122,123,134,128,149,145,150,151,152,153,154,0,218,218,219,219,220,221,220,221,174,174,0,175,0,0,0,0,0,174,0,175,0,174,175,173,170,171,172,174,175,173,170,171,172,170,171,172,170,171,172,190,170,171,172,0,170,171,172,173,173,174,174,175,173,170,171,172,174,175,173,170,171,172,174,175,173,170,171,172,173,172,174,173,173,170,171,172,174,174,175,173,170,171,172,174,175,173,170,171,172,174,175,173,170,171,172,174,175,173,170,171,172,222,222,223,224,224,223,224,0,161,161,176,0,161,161,140,161,161,140,161,161,0,161,161,161,161,161,176,161,161,161,161,161,161,140,140,161,140,176,161,161,176,161,140,176,161,140,176,176,176,176,161,161,140,140,176,161,161,161,161,161,161,140,176,161,140,176,161,140,176,176,161,140,176,161,140,176,161,140,176,161,140,176,161,140,225,226,225,226,227,227,228,229,0,0,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,184,179,184,148,179,184,148,0,148,148,148,181,148,148,148,148,148,148,148,184,179,181,148,0,0,0,0,0,0,0,0,181,0,0,148,44,147,147,44,147,179,148,181,183,124,44,147,184,179,148,181,183,124,44,147,184,44,179,181,183,124,44,147,184,179,181,183,124,44,147,184,179,124,124,44,147,184,183,230,183,183,183,179,181,124,184,44,179,148,148,181,183,124,44,147,184,179,179,179,148,148,181,183,124,44,147,184,179,230,183,183,183,44,179,148,181,183,124,44,147,184,183,44,179,124,148,44,147,147,231,183,183,183,125,183,147,44,147,179,181,183,124,44,147,184,148,147,147,179,148,181,183,124,44,147,184,179,148,181,183,124,44,147,184,179,148,181,183,124,44,147,184,179,148,181,183,124,44,147,184,232,0,0,0,195,0,194,194,0,0,191,191,193,191,194,195,0,0,0,192,195,139,139,139,139,139,139,139,139,139,139,141,138,139,192,191,193,195,194,141,138,139,192,191,193,195,194,139,141,138,139,195,194,141,138,139,195,194,195,194,139,139,141,138,195,194,139,139,139,139,139,195,194,139,139,139,141,138,139,192,192,191,191,193,193,195,194,141,138,139,192,191,193,195,194,195,194,139,141,138,139,192,191,193,195,194,139,139,139,139,139,195,194,139,192,191,193,139,139,195,141,138,139,195,194,192,191,193,141,138,139,192,191,193,195,194,141,138,139,192,191,193,195,194,141,138,139,192,191,193,195,194,139,139,141,138,139,192,191,193,195,194,233,233],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[1,1],[3,3],[4,4],[5,5],[[]],[[]],[[]],[[]],[[1,1],6],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[3]]]],[[1,1],8],[[3,3],8],[[4,4],8],[[5,5],8],[[1,9],10],[[3,9],10],[[4,9],10],[[5,9],10],0,[[]],[[]],[[]],[[]],[1],[3],[[]],[[]],[[]],[[]],0,0,0,[5,11],0,[[1,1],[[12,[6]]]],0,0,[5,[[12,[13]]]],[1,7],[3,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[5,14],0,[[],15],[[],15],[[],15],[[],15],0,[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,18],[[7,[[20,[19]],21]]]],[[],22],[[],22],[23,24],[23,[[25,[23]]]],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23,[[31,[23,30]]]],[23,[[33,[32]]]],[23,[[33,[32]]]],0,[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],0,[17,17],[35,35],[36,36],[23,23],[[]],[[]],[[]],[[]],[[17,17],6],[[35,35],6],[[36,36],6],[[23,23],6],[23,8],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[[17,[28]],37],[[7,[[17,[38]],29]]]],[[[17,[26]],37,27],[[7,[[17,[38]],29]]]],[17,39],[[],[[7,[17]]]],[[],[[7,[23]]]],[[[17,[26]]],40],[23,41],[[17,17],8],[[35,35],8],[[36,36],8],[[23,23],8],0,[17,[[7,[41,21]]]],0,[[23,42],[[7,[43]]]],[[44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],44,45,37],[[7,[[12,[46]],47]]]],[[[23,[26,48]],44,45,37],[[7,[[12,[46]],47]]]],[[[17,[26]],37,49,[50,[27]]],[[7,[12,29]]]],[[17,9],[[7,[51]]]],[[17,9],[[7,[51]]]],[[35,9],[[7,[51]]]],[[36,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[[23,9],[[7,[51]]]],[17,8],[23,8],[52,17],[53,17],[54,17],[[]],[55,17],[56,17],[57,17],[[]],[[]],[[]],[24,[[7,[23,21]]]],[[24,58,59],23],[16,[[7,[17,21]]]],[16,[[7,[23,21]]]],[[16,42],[[7,[23,21]]]],[16,[[7,[23,21]]]],[60,[[7,[17,21]]]],[60,[[7,[23,21]]]],[[23,61],[[12,[23]]]],[[23,61],12],[17,[[7,[21]]]],[17,[[7,[21]]]],[23,8],[23,8],[[[17,[26]]],8],[17],[35],[36],[23],[[]],[[]],[[]],[[]],[23,24],[[[17,[26]]],[[7,[[31,[[17,[26]],30]],21]]]],[[37,18],[[7,[47]]]],[[62,37,18],[[7,[47]]]],[[[17,[26]]],8],[[[17,[26]]],8],[23,8],[23,63],[23,64],[17,[[7,[65,21]]]],[23,[[7,[65,21]]]],[23,[[7,[66]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[12,[61]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[23,[[7,[61,21]]]],[17,[[7,[61,21]]]],[[],16],[[],16],[[],16],[[[23,[67]]],[[7,[17,21]]]],[[],17],[[],[[7,[17,21]]]],[[[23,[35]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[55,17],[56,17],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],[[[12,[68]]],[[7,[17,21]]]],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[61,[31,[30]]],[[7,[17,21]]]],0,[23,[[7,[21]]]],[49,[[7,[23,21]]]],[[37,16],[[7,[21]]]],[49,[[7,[23,21]]]],[[49,42],[[7,[23,21]]]],[[17,17],[[12,[6]]]],[[35,35],[[12,[6]]]],[[36,36],[[12,[6]]]],[[23,23],[[12,[6]]]],[[],61],[[],61],[[],61],[[[17,[28]]],[[7,[69,[17,[28]]]]]],[[[17,[28]]],[[7,[69,[17,[28]]]]]],0,[23,8],[17,[[7,[21]]]],[23,[[7,[43]]]],[[17,70],[[7,[21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[17,[[7,[41,21]]]],[17,41],[23,61],[17,7],[23,7],[[],71],[[],71],[[],71],[[23,72],23],0,[[]],[[]],[[]],[[]],[[],73],[[],73],[[[17,[26]],72],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[17,[[7,[74]]]],[23,[[7,[74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],15],[[],15],[[],15],[[],15],[17,41],[[]],[[]],[[]],[[]],[23,8],[16,[[7,[73,47]]]],[16,[[7,[47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[47,9],10],[[47,9],10],[75,47],[[]],[76,47],[77,47],[21,47],[78,47],[79,47],[80,47],[[]],[81],[[],73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[46,46],[85,85],[45,45],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],8],[[83,83],8],[[84,84],8],[[46,46],8],[[85,85],8],[[76,76],8],[[82,9],10],[[83,9],10],[[84,9],10],[[46,9],10],[[85,9],10],[[76,9],10],[[76,9],10],[[45,9],10],[[]],[[]],[8,84],[[]],[[]],[83,46],[[]],[[]],[[]],[[46,72],[[7,[85,76]]]],[82],[85],[83,73],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,8],[84,8],[85,8],0,[[85,85],[[12,[6]]]],[81],[46,8],0,[82,7],[83,7],[84,7],[46,7],[85,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[7,[86,47]]]],[[[88,[[87,[35]]]],18],[[7,[86,47]]]],[[[89,[[87,[36]]]],18],[[7,[86,47]]]],[[[90,[[87,[36]]]],18],[[7,[86,47]]]],[[[92,[[87,[91]]]],18],[[7,[86,47]]]],[[[94,[[93,[35]]]],18],[[7,[86,47]]]],[[[95,[[93,[35]]]],18],[[7,[86,47]]]],[[[96,[[93,[36]]]],18],[[7,[86,47]]]],[[[97,[[93,[36]]]],18],[[7,[86,47]]]],[[[98,[[93,[36]]]],18],[[7,[86,47]]]],[[[99,[[93,[36]]]],18],[[7,[86,47]]]],[[[100,[[93,[91]]]],18],[[7,[86,47]]]],[[[101,[[93,[91]]]],18],[[7,[86,47]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[86,37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[37,18],[[7,[47]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],102],[[],22],[[26,27],[[7,[28,29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[103,[[33,[32]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[[105,[104,48]]],[[105,[104,48]]]],[22,22],[106,106],[103,103],[26,26],[107,107],[108,108],[109,109],[110,110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[103,103],6],[[26,26],6],[[108,108],6],[[110,110],6],0,[[],106],[[[105,[48]]]],[[26,27],[[7,[28,29]]]],[[],[[7,[26]]]],[103,41],[[22,22],8],[[103,103],8],[[26,26],8],[[107,107],8],[[108,108],8],[[109,109],8],[[110,110],8],[[[112,[[0,[111,48]]]],9],10],[[22,9],10],[[106,9],10],[[80,9],10],[[80,9],10],[[103,9],[[7,[51]]]],[[103,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[26,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[107,9],[[7,[51]]]],[[108,9],[[7,[51]]]],[[109,9],[[7,[51]]]],[[110,9],[[7,[51]]]],[103,8],[113,[[114,[48]]]],[115,[[114,[48]]]],[[]],[[]],[[]],[[]],[[]],[79,80],[[]],[21,80],[[]],[28,26],[[]],[[]],[[]],[[]],[[]],[[26,102],[[112,[48]]]],[[107,102],[[112,[48]]]],[16,[[7,[26]]]],[16,[[7,[107]]]],[60,[[7,[103,21]]]],[26,[[12,[116]]]],[26,[[31,[116,30]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[],[[7,[105]]]],[[[114,[48]]],8],[26,8],[103],[26],[108],[110],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,117],[[],[[7,[112,80]]]],[[[12,[118]],116],[[7,[112,80]]]],[105,[[7,[112,80]]]],[[105,[12,[118]],116],[[7,[112,80]]]],[[[112,[48]]],[[7,[[112,[48]],80]]]],[26,[[7,[[112,[48]],80]]]],[107,[[7,[[112,[48]],80]]]],[[],[[7,[114,80]]]],[[[114,[48]]],[[7,[[114,[48]],80]]]],[105,[[7,[114,80]]]],[[[105,[48]]]],[26,[[31,[26,30]]]],[107,[[31,[107,30]]]],[[[114,[48]],18],[[12,[115]]]],[[[114,[48]],18,37],113],[26,8],[[],8],[22,8],[26,8],[107,8],[[],8],[22,8],[[],8],[22,8],[26,8],[26,8],0,0,0,[103,[[7,[65,21]]]],[[],102],[26,119],[23,[[12,[61]]]],[103,61],[103,61],[[102,102],102],[[],16],[[61,[31,[30]]],[[7,[103,21]]]],[26,61],0,0,[23,[[7,[21]]]],[[[112,[48]],102],[[112,[48]]]],[[103,103],[[12,[6]]]],[[26,26],[[12,[6]]]],[[108,108],[[12,[6]]]],[[110,110],[[12,[6]]]],[[],61],0,[81],[103,[[7,[21]]]],[103,[[7,[[31,[[31,[2,30]],30]],21]]]],[103,61],[26,7],[[],71],[103,24],[[],102],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[107,37],[[7,[26,120]]]],[[],73],[[],73],[[],73],[[],73],[23,[[7,[21]]]],[23,[[7,[21]]]],[103,[[7,[103,74]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[12,[40]]]],[[],[[12,[121]]]],[61,[[12,[14]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[122,122],122],[[123,1,124,[126,[125]]]],0,[123,[[72,[1,[0,[127,104]]]]]],[[128,128]],[[123,129,27],[[7,[130]]]],[[123,129,27,131],[[7,[132]]]],[[123,133]],[[123,134],[[7,[130]]]],[123,135],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[123,136],[[7,[[139,[137,138]],140]]]],[123,[[139,[137,141]]]],[[123,142],[[7,[40,143]]]],[[123,142],[[7,[121,143]]]],[[123,142]],0,0,[123,144],[122,122],[134,134],[128,128],[[]],[[]],[[]],0,[123,[[7,[8]]]],0,[[],122],[[],134],[[],128],[145],[[123,1],[[12,[27]]]],[[123,49],12],[[123,1],73],[[],[[7,[122]]]],[[],[[7,[128]]]],[[122,122],8],[[128,128],8],[[145,145],8],0,0,[[123,146,147],[[7,[8,148]]]],[[122,9],[[7,[51]]]],[[122,9],[[7,[51]]]],[[[123,[111]],9],10],[[134,9],10],[[128,9],10],[[149,9],10],[[145,9],10],[[145,9],10],[[150,9],10],[[[150,[111]],9],10],[[[151,[111]],9],10],[[151,9],10],[[[152,[111,111]],9],10],[[152,9],10],[[153,9],10],[[153,9],10],[[154,9],10],[[154,9],10],[[]],[[]],[[]],[[[157,[155,[156,[1]]]]],128],[[]],[158,128],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[123,149],145],[123,122],[[123,1],62],[[123,149],145],[[123,3,[12,[159]],8],[[7,[160,161]]]],[[123,1],[[126,[44]]]],[[123,136],[[12,[[162,[[126,[142]],155]]]]]],[[123,11],[[12,[3]]]],0,0,0,0,[[123,131],[[7,[8,163]]]],[[123,142,164],[[7,[8,153]]]],[[123,11,14]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,8],[128,8],[[123,49],8],0,[123,72],0,[123,165],[123,127],[123,127],[[166,[12,[166]]],[[7,[123,151]]]],[123,167],[123,18],0,[[166,[12,[166]],18],[[7,[123,150]]]],[[166,[12,[166]],18],[[7,[123,47]]]],[[166,[12,[166]],18,168],[[7,[123,47]]]],[[166,[12,[166]],18],[[7,[123,152]]]],[[166,[12,[166]],18,168],[[7,[123,152]]]],[[166,[12,[166]],18,168],[[7,[123,150]]]],[[123,1],27],[[123,1],[[7,[[12,[46]],47]]]],[81],[81],[81],[81],[81],[[123,1],[[12,[62]]]],[123,37],[[123,142]],[122,7],[128,7],[[123,146,147],[[7,[8,148]]]],0,[123,169],[123,128],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[122,40],[123,127],0,[122,40],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[123,149],[[7,[145]]]],[[123,149],[[7,[145]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[123,135],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[123,1],[[0,[127,104]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,18,37],[[7,[73,47]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[170,170],[171,171],[172,172],[[]],[[]],[[]],[[[31,[4]],[31,[4]],121,40,49],[[7,[173,174]]]],[[170,[31,[4]],[31,[4]],121,40,49],[[7,[173,174]]]],[[171,[31,[4]],[31,[4]],121,40,49],[[7,[173,174]]]],[[172,[31,[4]],[31,[4]],121,40,49],[[7,[173,174]]]],[[40,121,49],175],[[],170],[[],171],[[],172],0,0,[[174,9],10],[[174,9],10],[[175,9],10],[[173,9],10],[[170,9],10],[[171,9],10],[[172,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[173,40],[40,172],[81],0,[173,40],[[]],[[]],[[]],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[176,176],[[]],[[176,9],10],[[176,9],10],[[[161,[111]],9],10],[[161,9],10],[[140,9],10],[[140,9],10],[[]],[174,161],[76,161],[176,161],[[]],[177,161],[47,161],[[]],[[]],[[]],[[]],[81],[81],[81],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[178,[[12,[73]]]],[178,73],[[],[[7,[178]]]],[[123,16,8],[[7,[178,16]]]],[[178,9],10],[[]],[16,[[7,[178]]]],[[]],0,[178,7],[178,73],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[44,179,124,[126,[125]]],[[12,[[126,[125]]]]]],0,0,[[44,37],180],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[180,17,37],44],[179,179],[181,181],[[[183,[[0,[104,182,111,104]]]]],[[183,[[0,[104,182,111,104]]]]]],[124,124],[44,44],[147,147],[184,184],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[179,179],6],[[124,124],6],[[],124],[[],44],[[],147],[[],184],[[[183,[[0,[182,111,104]]]]]],[[],[[12,[107]]]],[[[183,[185]]],[[12,[107]]]],[[[183,[[186,[115]]]]],[[12,[107]]]],[[[183,[[187,[115]]]]],[[12,[107]]]],[[179,179],8],[[181,181],8],[[124,124],8],[[184,184],8],[[44,179],[[12,[126]]]],[[179,9],10],[[148,9],10],[[148,9],10],[[181,9],10],[[[183,[[0,[111,182,111,104]]]],9],10],[[124,9],10],[[44,9],10],[[147,9],10],[[184,9],10],[188,179],[119,179],[[]],[189,148],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[179],[37,179],[[[183,[185]],37],179],[[[183,[[186,[115]]]],37],179],[[[183,[[187,[115]]]],37],179],[44,[[31,[179]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[182,111,104]],181],[[183,[[0,[182,111,104]]]]]],[[],44],[[179,179],[[12,[6]]]],[[124,124],[[12,[6]]]],[81],[[44,179,124],[[12,[[126,[125]]]]]],0,0,[[146,61,147,37],[[7,[148]]]],[[[183,[185]],146,61,147,37],[[7,[148]]]],[[[183,[[186,[115]]]],146,61,147,37],[[7,[148]]]],[[[183,[[187,[115]]]],146,61,147,37],[[7,[148]]]],[[146,147,37],[[7,[148]]]],[[146,147,37],[[7,[148]]]],0,[44,[[31,[126]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],73],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[139,[190,141]]],[[139,[190,141]]]],[[139,11,160,61],[[7,[139,191]]]],[[139,11,160,61,13],[[7,[139,191]]]],[139,139],[[[139,[190,141]],41,40],[[139,[190,141]]]],[[139,11],139],[[139,11],[[7,[139,192]]]],[139,[[7,[139,192]]]],[[139,8],139],[[[139,[137,138]],41],[[7,[[139,[137,138]],193]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[139,194],139],[141,141],[138,138],[[[139,[104]]],[[139,[104]]]],[195,195],[194,194],[[]],[[]],[[]],[[]],[[]],[[195,195],6],[[194,194],6],[[139,190],[[139,[190]]]],[[139,27],139],[[],141],[[],138],[[],195],[[],194],[139,139],[[[139,[190,141]],41],[[139,[190,141]]]],[139,139],[139,139],[[139,13],139],[[195,195],8],[[194,194],8],[[139,40],139],[[139,121],139],[[[139,[190]]],[[7,[146,161]]]],[[141,9],10],[[138,9],10],[[[139,[111,111,111]],9],10],[[192,9],10],[[192,9],10],[[191,9],10],[[191,9],10],[[193,9],10],[[193,9],10],[[195,9],10],[[194,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[195],[194],[139,139],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[139,139],[[139,196],139],[139,139],[139,139],[[139,195],139],[[195,195],[[12,[6]]]],[[194,194],[[12,[6]]]],[[139,[72,[73,[31,[61]]]],1],139],[81],[81],[81],[[[139,[190,141]],31],[[139,[190,141]]]],[[139,159],139],[[195,142]],[[]],[[]],[[]],[[]],[[]],[[],73],[[],73],[[],73],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[139,[31,[11]]],139],[[139,197],139],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[4,"Result"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"Tree"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[3,"Global"],[3,"Vec"],[4,"Placeholder"],[3,"Satisfaction"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Sh"],[3,"Bare"],[3,"Tr"],[3,"Wpkh"],[3,"Wsh"],[3,"Pkh"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[15,"usize"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"Plan"],[3,"TxIn"],[4,"SigType"],[3,"BTreeMap"],[3,"String"],[4,"TranslateErr"],[4,"Error"],[4,"PolicyError"],[4,"HexToBytesError"],[4,"Error"],[4,"Error"],[4,"KeyError"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[3,"SortedMultiVec"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"Xpub"],[4,"ExtendedKey"],[3,"Xpriv"],[3,"DerivationPath"],[3,"Assets"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[3,"AddressInfo"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[4,"AddressIndex"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[6,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"IntoWalletDescriptor"],[3,"LocalChain"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"DescriptorMultiXKey"],[3,"DescriptorXKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\ "bdk_bitcoind_rpc":{"doc":"This crate is used for emitting blockchain data from the …","t":[8,3,3,2,12,11,11,11,11,11,11,12,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11],"n":["BitcoindRpcErrorExt","BlockEvent","Emitter","bitcoincore_rpc","block","block_hash","block_height","borrow","borrow","borrow_mut","borrow_mut","checkpoint","connected_to","fmt","from","from","into","into","is_not_found_error","mempool","new","next_block","next_header","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["bdk_bitcoind_rpc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Extends bitcoincore_rpc::Error.","A newly emitted block from Emitter.","The Emitter is used to emit data sourced from …","","Either a full Block or Header of the new block.","The block hash of this new block.","The block height of this new block.","","","","","The checkpoint of the new block.","The BlockId of a previous block that this block connects …","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Returns whether the error is a “not found” error.","Emit mempool transactions, alongside their first-seen unix …","Construct a new Emitter.","Emit the next block height and block (if any).","Emit the next block height and header (if any).","","","","","","","",""],"i":[0,0,0,0,1,1,1,10,1,10,1,1,1,1,10,1,10,1,19,10,10,10,10,10,1,10,1,10,1,10,1],"f":[0,0,0,0,0,[1,2],[1,3],[[]],[[]],[[]],[[]],0,[1,4],[[[1,[5]],6],7],[[]],[[]],[[]],[[]],[[],8],[[[10,[9]]],[[13,[11,12]]]],[[14,3],[[10,[9]]]],[[[10,[9]]],[[13,[[16,[[1,[15]]]],12]]]],[[[10,[9]]],[[13,[[16,[[1,[17]]]],12]]]],[[],13],[[],13],[[],13],[[],13],[[],18],[[],18],[[]],[[]]],"p":[[3,"BlockEvent"],[3,"BlockHash"],[15,"u32"],[3,"BlockId"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"bool"],[8,"RpcApi"],[3,"Emitter"],[3,"Vec"],[4,"Error"],[4,"Result"],[3,"CheckPoint"],[3,"Block"],[4,"Option"],[3,"Header"],[3,"TypeId"],[8,"BitcoindRpcErrorExt"]]},\ -"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[8,8,8,17,3,17,8,4,3,4,3,13,13,8,16,3,2,16,3,8,3,3,2,13,13,16,11,10,11,11,11,12,12,10,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,10,0,11,2,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,12,3,16,3,8,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,4,13,3,6,3,3,13,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,4,3,3,13,13,3,3,3,3,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","Error","FullTxOut","IndexedTxGraph","LoadError","Persist","PersistBackend","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","WriteError","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","commit","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into","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","load_from_persistence","local_chain","mark_used","miniscript","net_value","new","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","serialize","spent_by","spk_at_index","stage","stage_and_commit","staged","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_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","write_changes","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","KeychainTxOutIndex","add","add_keychain","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","as_inner","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","from","from","from","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","net_value","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_keychain_spks","revealed_spks","sent_and_received","serialize","serialize","spk_at_index","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","Update","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","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_block","into","into","into","into","into","into","into","into","into_iter","into_iter","into_update","introduce_older_blocks","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","provide","provide","push","range","range","tip","tip","to_owned","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_from","try_include_height","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_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","missing_heights","missing_heights_from","new","next","next","outspends","partial_cmp","partial_cmp","provide","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","","bdk_chain::indexed_tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::local_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait that “anchors” blockchain data to a specific …","An Anchor that can be constructed from a given block, …","Trait that makes an object appendable.","Maximum BIP32 derivation index.","A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output …","Represents a service that tracks the blockchain.","Represents the observed position of some chain data.","An Anchor implementation that also records the exact …","Block height and timestamp at which a transaction is …","An Anchor implementation that also records the exact …","The chain data is seen as confirmed, and in anchored by A.","The transaction is confirmed","A trait to extend the functionality of a miniscript …","Error type.","A TxOut with as much data as we can retrieve about it","","The error the backend returns when it fails to load …","Persist wraps a PersistBackend (B) to create a convenient …","A persistence backend for Persist.","An iterator for derived script pubkeys.","An index storing TxOuts that have a script pubkey that …","","The chain data is not confirmed and last seen in the …","The transaction is unconfirmed","The error the backend returns when it fails to write.","The script pubkeys that are being tracked by the index.","Returns the BlockId that the associated blockchain data is …","","","","The anchor block.","The anchor block.","Append another object of the same type onto self.","","","","","","","","","","","","","","","","","","","","","The position of the transaction in outpoint in the overall …","","","","","","","","","","","","","","","","","Maps a ChainPosition<&A> into a ChainPosition<A> by …","","","","","","","Commit the staged changes to the underlying persistence …","The exact confirmation height of the transaction.","The confirmation height of the transaction being anchored.","Get the upper bound of the chain data’s confirmation …","Get the upper bound of the chain data’s confirmation …","Determines the upper bound of the confirmation height.","","","The confirmation time of the transaction being anchored.","","","","","Get a reference to the internal descriptor.","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct the anchor from a given block, block height and …","","","","Get the best chain’s chain tip.","","","","","","The hash of the block.","The height of the block.","Returns the index associated with the script pubkey.","","","Contains the IndexedTxGraph and associated types. Refer to …","","Adds a script pubkey to scan for. Returns false and does …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Determines whether block of BlockId exists as an ancestor …","Returns whether ChainPosition is confirmed or not.","Returns whether ConfirmationTime is the confirmed variant.","Whether the utxo is/was/will be spendable with chain tip.","Returns whether the structure is considered empty.","Whether the txout is considered mature.","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a …","","Returns whether the script pubkey at index has been used …","Module for keychain related structures.","Return the aggregate changeset C from persistence.","The LocalChain is a local implementation of ChainOracle.","Marks the script pubkey at index as used even though it …","","Computes the net value that this transaction gives to the …","Create a new Persist from PersistBackend.","Create a new script pubkey iterator from descriptor.","Create a new script pubkey iterator from descriptor and a …","","","The location of the TxOut.","Get a reference to the set of indexed outpoints.","Iterates over all the outputs with script pubkeys in an …","","","","","","","Scans a transaction’s outputs for matching script …","Scan a single TxOut for a matching script pubkey and …","Computes total input value going from script pubkeys in …","","","","","The txid and chain position of the transaction (if any) …","Returns the script that has been inserted at the index.","Stage a changeset to be committed later with commit.","Stages a new changeset and commits it (along with any …","Get the changes that have not been committed yet.","","","","","","","","","","","","","","","","","","","","","","","","","","","Module for structures that store and traverse transactions.","Returns the txout and script pubkey index of the TxOut at …","The TxOut.","Iterate over all known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","","","","","","","Construct an unconfirmed variant using the given last_seen …","Undoes the effect of mark_used. Returns whether the index …","Iterates over all unused script pubkeys in an index range.","","","","","","","","","","Writes a changeset to the persistence backend.","Confirmation height.","The last-seen timestamp in unix seconds.","Confirmation time in unix seconds.","Represents changes to an IndexedTxGraph.","The resultant “changeset” when new transaction data is …","The IndexedTxGraph combines a TxGraph and an Indexer …","Utilities for indexing transaction data.","","Batch insert all transactions of the given block of height.","Batch insert all transactions of the given block of height…","Apply changeset to itself.","Applies the ChangeSet to the IndexedTxGraph.","Apply an update directly.","Batch insert transactions, filtering out those that are …","Batch insert unconfirmed transactions, filtering out those …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Get a reference of the internal transaction graph.","TxGraph changeset.","Transaction index.","Scans a transaction for relevant outpoints, which are …","Scan and index the given outpoint and txout.","Indexer changeset.","Determines the ChangeSet between self and an empty Indexer.","Determines the ChangeSet between self and an empty …","Insert an anchor for a given transaction.","Insert a unix timestamp of when a transaction is seen in …","Insert and index a transaction into the graph.","Insert a floating txout of given outpoint.","Calls U::from(self).","Calls U::from(self).","","Determines whether the transaction should be included in …","Construct a new IndexedTxGraph with a given index.","","","","","","","","","","","Balance, differentiated into various categories.","Represents updates to the derivation index of a …","KeychainTxOutIndex controls how script pubkeys are …","","Add a keychain to the tracker’s txout_index with a …","Get unbounded spk iterators for all keychains.","Append another ChangeSet into self.","","Applies the derivation changeset to the KeychainTxOutIndex…","Get the inner map of the keychain to its new derivation …","","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","All coinbase outputs not yet matured","Returns the keychain and keychain index associated with …","","","","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the changeset are empty.","","Returns whether the spk under the keychain’s index has …","Iterate over all OutPoints that point to TxOuts with …","Iterate over OutPoints that point to TxOuts with script …","Return a reference to the internal map of keychain to …","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Get the lookahead setting.","Store lookahead scripts until target_index (inclusive).","Marks the script pubkey at index as used even though the …","Computes the net value that this transaction gives to the …","Construct a KeychainTxOutIndex with the given lookahead.","Get the next derivation index for keychain. The next index …","Gets the next unused script pubkey in the keychain. I.e., …","Get a reference to the set of indexed outpoints.","Attempts to reveal the next script pubkey for keychain.","Reveals script pubkeys of the keychain’s descriptor up …","Convenience method to call Self::reveal_to_target on …","Iterate over revealed spks of the given keychain.","Iterate over revealed spks of all keychains.","Computes total input value going from script pubkeys in …","","","Return the script that exists under the given keychain’s …","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","Return the TxOut of outpoint if it has been indexed.","Iterate over known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","Get an unbounded spk iterator over a given keychain.","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterate over revealed, but unused, spks of the given …","Iterate over revealed, but unused, spks of all keychains.","","","","Represents a failure when trying to insert/remove a …","The error type for LocalChain::apply_header_connected_to.","Occurs when the update cannot connect with the original …","Occurs when an update does not have a common checkpoint …","The ChangeSet represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement …","Iterates over checkpoints backwards.","Occurs when connected_to block conflicts with either the …","This is a local implementation of ChainOracle.","An error which occurs when a LocalChain is constructed …","Used to update LocalChain.","Apply the given changeset.","Update the chain with a given Header connecting it with …","Update the chain with a given Header at height which you …","Applies the given update to the chain.","Get the BlockId of the checkpoint.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Removes blocks from (and inclusive of) the given block_id.","","","","","","","","Extends the checkpoint linked list by a iterator of block …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a checkpoint from a list of BlockIds in …","Constructs a LocalChain from a BTreeMap of height to …","Construct a LocalChain from an initial changeset.","Construct LocalChain from genesis hash.","Construct a checkpoint from the given header and block …","Construct a LocalChain from a given checkpoint tip.","Get the genesis hash.","Get checkpoint at height.","Get checkpoint at given height (if it exists).","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpoint’s height.","Derives an initial ChangeSet, meaning that it can be …","Insert a BlockId.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Convenience method to convert the CheckPoint into an Update…","Whether the update allows for introducing older blocks.","","Iterate from this checkpoint in descending height.","Iterate over checkpoints in descending height order.","Construct a new base block at the front of a linked list.","","The original checkpoint’s block hash which cannot be …","Get the previous checkpoint in the chain","","","","","Puts another checkpoint onto the linked list representing …","Iterate checkpoints over a height range.","Iterate checkpoints over a height range.","Get the highest checkpoint.","The update chain’s new tip.","","","","","","","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two …","","","","","","","","","","","","","","","","","The attempted update to the original_block hash.","","","","","","","","","Errors returned by TxGraph::calculate_fee.","A transaction that is included in the chain, or is still …","The ChangeSet represents changes to a TxGraph.","Missing TxOut for one or more of the inputs of the tx","When the transaction is invalid according to the graph it …","An iterator that traverses ancestors of a given root …","An iterator that traverses transaction descendants.","A graph of transactions and spends.","A transaction node in the TxGraph.","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","Iterates over the heights of that the new transaction …","The blocks that the transaction is “anchored” in.","Added anchors.","","Applies ChangeSet to TxGraph.","Extends this graph with another so that self becomes the …","","Get the total balance of outpoints that are in chain of …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","How the transaction is observed as (confirmed or …","","","","","","","","","","","","","","","","","","","Given a transaction, return an iterator of txids that …","","","","","","Get a filtered list of outputs from the given outpoints …","Get a filtered list of unspent outputs (UTXOs) from the …","Iterate over floating txouts known by TxGraph.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get the position of the transaction in chain with tip …","Get the txid of the spending transaction and where the …","Get a transaction by txid. This only returns Some for full …","Get a transaction node by txid. This only returns Some for …","Obtains a single tx output (if any) at the specified …","Determines the ChangeSet between self and an empty TxGraph.","Inserts the given anchor into TxGraph.","Inserts the given seen_at for txid into TxGraph.","Inserts the given transaction into TxGraph.","Inserts the given TxOut at OutPoint.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Whether the graph has any transactions or outputs in it.","","Added last-seen unix timestamps of transactions.","The last-seen unix timestamp of the transaction as …","List graph transactions that are in chain with chain_tip.","Transform the TxGraph to have Anchors of another type.","Transform the ChangeSet to have Anchors of another type.","Find missing block heights of chain.","Returns an iterator for the anchor_heights in this …","Construct a new TxGraph from a list of transactions.","","","The transactions spending from this output.","","","","","","","","","","Get the total balance of outpoints that are in chain of …","Get a filtered list of outputs from the given outpoints …","Get a filtered list of unspent outputs (UTXOs) from the …","","","","","","","","Get the position of the transaction in chain with tip …","Get the txid of the spending transaction and where the …","","","","","","","","List graph transactions that are in chain with chain_tip.","A partial or full representation of the transaction.","The transaction node (as part of the graph).","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within ChangeSet.","Added txouts.","Added transactions.","","","","","","","","Update the last seen time for all unconfirmed transactions.","","","","","","","","Creates an iterator that filters and maps ancestor …","Creates an iterator that both filters and maps conflicting …","Creates an iterator that filters and maps descendants from …"],"i":[0,0,0,0,0,0,0,0,0,0,0,8,9,0,77,0,0,78,0,0,0,0,0,8,9,78,3,17,5,6,7,6,7,40,3,0,3,8,9,5,6,7,10,13,11,3,8,9,5,6,7,10,13,11,10,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,8,8,9,5,6,7,10,13,6,7,17,17,8,6,7,7,3,5,6,7,11,9,5,6,7,79,8,9,5,6,7,10,3,8,9,5,6,7,10,13,3,8,9,9,5,5,5,6,7,10,13,11,80,5,6,7,77,8,9,5,6,7,5,5,3,3,3,0,3,3,3,8,9,5,6,7,10,13,11,11,77,8,9,10,40,10,10,3,3,3,0,78,0,3,0,3,13,11,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,13,13,13,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,13,11,3,8,9,5,6,7,10,13,11,0,3,10,3,3,3,8,9,5,6,7,10,13,11,9,3,3,3,8,9,5,6,7,10,13,11,78,81,82,81,0,42,0,0,41,43,43,42,43,43,43,43,43,43,41,43,41,41,41,43,41,41,41,43,41,43,41,41,41,43,41,43,42,42,41,42,43,43,43,43,43,43,41,41,42,43,41,41,43,41,43,41,43,41,43,41,0,0,0,49,50,50,47,50,50,47,47,50,47,49,50,47,49,50,47,49,50,47,49,49,50,47,49,47,49,47,49,50,47,49,49,50,47,49,49,50,50,50,50,50,50,47,49,47,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,47,49,50,50,47,49,49,49,49,49,50,47,49,50,47,49,50,50,50,50,47,49,50,50,49,50,50,50,47,49,0,0,59,0,0,0,0,59,0,0,0,54,54,54,54,61,64,61,60,54,56,62,58,59,64,61,60,54,56,62,58,59,61,60,54,56,62,58,59,61,60,54,56,62,58,59,54,61,60,54,56,62,58,59,61,61,60,54,56,56,62,62,58,58,59,59,64,61,60,54,56,62,58,59,61,54,54,54,61,54,54,61,54,54,61,61,62,54,54,64,61,60,54,56,62,58,59,64,61,61,60,54,61,54,61,64,62,61,56,62,58,59,61,61,54,54,60,61,60,54,56,62,58,59,56,62,58,59,64,61,60,54,56,62,58,59,58,64,61,60,54,56,62,58,59,64,61,60,54,56,62,58,59,62,64,61,60,54,56,62,58,59,0,0,0,68,68,0,0,0,0,44,44,48,71,48,48,44,44,44,44,44,74,75,44,71,72,68,48,74,75,44,71,72,68,48,44,72,74,74,75,75,44,71,72,48,44,71,72,48,71,72,44,48,71,48,44,44,71,72,68,48,44,44,44,44,71,72,68,68,48,74,75,44,71,72,68,48,44,44,44,44,44,44,44,44,44,44,44,74,75,44,71,72,68,48,74,75,44,48,48,71,44,44,48,44,48,44,74,75,44,71,72,68,48,44,71,72,48,68,44,44,44,74,75,44,71,72,68,48,44,44,74,75,44,71,72,68,48,44,71,72,44,44,71,48,48,48,74,75,44,71,72,68,48,44,74,75,44,71,72,68,48,44,44,44],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],5],[5,5],[6,5],[7,5],0,0,[[]],[[[3,[[0,[1,2]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[3,[1]]],[[3,[1]]]],[[[8,[1]]],[[8,[1]]]],[9,9],[5,5],[6,6],[7,7],[[[10,[1]]],[[10,[1]]]],[[[11,[1]]],[[11,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[8,[[8,[1]]]],[[[8,[2]],8],12],[[9,9],12],[[5,5],12],[[6,6],12],[[7,7],12],[[[10,[2]],10],12],[13,[[15,[14]]]],0,0,[[],16],[[],16],[[[8,[17]]],[[14,[16]]]],[6,16],[7,16],0,[[],3],[[],5],[[],6],[[],7],[11],[[],[[15,[9]]]],[[],[[15,[5]]]],[[],[[15,[6]]]],[[],[[15,[7]]]],[[],18],[[[8,[19]],8],20],[[9,9],20],[[5,5],20],[[6,6],20],[[7,7],20],[[[10,[19]],10],20],[[[3,[21]],22],23],[[[8,[21]],22],23],[[9,22],23],[[5,22],23],[[6,22],23],[[7,22],23],[[[10,[21]],22],23],[[[13,[21,21]],22],23],[[]],[[]],[[[8,[7]]],9],[[]],[[],5],[[]],[[],5],[[]],[[]],[[]],[[]],[[]],[[24,5,25]],[[24,5,25],5],[[24,5,25],6],[[24,5,25],7],[[],[[15,[5]]]],[[[8,[26]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],27],14],[[[3,[[0,[1,2]]]],28]],[[[3,[[0,[1,2]]]],29,30]],0,[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[0,[1,2]],31],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[15,[[14,[20]]]]]],[8,20],[9,20],[[[10,[17]],16],20],[[],20],[[[10,[17]],16],20],0,[[[3,[[0,[1,2]]]],28],20],[[[3,[[0,[1,2]]]],28],20],[[[3,[[0,[1,2]]]]],20],0,[[],[[15,[14]]]],0,[[[3,[[0,[1,2]]]]],20],0,[[[3,[[0,[1,2]]]],28],32],[[],13],[[],11],[[],11],[11,14],[[11,25],14],0,[[[3,[[0,[1,2]]]]],33],[[[3,[[0,[1,2]]]],[34,[[0,[1,2]]]]],35],[[[8,[36]],8],[[14,[12]]]],[[9,9],[[14,[12]]]],[[5,5],[[14,[12]]]],[[6,6],[[14,[12]]]],[[7,7],[[14,[12]]]],[[[10,[36]],10],[[14,[12]]]],[[[3,[[0,[1,2]]]],28],[[33,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],29,30],14],[[[3,[[0,[1,2]]]],28]],[9,15],[5,15],[6,15],[7,15],0,[[[3,[[0,[1,2]]]]],[[14,[27]]]],[13],[13,[[15,[14]]]],[13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[[3,[[0,[1,2]]]],29],14],0,[[[3,[[0,[1,2]]]]],[[0,[35,37]]]],[[[3,[[0,[1,2]]]],38],35],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[18,9],[[[3,[[0,[1,2]]]]],20],[[[3,[[0,[1,2]]]]],[[0,[35,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],0,0,0,0,0,0,0,[[[41,[17,40]],[41,[17,40]]]],[[[43,[42]],24,16],41],[[[43,[42]],24,16],41],[[]],[[[43,[17,42]],[41,[17]]]],[[[43,[17,42]],[44,[17]]],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[]],[[]],[[]],[[]],[[[41,[1,1]]],[[41,[1,1]]]],[[]],[[],[[43,[46]]]],[[],[[41,[46]]]],[[],[[15,[41]]]],[[[41,[19,19]],41],20],[[[43,[21,21]],22],23],[[[41,[21,21]],22],23],[[]],[47,[[41,[47]]]],[48,[[41,[46]]]],[[]],[43,44],0,0,[28],[[29,30]],0,[[]],[[[43,[17,42]]],[[41,[17]]]],[[[43,[17,42]],38,17],[[41,[17]]]],[[[43,[17,42]],38,18],[[41,[17]]]],[[[43,[17,42]],28],[[41,[17]]]],[[[43,[17,42]],29,30],[[41,[17]]]],[[]],[[]],[[[41,[17,40]]],20],[28,20],[[],43],[41,15],[[]],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[]],[[]],0,0,0,[[49,49],49],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],[52,[51]]]],[[[50,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],[11,[[52,[51]]]]]]]],[[[47,[2]],[47,[2]]]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]],[47,[[0,[1,2,21]]]]]],[47,4],[47,4],[[]],[[]],[[]],[[]],[[]],[[]],[[[50,[1]]],[[50,[1]]]],[[[47,[1]]],[[47,[1]]]],[49,49],[[]],[[]],[[]],0,[[],50],[[],47],[[],49],[[],[[15,[47]]]],[[],[[15,[49]]]],[[[47,[19]],47],20],[[49,49],20],[[[50,[21]],22],23],[[[47,[21]],22],23],[[49,22],23],[[49,22],23],[[]],[[]],[[]],0,[[[50,[[0,[1,2,21]]]],27],14],[[[50,[[0,[1,2,21]]]],28]],[[[50,[[0,[1,2,21]]]],29,30]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]],3],[[]],[[]],[[]],[[[47,[2]]],20],[[[50,[[0,[1,2,21]]]],28],20],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],[[[50,[[0,[1,2,21]]]]],35],[[[50,[[0,[1,2,21]]]],[34,[16]]],35],[[[50,[[0,[1,2,21]]]]],4],[[[50,[[0,[1,2,21]]]]],[[14,[16]]]],[[[50,[[0,[1,2,21]]]]],4],[[[50,[[0,[1,2,21]]]]],[[14,[16]]]],[[[50,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],16]]]],[[[50,[[0,[1,2,21]]]]],16],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],[[[50,[[0,[1,2,21]]]],28],32],[16,50],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]],33],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]],4]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]],28]],[47,15],[49,15],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],[[14,[27]]]],[[]],[[]],[[]],[[],53],[49,18],0,[49,18],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[50,[[0,[1,2,21]]]],29],14],[[[50,[[0,[1,2,21]]]]],[[0,[35,37]]]],[[[50,[[0,[1,2,21]]]],38],35],[[],39],[[],39],[[],39],[[[50,[[0,[1,2,21]]]]],[[11,[[52,[51]]]]]],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],0,[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[54,55],[[15,[56]]]],[[54,57,16],[[15,[55,58]]]],[[54,57,16,5],[[15,[55,59]]]],[[54,60],[[15,[55,58]]]],[61,5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61,61],[60,60],[54,54],[56,56],[62,62],[58,58],[59,59],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[54,5],[[15,[55,56]]]],[[61,61],20],[[60,60],20],[[54,54],20],[[56,56],20],[[62,62],20],[[58,58],20],[[59,59],20],[[61,45],[[15,[61,61]]]],[[61,22],23],[[60,22],23],[[54,22],23],[[56,22],23],[[56,22],23],[[62,22],23],[[62,22],23],[[58,22],23],[[58,22],23],[[59,22],23],[[59,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[45,[[15,[61,[14,[61]]]]]],[[[4,[16,63]]],[[15,[54,56]]]],[55,[[15,[54,56]]]],[63],[[57,16],61],[61,[[15,[54,56]]]],[54,63],[[61,16],[[14,[61]]]],[[54,16],[[14,[61]]]],[54,[[15,[5]]]],[61,63],[61,16],0,[54,55],[[54,5],[[15,[55,62]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61],[[61,20],60],0,[[54,5,5],[[15,[[14,[20]]]]]],[61,64],[54,64],[5,61],[64,14],0,[61,[[14,[61]]]],[65],[65],[65],[65],[[61,5],[[15,[61,61]]]],[61,66],[54,66],[54,61],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],53],[[],53],[[],53],[[],53],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[44,33],[44,66],[48,66],0,0,[[[48,[2]],[48,[2]]]],[[[44,[[0,[1,2]]]],[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],[44,[[0,[1,2]]]]],[[48,[[0,[1,2]]]]]],[44,44],[[[44,[17]],5,45,67],49],[[[44,[[0,[1,2]]]],45],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[44,28],[[15,[18,68]]]],0,[[],[[14,[69]]]],[[],[[14,[70]]]],[[],[[14,[69]]]],[[],[[14,[70]]]],[[[44,[1]]],[[44,[1]]]],[[[71,[1,1]]],[[71,[1,1]]]],[[[72,[1,1]]],[[72,[1,1]]]],[[[48,[1]]],[[48,[1]]]],[[]],[[]],[[]],[[]],[[[71,[2,2]],71],12],[[[72,[2,2]],72],12],[[],44],[[],48],[71],[[],[[15,[48]]]],[[44,28],66],[[[44,[19]],44],20],[[[71,[19,19]],71],20],[[[72,[19,19]],72],20],[[68,68],20],[[[48,[19]],48],20],[[[44,[17]],5,45],66],[[[44,[17]],5,45],66],[44,66],[[[44,[21]],22],23],[[[71,[21,21]],22],23],[[[72,[21,21]],22],23],[[68,22],23],[[68,22],23],[[[48,[21]],22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,66],[[[44,[17]],5,38],[[14,[8]]]],[[[44,[17]],5,29],14],[[44,38],[[14,[[73,[28]]]]]],[[44,38],[[14,[[71,[[73,[28]]]]]]]],[[44,29],[[14,[30]]]],[[[44,[[0,[1,2]]]]],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,[0,[1,2]]],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,18],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],28],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],29,30],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,20],[[[48,[2]]],20],0,0,[[[44,[17]],5],66],[[[44,[[0,[1,2]]]]],[[44,[[0,[1,2]]]]]],[[[48,[2]]],[[48,[2]]]],[[[44,[17]],54],66],[[48,54],66],[45,[[44,[[0,[1,2]]]]]],[74,14],[75,14],[[44,29],76],[[[71,[36,36]],71],[[14,[12]]]],[[[72,[36,36]],72],[[14,[12]]]],[65],[48,15],[[]],[[]],[[]],[[]],[[],53],[[[44,[17]],5,45,67],[[15,[49]]]],[[[44,[17]],5,45],66],[[[44,[17]],5,45],66],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5,38],[[15,[[14,[8]]]]]],[[[44,[17]],5,29],[[15,[14]]]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5],66],0,0,[[44,38],[[14,[[4,[16,30]]]]]],[[44,38],35],0,[48,66],0,0,[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[[44,[[0,[1,2]]]],18],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[44,[[0,[1,2]]]]],[[74,[[0,[1,2]]]]]],[[44,28],75],[[[44,[[0,[1,2]]]],38],[[75,[[0,[1,2]]]]]]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeHeightAnchor"],[4,"ChainPosition"],[4,"ConfirmationTime"],[3,"FullTxOut"],[3,"SpkIterator"],[4,"Ordering"],[3,"Persist"],[4,"Option"],[4,"Result"],[15,"u32"],[8,"Anchor"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Block"],[15,"usize"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[15,"i64"],[3,"BTreeSet"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"ChangeSet"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"IntoIterator"],[8,"Default"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"String"],[3,"LocalChain"],[6,"ChangeSet"],[3,"MissingGenesisError"],[3,"Header"],[3,"CannotConnectError"],[4,"ApplyHeaderError"],[3,"Update"],[3,"CheckPoint"],[3,"AlterCheckPointError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[8,"Iterator"],[8,"FnMut"],[4,"CalculateFeeError"],[3,"SignedAmount"],[3,"Amount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"Arc"],[3,"TxAncestors"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"PersistBackend"],[8,"DescriptorExt"],[8,"AnchorFromBlockPosition"],[13,"Confirmed"],[13,"Unconfirmed"]]},\ +"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[8,8,8,17,3,17,8,4,3,4,3,13,13,8,16,3,2,16,3,8,3,3,2,13,13,16,11,10,11,11,11,12,12,10,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,10,0,11,2,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,12,3,16,3,8,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,4,13,3,6,3,3,13,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,4,3,3,13,13,3,3,3,3,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","Error","FullTxOut","IndexedTxGraph","LoadError","Persist","PersistBackend","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","WriteError","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","commit","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into","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","load_from_persistence","local_chain","mark_used","miniscript","net_value","new","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","serialize","spent_by","spk_at_index","stage","stage_and_commit","staged","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_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","write_changes","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","KeychainTxOutIndex","add","add_keychain","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","as_inner","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","from","from","from","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","net_value","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_keychain_spks","revealed_spks","sent_and_received","serialize","serialize","spk_at_index","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","Update","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","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_block","into","into","into","into","into","into","into","into","into_iter","into_iter","into_update","introduce_older_blocks","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","provide","provide","push","range","range","tip","tip","to_owned","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_from","try_include_height","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_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","missing_heights","missing_heights_from","new","next","next","outspends","partial_cmp","partial_cmp","provide","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","","bdk_chain::indexed_tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::local_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait that “anchors” blockchain data to a specific …","An Anchor that can be constructed from a given block, …","Trait that makes an object appendable.","Maximum BIP32 derivation index.","A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output …","Represents a service that tracks the blockchain.","Represents the observed position of some chain data.","An Anchor implementation that also records the exact …","Block height and timestamp at which a transaction is …","An Anchor implementation that also records the exact …","The chain data is seen as confirmed, and in anchored by A.","The transaction is confirmed","A trait to extend the functionality of a miniscript …","Error type.","A TxOut with as much data as we can retrieve about it","","The error the backend returns when it fails to load …","Persist wraps a PersistBackend (B) to create a convenient …","A persistence backend for Persist.","An iterator for derived script pubkeys.","An index storing TxOuts that have a script pubkey that …","","The chain data is not confirmed and last seen in the …","The transaction is unconfirmed","The error the backend returns when it fails to write.","The script pubkeys that are being tracked by the index.","Returns the BlockId that the associated blockchain data is …","","","","The anchor block.","The anchor block.","Append another object of the same type onto self.","","","","","","","","","","","","","","","","","","","","","The position of the transaction in outpoint in the overall …","","","","","","","","","","","","","","","","","Maps a ChainPosition<&A> into a ChainPosition<A> by …","","","","","","","Commit the staged changes to the underlying persistence …","The exact confirmation height of the transaction.","The confirmation height of the transaction being anchored.","Get the upper bound of the chain data’s confirmation …","Get the upper bound of the chain data’s confirmation …","Determines the upper bound of the confirmation height.","","","The confirmation time of the transaction being anchored.","","","","","Get a reference to the internal descriptor.","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct the anchor from a given block, block height and …","","","","Get the best chain’s chain tip.","","","","","","The hash of the block.","The height of the block.","Returns the index associated with the script pubkey.","","","Contains the IndexedTxGraph and associated types. Refer to …","","Adds a script pubkey to scan for. Returns false and does …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Determines whether block of BlockId exists as an ancestor …","Returns whether ChainPosition is confirmed or not.","Returns whether ConfirmationTime is the confirmed variant.","Whether the utxo is/was/will be spendable with chain tip.","Returns whether the structure is considered empty.","Whether the txout is considered mature.","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a …","","Returns whether the script pubkey at index has been used …","Module for keychain related structures.","Return the aggregate changeset C from persistence.","The LocalChain is a local implementation of ChainOracle.","Marks the script pubkey at index as used even though it …","","Computes the net value that this transaction gives to the …","Create a new Persist from PersistBackend.","Create a new script pubkey iterator from descriptor.","Create a new script pubkey iterator from descriptor and a …","","","The location of the TxOut.","Get a reference to the set of indexed outpoints.","Iterates over all the outputs with script pubkeys in an …","","","","","","","Scans a transaction’s outputs for matching script …","Scan a single TxOut for a matching script pubkey and …","Computes total input value going from script pubkeys in …","","","","","The txid and chain position of the transaction (if any) …","Returns the script that has been inserted at the index.","Stage a changeset to be committed later with commit.","Stages a new changeset and commits it (along with any …","Get the changes that have not been committed yet.","","","","","","","","","","","","","","","","","","","","","","","","","","","Module for structures that store and traverse transactions.","Returns the txout and script pubkey index of the TxOut at …","The TxOut.","Iterate over all known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","","","","","","","Construct an unconfirmed variant using the given last_seen …","Undoes the effect of mark_used. Returns whether the index …","Iterates over all unused script pubkeys in an index range.","","","","","","","","","","Writes a changeset to the persistence backend.","Confirmation height.","The last-seen timestamp in unix seconds.","Confirmation time in unix seconds.","Represents changes to an IndexedTxGraph.","The resultant “changeset” when new transaction data is …","The IndexedTxGraph combines a TxGraph and an Indexer …","Utilities for indexing transaction data.","","Batch insert all transactions of the given block of height.","Batch insert all transactions of the given block of height…","Apply changeset to itself.","Applies the ChangeSet to the IndexedTxGraph.","Apply an update directly.","Batch insert transactions, filtering out those that are …","Batch insert unconfirmed transactions, filtering out those …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Get a reference of the internal transaction graph.","TxGraph changeset.","Transaction index.","Scans a transaction for relevant outpoints, which are …","Scan and index the given outpoint and txout.","Indexer changeset.","Determines the ChangeSet between self and an empty Indexer.","Determines the ChangeSet between self and an empty …","Insert an anchor for a given transaction.","Insert a unix timestamp of when a transaction is seen in …","Insert and index a transaction into the graph.","Insert a floating txout of given outpoint.","Calls U::from(self).","Calls U::from(self).","","Determines whether the transaction should be included in …","Construct a new IndexedTxGraph with a given index.","","","","","","","","","","","Balance, differentiated into various categories.","Represents updates to the derivation index of a …","KeychainTxOutIndex controls how script pubkeys are …","","Add a keychain to the tracker’s txout_index with a …","Get unbounded spk iterators for all keychains.","Append another ChangeSet into self.","","Applies the derivation changeset to the KeychainTxOutIndex…","Get the inner map of the keychain to its new derivation …","","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","All coinbase outputs not yet matured","Returns the keychain and keychain index associated with …","","","","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the changeset are empty.","","Returns whether the spk under the keychain’s index has …","Iterate over all OutPoints that point to TxOuts with …","Iterate over OutPoints that point to TxOuts with script …","Return a reference to the internal map of keychain to …","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Get the lookahead setting.","Store lookahead scripts until target_index (inclusive).","Marks the script pubkey at index as used even though the …","Computes the net value that this transaction gives to the …","Construct a KeychainTxOutIndex with the given lookahead.","Get the next derivation index for keychain. The next index …","Gets the next unused script pubkey in the keychain. I.e., …","Get a reference to the set of indexed outpoints.","Attempts to reveal the next script pubkey for keychain.","Reveals script pubkeys of the keychain’s descriptor up …","Convenience method to call Self::reveal_to_target on …","Iterate over revealed spks of the given keychain.","Iterate over revealed spks of all keychains.","Computes total input value going from script pubkeys in …","","","Return the script that exists under the given keychain’s …","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","Return the TxOut of outpoint if it has been indexed.","Iterate over known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","Get an unbounded spk iterator over a given keychain.","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterate over revealed, but unused, spks of the given …","Iterate over revealed, but unused, spks of all keychains.","","","","Represents a failure when trying to insert/remove a …","The error type for LocalChain::apply_header_connected_to.","Occurs when the update cannot connect with the original …","Occurs when an update does not have a common checkpoint …","The ChangeSet represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement …","Iterates over checkpoints backwards.","Occurs when connected_to block conflicts with either the …","This is a local implementation of ChainOracle.","An error which occurs when a LocalChain is constructed …","Used to update LocalChain.","Apply the given changeset.","Update the chain with a given Header connecting it with …","Update the chain with a given Header at height which you …","Applies the given update to the chain.","Get the BlockId of the checkpoint.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Removes blocks from (and inclusive of) the given block_id.","","","","","","","","Extends the checkpoint linked list by a iterator of block …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a checkpoint from a list of BlockIds in …","Constructs a LocalChain from a BTreeMap of height to …","Construct a LocalChain from an initial changeset.","Construct LocalChain from genesis hash.","Construct a checkpoint from the given header and block …","Construct a LocalChain from a given checkpoint tip.","Get the genesis hash.","Get checkpoint at height.","Get checkpoint at given height (if it exists).","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpoint’s height.","Derives an initial ChangeSet, meaning that it can be …","Insert a BlockId.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Convenience method to convert the CheckPoint into an Update…","Whether the update allows for introducing older blocks.","","Iterate from this checkpoint in descending height.","Iterate over checkpoints in descending height order.","Construct a new base block at the front of a linked list.","","The original checkpoint’s block hash which cannot be …","Get the previous checkpoint in the chain","","","","","Puts another checkpoint onto the linked list representing …","Iterate checkpoints over a height range.","Iterate checkpoints over a height range.","Get the highest checkpoint.","The update chain’s new tip.","","","","","","","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two …","","","","","","","","","","","","","","","","","The attempted update to the original_block hash.","","","","","","","","","Errors returned by TxGraph::calculate_fee.","A transaction that is included in the chain, or is still …","The ChangeSet represents changes to a TxGraph.","Missing TxOut for one or more of the inputs of the tx","When the transaction is invalid according to the graph it …","An iterator that traverses ancestors of a given root …","An iterator that traverses transaction descendants.","A graph of transactions and spends.","A transaction node in the TxGraph.","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","Iterates over the heights of that the new transaction …","The blocks that the transaction is “anchored” in.","Added anchors.","","Applies ChangeSet to TxGraph.","Extends this graph with another so that self becomes the …","","Get the total balance of outpoints that are in chain of …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","How the transaction is observed as (confirmed or …","","","","","","","","","","","","","","","","","","","Given a transaction, return an iterator of txids that …","","","","","","Get a filtered list of outputs from the given outpoints …","Get a filtered list of unspent outputs (UTXOs) from the …","Iterate over floating txouts known by TxGraph.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get the position of the transaction in chain with tip …","Get the txid of the spending transaction and where the …","Get a transaction by txid. This only returns Some for full …","Get a transaction node by txid. This only returns Some for …","Obtains a single tx output (if any) at the specified …","Determines the ChangeSet between self and an empty TxGraph.","Inserts the given anchor into TxGraph.","Inserts the given seen_at for txid into TxGraph.","Inserts the given transaction into TxGraph.","Inserts the given TxOut at OutPoint.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Whether the graph has any transactions or outputs in it.","","Added last-seen unix timestamps of transactions.","The last-seen unix timestamp of the transaction as …","List graph transactions that are in chain with chain_tip.","Transform the TxGraph to have Anchors of another type.","Transform the ChangeSet to have Anchors of another type.","Find missing block heights of chain.","Returns an iterator for the anchor_heights in this …","Construct a new TxGraph from a list of transactions.","","","The transactions spending from this output.","","","","","","","","","","Get the total balance of outpoints that are in chain of …","Get a filtered list of outputs from the given outpoints …","Get a filtered list of unspent outputs (UTXOs) from the …","","","","","","","","Get the position of the transaction in chain with tip …","Get the txid of the spending transaction and where the …","","","","","","","","List graph transactions that are in chain with chain_tip.","A partial or full representation of the transaction.","The transaction node (as part of the graph).","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within ChangeSet.","Added txouts.","Added transactions.","","","","","","","","Update the last seen time for all unconfirmed transactions.","","","","","","","","Creates an iterator that filters and maps ancestor …","Creates an iterator that both filters and maps conflicting …","Creates an iterator that filters and maps descendants from …"],"i":[0,0,0,0,0,0,0,0,0,0,0,8,9,0,77,0,0,78,0,0,0,0,0,8,9,78,3,17,5,6,7,6,7,40,3,0,3,8,9,5,6,7,10,13,11,3,8,9,5,6,7,10,13,11,10,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,11,8,8,9,5,6,7,10,13,6,7,17,17,8,6,7,7,3,5,6,7,11,9,5,6,7,79,8,9,5,6,7,10,3,8,9,5,6,7,10,13,3,8,9,9,5,5,5,6,7,10,13,11,80,5,6,7,77,8,9,5,6,7,5,5,3,3,3,0,3,3,3,8,9,5,6,7,10,13,11,11,77,8,9,10,40,10,10,3,3,3,0,78,0,3,0,3,13,11,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,13,13,13,3,8,9,5,6,7,10,11,3,8,9,5,6,7,10,13,11,3,8,9,5,6,7,10,13,11,0,3,10,3,3,3,8,9,5,6,7,10,13,11,9,3,3,3,8,9,5,6,7,10,13,11,78,81,82,81,0,42,0,0,41,43,43,42,43,43,43,43,43,43,41,43,41,41,41,43,41,41,41,43,41,43,41,41,41,43,41,43,42,42,41,42,43,43,43,43,43,43,41,41,42,43,41,41,43,41,43,41,43,41,43,41,0,0,0,49,50,50,47,50,50,47,47,50,47,49,50,47,49,50,47,49,50,47,49,49,50,47,49,47,49,47,49,50,47,49,49,50,47,49,49,50,50,50,50,50,50,47,49,47,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,47,49,50,50,47,49,49,49,49,49,50,47,49,50,47,49,50,50,50,50,47,49,50,50,49,50,50,50,47,49,0,0,59,0,0,0,0,59,0,0,0,54,54,54,54,61,64,61,60,54,56,62,58,59,64,61,60,54,56,62,58,59,61,60,54,56,62,58,59,61,60,54,56,62,58,59,54,61,60,54,56,62,58,59,61,61,60,54,56,56,62,62,58,58,59,59,64,61,60,54,56,62,58,59,61,54,54,54,61,54,54,61,54,54,61,61,62,54,54,64,61,60,54,56,62,58,59,64,61,61,60,54,61,54,61,64,62,61,56,62,58,59,61,61,54,54,60,61,60,54,56,62,58,59,56,62,58,59,64,61,60,54,56,62,58,59,58,64,61,60,54,56,62,58,59,64,61,60,54,56,62,58,59,62,64,61,60,54,56,62,58,59,0,0,0,68,68,0,0,0,0,44,44,48,71,48,48,44,44,44,44,44,74,75,44,71,72,68,48,74,75,44,71,72,68,48,44,72,74,74,75,75,44,71,72,48,44,71,72,48,71,72,44,48,71,48,44,44,71,72,68,48,44,44,44,44,71,72,68,68,48,74,75,44,71,72,68,48,44,44,44,44,44,44,44,44,44,44,44,74,75,44,71,72,68,48,74,75,44,48,48,71,44,44,48,44,48,44,74,75,44,71,72,68,48,44,71,72,48,68,44,44,44,74,75,44,71,72,68,48,44,44,74,75,44,71,72,68,48,44,71,72,44,44,71,48,48,48,74,75,44,71,72,68,48,44,74,75,44,71,72,68,48,44,44,44],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],5],[5,5],[6,5],[7,5],0,0,[[]],[[[3,[[0,[1,2]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[3,[1]]],[[3,[1]]]],[[[8,[1]]],[[8,[1]]]],[9,9],[5,5],[6,6],[7,7],[[[10,[1]]],[[10,[1]]]],[[[11,[1]]],[[11,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[8,[[8,[1]]]],[[[8,[2]],8],12],[[9,9],12],[[5,5],12],[[6,6],12],[[7,7],12],[[[10,[2]],10],12],[13,[[15,[14]]]],0,0,[[],16],[[],16],[[[8,[17]]],[[14,[16]]]],[6,16],[7,16],0,[[],3],[[],5],[[],6],[[],7],[11],[[],[[15,[9]]]],[[],[[15,[5]]]],[[],[[15,[6]]]],[[],[[15,[7]]]],[[],18],[[[8,[19]],8],20],[[9,9],20],[[5,5],20],[[6,6],20],[[7,7],20],[[[10,[19]],10],20],[[[3,[21]],22],23],[[[8,[21]],22],23],[[9,22],23],[[5,22],23],[[6,22],23],[[7,22],23],[[[10,[21]],22],23],[[[13,[21,21]],22],23],[[]],[[]],[[[8,[7]]],9],[[]],[[],5],[[]],[[],5],[[]],[[]],[[]],[[]],[[]],[[24,5,25]],[[24,5,25],5],[[24,5,25],6],[[24,5,25],7],[[],[[15,[5]]]],[[[8,[26]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],27],14],[[[3,[[0,[1,2]]]],28]],[[[3,[[0,[1,2]]]],29,30]],0,[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[0,[1,2]],31],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[15,[[14,[20]]]]]],[8,20],[9,20],[[[10,[17]],16],20],[[],20],[[[10,[17]],16],20],0,[[[3,[[0,[1,2]]]],28],20],[[[3,[[0,[1,2]]]],28],20],[[[3,[[0,[1,2]]]]],20],0,[[],[[15,[14]]]],0,[[[3,[[0,[1,2]]]]],20],0,[[[3,[[0,[1,2]]]],28],32],[[],13],[[],11],[[],11],[11,14],[[11,25],14],0,[[[3,[[0,[1,2]]]]],33],[[[3,[[0,[1,2]]]],[34,[[0,[1,2]]]]],35],[[[8,[36]],8],[[14,[12]]]],[[9,9],[[14,[12]]]],[[5,5],[[14,[12]]]],[[6,6],[[14,[12]]]],[[7,7],[[14,[12]]]],[[[10,[36]],10],[[14,[12]]]],[[[3,[[0,[1,2]]]],28],[[33,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],29,30],14],[[[3,[[0,[1,2]]]],28]],[9,15],[5,15],[6,15],[7,15],0,[[[3,[[0,[1,2]]]]],[[14,[27]]]],[13],[13,[[15,[14]]]],[13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[[3,[[0,[1,2]]]],29],14],0,[[[3,[[0,[1,2]]]]],[[0,[35,37]]]],[[[3,[[0,[1,2]]]],38],35],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[18,9],[[[3,[[0,[1,2]]]]],20],[[[3,[[0,[1,2]]]]],[[0,[35,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],0,0,0,0,0,0,0,[[[41,[17,40]],[41,[17,40]]]],[[[43,[42]],24,16],41],[[[43,[42]],24,16],41],[[]],[[[43,[17,42]],[41,[17]]]],[[[43,[17,42]],[44,[17]]],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[[43,[17,42]],45],[[41,[17]]]],[[]],[[]],[[]],[[]],[[[41,[1,1]]],[[41,[1,1]]]],[[]],[[],[[43,[46]]]],[[],[[41,[46]]]],[[],[[15,[41]]]],[[[41,[19,19]],41],20],[[[43,[21,21]],22],23],[[[41,[21,21]],22],23],[[]],[47,[[41,[47]]]],[48,[[41,[46]]]],[[]],[43,44],0,0,[28],[[29,30]],0,[[]],[[[43,[17,42]]],[[41,[17]]]],[[[43,[17,42]],38,17],[[41,[17]]]],[[[43,[17,42]],38,18],[[41,[17]]]],[[[43,[17,42]],28],[[41,[17]]]],[[[43,[17,42]],29,30],[[41,[17]]]],[[]],[[]],[[[41,[17,40]]],20],[28,20],[[],43],[41,15],[[]],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[]],[[]],0,0,0,[[49,49],49],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],[52,[51]]]],[[[50,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],[11,[[52,[51]]]]]]]],[[[47,[2]],[47,[2]]]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]],[47,[[0,[1,2,21]]]]]],[47,4],[47,4],[[]],[[]],[[]],[[]],[[]],[[]],[[[50,[1]]],[[50,[1]]]],[[[47,[1]]],[[47,[1]]]],[49,49],[[]],[[]],[[]],0,[[],50],[[],47],[[],49],[[],[[15,[47]]]],[[],[[15,[49]]]],[[[47,[19]],47],20],[[49,49],20],[[[50,[21]],22],23],[[[47,[21]],22],23],[[49,22],23],[[49,22],23],[[]],[[]],[[]],0,[[[50,[[0,[1,2,21]]]],27],14],[[[50,[[0,[1,2,21]]]],28]],[[[50,[[0,[1,2,21]]]],29,30]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]],3],[[]],[[]],[[]],[[[47,[2]]],20],[[[50,[[0,[1,2,21]]]],28],20],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],[[[50,[[0,[1,2,21]]]]],35],[[[50,[[0,[1,2,21]]]],[34,[16]]],35],[[[50,[[0,[1,2,21]]]]],4],[[[50,[[0,[1,2,21]]]]],[[14,[16]]]],[[[50,[[0,[1,2,21]]]]],4],[[[50,[[0,[1,2,21]]]]],[[14,[16]]]],[[[50,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],16]]]],[[[50,[[0,[1,2,21]]]]],16],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],[[[50,[[0,[1,2,21]]]],28],32],[16,50],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]],33],[[[50,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]],4]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]],28]],[47,15],[49,15],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],[[14,[27]]]],[[]],[[]],[[]],[[],53],[49,18],0,[49,18],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[50,[[0,[1,2,21]]]],29],14],[[[50,[[0,[1,2,21]]]]],[[0,[35,37]]]],[[[50,[[0,[1,2,21]]]],38],35],[[],39],[[],39],[[],39],[[[50,[[0,[1,2,21]]]]],[[11,[[52,[51]]]]]],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],16],20],0,[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[54,55],[[15,[56]]]],[[54,57,16],[[15,[55,58]]]],[[54,57,16,5],[[15,[55,59]]]],[[54,60],[[15,[55,58]]]],[61,5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61,61],[60,60],[54,54],[56,56],[62,62],[58,58],[59,59],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[54,5],[[15,[55,56]]]],[[61,61],20],[[60,60],20],[[54,54],20],[[56,56],20],[[62,62],20],[[58,58],20],[[59,59],20],[[61,45],[[15,[61,61]]]],[[61,22],23],[[60,22],23],[[54,22],23],[[56,22],23],[[56,22],23],[[62,22],23],[[62,22],23],[[58,22],23],[[58,22],23],[[59,22],23],[[59,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[45,[[15,[61,[14,[61]]]]]],[[[4,[16,63]]],[[15,[54,56]]]],[55,[[15,[54,56]]]],[63],[[57,16],61],[61,[[15,[54,56]]]],[54,63],[[61,16],[[14,[61]]]],[[54,16],[[14,[61]]]],[54,[[15,[5]]]],[61,63],[61,16],0,[54,55],[[54,5],[[15,[55,62]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61],[[61,20],60],0,[[54,5,5],[[15,[[14,[20]]]]]],[61,64],[54,64],[5,61],[64,14],0,[61,[[14,[61]]]],[65],[65],[65],[65],[[61,5],[[15,[61,61]]]],[61,66],[54,66],[54,61],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],53],[[],53],[[],53],[[],53],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[44,33],[44,66],[48,66],0,0,[[[48,[2]],[48,[2]]]],[[[44,[[0,[1,2]]]],[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],[44,[[0,[1,2]]]]],[[48,[[0,[1,2]]]]]],[44,44],[[[44,[17]],5,45,67],49],[[[44,[[0,[1,2]]]],45],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[44,28],[[15,[18,68]]]],0,[[],[[14,[69]]]],[[],[[14,[70]]]],[[],[[14,[69]]]],[[],[[14,[70]]]],[[[44,[1]]],[[44,[1]]]],[[[71,[1,1]]],[[71,[1,1]]]],[[[72,[1,1]]],[[72,[1,1]]]],[[[48,[1]]],[[48,[1]]]],[[]],[[]],[[]],[[]],[[[71,[2,2]],71],12],[[[72,[2,2]],72],12],[[],44],[[],48],[71],[[],[[15,[48]]]],[[44,28],66],[[[44,[19]],44],20],[[[71,[19,19]],71],20],[[[72,[19,19]],72],20],[[68,68],20],[[[48,[19]],48],20],[[[44,[17]],5,45],66],[[[44,[17]],5,45],66],[44,66],[[[44,[21]],22],23],[[[71,[21,21]],22],23],[[[72,[21,21]],22],23],[[68,22],23],[[68,22],23],[[[48,[21]],22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,66],[[[44,[17]],5,38],[[14,[8]]]],[[[44,[17]],5,29],14],[[44,38],[[14,[[73,[28]]]]]],[[44,38],[[14,[[71,[[73,[28]]]]]]]],[[44,29],[[14,[30]]]],[[[44,[[0,[1,2]]]]],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,[0,[1,2]]],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,18],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],28],[[48,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],29,30],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,20],[[[48,[2]]],20],0,0,[[[44,[17]],5],66],[[[44,[[0,[1,2]]]]],[[44,[[0,[1,2]]]]]],[[[48,[2]]],[[48,[2]]]],[[[44,[17]],54],66],[[48,54],66],[45,[[44,[[0,[1,2]]]]]],[74,14],[75,14],[[44,29],76],[[[71,[36,36]],71],[[14,[12]]]],[[[72,[36,36]],72],[[14,[12]]]],[65],[48,15],[[]],[[]],[[]],[[]],[[],53],[[[44,[17]],5,45,67],[[15,[49]]]],[[[44,[17]],5,45],66],[[[44,[17]],5,45],66],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5,38],[[15,[[14,[8]]]]]],[[[44,[17]],5,29],[[15,[14]]]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5],66],0,0,[[44,38],[[14,[[4,[16,30]]]]]],[[44,38],35],0,[48,66],0,0,[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],[[[44,[[0,[1,2]]]],18],[[48,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[44,[[0,[1,2]]]]],[[74,[[0,[1,2]]]]]],[[44,28],75],[[[44,[[0,[1,2]]]],38],[[75,[[0,[1,2]]]]]]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeHeightAnchor"],[4,"ChainPosition"],[4,"ConfirmationTime"],[3,"FullTxOut"],[3,"SpkIterator"],[4,"Ordering"],[3,"Persist"],[4,"Option"],[4,"Result"],[15,"u32"],[8,"Anchor"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Block"],[15,"usize"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[15,"i64"],[3,"BTreeSet"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"ChangeSet"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"IntoIterator"],[8,"Default"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"String"],[3,"LocalChain"],[6,"ChangeSet"],[3,"MissingGenesisError"],[3,"Header"],[3,"CannotConnectError"],[4,"ApplyHeaderError"],[3,"Update"],[3,"CheckPoint"],[3,"AlterCheckPointError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[8,"Iterator"],[8,"FnMut"],[4,"CalculateFeeError"],[3,"Amount"],[3,"SignedAmount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"Arc"],[3,"TxAncestors"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"PersistBackend"],[8,"DescriptorExt"],[8,"AnchorFromBlockPosition"],[13,"Confirmed"],[13,"Unconfirmed"]]},\ "bdk_coin_select":{"doc":"","t":[3,3,4,4,3,3,13,6,13,3,4,13,13,13,3,4,3,13,13,17,13,13,13,13,13,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,12,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11],"n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","provide","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":["bdk_coin_select","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Bnb represents the current state of the BnB algorithm.","","Determines how we should limit rounds of branch and bound.","Strategy in which we should branch.","CoinSelector selects and deselects from a set of …","","We continue exploring subtrees of this node, starting with …","Closure to decide the branching strategy, alongside a …","","","","Min absolute fee is not met","Min drain value is not met","","","","","We skip both the inclusion and omission branches of this …","We continue exploring ONLY the omission branch of this …","Txin “base” fields include outpoint (32+4) and …","The target fee (given the feerate) is not met","The target is not met","","","","A WeightedValue represents an input candidate for …","Compare the advertised score with the current best. The …","","","Attempt to backtrack to the previously selected node’s …","The weight of the template transaction, including fixed …","","Returns the ExcessStrategy that results in the least waste.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This is a variation of the Branch and Bound Coin Selection …","Current excess.","Current weight of template tx + selected inputs.","","","","Additional weight if we include the drain (change) output.","This is the effective target value.","Effective value of this input candidate: …","","","","","","Returns feerate in sats/wu.","","","","","","","","","","","","","Continue down this branch and skip the inclusion branch if …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","The total number of inputs; so we can calculate extra …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turns our Bnb state into an iterator.","","","Whether this WeightedValue contains at least one segwit …","","","The feerate","Additional leeway for the target value.","The minimum absolute fee. I.e., needed for RBF.","Minimum value allowed for a drain (change) output.","Creates a new Bnb.","Create a new WeightedValue that represents a single input.","","","","","","","","","","","","","","","","Absolute value sum of all selected inputs.","","Effective value sum of all selected inputs.","","Waste sum of all selected inputs.","Weight sum of all selected inputs.","","Weight of spending the drain (change) output in the future.","The feerate we should try and achieve in sats per weight …","The value we need to select. If the value is None, then …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Total value of the UTXO(s) that this WeightedValue …","","","","","","","","","","","","","","Total weight of including this/these UTXO(s). txin fields: …","",""],"i":[0,0,0,0,0,0,34,0,22,0,0,11,11,22,0,0,0,34,34,0,11,11,12,12,12,0,2,4,5,2,9,2,5,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,9,4,10,11,5,12,13,8,9,4,10,11,5,12,13,12,0,4,4,4,13,9,9,4,8,11,12,5,5,13,13,4,8,9,4,10,10,11,11,5,12,12,13,2,34,2,26,22,22,22,8,9,4,10,11,5,12,13,9,12,8,34,2,26,22,8,9,4,10,11,5,12,13,2,26,4,8,4,9,9,9,9,9,2,8,4,26,4,12,2,2,10,13,2,2,4,4,4,4,5,4,4,4,4,4,4,2,9,9,9,8,9,4,10,11,5,12,13,10,11,12,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,34,2,26,22,8,9,4,10,11,5,12,13,13,8,13,34],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],1],3],[4,3],[5,6],[[[2,[1]]],3],0,0,[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,7],8],0,[8,8],[9,9],[4,4],[10,10],[11,11],[5,5],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,12],14],[4,[[15,[4]]]],[4,16],[4,17],[[4,7],3],0,[9,16],0,[4,16],[[8,18],16],[[11,11],3],[[12,12],3],0,0,0,[13,18],[4,[[19,[5,10]]]],[[8,20],21],[[9,20],21],[[4,20],21],[[10,20],21],[[10,20],21],[[11,20],21],[[11,20],21],[[5,20],21],[[12,20],21],[[12,20],21],[[13,20],21],[[[2,[1]],3]],[[]],[[]],[[]],[[]],[7,22],[23,22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[24,17],9],[12],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[2,[1]],25],[[26,[1]]]],[[]],[4,3],0,[[4,7],3],[9,18],0,0,0,0,[[4,27,1],[[2,[1]]]],[[28,17,3],8],[[27,9],4],[[[26,[[0,[1,29,30]]]]],15],0,[[12,12],[[15,[14]]]],0,0,[31],0,0,0,[[4,7],3],[4],[4,[[19,[5,10]]]],[4,6],0,[4,28],[4,7],[4,16],[4,6],[4,16],[4,17],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[],32],[[],32],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[4,6],[4,6],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[34,3]],"p":[[8,"Ord"],[3,"Bnb"],[15,"bool"],[3,"CoinSelector"],[3,"Selection"],[8,"Iterator"],[15,"usize"],[3,"WeightedValue"],[3,"CoinSelectorOpt"],[3,"SelectionError"],[4,"SelectionConstraint"],[4,"ExcessStrategyKind"],[3,"ExcessStrategy"],[4,"Ordering"],[4,"Option"],[15,"i64"],[15,"u32"],[15,"f32"],[4,"Result"],[3,"Formatter"],[6,"Result"],[4,"BnbLimit"],[3,"Duration"],[3,"TxOut"],[6,"DecideStrategy"],[3,"BnbIter"],[3,"Vec"],[15,"u64"],[8,"Copy"],[8,"Display"],[3,"Demand"],[3,"String"],[3,"TypeId"],[4,"BranchStrategy"]]},\ "bdk_electrum":{"doc":"This crate is used for updating structures of bdk_chain …","t":[8,3,3,2,11,11,11,11,12,11,11,11,2,11,11,11,11,10,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11],"n":["ElectrumExt","ElectrumUpdate","RelevantTxids","bdk_chain","borrow","borrow","borrow_mut","borrow_mut","chain_update","clone","clone_into","default","electrum_client","fmt","fmt","from","from","full_scan","into","into","into_confirmation_time_tx_graph","into_tx_graph","missing_full_txs","relevant_txids","sync","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["bdk_electrum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait to extend Client functionality.","Combination of chain and transactions updates from electrum","Represents updates fetched from an Electrum server, but …","","","","","","Chain update","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Full scan the keychain scripts specified with the …","Calls U::from(self).","Calls U::from(self).","Finalizes the update by fetching missing txids from the …","Finalizes the TxGraph update by fetching missing txids …","Determine the full transactions that are missing from graph…","Transaction updates from electrum","Sync a set of scripts with the blockchain (via an Electrum …","","","","","","","","",""],"i":[0,0,0,0,1,4,1,4,4,1,1,1,0,1,4,1,4,20,1,4,1,1,1,4,20,1,1,4,1,4,1,4,1,4],"f":[0,0,0,0,[[]],[[]],[[]],[[]],0,[1,1],[[]],[[],1],0,[[1,2],3],[[4,2],3],[[]],[[]],[[5,[9,[[0,[6,7]],8]],10,10],[[12,[11]]]],[[]],[[]],[[1,13,[15,[14]]],[[12,[[17,[16]],11]]]],[[1,13,[15,[14]]],[[12,[[17,[18]],11]]]],[[1,17],[[15,[14]]]],0,[[5,8,8,8,10],[[12,[4,11]]]],[[]],[[],12],[[],12],[[],12],[[],12],[[],19],[[],19],[[]],[[]]],"p":[[3,"RelevantTxids"],[3,"Formatter"],[6,"Result"],[3,"ElectrumUpdate"],[3,"CheckPoint"],[8,"Ord"],[8,"Clone"],[8,"IntoIterator"],[3,"BTreeMap"],[15,"usize"],[4,"Error"],[4,"Result"],[3,"Client"],[3,"Txid"],[3,"Vec"],[3,"ConfirmationTimeHeightAnchor"],[3,"TxGraph"],[3,"ConfirmationHeightAnchor"],[3,"TypeId"],[8,"ElectrumExt"]]},\ "bdk_esplora":{"doc":"BDK Esplora","t":[8,8,2,10,10,10,10,10,10],"n":["EsploraAsyncExt","EsploraExt","esplora_client","full_scan","full_scan","sync","sync","update_local_chain","update_local_chain"],"q":["bdk_esplora","","","","","","","",""],"d":["Trait to extend the functionality of …","Trait to extend the functionality of …","","Full scan the keychain scripts specified with the …","Full scan the keychain scripts specified with the …","Sync a set of scripts with the blockchain (via an Esplora …","Sync a set of scripts with the blockchain (via an Esplora …","Prepare a LocalChain update with blocks fetched from …","Prepare a LocalChain update with blocks fetched from …"],"i":[0,0,0,16,17,16,17,16,17],"f":[0,0,0,[[[4,[[0,[1,2]],3]],5,5],[[8,[[7,[6]]]]]],[[[4,[[0,[3,9]]]],5,5],[[11,[[7,[10]]]]]],[[3,3,3,5],[[8,[[13,[12]],[7,[6]]]]]],[[[0,[3,9]],[0,[3,9]],[0,[3,9]],5],[[11,[[7,[10]]]]]],[[14,3],[[8,[15,[7,[6]]]]]],[[14,[0,[3,9]]],[[11,[[7,[10]]]]]]],"p":[[8,"Ord"],[8,"Clone"],[8,"IntoIterator"],[3,"BTreeMap"],[15,"usize"],[4,"Error"],[3,"Box"],[4,"Result"],[8,"Send"],[8,"Future"],[3,"Pin"],[3,"ConfirmationTimeHeightAnchor"],[3,"TxGraph"],[3,"CheckPoint"],[3,"Update"],[8,"EsploraExt"],[8,"EsploraAsyncExt"]]},\ "bdk_file_store":{"doc":"BDK File Store","t":[3,13,3,4,13,13,13,4,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["AggregateChangesetsError","Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changeset","create_new","drop","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into_iter","iter_changesets","iter_error","load_from_persistence","new","next","open","open_or_create_new","provide","provide","provide","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":["bdk_file_store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_file_store::FileError",""],"d":["Error type for Store::aggregate_changesets.","Failure to decode data from the file.","Iterator over entries in a file store.","Error that occurs due to problems encountered with the …","Magic bytes do not match what is expected.","Failure to read from the file.","IO error, this may mean that the file is too short.","Error type for EntryIter.","Persists an append-only list of changesets (C) to a single …","Loads all the changesets that have been stored as one …","Append a new changeset to the file and truncate the file …","","","","","","","","","","","The partially-aggregated changeset.","Create a new Store file in write-only mode; error if the …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the stored changeset from first to last, …","The error returned by EntryIter.","","","","Open an existing Store.","Attempt to open existing Store file; create it if the file …","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,8,0,0,6,8,6,0,0,1,1,7,8,1,3,6,7,8,1,3,6,3,1,7,8,8,1,3,3,6,6,7,8,8,1,3,6,6,7,8,1,3,6,7,1,3,1,7,7,1,1,8,3,6,8,3,6,7,8,1,3,6,7,8,1,3,6,7,8,1,3,6,7,8,1,3,6,1,17,17],"f":[0,0,0,0,0,0,0,0,0,[1,[[4,[2,3]]]],[1,[[4,[5]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[4,[1,6]]]],[7],[[8,9],10],[[8,9],10],[[[1,[11]],9],10],[[[3,[11]],9],10],[[3,9],10],[[6,9],10],[[6,9],10],[[]],[[]],[5,8],[[]],[[]],[[]],[5,6],[[]],[[]],[[]],[[]],[[]],[[]],[1,7],0,[1,[[4,[2]]]],[[12,13],7],[7,2],[[],[[4,[1,6]]]],[[],[[4,[1,6]]]],[14],[14],[14],[[],15],[[],15],[[],15],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],16],[[],16],[[],16],[[],16],[[],16],[[]],[[]],[[]],[[]],[[]],[1,4],0,0],"p":[[3,"Store"],[4,"Option"],[3,"AggregateChangesetsError"],[4,"Result"],[3,"Error"],[4,"FileError"],[3,"EntryIter"],[4,"IterError"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[15,"u64"],[3,"File"],[3,"Demand"],[3,"String"],[3,"TypeId"],[13,"InvalidMagicBytes"]]},\ -"bdk_hwi":{"doc":"HWI Signer","t":[3,11,11,11,11,11,11,11,11,11,11,11,11],"n":["HWISigner","borrow","borrow_mut","fmt","from","from_device","id","into","sign_transaction","try_from","try_into","type_id","vzip"],"q":["bdk_hwi","","","","","","","","","","","",""],"d":["Custom signer for Hardware Wallets","","","","Returns the argument unchanged.","Create a instance from the specified device and chain","","Calls U::from(self).","","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,[[]],[[]],[[1,2],3],[[]],[[4,5],[[7,[1,6]]]],[[1,8],9],[[]],[[1,10,11,8],[[7,[12]]]],[[],7],[[],7],[[],13],[[]]],"p":[[3,"HWISigner"],[3,"Formatter"],[6,"Result"],[3,"HWIDevice"],[3,"HWIChain"],[4,"Error"],[4,"Result"],[3,"Secp256k1"],[4,"SignerId"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"SignerError"],[3,"TypeId"]]},\ +"bdk_hwi":{"doc":"HWI Signer","t":[3,11,11,11,11,11,11,11,11,11,11,11,11],"n":["HWISigner","borrow","borrow_mut","fmt","from","from_device","id","into","sign_transaction","try_from","try_into","type_id","vzip"],"q":["bdk_hwi","","","","","","","","","","","",""],"d":["Custom signer for Hardware Wallets","","","","Returns the argument unchanged.","Create a instance from the specified device and chain","","Calls U::from(self).","","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,[[]],[[]],[[1,2],3],[[]],[[4,5],[[7,[1,6]]]],[[1,8],9],[[]],[[1,10,11,8],[[7,[12]]]],[[],7],[[],7],[[],13],[[]]],"p":[[3,"HWISigner"],[3,"Formatter"],[6,"Result"],[3,"HWIDevice"],[3,"HWIChain"],[4,"Error"],[4,"Result"],[3,"Secp256k1"],[4,"SignerId"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[3,"TypeId"]]},\ "bdk_testenv":{"doc":"","t":[3,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["TestEnv","bitcoind","borrow","borrow_mut","electrsd","electrum_client","from","into","invalidate_blocks","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":["bdk_testenv","","","","","","","","","","","","","","","","","","","","",""],"d":["Struct for running a regtest environment with a single …","","","","","Exposes the ElectrumApi calls from the Electrum client.","Returns the argument unchanged.","Calls U::from(self).","Invalidate a number of blocks of a given size count.","Mine a number of blocks of a given size count, which may …","Mine a block that is guaranteed to be empty even with …","Construct a new TestEnv instance with default …","Reorg a number of blocks of a given size count. Refer to …","Reorg with a number of empty blocks of a given size count.","","Exposes the RpcApi calls from bitcoincore_rpc.","Send a tx of a given amount to a given address.","","","","","This method waits for the Electrum notification indicating …"],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,0,[[]],[[]],0,[1],[[]],[[]],[[1,2],3],[[1,2,[5,[4]]],[[3,[[7,[6]]]]]],[1,3],[[],[[3,[1]]]],[[1,2],[[3,[[7,[6]]]]]],[[1,2],[[3,[7]]]],[1,[[3,[1]]]],[1],[[1,4,8],[[3,[9]]]],[[],10],[[],10],[[],11],[[]],[1,3]],"p":[[3,"TestEnv"],[15,"usize"],[6,"Result"],[3,"Address"],[4,"Option"],[3,"BlockHash"],[3,"Vec"],[3,"Amount"],[3,"Txid"],[4,"Result"],[3,"TypeId"]]},\ "bdk_tmp_plan":{"doc":"A spending plan or plan for short is a representation of a …","t":[3,8,13,13,13,13,3,3,4,4,3,3,13,13,4,13,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,12,12,12,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12],"n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashError","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","provide","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":["bdk_tmp_plan","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_tmp_plan::PlanState","","bdk_tmp_plan::RequiredSignatures","","","","",""],"d":["","","The plan is complete","","","Legacy ECDSA signatures are required","A plan represents a particular spending path for a …","A plan key contains the asset key originally provided …","The returned value from Plan::try_complete.","The signatures required to complete the plan","Signatures and hash pre-images that must be provided to …","Signatures and hash pre-images that can be used to …","Segwitv0 ECDSA signatures are required","","","A Taproot key spend signature is required","Taproot script path signatures are required","The key the planner will sign with","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A hint from how to get from the asset key to the concrete …","The key that was in the descriptor that we are satisfying …","ECDSA signatures under their keys","The expected satisfaction weight for the plan if it is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","required hash160 pre-images","hash160 pre-images under their images","","required hash256 pre-images","hash256 pre-images under their images","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","The minimum required transaction version required on the …","","","The minimum required locktime height or time on the …","The minimum required sequence (height or time) on the …","","Whether any hash pre-images are required in the plan","","required ripemd160 pre-images","ripemd160 pre-images under their images","Schnorr signautres under their keys","","required sha256 pre-images","SHA256 pre-images under their images","","required signatures","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness version for the plan","The script sig that should be set on the input","The witness that should be set on the input","","","The leaf hash of the script being used","The merkle root of the taproot output","the internal key","The keys in the script that require signatures"],"i":[0,0,33,7,33,6,0,0,0,0,0,0,6,7,0,6,6,8,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,36,5,6,7,8,9,10,11,5,6,7,8,9,10,11,5,6,10,11,8,8,10,9,5,6,7,7,8,9,10,11,33,5,6,7,7,7,8,9,10,11,11,5,10,11,5,10,33,5,6,7,8,9,10,11,11,11,9,0,7,9,9,9,5,11,5,10,10,11,5,10,6,5,5,6,7,8,9,10,11,7,9,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,11,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,9,37,37,38,39,40,41,41,40],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[3,[2]]]],[[[5,[4]]],[[5,[4]]]],[[[6,[4]]],[[6,[4]]]],[7,7],[[[8,[4]]],[[8,[4]]]],[[[9,[4]]],[[9,[4]]]],[10,10],[[[11,[4]]],[[11,[4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],6],[[],10],[[],11],0,0,0,[9,12],[[[5,[13]],14],15],[[[6,[13]],14],15],[[7,14],15],[[7,14],15],[[[8,[13]],14],15],[[[9,[13]],14],15],[[10,14],15],[[[11,[13]],14],15],[[]],[[]],[[]],[16,7],[[]],[17,7],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[9,[[3,[18]]]],[[19,11],[[3,[9]]]],[20],[9,[[3,[21]]]],[9,[[3,[22]]]],[9,5],[5,23],0,0,0,0,0,0,0,[[[6,[24]],12,25,26,[3,[27]],[3,[28]],29,10,30],[[31,[23,7]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[9,10],33],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[3,[35]]]],0,0,0,0,0,0,0,0],"p":[[3,"DefiniteDescriptorKey"],[3,"DerivationPath"],[4,"Option"],[8,"Clone"],[3,"Requirements"],[4,"RequiredSignatures"],[4,"SigningError"],[3,"PlanKey"],[3,"Plan"],[3,"SatisfactionMaterial"],[3,"Assets"],[15,"usize"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[15,"u32"],[4,"Descriptor"],[3,"Demand"],[4,"LockTime"],[3,"Sequence"],[15,"bool"],[4,"DescriptorPublicKey"],[6,"KeyMap"],[4,"Prevouts"],[4,"TapSighashType"],[4,"EcdsaSighashType"],[3,"SighashCache"],[3,"Secp256k1"],[4,"Result"],[3,"String"],[4,"PlanState"],[3,"TypeId"],[4,"WitnessVersion"],[8,"CanDerive"],[13,"Complete"],[13,"Legacy"],[13,"Segwitv0"],[13,"TapScript"],[13,"TapKey"]]},\ "example_bitcoind_rpc_polling":{"doc":"","t":[13,17,6,17,17,17,4,13,17,13,3,4,17,13,13,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,12,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12],"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":["example_bitcoind_rpc_polling","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_bitcoind_rpc_polling::RpcCommands",""],"d":["","The mpsc channel bound for emissions from Emitter.","","Delay for committing to persistence.","","","","Sync by having the emitter logic in a separate thread","Delay between mempool emissions.","","","","Delay for printing status to stdout.","Syncs local state with remote state via RPC (starting from …","","","","","","","","","","","","","","","","","Starting block height to fallback to if no point of …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","RPC auth cookie file","RPC auth password","RPC auth username","","","","","","","","","","","","","","","","","RPC URL","","","","",""],"i":[7,0,0,0,0,0,0,6,0,7,0,0,0,6,7,5,5,6,6,0,7,5,6,7,5,6,5,6,5,6,5,7,5,6,7,5,6,5,6,5,6,6,7,5,6,0,5,5,5,5,0,5,6,7,5,6,7,5,6,7,5,6,5,6,5,6,5,7,5,6,18,19],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[[2,3],4],[[]],[[]],[[]],[[]],[[]],[[]],[5,5],[6,6],[[]],[[]],0,[[7,8],9],[[5,8],9],[[6,8],9],[[]],[[]],[[]],[10,[[12,[5,11]]]],[10,[[12,[6,11]]]],[10,[[12,[5,11]]]],[10,[[12,[6,11]]]],[13,4],[[]],[[]],[[]],[[],14],[5,[[14,[15]]]],0,0,0,[[],[[16,[2]]]],[[]],[[]],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],17],[[],17],[[],17],[[5,10],[[12,[11]]]],[[6,10],[[12,[11]]]],[[5,10],[[12,[11]]]],[[6,10],[[12,[11]]]],0,[[]],[[]],[[]],0,0],"p":[[6,"Command"],[3,"AtomicBool"],[3,"Duration"],[15,"bool"],[3,"RpcArgs"],[4,"RpcCommands"],[4,"Emission"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"Client"],[3,"Arc"],[3,"TypeId"],[13,"Sync"],[13,"Live"]]},\ -"example_cli":{"doc":"","t":[13,4,3,13,13,13,4,4,3,6,13,13,3,13,4,6,6,13,13,13,13,13,13,13,6,13,13,13,4,2,12,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,12,12,5,12,11,11,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","Database","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","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_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":["example_cli","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_cli::AddressCmd","example_cli::Commands","","","","","","example_cli::TxOutCmd","","",""],"d":["Address generation and inspection.","","","Get the wallet balance.","","","","","","","","Get last revealed address index for each keychain.","The initial state returned by init.","","","","","","List all addresses","List transaction outputs.","Get a new address regardless of the existing unused …","","Get the next unused address.","","","Send coins to an address.","","TxOut related commands.","","","Arguments parsed by the cli.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Persistence backend.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Keychain-txout index.","","Parses command line arguments and initializes all …","Initial changeset.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Descriptor keymap.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List change addresses","","Destination address","","","","Amount to send in satoshis","Return only confirmed outputs.","Return only spent outputs.","Return only unconfirmed outputs.","Return only unspent outputs."],"i":[5,0,0,5,6,5,0,0,0,0,9,7,0,9,0,0,0,6,7,8,7,6,7,6,0,5,6,5,0,0,28,22,22,5,7,8,5,7,8,0,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,37,0,5,6,7,8,9,5,6,7,8,9,9,22,22,0,28,22,6,22,9,9,9,5,6,6,7,8,9,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,6,0,5,7,8,37,28,37,0,28,37,28,22,5,6,7,8,9,22,22,28,22,9,0,9,5,6,7,8,9,6,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,37,28,22,5,6,7,8,9,38,39,40,40,40,41,40,42,42,42,42],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[[[5,[[0,[2,3]],[0,[2,4]]]]],[[5,[[0,[2,3]],[0,[2,4]]]]]],[6,6],[7,7],[8,8],[9,9],[[]],[[]],[[]],[[]],[[]],[[9,9],10],0,0,[[11,12,6,13,14],15],0,0,[[],6],0,[[],[[16,[9]]]],[[9,9],17],[[],17],[[[5,[[0,[18,3]],[0,[18,4]]]],19],20],[[6,19],20],[[6,19],20],[[7,19],20],[[8,19],20],[[9,19],20],[[9,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[24,[[16,[6]]]],[[25,25,25,12,26,27,[5,[3,4]]],15],[24,17],[24,17],[24,17],0,0,0,[24,[[15,[[28,[3,4]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,0,[[9,9],[[29,[10]]]],[[11,30],[[16,[[34,[[33,[[0,[2,31]],32]]]]]]]],[9,16],[[]],[[]],[[]],[[]],[[]],[[],35],[[],35],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[8,"Args"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[6,"KeychainTxGraph"],[3,"HashMap"],[3,"Address"],[15,"u64"],[6,"Result"],[4,"Result"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Args"],[3,"Error"],[15,"str"],[3,"Mutex"],[4,"Network"],[8,"FnOnce"],[3,"Init"],[4,"Option"],[3,"Assets"],[8,"CanDerive"],[8,"Anchor"],[6,"PlannedUtxo"],[3,"Vec"],[3,"String"],[3,"TypeId"],[3,"CreateTxChange"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\ +"example_cli":{"doc":"","t":[13,4,3,13,13,13,4,4,3,6,13,13,3,13,4,6,6,13,13,13,13,13,13,13,6,13,13,13,4,2,12,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,12,12,5,12,11,11,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","Database","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","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_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":["example_cli","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_cli::AddressCmd","example_cli::Commands","","","","","","example_cli::TxOutCmd","","",""],"d":["Address generation and inspection.","","","Get the wallet balance.","","","","","","","","Get last revealed address index for each keychain.","The initial state returned by init.","","","","","","List all addresses","List transaction outputs.","Get a new address regardless of the existing unused …","","Get the next unused address.","","","Send coins to an address.","","TxOut related commands.","","","Arguments parsed by the cli.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Persistence backend.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Keychain-txout index.","","Parses command line arguments and initializes all …","Initial changeset.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Descriptor keymap.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List change addresses","","Destination address","","","","Amount to send in satoshis","Return only confirmed outputs.","Return only spent outputs.","Return only unconfirmed outputs.","Return only unspent outputs."],"i":[5,0,0,5,6,5,0,0,0,0,9,7,0,9,0,0,0,6,7,8,7,6,7,6,0,5,6,5,0,0,28,22,22,5,7,8,5,7,8,0,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,37,0,5,6,7,8,9,5,6,7,8,9,9,22,22,0,28,22,6,22,9,9,9,5,6,6,7,8,9,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,6,0,5,7,8,37,28,37,0,28,37,28,22,5,6,7,8,9,22,22,28,22,9,0,9,5,6,7,8,9,6,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,37,28,22,5,6,7,8,9,38,39,40,40,40,41,40,42,42,42,42],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[[[5,[[0,[2,3]],[0,[2,4]]]]],[[5,[[0,[2,3]],[0,[2,4]]]]]],[6,6],[7,7],[8,8],[9,9],[[]],[[]],[[]],[[]],[[]],[[9,9],10],0,0,[[11,12,6,13,14],15],0,0,[[],6],0,[[],[[16,[9]]]],[[9,9],17],[[],17],[[[5,[[0,[18,3]],[0,[18,4]]]],19],20],[[6,19],20],[[6,19],20],[[7,19],20],[[8,19],20],[[9,19],20],[[9,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[24,[[16,[6]]]],[[25,25,25,12,26,27,[5,[3,4]]],15],[24,17],[24,17],[24,17],0,0,0,[24,[[15,[[28,[3,4]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,0,[[9,9],[[29,[10]]]],[[11,30],[[16,[[34,[[33,[[0,[2,31]],32]]]]]]]],[9,16],[[]],[[]],[[]],[[]],[[]],[[],35],[[],35],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[8,"Args"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[6,"KeychainTxGraph"],[3,"BTreeMap"],[3,"Address"],[15,"u64"],[6,"Result"],[4,"Result"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Args"],[3,"Error"],[15,"str"],[3,"Mutex"],[4,"Network"],[8,"FnOnce"],[3,"Init"],[4,"Option"],[3,"Assets"],[8,"CanDerive"],[8,"Anchor"],[6,"PlannedUtxo"],[3,"Vec"],[3,"String"],[3,"TypeId"],[3,"CreateTxChange"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\ "example_electrum":{"doc":"","t":[6,17,17,3,4,13,3,13,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12],"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":["example_electrum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_electrum::ElectrumCommands","","","","","","","",""],"d":["","","","","","Scans the addresses in the wallet using the electrum API.","","Scans particular addresses using the electrum API.","","","","","","","Set batch size for each script_history call to electrum …","","","","","","","","","","","","","","","The electrum url to use to connect to. If not provided it …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,0,0,0,0,6,0,6,2,7,2,7,6,6,7,6,2,7,6,2,7,2,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,6,2,7,7,7,0,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,16,17,16,17,16,17,16,16,16],"f":[0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[2,3],[[5,[4]]]],[6,6],[2,2],[7,7],[[]],[[]],[[]],[6,2],0,[[7,7],8],[[6,9],10],[[2,9],10],[[7,9],10],[[]],[[]],[[]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[14,8],[[]],[[]],[[]],[[],1],[[],1],[[],5],[[]],[[]],[[]],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],15],[[],15],[[],15],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[3,"ElectrumArgs"],[4,"Network"],[3,"Client"],[6,"Result"],[4,"ElectrumCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ "example_esplora":{"doc":"","t":[6,17,17,3,4,13,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12],"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":["example_esplora","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_esplora::EsploraCommands","","","","","","","",""],"d":["","","","","","Scans the addresses in the wallet using the esplora API.","","Scan for particular addresses and unconfirmed transactions …","","","","","","","","","","","","","","","","","","","","","","The esplora url endpoint to connect to e.g. …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Max number of concurrent esplora server requests.","","","","","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,0,0,0,0,6,0,6,2,7,2,7,6,6,6,2,7,6,2,7,2,6,2,7,6,2,7,7,6,2,6,2,7,6,2,7,6,2,7,6,2,7,6,6,2,7,7,7,0,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,16,17,16,17,16,17,16,16,16],"f":[0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[[]],[[]],[[]],[[]],[[]],[[]],[[2,3],[[5,[4]]]],[6,6],[2,2],[7,7],[[]],[[]],[[]],[[7,7],8],[6,2],0,[[6,9],10],[[2,9],10],[[7,9],10],[[]],[[]],[[]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[14,8],[[]],[[]],[[]],[[],1],[[],1],[[],5],0,[[]],[[]],[[]],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],15],[[],15],[[],15],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[3,"EsploraArgs"],[4,"Network"],[3,"BlockingClient"],[6,"Result"],[4,"EsploraCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ "wallet_electrum_example":{"doc":"","t":[17,17,17,17,5],"n":["BATCH_SIZE","DB_MAGIC","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_electrum_example","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[0,0,0,0,[[],[[2,[1]]]]],"p":[[3,"Error"],[4,"Result"]]},\ diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html index 2e038764e5..0be56f2dd7 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/dsl.rs.html @@ -1215,7 +1215,6 @@ 1214 1215 1216 -1217
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1492,14 +1491,13 @@
     #[macro_export]
     macro_rules! parse_tap_tree {
         ( @merge $tree_a:expr, $tree_b:expr) => {{
    -        use $crate::alloc::sync::Arc;
             use $crate::miniscript::descriptor::TapTree;
     
             $tree_a
                 .and_then(|tree_a| Ok((tree_a, $tree_b?)))
                 .and_then(|((a_tree, mut a_keymap, a_networks), (b_tree, b_keymap, b_networks))| {
                     a_keymap.extend(b_keymap.into_iter());
    -                Ok((TapTree::Tree(Arc::new(a_tree), Arc::new(b_tree)), a_keymap, $crate::keys::merge_networks(&a_networks, &b_networks)))
    +                Ok((TapTree::combine(a_tree, b_tree), a_keymap, $crate::keys::merge_networks(&a_networks, &b_networks)))
                 })
     
         }};
    @@ -2024,7 +2022,7 @@
         use crate::descriptor::{DescriptorError, DescriptorMeta};
         use crate::keys::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
         use bitcoin::bip32;
    -    use bitcoin::network::constants::Network::{Bitcoin, Regtest, Signet, Testnet};
    +    use bitcoin::Network::{Bitcoin, Regtest, Signet, Testnet};
         use bitcoin::PrivateKey;
     
         // test the descriptor!() macro
    @@ -2154,7 +2152,7 @@
     
         #[test]
         fn test_bip32_legacy_descriptors() {
    -        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let xprv = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
     
             let path = bip32::DerivationPath::from_str("m/0").unwrap();
             let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
    @@ -2199,7 +2197,7 @@
     
         #[test]
         fn test_bip32_segwitv0_descriptors() {
    -        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let xprv = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
     
             let path = bip32::DerivationPath::from_str("m/0").unwrap();
             let desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
    @@ -2256,10 +2254,10 @@
     
         #[test]
         fn test_dsl_sortedmulti() {
    -        let key_1 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let key_1 = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             let path_1 = bip32::DerivationPath::from_str("m/0").unwrap();
     
    -        let key_2 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
    +        let key_2 = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
             let path_2 = bip32::DerivationPath::from_str("m/1").unwrap();
     
             let desc_key1 = (key_1, path_1);
    @@ -2315,7 +2313,7 @@
         // - verify the valid_networks returned is correctly computed based on the keys present in the descriptor
         #[test]
         fn test_valid_networks() {
    -        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let xprv = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             let path = bip32::DerivationPath::from_str("m/0").unwrap();
             let desc_key = (xprv, path).into_descriptor_key().unwrap();
     
    @@ -2325,7 +2323,7 @@
                 [Testnet, Regtest, Signet].iter().cloned().collect()
             );
     
    -        let xprv = bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi").unwrap();
    +        let xprv = bip32::Xpriv::from_str("xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi").unwrap();
             let path = bip32::DerivationPath::from_str("m/10/20/30/40").unwrap();
             let desc_key = (xprv, path).into_descriptor_key().unwrap();
     
    @@ -2338,15 +2336,15 @@
         fn test_key_maps_merged() {
             let secp = Secp256k1::new();
     
    -        let xprv1 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let xprv1 = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             let path1 = bip32::DerivationPath::from_str("m/0").unwrap();
             let desc_key1 = (xprv1, path1.clone()).into_descriptor_key().unwrap();
     
    -        let xprv2 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
    +        let xprv2 = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF").unwrap();
             let path2 = bip32::DerivationPath::from_str("m/2147483647'/0").unwrap();
             let desc_key2 = (xprv2, path2.clone()).into_descriptor_key().unwrap();
     
    -        let xprv3 = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf").unwrap();
    +        let xprv3 = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf").unwrap();
             let path3 = bip32::DerivationPath::from_str("m/10/20/30/40").unwrap();
             let desc_key3 = (xprv3, path3.clone()).into_descriptor_key().unwrap();
     
    @@ -2370,7 +2368,7 @@
         #[test]
         fn test_script_context_validation() {
             // this compiles
    -        let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let xprv = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             let path = bip32::DerivationPath::from_str("m/0").unwrap();
             let desc_key: DescriptorKey<Legacy> = (xprv, path).into_descriptor_key().unwrap();
     
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html
    index 95ccc646d6..b3711a31fe 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/error.rs.html
    @@ -165,7 +165,7 @@
         /// Miniscript error
         Miniscript(miniscript::Error),
         /// Hex decoding error
    -    Hex(bitcoin::hashes::hex::Error),
    +    Hex(bitcoin::hex::HexToBytesError),
     }
     
     impl From<crate::keys::KeyError> for Error {
    @@ -234,8 +234,8 @@
         }
     }
     
    -impl From<bitcoin::hashes::hex::Error> for Error {
    -    fn from(err: bitcoin::hashes::hex::Error) -> Self {
    +impl From<bitcoin::hex::HexToBytesError> for Error {
    +    fn from(err: bitcoin::hex::HexToBytesError) -> Self {
             Error::Hex(err)
         }
     }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html
    index 40eb7ab8bb..53e32d36c0 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/mod.rs.html
    @@ -899,7 +899,6 @@
     898
     899
     900
    -901
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -920,7 +919,7 @@
     use alloc::string::String;
     use alloc::vec::Vec;
     
    -use bitcoin::bip32::{ChildNumber, DerivationPath, ExtendedPubKey, Fingerprint, KeySource};
    +use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, KeySource, Xpub};
     use bitcoin::{key::XOnlyPublicKey, secp256k1, PublicKey};
     use bitcoin::{psbt, taproot};
     use bitcoin::{Network, TxOut};
    @@ -1279,7 +1278,7 @@
     pub(crate) trait DescriptorMeta {
         fn is_witness(&self) -> bool;
         fn is_taproot(&self) -> bool;
    -    fn get_extended_keys(&self) -> Vec<DescriptorXKey<ExtendedPubKey>>;
    +    fn get_extended_keys(&self) -> Vec<DescriptorXKey<Xpub>>;
         fn derive_from_hd_keypaths(
             &self,
             hd_keypaths: &HdKeyPaths,
    @@ -1320,7 +1319,7 @@
             self.desc_type() == DescriptorType::Tr
         }
     
    -    fn get_extended_keys(&self) -> Vec<DescriptorXKey<ExtendedPubKey>> {
    +    fn get_extended_keys(&self) -> Vec<DescriptorXKey<Xpub>> {
             let mut answer = Vec::new();
     
             self.for_each_key(|pk| {
    @@ -1340,21 +1339,20 @@
             secp: &SecpCtx,
         ) -> Option<DerivedDescriptor> {
             // Ensure that deriving `xpub` with `path` yields `expected`
    -        let verify_key = |xpub: &DescriptorXKey<ExtendedPubKey>,
    -                          path: &DerivationPath,
    -                          expected: &SinglePubKey| {
    -            let derived = xpub
    -                .xkey
    -                .derive_pub(secp, path)
    -                .expect("The path should never contain hardened derivation steps")
    -                .public_key;
    -
    -            match expected {
    -                SinglePubKey::FullKey(pk) if &PublicKey::new(derived) == pk => true,
    -                SinglePubKey::XOnly(pk) if &XOnlyPublicKey::from(derived) == pk => true,
    -                _ => false,
    -            }
    -        };
    +        let verify_key =
    +            |xpub: &DescriptorXKey<Xpub>, path: &DerivationPath, expected: &SinglePubKey| {
    +                let derived = xpub
    +                    .xkey
    +                    .derive_pub(secp, path)
    +                    .expect("The path should never contain hardened derivation steps")
    +                    .public_key;
    +
    +                match expected {
    +                    SinglePubKey::FullKey(pk) if &PublicKey::new(derived) == pk => true,
    +                    SinglePubKey::XOnly(pk) if &XOnlyPublicKey::from(derived) == pk => true,
    +                    _ => false,
    +                }
    +            };
     
             let mut path_found = None;
     
    @@ -1507,10 +1505,10 @@
         use core::str::FromStr;
     
         use assert_matches::assert_matches;
    -    use bitcoin::hashes::hex::FromHex;
    +    use bitcoin::hex::FromHex;
         use bitcoin::secp256k1::Secp256k1;
         use bitcoin::ScriptBuf;
    -    use bitcoin::{bip32, psbt::Psbt};
    +    use bitcoin::{bip32, Psbt};
     
         use super::*;
         use crate::psbt::PsbtUtils;
    @@ -1629,7 +1627,7 @@
     
             let secp = Secp256k1::new();
     
    -        let xprv = bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3c3gF1DUWpWNr2SG2XrG8oYPpqYh7hoWsJy9NjabErnzriJPpnGHyKz5NgdXmq1KVbqS1r4NXdCoKitWg5e86zqXHa8kxyB").unwrap();
    +        let xprv = bip32::Xpriv::from_str("xprv9s21ZrQH143K3c3gF1DUWpWNr2SG2XrG8oYPpqYh7hoWsJy9NjabErnzriJPpnGHyKz5NgdXmq1KVbqS1r4NXdCoKitWg5e86zqXHa8kxyB").unwrap();
             let path = bip32::DerivationPath::from_str("m/0").unwrap();
     
             // here `to_descriptor_key` will set the valid networks for the key to only mainnet, since
    @@ -1648,7 +1646,7 @@
             let mut xprv_testnet = xprv;
             xprv_testnet.network = Network::Testnet;
     
    -        let xpub_testnet = bip32::ExtendedPubKey::from_priv(&secp, &xprv_testnet);
    +        let xpub_testnet = bip32::Xpub::from_priv(&secp, &xprv_testnet);
             let desc_pubkey = DescriptorPublicKey::XPub(DescriptorXKey {
                 xkey: xpub_testnet,
                 origin: None,
    @@ -1738,7 +1736,7 @@
         fn test_descriptor_from_str_from_output_of_macro() {
             let secp = Secp256k1::new();
     
    -        let tpub = bip32::ExtendedPubKey::from_str("tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK").unwrap();
    +        let tpub = bip32::Xpub::from_str("tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK").unwrap();
             let path = bip32::DerivationPath::from_str("m/1/2").unwrap();
             let key = (tpub, path).into_descriptor_key().unwrap();
     
    @@ -1797,7 +1795,7 @@
                 .update_with_descriptor_unchecked(&descriptor)
                 .unwrap();
     
    -        assert_eq!(psbt_input.redeem_script, Some(script.to_v0_p2wsh()));
    +        assert_eq!(psbt_input.redeem_script, Some(script.to_p2wsh()));
             assert_eq!(psbt_input.witness_script, Some(script));
         }
     }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html
    index 5015388f08..a88d919978 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/policy.rs.html
    @@ -3043,7 +3043,7 @@
                     let key_spend_sig =
                         miniscript::Tap::make_signature(tr.internal_key(), signers, build_sat, secp);
     
    -                if tr.taptree().is_none() {
    +                if tr.tap_tree().is_none() {
                         Ok(Some(key_spend_sig))
                     } else {
                         let mut items = vec![key_spend_sig];
    @@ -3090,8 +3090,8 @@
             secp: &SecpCtx,
         ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
             let path = bip32::DerivationPath::from_str(path).unwrap();
    -        let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap();
    -        let tpub = bip32::ExtendedPubKey::from_priv(secp, &tprv);
    +        let tprv = bip32::Xpriv::from_str(tprv).unwrap();
    +        let tpub = bip32::Xpub::from_priv(secp, &tprv);
             let fingerprint = tprv.fingerprint(secp);
             let prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
             let pubkey = (tpub, path).into_descriptor_key().unwrap();
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html
    index ca0944551c..29929fe28d 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/descriptor/template.rs.html
    @@ -1181,7 +1181,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip44;
     ///
    -/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip44(key.clone(), KeychainKind::External),
     ///     Some(Bip44(key, KeychainKind::Internal)),
    @@ -1218,7 +1218,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip44Public;
     ///
    -/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
    +/// let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip44Public(key.clone(), fingerprint, KeychainKind::External),
    @@ -1256,7 +1256,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip49;
     ///
    -/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip49(key.clone(), KeychainKind::External),
     ///     Some(Bip49(key, KeychainKind::Internal)),
    @@ -1293,7 +1293,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip49Public;
     ///
    -/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
    +/// let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip49Public(key.clone(), fingerprint, KeychainKind::External),
    @@ -1331,7 +1331,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip84;
     ///
    -/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip84(key.clone(), KeychainKind::External),
     ///     Some(Bip84(key, KeychainKind::Internal)),
    @@ -1368,7 +1368,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip84Public;
     ///
    -/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip84Public(key.clone(), fingerprint, KeychainKind::External),
    @@ -1406,7 +1406,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip86;
     ///
    -/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip86(key.clone(), KeychainKind::External),
     ///     Some(Bip86(key, KeychainKind::Internal)),
    @@ -1443,7 +1443,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip86Public;
     ///
    -/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
     /// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip86Public(key.clone(), fingerprint, KeychainKind::External),
    @@ -1553,7 +1553,7 @@
         fn test_bip44_template_cointype() {
             use bitcoin::bip32::ChildNumber::{self, Hardened};
     
    -        let xprvkey = bitcoin::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf").unwrap();
    +        let xprvkey = bitcoin::bip32::Xpriv::from_str("xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf").unwrap();
             assert_eq!(Network::Bitcoin, xprvkey.network);
             let xdesc = Bip44(xprvkey, KeychainKind::Internal)
                 .build(Network::Bitcoin)
    @@ -1567,7 +1567,7 @@
                 assert_matches!(coin_type, Hardened { index: 0 });
             }
     
    -        let tprvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let tprvkey = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             assert_eq!(Network::Testnet, tprvkey.network);
             let tdesc = Bip44(tprvkey, KeychainKind::Internal)
                 .build(Network::Testnet)
    @@ -1726,7 +1726,7 @@
         // BIP44 `pkh(key/44'/0'/0'/{0,1}/*)`
         #[test]
         fn test_bip44_template() {
    -        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip44(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 false,
    @@ -1756,7 +1756,7 @@
         // BIP44 public `pkh(key/{0,1}/*)`
         #[test]
         fn test_bip44_public_template() {
    -        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU").unwrap();
    +        let pubkey = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU").unwrap();
             let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip44Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
    @@ -1787,7 +1787,7 @@
         // BIP49 `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
         #[test]
         fn test_bip49_template() {
    -        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip49(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -1817,7 +1817,7 @@
         // BIP49 public `sh(wpkh(key/{0,1}/*))`
         #[test]
         fn test_bip49_public_template() {
    -        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L").unwrap();
    +        let pubkey = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L").unwrap();
             let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip49Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
    @@ -1848,7 +1848,7 @@
         // BIP84 `wpkh(key/84'/0'/0'/{0,1}/*)`
         #[test]
         fn test_bip84_template() {
    -        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip84(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -1878,7 +1878,7 @@
         // BIP84 public `wpkh(key/{0,1}/*)`
         #[test]
         fn test_bip84_public_template() {
    -        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q").unwrap();
    +        let pubkey = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q").unwrap();
             let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip84Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
    @@ -1910,7 +1910,7 @@
         // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
         #[test]
         fn test_bip86_template() {
    -        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu").unwrap();
    +        let prvkey = bitcoin::bip32::Xpriv::from_str("xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu").unwrap();
             check(
                 Bip86(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 false,
    @@ -1941,7 +1941,7 @@
         // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
         #[test]
         fn test_bip86_public_template() {
    -        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ").unwrap();
    +        let pubkey = bitcoin::bip32::Xpub::from_str("xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ").unwrap();
             let fingerprint = bitcoin::bip32::Fingerprint::from_str("73c5da0a").unwrap();
             check(
                 Bip86Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html
    index c6c0ce2545..5112bf2794 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/keys/mod.rs.html
    @@ -1117,7 +1117,7 @@
                     Ok((public, KeyMap::default(), valid_networks))
                 }
                 DescriptorKey::Secret(secret, valid_networks, _) => {
    -                let mut key_map = KeyMap::with_capacity(1);
    +                let mut key_map = KeyMap::new();
     
                     let public = secret
                         .to_public(secp)
    @@ -1316,15 +1316,15 @@
     
     /// Enum for extended keys that can be either `xprv` or `xpub`
     ///
    -/// An instance of [`ExtendedKey`] can be constructed from an [`ExtendedPrivKey`](bip32::ExtendedPrivKey)
    -/// or an [`ExtendedPubKey`](bip32::ExtendedPubKey) by using the `From` trait.
    +/// An instance of [`ExtendedKey`] can be constructed from an [`Xpriv`](bip32::Xpriv)
    +/// or an [`Xpub`](bip32::Xpub) by using the `From` trait.
     ///
     /// Defaults to the [`Legacy`](miniscript::Legacy) context.
     pub enum ExtendedKey<Ctx: ScriptContext = miniscript::Legacy> {
         /// A private extended key, aka an `xprv`
    -    Private((bip32::ExtendedPrivKey, PhantomData<Ctx>)),
    +    Private((bip32::Xpriv, PhantomData<Ctx>)),
         /// A public extended key, aka an `xpub`
    -    Public((bip32::ExtendedPubKey, PhantomData<Ctx>)),
    +    Public((bip32::Xpub, PhantomData<Ctx>)),
     }
     
     impl<Ctx: ScriptContext> ExtendedKey<Ctx> {
    @@ -1336,9 +1336,9 @@
             }
         }
     
    -    /// Transform the [`ExtendedKey`] into an [`ExtendedPrivKey`](bip32::ExtendedPrivKey) for the
    +    /// Transform the [`ExtendedKey`] into an [`Xpriv`](bip32::Xpriv) for the
         /// given [`Network`], if the key contains the private data
    -    pub fn into_xprv(self, network: Network) -> Option<bip32::ExtendedPrivKey> {
    +    pub fn into_xprv(self, network: Network) -> Option<bip32::Xpriv> {
             match self {
                 ExtendedKey::Private((mut xprv, _)) => {
                     xprv.network = network;
    @@ -1348,15 +1348,15 @@
             }
         }
     
    -    /// Transform the [`ExtendedKey`] into an [`ExtendedPubKey`](bip32::ExtendedPubKey) for the
    +    /// Transform the [`ExtendedKey`] into an [`Xpub`](bip32::Xpub) for the
         /// given [`Network`]
         pub fn into_xpub<C: Signing>(
             self,
             network: bitcoin::Network,
             secp: &Secp256k1<C>,
    -    ) -> bip32::ExtendedPubKey {
    +    ) -> bip32::Xpub {
             let mut xpub = match self {
    -            ExtendedKey::Private((xprv, _)) => bip32::ExtendedPubKey::from_priv(secp, &xprv),
    +            ExtendedKey::Private((xprv, _)) => bip32::Xpub::from_priv(secp, &xprv),
                 ExtendedKey::Public((xpub, _)) => xpub,
             };
     
    @@ -1365,14 +1365,14 @@
         }
     }
     
    -impl<Ctx: ScriptContext> From<bip32::ExtendedPubKey> for ExtendedKey<Ctx> {
    -    fn from(xpub: bip32::ExtendedPubKey) -> Self {
    +impl<Ctx: ScriptContext> From<bip32::Xpub> for ExtendedKey<Ctx> {
    +    fn from(xpub: bip32::Xpub) -> Self {
             ExtendedKey::Public((xpub, PhantomData))
         }
     }
     
    -impl<Ctx: ScriptContext> From<bip32::ExtendedPrivKey> for ExtendedKey<Ctx> {
    -    fn from(xprv: bip32::ExtendedPrivKey) -> Self {
    +impl<Ctx: ScriptContext> From<bip32::Xpriv> for ExtendedKey<Ctx> {
    +    fn from(xprv: bip32::Xpriv) -> Self {
             ExtendedKey::Private((xprv, PhantomData))
         }
     }
    @@ -1390,8 +1390,8 @@
     ///
     /// ## Examples
     ///
    -/// Key types that can be directly converted into an [`ExtendedPrivKey`] or
    -/// an [`ExtendedPubKey`] can implement only the required `into_extended_key()` method.
    +/// Key types that can be directly converted into an [`Xpriv`] or
    +/// an [`Xpub`] can implement only the required `into_extended_key()` method.
     ///
     /// ```
     /// use bdk::bitcoin;
    @@ -1406,7 +1406,7 @@
     ///
     /// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
     ///     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
    -///         let xprv = bip32::ExtendedPrivKey {
    +///         let xprv = bip32::Xpriv {
     ///             network: self.network,
     ///             depth: 0,
     ///             parent_fingerprint: bip32::Fingerprint::default(),
    @@ -1422,7 +1422,7 @@
     ///
     /// Types that don't internally encode the [`Network`] in which they are valid need some extra
     /// steps to override the set of valid networks, otherwise only the network specified in the
    -/// [`ExtendedPrivKey`] or [`ExtendedPubKey`] will be considered valid.
    +/// [`Xpriv`] or [`Xpub`] will be considered valid.
     ///
     /// ```
     /// use bdk::bitcoin;
    @@ -1438,7 +1438,7 @@
     ///
     /// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
     ///     fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
    -///         let xprv = bip32::ExtendedPrivKey {
    +///         let xprv = bip32::Xpriv {
     ///             network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
     ///             depth: 0,
     ///             parent_fingerprint: bip32::Fingerprint::default(),
    @@ -1466,8 +1466,8 @@
     /// ```
     ///
     /// [`DerivationPath`]: (bip32::DerivationPath)
    -/// [`ExtendedPrivKey`]: (bip32::ExtendedPrivKey)
    -/// [`ExtendedPubKey`]: (bip32::ExtendedPubKey)
    +/// [`Xpriv`]: (bip32::Xpriv)
    +/// [`Xpub`]: (bip32::Xpub)
     pub trait DerivableKey<Ctx: ScriptContext = miniscript::Legacy>: Sized {
         /// Consume `self` and turn it into an [`ExtendedKey`]
         #[cfg_attr(
    @@ -1527,13 +1527,13 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
         }
     }
     
    -impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::ExtendedPubKey {
    +impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::Xpub {
         fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
             Ok(self.into())
         }
     }
     
    -impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::ExtendedPrivKey {
    +impl<Ctx: ScriptContext> DerivableKey<Ctx> for bip32::Xpriv {
         fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
             Ok(self.into())
         }
    @@ -1677,7 +1677,7 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
     {
     }
     
    -impl<Ctx: ScriptContext> GeneratableKey<Ctx> for bip32::ExtendedPrivKey {
    +impl<Ctx: ScriptContext> GeneratableKey<Ctx> for bip32::Xpriv {
         type Entropy = [u8; 32];
     
         type Options = ();
    @@ -1688,7 +1688,7 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
             entropy: Self::Entropy,
         ) -> Result<GeneratedKey<Self, Ctx>, Self::Error> {
             // pick a arbitrary network here, but say that we support all of them
    -        let xprv = bip32::ExtendedPrivKey::new_master(Network::Bitcoin, entropy.as_ref())?;
    +        let xprv = bip32::Xpriv::new_master(Network::Bitcoin, entropy.as_ref())?;
             Ok(GeneratedKey::new(xprv, any_network()))
         }
     }
    @@ -1978,7 +1978,7 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
         #[test]
         fn test_keys_generate_xprv() {
             let generated_xprv: GeneratedKey<_, miniscript::Segwitv0> =
    -            bip32::ExtendedPrivKey::generate_with_entropy_default(TEST_ENTROPY).unwrap();
    +            bip32::Xpriv::generate_with_entropy_default(TEST_ENTROPY).unwrap();
     
             assert_eq!(generated_xprv.valid_networks, any_network());
             assert_eq!(generated_xprv.to_string(), "xprv9s21ZrQH143K4Xr1cJyqTvuL2FWR8eicgY9boWqMBv8MDVUZ65AXHnzBrK1nyomu6wdcabRgmGTaAKawvhAno1V5FowGpTLVx3jxzE5uk3Q");
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html
    index 9d32aea332..b81eba9afb 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/psbt/mod.rs.html
    @@ -71,6 +71,9 @@
     70
     71
     72
    +73
    +74
    +75
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -82,12 +85,12 @@
     // You may not use this file except in accordance with one or both of these
     // licenses.
     
    -//! Additional functions on the `rust-bitcoin` `PartiallySignedTransaction` structure.
    +//! Additional functions on the `rust-bitcoin` `Psbt` structure.
     
     use alloc::vec::Vec;
    -use bitcoin::psbt::PartiallySignedTransaction as Psbt;
     use bitcoin::Amount;
     use bitcoin::FeeRate;
    +use bitcoin::Psbt;
     use bitcoin::TxOut;
     
     // TODO upstream the functions here to `rust-bitcoin`?
    @@ -102,7 +105,7 @@
         fn fee_amount(&self) -> Option<u64>;
     
         /// The transaction's fee rate. This value will only be accurate if calculated AFTER the
    -    /// `PartiallySignedTransaction` is finalized and all witness/signature data is added to the
    +    /// `Psbt` is finalized and all witness/signature data is added to the
         /// transaction.
         /// If the PSBT is missing a TxOut for an input returns None.
         fn fee_rate(&self) -> Option<FeeRate>;
    @@ -127,8 +130,13 @@
             let utxos: Option<Vec<TxOut>> = (0..tx.input.len()).map(|i| self.get_utxo_for(i)).collect();
     
             utxos.map(|inputs| {
    -            let input_amount: u64 = inputs.iter().map(|i| i.value).sum();
    -            let output_amount: u64 = self.unsigned_tx.output.iter().map(|o| o.value).sum();
    +            let input_amount: u64 = inputs.iter().map(|i| i.value.to_sat()).sum();
    +            let output_amount: u64 = self
    +                .unsigned_tx
    +                .output
    +                .iter()
    +                .map(|o| o.value.to_sat())
    +                .sum();
                 input_amount
                     .checked_sub(output_amount)
                     .expect("input amount must be greater than output amount")
    @@ -137,10 +145,8 @@
     
         fn fee_rate(&self) -> Option<FeeRate> {
             let fee_amount = self.fee_amount();
    -        fee_amount.map(|fee| {
    -            let weight = self.clone().extract_tx().weight();
    -            Amount::from_sat(fee) / weight
    -        })
    +        let weight = self.clone().extract_tx().ok()?.weight();
    +        fee_amount.map(|fee| Amount::from_sat(fee) / weight)
         }
     }
     
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html index 33f7dc69ae..e444090940 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/coin_selection.rs.html @@ -1595,6 +1595,12 @@ 1594 1595 1596 +1597 +1598 +1599 +1600 +1601 +1602
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1649,9 +1655,10 @@
     //!             .scan(
     //!                 (&mut selected_amount, &mut additional_weight),
     //!                 |(selected_amount, additional_weight), weighted_utxo| {
    -//!                     **selected_amount += weighted_utxo.utxo.txout().value;
    +//!                     **selected_amount += weighted_utxo.utxo.txout().value.to_sat();
     //!                     **additional_weight += Weight::from_wu(
    -//!                         (TxIn::default().segwit_weight() + weighted_utxo.satisfaction_weight)
    +//!                         (TxIn::default().segwit_weight().to_wu()
    +//!                             + weighted_utxo.satisfaction_weight as u64)
     //!                             as u64,
     //!                     );
     //!                     Some(weighted_utxo.utxo)
    @@ -1789,7 +1796,7 @@
     impl CoinSelectionResult {
         /// The total value of the inputs selected.
         pub fn selected_amount(&self) -> u64 {
    -        self.selected.iter().map(|u| u.txout().value).sum()
    +        self.selected.iter().map(|u| u.txout().value.to_sat()).sum()
         }
     
         /// The total value of the inputs selected from the local wallet.
    @@ -1797,7 +1804,7 @@
             self.selected
                 .iter()
                 .filter_map(|u| match u {
    -                Utxo::Local(_) => Some(u.txout().value),
    +                Utxo::Local(_) => Some(u.txout().value.to_sat()),
                     _ => None,
                 })
                 .sum()
    @@ -1941,11 +1948,11 @@
                     if must_use || **selected_amount < target_amount + **fee_amount {
                         **fee_amount += (fee_rate
                             * Weight::from_wu(
    -                            (TxIn::default().segwit_weight() + weighted_utxo.satisfaction_weight)
    -                                as u64,
    +                            TxIn::default().segwit_weight().to_wu()
    +                                + weighted_utxo.satisfaction_weight as u64,
                             ))
                         .to_sat();
    -                    **selected_amount += weighted_utxo.utxo.txout().value;
    +                    **selected_amount += weighted_utxo.utxo.txout().value.to_sat();
                         Some(weighted_utxo.utxo)
                     } else {
                         None
    @@ -1987,10 +1994,10 @@
         fn new(weighted_utxo: WeightedUtxo, fee_rate: FeeRate) -> Self {
             let fee = (fee_rate
                 * Weight::from_wu(
    -                (TxIn::default().segwit_weight() + weighted_utxo.satisfaction_weight) as u64,
    +                TxIn::default().segwit_weight().to_wu() + weighted_utxo.satisfaction_weight as u64,
                 ))
             .to_sat();
    -        let effective_value = weighted_utxo.utxo.txout().value as i64 - fee as i64;
    +        let effective_value = weighted_utxo.utxo.txout().value.to_sat() as i64 - fee as i64;
             OutputGroup {
                 weighted_utxo,
                 fee,
    @@ -2081,7 +2088,7 @@
                         .chain(optional_utxos.iter())
                         .fold((0, 0), |(mut fees, mut value), utxo| {
                             fees += utxo.fee;
    -                        value += utxo.weighted_utxo.utxo.txout().value;
    +                        value += utxo.weighted_utxo.utxo.txout().value.to_sat();
     
                             (fees, value)
                         });
    @@ -2185,7 +2192,7 @@
                     // If we found a solution better than the previous one, or if there wasn't previous
                     // solution, update the best solution
                     if best_selection_value.is_none() || curr_value < best_selection_value.unwrap() {
    -                    best_selection = current_selection.clone();
    +                    best_selection.clone_from(&current_selection);
                         best_selection_value = Some(curr_value);
                     }
     
    @@ -2339,7 +2346,7 @@
         use core::str::FromStr;
     
         use bdk_chain::ConfirmationTime;
    -    use bitcoin::{Amount, OutPoint, ScriptBuf, TxIn, TxOut};
    +    use bitcoin::{Amount, ScriptBuf, TxIn, TxOut};
     
         use super::*;
         use crate::types::*;
    @@ -2367,7 +2374,7 @@
                 utxo: Utxo::Local(LocalOutput {
                     outpoint,
                     txout: TxOut {
    -                    value,
    +                    value: Amount::from_sat(value),
                         script_pubkey: ScriptBuf::new(),
                     },
                     keychain: KeychainKind::External,
    @@ -2431,7 +2438,7 @@
                         ))
                         .unwrap(),
                         txout: TxOut {
    -                        value: rng.gen_range(0..200000000),
    +                        value: Amount::from_sat(rng.gen_range(0..200000000)),
                             script_pubkey: ScriptBuf::new(),
                         },
                         keychain: KeychainKind::External,
    @@ -2462,7 +2469,7 @@
                         ))
                         .unwrap(),
                         txout: TxOut {
    -                        value: utxos_value,
    +                        value: Amount::from_sat(utxos_value),
                             script_pubkey: ScriptBuf::new(),
                         },
                         keychain: KeychainKind::External,
    @@ -2479,7 +2486,7 @@
             utxos.shuffle(&mut rng);
             utxos[..utxos_picked_len]
                 .iter()
    -            .map(|u| u.utxo.txout().value)
    +            .map(|u| u.utxo.txout().value.to_sat())
                 .sum()
         }
     
    @@ -2668,7 +2675,11 @@
         fn test_oldest_first_coin_selection_insufficient_funds_high_fees() {
             let utxos = get_oldest_first_test_utxos();
     
    -        let target_amount: u64 = utxos.iter().map(|wu| wu.utxo.txout().value).sum::<u64>() - 50;
    +        let target_amount: u64 = utxos
    +            .iter()
    +            .map(|wu| wu.utxo.txout().value.to_sat())
    +            .sum::<u64>()
    +            - 50;
             let drain_script = ScriptBuf::default();
     
             OldestFirstCoinSelection
    @@ -2763,9 +2774,9 @@
             ));
     
             // Defensive assertions, for sanity and in case someone changes the test utxos vector.
    -        let amount: u64 = required.iter().map(|u| u.utxo.txout().value).sum();
    +        let amount: u64 = required.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
             assert_eq!(amount, 100_000);
    -        let amount: u64 = optional.iter().map(|u| u.utxo.txout().value).sum();
    +        let amount: u64 = optional.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
             assert!(amount > 150_000);
             let drain_script = ScriptBuf::default();
     
    @@ -2835,7 +2846,8 @@
     
             assert_eq!(result.selected.len(), 1);
             assert_eq!(result.selected_amount(), 100_000);
    -        let input_weight = (TxIn::default().segwit_weight() + P2WPKH_SATISFACTION_SIZE) as u64;
    +        let input_weight =
    +            TxIn::default().segwit_weight().to_wu() + P2WPKH_SATISFACTION_SIZE as u64;
             // the final fee rate should be exactly the same as the fee rate given
             let result_feerate = Amount::from_sat(result.fee_amount) / Weight::from_wu(input_weight);
             assert_eq!(result_feerate, feerate);
    @@ -3057,9 +3069,9 @@
             let utxos = get_test_utxos();
             let drain_script = ScriptBuf::default();
     
    -        let (required, optional) = utxos
    -            .into_iter()
    -            .partition(|u| matches!(u, WeightedUtxo { utxo, .. } if utxo.txout().value < 1000));
    +        let (required, optional) = utxos.into_iter().partition(
    +            |u| matches!(u, WeightedUtxo { utxo, .. } if utxo.txout().value.to_sat() < 1000),
    +        );
     
             let selection = BranchAndBoundCoinSelection::default().coin_select(
                 required,
    @@ -3108,7 +3120,7 @@
                     utxo: Utxo::Local(LocalOutput {
                         outpoint: OutPoint::new(bitcoin::hashes::Hash::hash(txid.as_bytes()), 0),
                         txout: TxOut {
    -                        value,
    +                        value: Amount::from_sat(value),
                             script_pubkey: ScriptBuf::new(),
                         },
                         keychain: KeychainKind::External,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html
    index 7dd2fe1020..dfe3335115 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/export.rs.html
    @@ -557,7 +557,7 @@
     
         use bdk_chain::{BlockId, ConfirmationTime};
         use bitcoin::hashes::Hash;
    -    use bitcoin::{BlockHash, Network, Transaction};
    +    use bitcoin::{transaction, BlockHash, Network, Transaction};
     
         use super::*;
         use crate::wallet::Wallet;
    @@ -571,7 +571,7 @@
             let transaction = Transaction {
                 input: vec![],
                 output: vec![],
    -            version: 0,
    +            version: transaction::Version::non_standard(0),
                 lock_time: bitcoin::absolute::LockTime::ZERO,
             };
             wallet
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
    index 6f92d8c199..c87c12d338 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/mod.rs.html
    @@ -2602,24 +2602,6 @@
     2601
     2602
     2603
    -2604
    -2605
    -2606
    -2607
    -2608
    -2609
    -2610
    -2611
    -2612
    -2613
    -2614
    -2615
    -2616
    -2617
    -2618
    -2619
    -2620
    -2621
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -2652,14 +2634,14 @@
         Append, BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut,
         IndexedTxGraph, Persist, PersistBackend,
     };
    +use bitcoin::constants::genesis_block;
     use bitcoin::secp256k1::{All, Secp256k1};
     use bitcoin::sighash::{EcdsaSighashType, TapSighashType};
     use bitcoin::{
    -    absolute, Address, Block, FeeRate, Network, OutPoint, Script, ScriptBuf, Sequence, Transaction,
    -    TxOut, Txid, Weight, Witness,
    +    absolute, psbt, Address, Block, FeeRate, Network, OutPoint, Script, ScriptBuf, Sequence,
    +    Transaction, TxOut, Txid, Witness,
     };
    -use bitcoin::{consensus::encode::serialize, BlockHash};
    -use bitcoin::{constants::genesis_block, psbt};
    +use bitcoin::{consensus::encode::serialize, transaction, Amount, BlockHash, Psbt};
     use core::fmt;
     use core::ops::Deref;
     use descriptor::error::Error as DescriptorError;
    @@ -3567,11 +3549,11 @@
         /// ```
         ///
         /// ```rust, no_run
    -    /// # use bitcoin::psbt::PartiallySignedTransaction;
    +    /// # use bitcoin::Psbt;
         /// # use bdk::Wallet;
         /// # let mut wallet: Wallet<()> = todo!();
    -    /// # let mut psbt: PartiallySignedTransaction = todo!();
    -    /// let tx = &psbt.clone().extract_tx();
    +    /// # let mut psbt: Psbt = todo!();
    +    /// let tx = &psbt.clone().extract_tx().expect("tx");
         /// let fee = wallet.calculate_fee(tx).expect("fee");
         /// ```
         /// [`insert_txout`]: Self::insert_txout
    @@ -3598,12 +3580,12 @@
         /// ```
         ///
         /// ```rust, no_run
    -    /// # use bitcoin::psbt::PartiallySignedTransaction;
    +    /// # use bitcoin::Psbt;
         /// # use bdk::Wallet;
         /// # let mut wallet: Wallet<()> = todo!();
    -    /// # let mut psbt: PartiallySignedTransaction = todo!();
    -    /// let tx = psbt.clone().extract_tx();
    -    /// let fee_rate = wallet.calculate_fee_rate(&tx).expect("fee rate");
    +    /// # let mut psbt: Psbt = todo!();
    +    /// let tx = &psbt.clone().extract_tx().expect("tx");
    +    /// let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");
         /// ```
         /// [`insert_txout`]: Self::insert_txout
         pub fn calculate_fee_rate(&self, tx: &Transaction) -> Result<FeeRate, CalculateFeeError> {
    @@ -3629,11 +3611,11 @@
         /// ```
         ///
         /// ```rust, no_run
    -    /// # use bitcoin::psbt::PartiallySignedTransaction;
    +    /// # use bitcoin::Psbt;
         /// # use bdk::Wallet;
         /// # let mut wallet: Wallet<()> = todo!();
    -    /// # let mut psbt: PartiallySignedTransaction = todo!();
    -    /// let tx = &psbt.clone().extract_tx();
    +    /// # let mut psbt: Psbt = todo!();
    +    /// let tx = &psbt.clone().extract_tx().expect("tx");
         /// let (sent, received) = wallet.sent_and_received(tx);
         /// ```
         pub fn sent_and_received(&self, tx: &Transaction) -> (u64, u64) {
    @@ -3883,7 +3865,7 @@
             &mut self,
             coin_selection: Cs,
             params: TxParams,
    -    ) -> Result<psbt::PartiallySignedTransaction, CreateTxError<D::WriteError>>
    +    ) -> Result<Psbt, CreateTxError<D::WriteError>>
         where
             D: PersistBackend<ChangeSet>,
         {
    @@ -4077,7 +4059,7 @@
             };
     
             let mut tx = Transaction {
    -            version,
    +            version: transaction::Version::non_standard(version),
                 lock_time,
                 input: vec![],
                 output: vec![],
    @@ -4107,7 +4089,7 @@
     
                 let new_out = TxOut {
                     script_pubkey: script_pubkey.clone(),
    -                value,
    +                value: Amount::from_sat(value),
                 };
     
                 tx.output.push(new_out);
    @@ -4117,17 +4099,6 @@
     
             fee_amount += (fee_rate * tx.weight()).to_sat();
     
    -        // Segwit transactions' header is 2WU larger than legacy txs' header,
    -        // as they contain a witness marker (1WU) and a witness flag (1WU) (see BIP144).
    -        // At this point we really don't know if the resulting transaction will be segwit
    -        // or legacy, so we just add this 2WU to the fee_amount - overshooting the fee amount
    -        // is better than undershooting it.
    -        // If we pass a fee_amount that is slightly higher than the final fee_amount, we
    -        // end up with a transaction with a slightly higher fee rate than the requested one.
    -        // If, instead, we undershoot, we may end up with a feerate lower than the requested one
    -        // - we might come up with non broadcastable txs!
    -        fee_amount += (fee_rate * Weight::from_wu(2)).to_sat();
    -
             if params.change_policy != tx_builder::ChangeSpendPolicy::ChangeAllowed
                 && internal_descriptor.is_none()
             {
    @@ -4216,7 +4187,7 @@
     
                     // create drain output
                     let drain_output = TxOut {
    -                    value: *amount,
    +                    value: Amount::from_sat(*amount),
                         script_pubkey: drain_script,
                     };
     
    @@ -4262,7 +4233,7 @@
         ///     builder.finish()?
         /// };
         /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
    -    /// let tx = psbt.extract_tx();
    +    /// let tx = psbt.clone().extract_tx().expect("tx");
         /// // broadcast tx but it's taking too long to confirm so we want to bump the fee
         /// let mut psbt =  {
         ///     let mut builder = wallet.build_fee_bump(tx.txid())?;
    @@ -4386,11 +4357,11 @@
     
             let params = TxParams {
                 // TODO: figure out what rbf option should be?
    -            version: Some(tx_builder::Version(tx.version)),
    +            version: Some(tx_builder::Version(tx.version.0)),
                 recipients: tx
                     .output
                     .into_iter()
    -                .map(|txout| (txout.script_pubkey, txout.value))
    +                .map(|txout| (txout.script_pubkey, txout.value.to_sat()))
                     .collect(),
                 utxos: original_utxos,
                 bumping_fee: Some(tx_builder::PreviousFee {
    @@ -4436,11 +4407,7 @@
         /// let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
         /// assert!(finalized, "we should have signed all the inputs");
         /// # Ok::<(),anyhow::Error>(())
    -    pub fn sign(
    -        &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    -        sign_options: SignOptions,
    -    ) -> Result<bool, SignerError> {
    +    pub fn sign(&self, psbt: &mut Psbt, sign_options: SignOptions) -> Result<bool, SignerError> {
             // This adds all the PSBT metadata for the inputs, which will help us later figure out how
             // to derive our keys
             self.update_psbt_with_descriptor(psbt)
    @@ -4520,7 +4487,7 @@
         /// The [`SignOptions`] can be used to tweak the behavior of the finalizer.
         pub fn finalize_psbt(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             sign_options: SignOptions,
         ) -> Result<bool, SignerError> {
             let chain_tip = self.chain.tip().block_id();
    @@ -4746,7 +4713,7 @@
                     if must_only_use_confirmed_tx && !confirmation_time.is_confirmed() {
                         return false;
                     }
    -                if tx.is_coin_base() {
    +                if tx.is_coinbase() {
                         debug_assert!(
                             confirmation_time.is_confirmed(),
                             "coinbase must always be confirmed"
    @@ -4795,11 +4762,11 @@
             tx: Transaction,
             selected: Vec<Utxo>,
             params: TxParams,
    -    ) -> Result<psbt::PartiallySignedTransaction, CreateTxError<D::WriteError>>
    +    ) -> Result<Psbt, CreateTxError<D::WriteError>>
         where
             D: PersistBackend<ChangeSet>,
         {
    -        let mut psbt = psbt::PartiallySignedTransaction::from_unsigned_tx(tx)?;
    +        let mut psbt = Psbt::from_unsigned_tx(tx)?;
     
             if params.add_global_xpubs {
                 let all_xpubs = self
    @@ -4855,7 +4822,7 @@
                         let is_taproot = foreign_psbt_input
                             .witness_utxo
                             .as_ref()
    -                        .map(|txout| txout.script_pubkey.is_v1_p2tr())
    +                        .map(|txout| txout.script_pubkey.is_p2tr())
                             .unwrap_or(false);
                         if !is_taproot
                             && !params.only_witness_utxo
    @@ -4917,10 +4884,7 @@
             Ok(psbt_input)
         }
     
    -    fn update_psbt_with_descriptor(
    -        &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    -    ) -> Result<(), MiniscriptPsbtError> {
    +    fn update_psbt_with_descriptor(&self, psbt: &mut Psbt) -> Result<(), MiniscriptPsbtError> {
             // We need to borrow `psbt` mutably within the loops, so we have to allocate a vec for all
             // the input utxos and outputs
             let utxos = (0..psbt.inputs.len())
    @@ -5224,11 +5188,11 @@
             .unwrap();
             let address = wallet.get_address(AddressIndex::New).address;
             let tx = Transaction {
    -            version: 1,
    +            version: transaction::Version::ONE,
                 lock_time: absolute::LockTime::ZERO,
                 input: vec![],
                 output: vec![TxOut {
    -                value: 500_000,
    +                value: Amount::from_sat(500_000),
                     script_pubkey: address.script_pubkey(),
                 }],
             };
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html
    index f7093174a3..1edcc8dd06 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/signer.rs.html
    @@ -1192,8 +1192,6 @@
     1191
     1192
     1193
    -1194
    -1195
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1215,13 +1213,12 @@
     //! # use core::str::FromStr;
     //! # use bitcoin::secp256k1::{Secp256k1, All};
     //! # use bitcoin::*;
    -//! # use bitcoin::psbt;
     //! # use bdk::signer::*;
     //! # use bdk::*;
     //! # #[derive(Debug)]
     //! # struct CustomHSM;
     //! # impl CustomHSM {
    -//! #     fn hsm_sign_input(&self, _psbt: &mut psbt::PartiallySignedTransaction, _input: usize) -> Result<(), SignerError> {
    +//! #     fn hsm_sign_input(&self, _psbt: &mut Psbt, _input: usize) -> Result<(), SignerError> {
     //! #         Ok(())
     //! #     }
     //! #     fn connect() -> Self {
    @@ -1251,7 +1248,7 @@
     //! impl InputSigner for CustomSigner {
     //!     fn sign_input(
     //!         &self,
    -//!         psbt: &mut psbt::PartiallySignedTransaction,
    +//!         psbt: &mut Psbt,
     //!         input_index: usize,
     //!         _sign_options: &SignOptions,
     //!         _secp: &Secp256k1<All>,
    @@ -1283,13 +1280,13 @@
     use core::fmt;
     use core::ops::{Bound::Included, Deref};
     
    -use bitcoin::bip32::{ChildNumber, DerivationPath, ExtendedPrivKey, Fingerprint};
    +use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, Xpriv};
     use bitcoin::hashes::hash160;
     use bitcoin::secp256k1::Message;
     use bitcoin::sighash::{EcdsaSighashType, TapSighash, TapSighashType};
     use bitcoin::{ecdsa, psbt, sighash, taproot};
     use bitcoin::{key::TapTweak, key::XOnlyPublicKey, secp256k1};
    -use bitcoin::{PrivateKey, PublicKey};
    +use bitcoin::{PrivateKey, Psbt, PublicKey};
     
     use miniscript::descriptor::{
         Descriptor, DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey,
    @@ -1460,7 +1457,7 @@
         /// Sign a single psbt input
         fn sign_input(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             input_index: usize,
             sign_options: &SignOptions,
             secp: &SecpCtx,
    @@ -1475,7 +1472,7 @@
         /// Sign all the inputs of the psbt
         fn sign_transaction(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             sign_options: &SignOptions,
             secp: &SecpCtx,
         ) -> Result<(), SignerError>;
    @@ -1484,7 +1481,7 @@
     impl<T: InputSigner> TransactionSigner for T {
         fn sign_transaction(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             sign_options: &SignOptions,
             secp: &SecpCtx,
         ) -> Result<(), SignerError> {
    @@ -1496,7 +1493,7 @@
         }
     }
     
    -impl SignerCommon for SignerWrapper<DescriptorXKey<ExtendedPrivKey>> {
    +impl SignerCommon for SignerWrapper<DescriptorXKey<Xpriv>> {
         fn id(&self, secp: &SecpCtx) -> SignerId {
             SignerId::from(self.root_fingerprint(secp))
         }
    @@ -1506,10 +1503,10 @@
         }
     }
     
    -impl InputSigner for SignerWrapper<DescriptorXKey<ExtendedPrivKey>> {
    +impl InputSigner for SignerWrapper<DescriptorXKey<Xpriv>> {
         fn sign_input(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             input_index: usize,
             sign_options: &SignOptions,
             secp: &SecpCtx,
    @@ -1592,7 +1589,7 @@
             .collect()
     }
     
    -impl SignerCommon for SignerWrapper<DescriptorMultiXKey<ExtendedPrivKey>> {
    +impl SignerCommon for SignerWrapper<DescriptorMultiXKey<Xpriv>> {
         fn id(&self, secp: &SecpCtx) -> SignerId {
             SignerId::from(self.root_fingerprint(secp))
         }
    @@ -1602,10 +1599,10 @@
         }
     }
     
    -impl InputSigner for SignerWrapper<DescriptorMultiXKey<ExtendedPrivKey>> {
    +impl InputSigner for SignerWrapper<DescriptorMultiXKey<Xpriv>> {
         fn sign_input(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             input_index: usize,
             sign_options: &SignOptions,
             secp: &SecpCtx,
    @@ -1634,7 +1631,7 @@
     impl InputSigner for SignerWrapper<PrivateKey> {
         fn sign_input(
             &self,
    -        psbt: &mut psbt::PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             input_index: usize,
             sign_options: &SignOptions,
             secp: &SecpCtx,
    @@ -1773,7 +1770,7 @@
         hash_ty: TapSighashType,
         secp: &SecpCtx,
     ) {
    -    let keypair = secp256k1::KeyPair::from_seckey_slice(secp, secret_key.as_ref()).unwrap();
    +    let keypair = secp256k1::Keypair::from_seckey_slice(secp, secret_key.as_ref()).unwrap();
         let keypair = match leaf_hash {
             None => keypair
                 .tap_tweak(secp, psbt_input.tap_merkle_root)
    @@ -2048,7 +2045,7 @@
         type SighashType;
     
         fn sighash(
    -        psbt: &psbt::PartiallySignedTransaction,
    +        psbt: &Psbt,
             input_index: usize,
             extra: Self::Extra,
         ) -> Result<(Self::Sighash, Self::SighashType), SignerError>;
    @@ -2060,7 +2057,7 @@
         type SighashType = EcdsaSighashType;
     
         fn sighash(
    -        psbt: &psbt::PartiallySignedTransaction,
    +        psbt: &Psbt,
             input_index: usize,
             _extra: (),
         ) -> Result<(Self::Sighash, Self::SighashType), SignerError> {
    @@ -2109,7 +2106,7 @@
         type SighashType = EcdsaSighashType;
     
         fn sighash(
    -        psbt: &psbt::PartiallySignedTransaction,
    +        psbt: &Psbt,
             input_index: usize,
             _extra: (),
         ) -> Result<(Self::Sighash, Self::SighashType), SignerError> {
    @@ -2120,7 +2117,7 @@
             let psbt_input = &psbt.inputs[input_index];
             let tx_input = &psbt.unsigned_tx.input[input_index];
     
    -        let sighash = psbt_input
    +        let sighash_type = psbt_input
                 .sighash_type
                 .unwrap_or_else(|| EcdsaSighashType::All.into())
                 .ecdsa_hash_ty()
    @@ -2148,40 +2145,39 @@
             };
             let value = utxo.value;
     
    -        let script = match psbt_input.witness_script {
    -            Some(ref witness_script) => witness_script.clone(),
    +        let mut sighasher = sighash::SighashCache::new(&psbt.unsigned_tx);
    +
    +        let sighash = match psbt_input.witness_script {
    +            Some(ref witness_script) => {
    +                sighasher.p2wsh_signature_hash(input_index, witness_script, value, sighash_type)?
    +            }
                 None => {
    -                if utxo.script_pubkey.is_v0_p2wpkh() {
    -                    utxo.script_pubkey
    -                        .p2wpkh_script_code()
    -                        .expect("We check above that the spk is a p2wpkh")
    -                } else if psbt_input
    +                if utxo.script_pubkey.is_p2wpkh() {
    +                    sighasher.p2wpkh_signature_hash(
    +                        input_index,
    +                        &utxo.script_pubkey,
    +                        value,
    +                        sighash_type,
    +                    )?
    +                } else if psbt_input
                         .redeem_script
                         .as_ref()
    -                    .map(|s| s.is_v0_p2wpkh())
    +                    .map(|s| s.is_p2wpkh())
                         .unwrap_or(false)
                     {
    -                    psbt_input
    -                        .redeem_script
    -                        .as_ref()
    -                        .unwrap()
    -                        .p2wpkh_script_code()
    -                        .expect("We check above that the spk is a p2wpkh")
    -                } else {
    +                    let script_pubkey = psbt_input.redeem_script.as_ref().unwrap();
    +                    sighasher.p2wpkh_signature_hash(
    +                        input_index,
    +                        script_pubkey,
    +                        value,
    +                        sighash_type,
    +                    )?
    +                } else {
                         return Err(SignerError::MissingWitnessScript);
                     }
                 }
             };
    -
    -        Ok((
    -            sighash::SighashCache::new(&psbt.unsigned_tx).segwit_signature_hash(
    -                input_index,
    -                &script,
    -                value,
    -                sighash,
    -            )?,
    -            sighash,
    -        ))
    +        Ok((sighash, sighash_type))
         }
     }
     
    @@ -2191,7 +2187,7 @@
         type SighashType = TapSighashType;
     
         fn sighash(
    -        psbt: &psbt::PartiallySignedTransaction,
    +        psbt: &Psbt,
             input_index: usize,
             extra: Self::Extra,
         ) -> Result<(Self::Sighash, TapSighashType), SignerError> {
    @@ -2362,7 +2358,7 @@
         impl TransactionSigner for DummySigner {
             fn sign_transaction(
                 &self,
    -            _psbt: &mut psbt::PartiallySignedTransaction,
    +            _psbt: &mut Psbt,
                 _sign_options: &SignOptions,
                 _secp: &SecpCtx,
             ) -> Result<(), SignerError> {
    @@ -2380,8 +2376,8 @@
         ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
             let secp: Secp256k1<All> = Secp256k1::new();
             let path = bip32::DerivationPath::from_str(PATH).unwrap();
    -        let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap();
    -        let tpub = bip32::ExtendedPubKey::from_priv(&secp, &tprv);
    +        let tprv = bip32::Xpriv::from_str(tprv).unwrap();
    +        let tpub = bip32::Xpub::from_priv(&secp, &tprv);
             let fingerprint = tprv.fingerprint(&secp);
             let prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
             let pubkey = (tpub, path).into_descriptor_key().unwrap();
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html
    index 154b5a9109..8eb46589db 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/tx_builder.rs.html
    @@ -1080,6 +1080,7 @@
     1079
     1080
     1081
    +1082
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1128,7 +1129,7 @@
     use core::marker::PhantomData;
     
     use bdk_chain::PersistBackend;
    -use bitcoin::psbt::{self, PartiallySignedTransaction as Psbt};
    +use bitcoin::psbt::{self, Psbt};
     use bitcoin::script::PushBytes;
     use bitcoin::{absolute, FeeRate, OutPoint, ScriptBuf, Sequence, Transaction, Txid};
     
    @@ -2009,7 +2010,8 @@
     
         use bdk_chain::ConfirmationTime;
         use bitcoin::consensus::deserialize;
    -    use bitcoin::hashes::hex::FromHex;
    +    use bitcoin::hex::FromHex;
    +    use bitcoin::TxOut;
     
         use super::*;
     
    @@ -2080,7 +2082,7 @@
                 .unwrap()
             );
     
    -        assert_eq!(tx.output[0].value, 800);
    +        assert_eq!(tx.output[0].value.to_sat(), 800);
             assert_eq!(tx.output[1].script_pubkey, ScriptBuf::from(vec![0xAA]));
             assert_eq!(
                 tx.output[2].script_pubkey,
    @@ -2097,7 +2099,7 @@
                         txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(),
                         vout: 0,
                     },
    -                txout: Default::default(),
    +                txout: TxOut::NULL,
                     keychain: KeychainKind::External,
                     is_spent: false,
                     confirmation_time: ConfirmationTime::Unconfirmed { last_seen: 0 },
    @@ -2108,7 +2110,7 @@
                         txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(),
                         vout: 1,
                     },
    -                txout: Default::default(),
    +                txout: TxOut::NULL,
                     keychain: KeychainKind::Internal,
                     is_spent: false,
                     confirmation_time: ConfirmationTime::Confirmed {
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html
    index 2285e2e0e6..214b43c052 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/wallet/utils.rs.html
    @@ -324,7 +324,7 @@
                 .require_network(Network::Bitcoin)
                 .unwrap()
                 .script_pubkey();
    -        assert!(script_p2wpkh.is_v0_p2wpkh());
    +        assert!(script_p2wpkh.is_p2wpkh());
             assert!(293.is_dust(&script_p2wpkh));
             assert!(!294.is_dust(&script_p2wpkh));
         }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
    index 7c71138a07..646799aea2 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_txout_index.rs.html
    @@ -328,7 +328,7 @@
         collections::{hash_map::Entry, BTreeMap, BTreeSet, HashMap},
         indexed_tx_graph::Indexer,
     };
    -use bitcoin::{self, OutPoint, Script, ScriptBuf, Transaction, TxOut, Txid};
    +use bitcoin::{OutPoint, Script, ScriptBuf, Transaction, TxOut, Txid};
     
     /// An index storing [`TxOut`]s that have a script pubkey that matches those in a list.
     ///
    @@ -605,12 +605,12 @@
     
             for txin in &tx.input {
                 if let Some((_, txout)) = self.txout(txin.previous_output) {
    -                sent += txout.value;
    +                sent += txout.value.to_sat();
                 }
             }
             for txout in &tx.output {
                 if self.index_of_spk(&txout.script_pubkey).is_some() {
    -                received += txout.value;
    +                received += txout.value.to_sat();
                 }
             }
     
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
    index 865a2ffbba..ac1d8867dd 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/tx_graph.rs.html
    @@ -1978,7 +1978,7 @@
         ///
         /// [`insert_txout`]: Self::insert_txout
         pub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError> {
    -        if tx.is_coin_base() {
    +        if tx.is_coinbase() {
                 return Ok(0);
             }
     
    @@ -1990,7 +1990,7 @@
                         (sum, missing_outpoints)
                     }
                     Some(txout) => {
    -                    sum += txout.value as i64;
    +                    sum += txout.value.to_sat() as i64;
                         (sum, missing_outpoints)
                     }
                 },
    @@ -2002,7 +2002,7 @@
             let outputs_sum = tx
                 .output
                 .iter()
    -            .map(|txout| txout.value as i64)
    +            .map(|txout| txout.value.to_sat() as i64)
                 .sum::<i64>();
     
             let fee = inputs_sum - outputs_sum;
    @@ -2529,7 +2529,7 @@
                 TxNodeInternal::Whole(tx) => {
                     // A coinbase tx that is not anchored in the best chain cannot be unconfirmed and
                     // should always be filtered out.
    -                if tx.as_ref().is_coin_base() {
    +                if tx.is_coinbase() {
                         return Ok(None);
                     }
                     tx.clone()
    @@ -2785,7 +2785,7 @@
                                 txout,
                                 chain_position,
                                 spent_by,
    -                            is_on_coinbase: tx_node.tx.as_ref().is_coin_base(),
    +                            is_on_coinbase: tx_node.tx.is_coinbase(),
                             },
                         )))
                     },
    @@ -2888,16 +2888,16 @@
                 match &txout.chain_position {
                     ChainPosition::Confirmed(_) => {
                         if txout.is_confirmed_and_spendable(chain_tip.height) {
    -                        confirmed += txout.txout.value;
    +                        confirmed += txout.txout.value.to_sat();
                         } else if !txout.is_mature(chain_tip.height) {
    -                        immature += txout.txout.value;
    +                        immature += txout.txout.value.to_sat();
                         }
                     }
                     ChainPosition::Unconfirmed(_) => {
                         if trust_predicate(&spk_i, &txout.txout.script_pubkey) {
    -                        trusted_pending += txout.txout.value;
    +                        trusted_pending += txout.txout.value.to_sat();
                         } else {
    -                        untrusted_pending += txout.txout.value;
    +                        untrusted_pending += txout.txout.value.to_sat();
                         }
                     }
                 }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
    index 16b7ac4e12..a9cfd0ec41 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
    @@ -713,7 +713,7 @@
         ) -> Self {
             let mut tx = Transaction {
                 input: vec![],
    -            version: 1,
    +            version: transaction::Version::ONE,
                 lock_time: absolute::LockTime::ZERO,
                 output: txouts.to_vec(),
             };
    @@ -729,7 +729,7 @@
                 target_value: if txouts.is_empty() {
                     None
                 } else {
    -                Some(txouts.iter().map(|txout| txout.value).sum())
    +                Some(txouts.iter().map(|txout| txout.value.to_sat()).sum())
                 },
                 ..Self::from_weights(
                     base_weight.to_wu() as u32,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/lib.rs.html
    index 6d0e3cb8a9..7185aba6bc 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/lib.rs.html
    @@ -45,7 +45,7 @@
         bitcoin,
         collections::{BTreeSet, HashMap},
     };
    -use bitcoin::{absolute, Transaction, TxOut};
    +use bitcoin::{absolute, transaction, Transaction, TxOut};
     use core::fmt::{Debug, Display};
     
     mod coin_selector;
    @@ -62,7 +62,7 @@
     // Shamelessly copied from
     // https://github.com/rust-bitcoin/rust-miniscript/blob/d5615acda1a7fdc4041a11c1736af139b8c7ebe8/src/util.rs#L8
     pub(crate) fn varint_size(v: usize) -> u32 {
    -    bitcoin::VarInt(v as u64).len() as u32
    +    bitcoin::VarInt(v as u64).size() as u32
     }
     
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html index 0508df7c35..7aba2e2ed6 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/async_ext.rs.html @@ -335,7 +335,7 @@
    use async_trait::async_trait;
     use bdk_chain::collections::btree_map;
     use bdk_chain::{
    -    bitcoin::{BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
    +    bitcoin::{Amount, BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
         collections::BTreeMap,
         local_chain::{self, CheckPoint},
         BlockId, ConfirmationTimeHeightAnchor, TxGraph,
    @@ -562,7 +562,7 @@
                                     },
                                     TxOut {
                                         script_pubkey: prevout.scriptpubkey.clone(),
    -                                    value: prevout.value,
    +                                    value: Amount::from_sat(prevout.value),
                                     },
                                 ))
                             });
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html
    index 1050021d56..1407110127 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_esplora/blocking_ext.rs.html
    @@ -334,7 +334,7 @@
     use bdk_chain::collections::btree_map;
     use bdk_chain::collections::BTreeMap;
     use bdk_chain::{
    -    bitcoin::{BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
    +    bitcoin::{Amount, BlockHash, OutPoint, ScriptBuf, TxOut, Txid},
         local_chain::{self, CheckPoint},
         BlockId, ConfirmationTimeHeightAnchor, TxGraph,
     };
    @@ -549,7 +549,7 @@
                                     },
                                     TxOut {
                                         script_pubkey: prevout.scriptpubkey.clone(),
    -                                    value: prevout.value,
    +                                    value: Amount::from_sat(prevout.value),
                                     },
                                 ))
                             });
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/signer.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/signer.rs.html
    index 09194f6a3d..53a032f206 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/signer.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_hwi/signer.rs.html
    @@ -93,8 +93,8 @@
     93
     94
     
    use bdk::bitcoin::bip32::Fingerprint;
    -use bdk::bitcoin::psbt::PartiallySignedTransaction;
     use bdk::bitcoin::secp256k1::{All, Secp256k1};
    +use bdk::bitcoin::Psbt;
     
     use hwi::error::Error;
     use hwi::types::{HWIChain, HWIDevice};
    @@ -131,7 +131,7 @@
     impl TransactionSigner for HWISigner {
         fn sign_transaction(
             &self,
    -        psbt: &mut PartiallySignedTransaction,
    +        psbt: &mut Psbt,
             _sign_options: &bdk::SignOptions,
             _secp: &Secp256k1<All>,
         ) -> Result<(), SignerError> {
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_testenv/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_testenv/lib.rs.html
    index 6ac50c4ca3..367d7f7d3c 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_testenv/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_testenv/lib.rs.html
    @@ -278,8 +278,8 @@
     278
     
    use bdk_chain::bitcoin::{
         address::NetworkChecked, block::Header, hash_types::TxMerkleNode, hashes::Hash,
    -    secp256k1::rand::random, Address, Amount, Block, BlockHash, CompactTarget, ScriptBuf,
    -    ScriptHash, Transaction, TxIn, TxOut, Txid,
    +    secp256k1::rand::random, transaction, Address, Amount, Block, BlockHash, CompactTarget,
    +    ScriptBuf, ScriptHash, Transaction, TxIn, TxOut, Txid,
     };
     use bitcoincore_rpc::{
         bitcoincore_rpc_json::{GetBlockTemplateModes, GetBlockTemplateRules},
    @@ -387,7 +387,7 @@
             )?;
     
             let txdata = vec![Transaction {
    -            version: 1,
    +            version: transaction::Version::ONE,
                 lock_time: bdk_chain::bitcoin::absolute::LockTime::from_height(0)?,
                 input: vec![TxIn {
                     previous_output: bdk_chain::bitcoin::OutPoint::default(),
    @@ -400,7 +400,7 @@
                     witness: bdk_chain::bitcoin::Witness::new(),
                 }],
                 output: vec![TxOut {
    -                value: 0,
    +                value: Amount::ZERO,
                     script_pubkey: ScriptBuf::new_p2sh(&ScriptHash::all_zeros()),
                 }],
             }];
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/lib.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/lib.rs.html
    index af0ec7a135..fbe1331124 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/lib.rs.html
    @@ -439,7 +439,6 @@
     439
     440
     441
    -442
     
    #![allow(unused)]
     #![allow(missing_docs)]
     #![allow(clippy::all)] // FIXME
    @@ -459,14 +458,13 @@
     use bdk_chain::{bitcoin, collections::*, miniscript};
     use bitcoin::{
         absolute,
    -    address::WitnessVersion,
         bip32::{DerivationPath, Fingerprint, KeySource},
         blockdata::transaction::Sequence,
         ecdsa,
         hashes::{hash160, ripemd160, sha256},
         secp256k1::Secp256k1,
         taproot::{self, LeafVersion, TapLeafHash},
    -    ScriptBuf, TxIn, Witness,
    +    ScriptBuf, TxIn, Witness, WitnessVersion,
     };
     use miniscript::{
         descriptor::{InnerXKey, Tr},
    @@ -474,7 +472,7 @@
     };
     
     pub(crate) fn varint_len(v: usize) -> usize {
    -    bitcoin::VarInt(v as u64).len() as usize
    +    bitcoin::VarInt(v as u64).size() as usize
     }
     
     mod plan_impls;
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/requirements.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/requirements.rs.html
    index de7d14c480..b6a4acab9f 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/requirements.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/requirements.rs.html
    @@ -227,19 +227,16 @@
     227
     228
     229
    -230
    -231
     
    use bdk_chain::{bitcoin, collections::*, miniscript};
     use core::ops::Deref;
     
     use bitcoin::{
         bip32,
    -    hashes::{hash160, ripemd160, sha256},
    +    hashes::{hash160, ripemd160, sha256, Hash},
         key::XOnlyPublicKey,
    -    psbt::Prevouts,
    -    secp256k1::{KeyPair, Message, PublicKey, Signing, Verification},
    +    secp256k1::{Keypair, Message, PublicKey, Signing, Verification},
         sighash,
    -    sighash::{EcdsaSighashType, SighashCache, TapSighashType},
    +    sighash::{EcdsaSighashType, Prevouts, SighashCache, TapSighashType},
         taproot, Transaction, TxOut,
     };
     
    @@ -394,11 +391,11 @@
     
                     let tweak =
                         taproot::TapTweakHash::from_key_and_tweak(x_only_pubkey, merkle_root.clone());
    -                let keypair = KeyPair::from_secret_key(&secp, &secret_key.clone())
    +                let keypair = Keypair::from_secret_key(&secp, &secret_key.clone())
                         .add_xonly_tweak(&secp, &tweak.to_scalar())
                         .unwrap();
     
    -                let msg = Message::from_slice(sighash.as_ref()).expect("Sighashes are 32 bytes");
    +                let msg = Message::from_digest(sighash.to_byte_array());
                     let sig = secp.sign_schnorr_no_aux_rand(&msg, &keypair);
     
                     let bitcoin_sig = taproot::Signature {
    @@ -440,9 +437,8 @@
                                     todo!();
                                 }
                             };
    -                        let keypair = KeyPair::from_secret_key(&secp, &secret_key.clone());
    -                        let msg =
    -                            Message::from_slice(sighash.as_ref()).expect("Sighashes are 32 bytes");
    +                        let keypair = Keypair::from_secret_key(&secp, &secret_key.clone());
    +                        let msg = Message::from_digest(sighash.to_byte_array());
                             let sig = secp.sign_schnorr_no_aux_rand(&msg, &keypair);
                             let bitcoin_sig = taproot::Signature {
                                 sig,
    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 5fd1761b5a..5d43dbcb56 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
    @@ -717,17 +717,21 @@
     717
     718
     719
    +720
    +721
     
    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::{cmp::Reverse, collections::HashMap, path::PathBuf, sync::Mutex, time::Duration};
    +use std::{cmp::Reverse, collections::BTreeMap, path::PathBuf, sync::Mutex, time::Duration};
     
     use bdk_chain::{
         bitcoin::{
    -        absolute, address, psbt::Prevouts, secp256k1::Secp256k1, sighash::SighashCache, Address,
    -        Network, Sequence, Transaction, TxIn, TxOut,
    +        absolute, address,
    +        secp256k1::Secp256k1,
    +        sighash::{Prevouts, SighashCache},
    +        transaction, Address, Amount, Network, Sequence, Transaction, TxIn, TxOut,
         },
         indexed_tx_graph::{self, IndexedTxGraph},
         keychain::{self, KeychainTxOutIndex},
    @@ -916,7 +920,7 @@
     pub fn create_tx<A: Anchor, O: ChainOracle>(
         graph: &mut KeychainTxGraph<A>,
         chain: &O,
    -    keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
    +    keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
         cs_algorithm: CoinSelectionAlgo,
         address: Address,
         value: u64,
    @@ -954,7 +958,7 @@
             .iter()
             .map(|(plan, utxo)| {
                 WeightedValue::new(
    -                utxo.txout.value,
    +                utxo.txout.value.to_sat(),
                     plan.expected_weight() as _,
                     plan.witness_version().is_some(),
                 )
    @@ -962,7 +966,7 @@
             .collect();
     
         let mut outputs = vec![TxOut {
    -        value,
    +        value: Amount::from_sat(value),
             script_pubkey: address.script_pubkey(),
         }];
     
    @@ -992,7 +996,7 @@
         .expect("failed to obtain change plan");
     
         let mut change_output = TxOut {
    -        value: 0,
    +        value: Amount::ZERO,
             script_pubkey: change_script,
         };
     
    @@ -1030,13 +1034,13 @@
         let selected_txos = selection.apply_selection(&candidates).collect::<Vec<_>>();
     
         if let Some(drain_value) = selection_meta.drain_value {
    -        change_output.value = drain_value;
    +        change_output.value = Amount::from_sat(drain_value);
             // if the selection tells us to use change and the change value is sufficient, we add it as an output
             outputs.push(change_output)
         }
     
         let mut transaction = Transaction {
    -        version: 0x02,
    +        version: transaction::Version::TWO,
             // because the temporary planning module does not support timelocks, we can use the chain
             // tip as the `lock_time` for anti-fee-sniping purposes
             lock_time: absolute::LockTime::from_height(chain.get_chain_tip()?.height)
    @@ -1159,7 +1163,7 @@
         graph: &Mutex<KeychainTxGraph<A>>,
         db: &Mutex<Database<C>>,
         chain: &Mutex<O>,
    -    keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
    +    keymap: &BTreeMap<DescriptorPublicKey, DescriptorSecretKey>,
         network: Network,
         broadcast: impl FnOnce(S, &Transaction) -> anyhow::Result<()>,
         cmd: Commands<CS, S>,
    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 3b4c25933a..22643e6ee4 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
    @@ -444,7 +444,7 @@
                 _ => panic!("unsupported network"),
             });
     
    -        let client = esplora_client::Builder::new(esplora_url).build_blocking()?;
    +        let client = esplora_client::Builder::new(esplora_url).build_blocking();
             Ok(client)
         }
     }
    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 5f7c94bcaf..06a8645868 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
    @@ -210,7 +210,7 @@
         let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
         assert!(finalized);
     
    -    let tx = psbt.extract_tx();
    +    let tx = psbt.extract_tx()?;
         client.transaction_broadcast(&tx)?;
         println!("Tx broadcasted! Txid: {}", tx.txid());
     
    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 a82bfb27a6..48bc92f9fd 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
    @@ -194,7 +194,7 @@
         let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
         assert!(finalized);
     
    -    let tx = psbt.extract_tx();
    +    let tx = psbt.extract_tx()?;
         client.broadcast(&tx).await?;
         println!("Tx broadcasted! Txid: {}", tx.txid());
     
    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 a3787b71c6..dc4e781904 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
    @@ -135,7 +135,7 @@
     
         print!("Syncing...");
         let client =
    -        esplora_client::Builder::new("https://blockstream.info/testnet/api").build_blocking()?;
    +        esplora_client::Builder::new("https://blockstream.info/testnet/api").build_blocking();
     
         let prev_tip = wallet.latest_checkpoint();
         let keychain_spks = wallet
    @@ -194,7 +194,7 @@
         let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
         assert!(finalized);
     
    -    let tx = psbt.extract_tx();
    +    let tx = psbt.extract_tx()?;
         client.broadcast(&tx)?;
         println!("Tx broadcasted! Txid: {}", tx.txid());