From: github-actions Date: Fri, 4 Aug 2023 04:27:35 +0000 (+0000) Subject: Publish autogenerated nightly docs X-Git-Url: http://internal-gitweb-vhost/script/%22https:/struct.EncoderStringWriter.html?a=commitdiff_plain;h=82e41de38993396d6cd071cc974895fcda74e93e;p=bitcoindevkit.org Publish autogenerated nightly docs --- diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/all.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/all.html index 0e88abdd12..31b462a300 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/all.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/all.html @@ -1,2 +1,2 @@ List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Type Definitions

\ No newline at end of file + logo

Crate bdk

List of all items

Structs

Enums

Traits

Macros

Functions

Type Definitions

\ No newline at end of file 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 9331a69efb..2080909156 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>), @@ -14,7 +14,7 @@
§

Wsh(Wsh<Pk>)

Pay-to-Witness-ScriptHash with Segwitv0 context

§

Tr(Tr<Pk>)

Pay-to-Taproot

Implementations§

Create a new pk descriptor

-

Create a new PkH descriptor

+

Create a new PkH descriptor

Create a new Wpkh descriptor Will return Err if uncompressed key is used

Create a new sh wrapped wpkh from Pk. @@ -51,38 +51,69 @@ checks whether the descriptor requires signatures on all spend paths and whether the script is malleable.

In general, all the guarantees of miniscript hold only for safe scripts. The signer may not be able to find satisfactions even if one exists.

-

Computes an upper bound on the weight of a satisfying witness to the +

Computes an upper bound on the difference between a non-satisfied +TxIn’s segwit_weight and a satisfied TxIn’s segwit_weight

+

Since this method uses segwit_weight instead of legacy_weight, +if you want to include only legacy inputs in your transaction, +you should remove 1WU from each input’s max_weight_to_satisfy +for a more accurate estimate.

+

In other words, for segwit inputs or legacy inputs included in +segwit transactions, the following will hold for each input 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].segwit_weight() - Txin::default().segwit_weight()
+    );
+}
+

Instead, for legacy transactions, the following will hold for each input +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()
+    );
+}
+

Assumes all ECDSA signatures are 73 bytes, including push opcode and +sighash suffix. +Assumes all Schnorr signatures are 66 bytes, including push opcode and +sighash suffix.

+
Errors
+

When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).

+
👎Deprecated: use max_weight_to_satisfy instead

Computes an upper bound on the weight of a satisfying witness to the transaction.

Assumes all ec-signatures are 73 bytes, including push opcode and sighash suffix. Includes the weight of the VarInts encoding the scriptSig and witness stack length.

-
Errors
+
Errors

When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).

-

Computes the Bitcoin address of the descriptor, if one exists

+

Computes the Bitcoin address of the descriptor, if one exists

Some descriptors like pk() don’t have an address.

-
Errors
+
Errors

For raw/bare descriptors that don’t have an address.

-

Computes the scriptpubkey of the descriptor.

-

Computes the scriptSig that will be in place for an unsigned input +

Computes the scriptpubkey of the descriptor.

+

Computes the scriptSig that will be in place for an unsigned input spending an output with this descriptor. For pre-segwit descriptors, which use the scriptSig for signatures, this returns the empty script.

This is used in Segwit transactions to produce an unsigned transaction whose txid will not change during signing (since only the witness data will change).

-

Computes the the underlying script before any hashing is done. For +

Computes the the underlying script before any hashing is done. For Bare, Pkh and Wpkh this is the scriptPubkey; for ShWpkh and Sh this is the redeemScript; for the others it is the witness script.

-
Errors
+
Errors

If the descriptor is a taproot descriptor.

-

Computes the scriptCode of a transaction output.

+

Computes the scriptCode of a transaction output.

The scriptCode is the Script of the previous transaction output being serialized in the sighash when evaluating a CHECKSIG & co. OP code.

-
Errors
+
Errors

If the descriptor is a taproot descriptor.

-

Returns satisfying non-malleable witness and scriptSig to spend an +

Returns satisfying non-malleable witness and scriptSig to spend an output controlled by the given descriptor if it possible to construct one using the satisfier S.

-

Returns a possilbly mallable satisfying non-malleable witness and scriptSig to spend an +

Returns a possilbly mallable satisfying non-malleable witness and scriptSig to spend an output controlled by the given descriptor if it possible to construct one using the satisfier S.

Attempts to produce a non-malleable satisfying witness and scriptSig to spend an @@ -90,21 +121,23 @@ output controlled by the given descriptor; add the data to a given TxIn output.

👎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, +

Replaces all wildcards (i.e. /*) in the descriptor with a particular derivation index, turning it into a definite descriptor.

-
Panics
-

If index ≥ 2^31

-
👎Deprecated: use at_derivation_index instead

Deprecated name for [at_derivation_index].

+
Errors
+
    +
  • If index ≥ 2^31
  • +
+
👎Deprecated: use at_derivation_index instead

Deprecated name for Self::at_derivation_index.

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

This is a shorthand for:

    .expect("Valid ranged descriptor");
-let derived_descriptor = descriptor.at_derivation_index(index).derived_descriptor(&secp);
+let derived_descriptor = descriptor.at_derivation_index(index).unwrap().derived_descriptor(&secp).unwrap();

and is only here really here for backwards compatbility. See at_derivation_index and [derived_descriptor] for more documentation.

-
Errors
+
Errors

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

Parse a descriptor that may contain secret keys

Internally turns every secret key found into the corresponding public key and then returns a @@ -116,8 +149,12 @@ a descriptor that only contains public keys and a map to lookup the secret key g descriptor at that index. If the descriptor is non-derivable then it will simply check the script pubkey against the descriptor and return it if it matches (in this case the index returned will be meaningless).

+

Whether this descriptor contains a key that has multiple derivation paths.

+

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 -otherwise converting them. All [bitcoin::XOnlyPublicKey]s are converted to by adding a +otherwise converting them. All [bitcoin::secp256k1::XOnlyPublicKey]s are converted to by adding a default(0x02) y-coordinate.

Examples
use miniscript::descriptor::{Descriptor, DescriptorPublicKey};
@@ -128,20 +165,21 @@ default(0x02) y-coordinate.

let secp = secp256k1::Secp256k1::verification_only(); let descriptor = Descriptor::<DescriptorPublicKey>::from_str("tr(xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ/0/*)") .expect("Valid ranged descriptor"); -let result = descriptor.at_derivation_index(0).derived_descriptor(&secp).expect("Non-hardened derivation"); +let result = descriptor.at_derivation_index(0).unwrap().derived_descriptor(&secp).expect("Non-hardened derivation"); assert_eq!(result.to_string(), "tr(03cc8a4bc64d897bddc5fbc2f670f7a8ba0b386779106cf1223c6fc5d7cd6fc115)#6qm9h8ym");
-
Errors
+
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.
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.

+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 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

Converts a descriptor using abstract keys to one using specific keys.

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

Converts a descriptor using abstract keys to one using specific keys.

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

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
Converts the given value to a String. 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
Converts the given value to a String. 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/descriptor/enum.DescriptorPublicKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.DescriptorPublicKey.html index 5ad26ceba5..8ab5fcd341 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,19 +1,22 @@ DescriptorPublicKey in bdk::descriptor - Rust
pub enum DescriptorPublicKey {
+                    logo

DescriptorPublicKey

pub enum DescriptorPublicKey {
     Single(SinglePub),
-    XPub(DescriptorXKey<ExtendedPubKey>),
+    XPub(DescriptorXKey<ExtendedPubKey>),
+    MultiXPub(DescriptorMultiXKey<ExtendedPubKey>),
 }
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).

+
§

XPub(DescriptorXKey<ExtendedPubKey>)

Extended public key (xpub).

+
§

MultiXPub(DescriptorMultiXKey<ExtendedPubKey>)

Multiple extended public keys.

Implementations§

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

-

Full path, from the master key

+

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)

+to the wildcard type (hardened or normal).

+

For multipath extended keys, this returns None.

👎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 of [at_derivation_index].

-

Replaces any wildcard (i.e. /*) in the key with a particular derivation index, turning it into a +

👎Deprecated: use at_derivation_index instead

Deprecated name for Self::at_derivation_index.

+

Replaces any wildcard (i.e. /*) in the key with a particular derivation index, turning it into a definite key (i.e. one where all the derivation paths are set).

Returns
    @@ -21,18 +24,26 @@ to the wildcard type (hardened or normal)

  • If this key is an xpub but does not have a wildcard, returns self.
  • Otherwise, returns the xpub at derivation index (removing the wildcard).
-
Panics
-

If index ≥ 2^31

-

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
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 [sha256::Hash] for this [MiniscriptKey], -used in the hash256 fragment. Read more
The associated [hash256::Hash] for this [MiniscriptKey], -used in the hash256 fragment. Read more
The associated [ripedmd160::Hash] for this [MiniscriptKey] type. -used in the ripemd160 fragment Read more
The associated [hash160::Hash] for this [MiniscriptKey] type. -used in the hash160 fragment Read more
Returns true if the pubkey is uncompressed. Defaults to false.
Returns true if the pubkey is an x-only pubkey. Defaults to false.
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 +
Errors
+
    +
  • If index is hardened.
  • +
+

Whether or not this key has multiple derivation paths.

+

Get as many keys as derivation paths in this key.

+

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 +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 +the hash160 fragment. Read more
Returns true if the pubkey is uncompressed. Defaults to false.
Returns true if the pubkey is an x-only pubkey. Defaults to false.
Returns the number of different derivation paths in this key. Only >1 for keys +in BIP389 multipath descriptors. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= -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
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.

-
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
Converts the given value to a String. 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
Converts the given value to a String. 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/descriptor/enum.Legacy.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html index 12f2f42518..75d2b71c92 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Legacy.html @@ -14,7 +14,10 @@ This is currently only used in compiler code for removing malleable compilations. This does NOT recursively check if the children of the fragment are valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary. Read more
Check whether the given satisfaction is valid under the ScriptContext +a recursive check is unnecessary. Read more
Each context has slightly different rules on what Pks are allowed in descriptors +Legacy/Bare does not allow x_only keys +Segwit does not allow uncompressed keys and x_only keys +Tapscript does not allow uncompressed keys Read more
Check whether the given satisfaction is valid under the ScriptContext For example, segwit satisfactions may fail if the witness len is more 3600 or number of stack elements are more than 100. Read more
Depending on script Context, some of the Terminals might not be valid under the current consensus rules. diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html index 8050d2b228..5e88ba8fd2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Segwitv0.html @@ -11,7 +11,10 @@ This is currently only used in compiler code for removing malleable compilations. This does NOT recursively check if the children of the fragment are valid or not. Since the compilation proceeds in a leaf to root fashion, -a recursive check is unnecessary. Read more
Check whether the given satisfaction is valid under the ScriptContext +a recursive check is unnecessary. Read more
Each context has slightly different rules on what Pks are allowed in descriptors +Legacy/Bare does not allow x_only keys +Segwit does not allow uncompressed keys and x_only keys +Tapscript does not allow uncompressed keys Read more
Check whether the given satisfaction is valid under the ScriptContext For example, segwit satisfactions may fail if the witness len is more 3600 or number of stack elements are more than 100. Read more
Depending on script Context, some of the Terminals might not be valid under the current consensus rules. diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Wildcard.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Wildcard.html deleted file mode 100644 index 842d31c652..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/enum.Wildcard.html +++ /dev/null @@ -1,18 +0,0 @@ -Wildcard in bdk::descriptor - Rust

Enum bdk::descriptor::Wildcard

pub enum Wildcard {
-    None,
-    Unhardened,
-    Hardened,
-}
Expand description

Whether a descriptor has a wildcard in it

-

Variants§

§

None

No wildcard

-
§

Unhardened

Unhardened wildcard, e.g. *

-
§

Hardened

Unhardened wildcard, e.g. *h

-

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

-
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/descriptor/error/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/enum.Error.html index 02da7ae565..7af363cad9 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,8 +1,9 @@ Error in bdk::descriptor::error - Rust

Variants§

§

InvalidHdKeyPath

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

§

InvalidDescriptorChecksum

The provided descriptor doesn’t match its checksum

§

HardenedDerivationXpub

The descriptor contains hardened derivation steps on public extended keys

+
§

MultiPath

The descriptor contains multipath keys

§

Key(KeyError)

Error thrown while working with keys

§

Policy(PolicyError)

Error while extracting and manipulating policies

§

InvalidDescriptorCharacter(u8)

Invalid byte found in the descriptor checksum

@@ -23,7 +25,7 @@
§

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.

+

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/error/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html index 72e5571044..52e1a745c0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/error/index.html @@ -1,3 +1,3 @@ bdk::descriptor::error - Rust

Module bdk::descriptor::error

source ·
Expand description

Descriptor errors

+ logo

Module error

Module bdk::descriptor::error

source ·
Expand description

Descriptor errors

Enums

Errors related to the parsing and usage of descriptors
\ No newline at end of file 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 7444c4d772..04e6e695c4 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,13 +1,13 @@ 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

An extended key with origin, derivation path, and wildcard.
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

Top-level script AST type

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
Whether a descriptor has a wildcard in it

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 +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 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 Definitions

Alias for a Descriptor that contains extended derived keys
Alias for a Descriptor that can contain extended keys using DescriptorPublicKey
Alias for the type of maps that represent derivation paths in a psbt::Input or -psbt::Output
Alias type for a map of public key to secret key
Alias for the type of maps that represent taproot key origins in a psbt::Input or -psbt::Output
\ No newline at end of file +For example, disallowing uncompressed keys in Segwit context

Type Definitions

Alias for a Descriptor that contains extended derived keys
Alias for a Descriptor that can contain extended keys using DescriptorPublicKey
Alias for the type of maps that represent derivation paths in a psbt::Input or +psbt::Output
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/policy/enum.BuildSatisfaction.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html index d188cb53b0..5ed5bc5b48 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.BuildSatisfaction.html @@ -1,5 +1,5 @@ BuildSatisfaction in bdk::descriptor::policy - Rust
pub enum BuildSatisfaction<'a> {
+                    logo

BuildSatisfaction

pub enum BuildSatisfaction<'a> {
     None,
     Psbt(&'a Psbt),
     PsbtTimelocks {
@@ -15,7 +15,7 @@
 
§input_max_height: u32

The highest confirmation height between the inputs CSV should consider different inputs, but we consider the worst condition for the tx as whole

Like Psbt variant and also check for expired timelocks

-

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

+

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PkOrF.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PkOrF.html index 11032b58c9..ae4fa4b15a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PkOrF.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PkOrF.html @@ -9,7 +9,7 @@
§

Fingerprint(Fingerprint)

An extended key fingerprint

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

+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/descriptor/policy/enum.PolicyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html index eeabb64af2..26165b9b66 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.PolicyError.html @@ -1,5 +1,5 @@ PolicyError in bdk::descriptor::policy - Rust
pub enum PolicyError {
+                    logo

PolicyError

pub enum PolicyError {
     NotEnoughItemsSelected(String),
     IndexOutOfRange(usize),
     AddOnLeaf,
@@ -13,9 +13,9 @@
 
§

AddOnPartialComplete

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

§

MixedTimelockUnits

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

§

IncompatibleConditions

Incompatible conditions (not currently used)

-

Trait Implementations§

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

Trait Implementations§

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

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

Auto Trait Implementations§

Blanket Implementations§

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

Returns the argument unchanged.

Calls U::from(self).

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

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html index 3ef0fe0f38..7403f80902 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.Satisfaction.html @@ -1,5 +1,5 @@ Satisfaction in bdk::descriptor::policy - Rust
pub enum Satisfaction {
+                    logo

Satisfaction

pub enum Satisfaction {
     Partial {
         n: usize,
         m: usize,
@@ -34,10 +34,10 @@
 
§

Complete

Fields

§condition: Condition

Extra conditions that also need to be satisfied

Can satisfy the policy item

§

None

Cannot satisfy or contribute to the policy item

-

Implementations§

Returns whether the Satisfaction is a leaf item

-

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.
This method tests for self and other values to be equal, and is used +

Implementations§

Returns whether the Satisfaction is a leaf item

+

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.
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/descriptor/policy/enum.SatisfiableItem.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html index 6d2a2e9cba..4928198b69 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/enum.SatisfiableItem.html @@ -1,5 +1,5 @@ SatisfiableItem in bdk::descriptor::policy - Rust
pub enum SatisfiableItem {
+                    logo

SatisfiableItem

pub enum SatisfiableItem {
     EcdsaSignature(PkOrF),
     SchnorrSignature(PkOrF),
     Sha256Preimage {
@@ -49,11 +49,11 @@
 
§

Thresh

Fields

§items: Vec<Policy>

The policy items

§threshold: usize

The required threshold count

Threshold items with threshold count

-

Implementations§

Returns whether the SatisfiableItem is a leaf item

-

Returns a unique id for the SatisfiableItem

-

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.
This method tests for self and other values to be equal, and is used +

Implementations§

Returns whether the SatisfiableItem is a leaf item

+

Returns a unique id for the SatisfiableItem

+

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.
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/descriptor/policy/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html index fc236ea17b..6e38a5f412 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/index.html @@ -1,5 +1,5 @@ bdk::descriptor::policy - Rust

Module bdk::descriptor::policy

source ·
Expand description

Descriptor policy

+ logo

Module policy

Module bdk::descriptor::policy

source ·
Expand description

Descriptor policy

This module implements the logic to extract and represent the spending policies of a descriptor in a more human-readable format.

This is an EXPERIMENTAL feature, API and other major changes are expected.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html index 2de77b0fba..39e80e0d49 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Condition.html @@ -1,17 +1,17 @@ Condition in bdk::descriptor::policy - Rust

Struct bdk::descriptor::policy::Condition

source ·
pub struct Condition {
+                    logo

Condition

Struct bdk::descriptor::policy::Condition

source ·
pub struct Condition {
     pub csv: Option<Sequence>,
     pub timelock: Option<LockTime>,
 }
Expand description

An extra condition that must be satisfied but that is out of control of the user TODO: use bitcoin::LockTime and bitcoin::Sequence

Fields§

§csv: Option<Sequence>

Optional CheckSequenceVerify condition

§timelock: Option<LockTime>

Optional timelock condition

-

Implementations§

Returns true if there are no extra conditions to verify

-

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
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 +

Implementations§

Returns true if there are no extra conditions to verify

+

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

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.

diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html index 0079f239ce..3709050343 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/struct.Policy.html @@ -1,5 +1,5 @@ Policy in bdk::descriptor::policy - Rust

Struct bdk::descriptor::policy::Policy

source ·
pub struct Policy {
+                    logo

Policy

Struct bdk::descriptor::policy::Policy

source ·
pub struct Policy {
     pub id: String,
     pub item: SatisfiableItem,
     pub satisfaction: Satisfaction,
@@ -9,16 +9,16 @@
 
§item: SatisfiableItem

Type of this policy node

§satisfaction: Satisfaction

How much a given PSBT already satisfies this policy node in terms of signatures

§contribution: Satisfaction

How the wallet’s descriptor can satisfy this policy node

-

Implementations§

Return whether or not a specific path in the policy tree is required to unambiguously +

Implementations§

Return whether or not a specific path in the policy tree is required to unambiguously create a transaction

What this means is that for some spending policies the user should select which paths in the tree it intends to satisfy while signing, because the transaction must be created differently based on that.

-

Return the conditions that are set by the spending policy for a given path in the +

Return the conditions that are set by the spending policy for a given path in the policy tree

-

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.
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.
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/descriptor/policy/type.ConditionMap.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html index 17e633ef3c..16b056d6ed 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.ConditionMap.html @@ -1,3 +1,3 @@ ConditionMap in bdk::descriptor::policy - Rust

Type Definition bdk::descriptor::policy::ConditionMap

source ·
pub type ConditionMap = BTreeMap<usize, HashSet<Condition>>;
Expand description

Type for a map of sets of Condition items keyed by each set’s index

+ logo

ConditionMap

Type Definition bdk::descriptor::policy::ConditionMap

source ·
pub type ConditionMap = BTreeMap<usize, HashSet<Condition>>;
Expand description

Type for a map of sets of Condition items keyed by each set’s index

\ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html index cfa25569f4..c8cefc8833 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/policy/type.FoldedConditionMap.html @@ -1,3 +1,3 @@ FoldedConditionMap in bdk::descriptor::policy - Rust

Type Definition bdk::descriptor::policy::FoldedConditionMap

source ·
pub type FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
Expand description

Type for a map of folded sets of Condition items keyed by a vector of the combined set’s indexes

+ logo

FoldedConditionMap

Type Definition bdk::descriptor::policy::FoldedConditionMap

source ·
pub type FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
Expand description

Type for a map of folded sets of Condition items keyed by a vector of the combined set’s indexes

\ No newline at end of file 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 553ef4efb2..2ac12011d7 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"],["Wildcard","Whether a descriptor has a wildcard in it"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["DescriptorXKey","An extended key with origin, derivation path, and wildcard."],["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`"],["KeyMap","Alias type for a map of public key to secret key"],["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","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 diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DescriptorXKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DescriptorXKey.html deleted file mode 100644 index c2d4e82c0b..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.DescriptorXKey.html +++ /dev/null @@ -1,58 +0,0 @@ -DescriptorXKey in bdk::descriptor - Rust
pub struct DescriptorXKey<K>where
    K: InnerXKey,
{ - pub origin: Option<(Fingerprint, DerivationPath)>, - pub xkey: K, - pub derivation_path: DerivationPath, - pub wildcard: Wildcard, -}
Expand description

An extended key with origin, derivation path, and wildcard.

-

Fields§

§origin: Option<(Fingerprint, DerivationPath)>

Origin information

-
§xkey: K

The extended key

-
§derivation_path: DerivationPath

The derivation path

-
§wildcard: Wildcard

Whether the descriptor is wildcard

-

Implementations§

Compares this key with a keysource and returns the matching derivation path, if any.

-

For keys that have an origin, the keysource’s fingerprint will be compared -with the origin’s fingerprint, and the keysource’s path will be compared with the concatenation of the -origin’s and key’s paths.

-

If the key wildcard, the last item of the keysource’s path will be ignored,

-
Examples
-
use miniscript::bitcoin::util::bip32;
-use miniscript::descriptor::DescriptorPublicKey;
-
-let ctx = miniscript::bitcoin::secp256k1::Secp256k1::signing_only();
-
-let key = DescriptorPublicKey::from_str("[d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL/1/*").or(Err(()))?;
-let xpub = match key {
-    DescriptorPublicKey::XPub(xpub) => xpub,
-    _ => panic!("Parsing Error"),
-};
-
-assert_eq!(
-    xpub.matches(&(
-        bip32::Fingerprint::from_str("d34db33f").or(Err(()))?,
-        bip32::DerivationPath::from_str("m/44'/0'/0'/1/42").or(Err(()))?
-    ), &ctx),
-    Some(bip32::DerivationPath::from_str("m/44'/0'/0'/1").or(Err(()))?)
-);
-assert_eq!(
-    xpub.matches(&(
-        bip32::Fingerprint::from_str("ffffffff").or(Err(()))?,
-        bip32::DerivationPath::from_str("m/44'/0'/0'/1/42").or(Err(()))?
-    ), &ctx),
-    None
-);
-assert_eq!(
-    xpub.matches(&(
-        bip32::Fingerprint::from_str("d34db33f").or(Err(()))?,
-        bip32::DerivationPath::from_str("m/44'/0'/0'/100/0").or(Err(()))?
-    ), &ctx),
-    None
-);
-

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

-
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/descriptor/struct.Miniscript.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/struct.Miniscript.html index a639527ded..f4ff6de9c6 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,5 +1,5 @@ Miniscript in bdk::descriptor - Rust

Add type information(Type and Extdata) to Miniscript based on AstElem fragment. Dependent on display and clone because of Error Display code of type_check.

+

Create a new Miniscript from a Terminal node and a Type annotation +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

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

Attempt to parse an insane(scripts don’t clear sanity checks) @@ -67,22 +71,22 @@ parse such scripts.

type TapScript = Miniscript<XOnlyPublicKey, Tap>; // parse x-only miniscript in Taproot context -let tapscript_ms = TapScript::parse(&bitcoin::Script::from(Vec::<u8>::from_hex( +let tapscript_ms = TapScript::parse(&bitcoin::ScriptBuf::from_hex( "202788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac", -).expect("Even length hex"))) +).expect("Even length hex")) .expect("Xonly keys are valid only in taproot context"); // tapscript fails decoding when we use them with compressed keys -let err = TapScript::parse(&bitcoin::Script::from(Vec::<u8>::from_hex( +let err = TapScript::parse(&bitcoin::ScriptBuf::from_hex( "21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac", -).expect("Even length hex"))) +).expect("Even length hex")) .expect_err("Compressed keys cannot be used in Taproot context"); // Segwitv0 succeeds decoding with full keys. -Segwitv0Script::parse(&bitcoin::Script::from(Vec::<u8>::from_hex( +Segwitv0Script::parse(&bitcoin::ScriptBuf::from_hex( "21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac", -).expect("Even length hex"))) +).expect("Even length hex")) .expect("Compressed keys are allowed in Segwit context");
-

Encode as a Bitcoin script

+

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.

@@ -130,7 +134,7 @@ This can occur if the miniscript contains a

  • Timelock combination
  • Contains 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 +

    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 the predicate returned true for any key Read more

    Parse a Miniscript from string and perform sanity checks See Miniscript::from_str_insane to parse scripts from string that @@ -150,7 +154,7 @@ The type information and extra_properties can be deterministically determined 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 @@ -159,4 +163,4 @@ by the ast.

    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
    Converts the given value to a String. 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
    Converts the given value to a String. 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/descriptor/template/struct.Bip44.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/struct.Bip44.html index 3f24d49349..c460f520e1 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::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     let mut wallet = Wallet::new_no_persist(
         Bip44(key.clone(), KeychainKind::External),
         Some(Bip44(key, KeychainKind::Internal)),
    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 ea34213313..4e65940b49 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,8 +7,8 @@ for the key.

    Example

    use bdk::template::Bip44Public;
     
    -let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
    -let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
    +let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     let mut wallet = Wallet::new_no_persist(
         Bip44Public(key.clone(), fingerprint, KeychainKind::External),
         Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
    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 7926064160..ef5966faf6 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::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     let mut wallet = Wallet::new_no_persist(
         Bip49(key.clone(), KeychainKind::External),
         Some(Bip49(key, KeychainKind::Internal)),
    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 2b068e9a93..4fdb687224 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,8 +7,8 @@ for the key.

    Example

    use bdk::template::Bip49Public;
     
    -let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
    -let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
    +let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     let mut wallet = Wallet::new_no_persist(
         Bip49Public(key.clone(), fingerprint, KeychainKind::External),
         Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
    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 5678b0651e..47ca6a50c1 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::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     let mut wallet = Wallet::new_no_persist(
         Bip84(key.clone(), KeychainKind::External),
         Some(Bip84(key, KeychainKind::Internal)),
    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 0860f4bf89..c37090b1ce 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,8 +7,8 @@ for the key.

    Example

    use bdk::template::Bip84Public;
     
    -let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    -let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     let mut wallet = Wallet::new_no_persist(
         Bip84Public(key.clone(), fingerprint, KeychainKind::External),
         Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
    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 bcb0663ded..3e6b45fc44 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::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     let mut wallet = Wallet::new_no_persist(
         Bip86(key.clone(), KeychainKind::External),
         Some(Bip86(key, KeychainKind::Internal)),
    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 84fd3b39f3..623951bda3 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,8 +7,8 @@ for the key.

    Example

    use bdk::template::Bip86Public;
     
    -let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    -let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     let mut wallet = Wallet::new_no_persist(
         Bip86Public(key.clone(), fingerprint, KeychainKind::External),
         Some(Bip86Public(key, fingerprint, KeychainKind::Internal)),
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html
    index a74b5bdb9c..0a154a4aa6 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/template/type.DescriptorTemplateOut.html
    @@ -1,3 +1,3 @@
     DescriptorTemplateOut in bdk::descriptor::template - Rust

    Type Definition bdk::descriptor::template::DescriptorTemplateOut

    source ·
    pub type DescriptorTemplateOut = (ExtendedDescriptor, KeyMap, ValidNetworks);
    Expand description

    Type alias for the return type of DescriptorTemplate, descriptor! and others

    -

    Trait Implementations§

    Convert to wallet descriptor
    \ No newline at end of file +

    Trait Implementations§

    Convert to wallet descriptor
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html index 2fba6f4612..c65731f9b1 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ExtractPolicy.html @@ -1,6 +1,6 @@ ExtractPolicy in bdk::descriptor - Rust
    pub trait ExtractPolicy {
    +                    logo

    ExtractPolicy

    pub trait ExtractPolicy {
         fn extract_policy(
            &self,
            signers: &SignersContainer,
            psbt: BuildSatisfaction<'_>,
            secp: &Secp256k1<All>
        ) -> Result<Option<Policy>, DescriptorError>; }
    Expand description

    Trait implemented on Descriptors to add a method to extract the spending policy

    -

    Required Methods§

    Extract the spending policy

    -

    Implementors§

    \ No newline at end of file +

    Required Methods§

    Extract the spending policy

    +

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html index e3ab5172d2..261edf5f68 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.IntoWalletDescriptor.html @@ -3,6 +3,6 @@ fn into_wallet_descriptor(
            self,
            secp: &Secp256k1<All>,
            network: Network
        ) -> Result<(ExtendedDescriptor, KeyMap), DescriptorError>; }
    Expand description

    Trait for types which can be converted into an ExtendedDescriptor and a KeyMap usable by a wallet in a specific [Network]

    Required Methods§

    Convert to wallet descriptor

    -

    Implementations on Foreign Types§

    Implementors§

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html index aaaf313ffc..30cc257ae3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/trait.ScriptContext.html @@ -1,8 +1,9 @@ ScriptContext in bdk::descriptor - Rust
    pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
    +                    logo

    ScriptContext

    pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
         type Key: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
     
    -
    Show 15 methods fn check_terminal_non_malleable<Pk>(
            _frag: &Terminal<Pk, Self>
        ) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; +
    Show 16 methods fn check_terminal_non_malleable<Pk>(
            _frag: &Terminal<Pk, Self>
        ) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; + fn check_pk<Pk>(pk: &Pk) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; fn max_satisfaction_size<Pk>(ms: &Miniscript<Pk, Self>) -> Option<usize>
        where
            Pk: MiniscriptKey
    ; fn sig_type() -> SigType; fn pk_len<Pk>(pk: &Pk) -> usize
        where
            Pk: MiniscriptKey
    ; @@ -41,6 +42,10 @@ compilations. This does NOT recursively check if the children of the fragment are valid or not. Since the compilation proceeds in a leaf to root fashion, a recursive check is unnecessary.

    +

    Each context has slightly different rules on what Pks are allowed in descriptors +Legacy/Bare does not allow x_only keys +Segwit does not allow uncompressed keys and x_only keys +Tapscript does not allow uncompressed keys

    Depending on script context, the size of a satifaction witness may slightly differ.

    The type of signature required for satisfaction

    Get the len of public key when serialized based on context diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html index e0c1d19693..8fc0e0562f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.HdKeyPaths.html @@ -1,4 +1,4 @@ HdKeyPaths in bdk::descriptor - Rust

    Type Definition bdk::descriptor::HdKeyPaths

    source ·
    pub type HdKeyPaths = BTreeMap<PublicKey, KeySource>;
    Expand description

    Alias for the type of maps that represent derivation paths in a psbt::Input or -psbt::Output

    + logo

    HdKeyPaths

    Type Definition bdk::descriptor::HdKeyPaths

    source ·
    pub type HdKeyPaths = BTreeMap<PublicKey, KeySource>;
    Expand description

    Alias for the type of maps that represent derivation paths 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/type.KeyMap.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html deleted file mode 100644 index d4fbfda5ca..0000000000 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.KeyMap.html +++ /dev/null @@ -1,7 +0,0 @@ -KeyMap in bdk::descriptor - Rust

    Type Definition bdk::descriptor::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 -public key from the descriptor.

    -
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.TapKeyOrigins.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.TapKeyOrigins.html index 1814d4bd21..6385fba5cc 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.TapKeyOrigins.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/descriptor/type.TapKeyOrigins.html @@ -1,4 +1,4 @@ TapKeyOrigins in bdk::descriptor - Rust

    Type Definition bdk::descriptor::TapKeyOrigins

    source ·
    pub type TapKeyOrigins = BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>;
    Expand description

    Alias for the type of maps that represent taproot key origins in a psbt::Input or -psbt::Output

    + logo

    TapKeyOrigins

    Type Definition bdk::descriptor::TapKeyOrigins

    source ·
    pub type TapKeyOrigins = BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>;
    Expand description

    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/enum.Error.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.Error.html index ca45014448..58e136b2fc 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.Error.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.Error.html @@ -1,5 +1,5 @@ Error in bdk - Rust

    Enum bdk::Error

    source ·
    pub enum Error {
    +                    logo

    Error

    Enum bdk::Error

    source ·
    pub enum Error {
     
    Show 26 variants Generic(String), NoRecipients, NoUtxosSelected, @@ -68,7 +68,7 @@ explicit origin provided

    §

    MiniscriptPsbt(MiniscriptPsbtError)

    Miniscript PSBT error

    §

    Bip32(Error)

    BIP32 error

    §

    Psbt(Error)

    Partially signed bitcoin transaction 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.

    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.
    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/enum.KeychainKind.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/enum.KeychainKind.html index 4637a78162..18fe6feea1 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 @@ -6,13 +6,13 @@

    Variants§

    §

    External

    External keychain, used for deriving recipient addresses.

    §

    Internal

    Internal keychain, used for deriving change addresses.

    Implementations§

    Return KeychainKind as a byte

    -

    Trait Implementations§

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

    Trait Implementations§

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

    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 +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 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 62dfdbc51d..9cd9153ca8 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 @@ -109,7 +109,7 @@ Right now this is - + 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 c85fd6eafc..94e970067d 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,19 +1,22 @@ DescriptorPublicKey in bdk::keys - Rust
    pub enum DescriptorPublicKey {
    +                    logo

    DescriptorPublicKey

    pub enum DescriptorPublicKey {
         Single(SinglePub),
    -    XPub(DescriptorXKey<ExtendedPubKey>),
    +    XPub(DescriptorXKey<ExtendedPubKey>),
    +    MultiXPub(DescriptorMultiXKey<ExtendedPubKey>),
     }
    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).

    +
    §

    XPub(DescriptorXKey<ExtendedPubKey>)

    Extended public key (xpub).

    +
    §

    MultiXPub(DescriptorMultiXKey<ExtendedPubKey>)

    Multiple extended public keys.

    Implementations§

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

    -

    Full path, from the master key

    +

    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)

    +to the wildcard type (hardened or normal).

    +

    For multipath extended keys, this returns None.

    👎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 of [at_derivation_index].

    -

    Replaces any wildcard (i.e. /*) in the key with a particular derivation index, turning it into a +

    👎Deprecated: use at_derivation_index instead

    Deprecated name for Self::at_derivation_index.

    +

    Replaces any wildcard (i.e. /*) in the key with a particular derivation index, turning it into a definite key (i.e. one where all the derivation paths are set).

    Returns
      @@ -21,18 +24,26 @@ to the wildcard type (hardened or normal)

    • If this key is an xpub but does not have a wildcard, returns self.
    • Otherwise, returns the xpub at derivation index (removing the wildcard).
    -
    Panics
    -

    If index ≥ 2^31

    -

    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
    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 [sha256::Hash] for this [MiniscriptKey], -used in the hash256 fragment. Read more
    The associated [hash256::Hash] for this [MiniscriptKey], -used in the hash256 fragment. Read more
    The associated [ripedmd160::Hash] for this [MiniscriptKey] type. -used in the ripemd160 fragment Read more
    The associated [hash160::Hash] for this [MiniscriptKey] type. -used in the hash160 fragment Read more
    Returns true if the pubkey is uncompressed. Defaults to false.
    Returns true if the pubkey is an x-only pubkey. Defaults to false.
    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 +
    Errors
    +
      +
    • If index is hardened.
    • +
    +

    Whether or not this key has multiple derivation paths.

    +

    Get as many keys as derivation paths in this key.

    +

    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 +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 +the hash160 fragment. Read more
    Returns true if the pubkey is uncompressed. Defaults to false.
    Returns true if the pubkey is an x-only pubkey. Defaults to false.
    Returns the number of different derivation paths in this key. Only >1 for keys +in BIP389 multipath descriptors. Read more
    This method returns an Ordering between self and other. Read more
    Compares and returns the maximum of two values. Read more
    Compares and returns the minimum of two values. Read more
    Restrict a value to a certain interval. Read more
    This method tests for self and other values to be equal, and is used by ==. Read more
    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
    This method returns an ordering between self and other values if one exists. Read more
    This method tests less than (for self and other) and is used by the < operator. Read more
    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    This method tests greater than (for self and other) and is used by the > operator. Read more
    This method tests greater than or equal to (for self and other) and is used by the >= -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
    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.

    -
    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
    Converts the given value to a String. 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
    Converts the given value to a String. 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/keys/enum.DescriptorSecretKey.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.DescriptorSecretKey.html index df58135e78..d384fbf27b 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,15 +1,27 @@ DescriptorSecretKey in bdk::keys - Rust
    pub enum DescriptorSecretKey {
    +                    logo

    DescriptorSecretKey

    pub enum DescriptorSecretKey {
         Single(SinglePriv),
    -    XPrv(DescriptorXKey<ExtendedPrivKey>),
    +    XPrv(DescriptorXKey<ExtendedPrivKey>),
    +    MultiXPrv(DescriptorMultiXKey<ExtendedPrivKey>),
     }
    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).

    +
    §

    XPrv(DescriptorXKey<ExtendedPrivKey>)

    Extended private key (xpriv).

    +
    §

    MultiXPrv(DescriptorMultiXKey<ExtendedPrivKey>)

    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.

    -

    Trait Implementations§

    Formats the value using the given formatter. 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
    Turn the key into a DescriptorKey within the requested ScriptContext

    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.

    +

    It will return an error if the key is a “multi-xpriv”, as we wouldn’t +always be able to apply hardened derivation steps if there are multiple +paths.

    +

    Whether or not this key has multiple derivation paths.

    +

    Get as many keys as derivation paths in this key.

    +

    For raw keys 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
    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
    Turn the key into a DescriptorKey within the requested ScriptContext
    This method tests for self and other values to be equal, and is used +by ==. Read more
    This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    -
    Converts the given value to a String. 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
    Converts the given value to a String. 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/keys/enum.KeyError.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html index 2e00f2e1ad..2946b75775 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/enum.KeyError.html @@ -13,7 +13,7 @@
    §

    Message(String)

    Custom error message

    §

    Bip32(Error)

    BIP32 error

    §

    Miniscript(Error)

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

    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.
    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/keys/struct.SinglePriv.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SinglePriv.html index 5264d4ccce..daaaded33e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SinglePriv.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SinglePriv.html @@ -1,12 +1,14 @@ SinglePriv in bdk::keys - Rust

    Struct bdk::keys::SinglePriv

    pub struct SinglePriv {
    +                    logo

    SinglePriv

    Struct bdk::keys::SinglePriv

    pub struct SinglePriv {
         pub origin: Option<(Fingerprint, DerivationPath)>,
         pub key: PrivateKey,
     }
    Expand description

    A descriptor [bitcoin::PrivateKey] with optional origin information.

    Fields§

    §origin: Option<(Fingerprint, DerivationPath)>

    Origin information (fingerprint and derivation path).

    §key: PrivateKey

    The private key.

    -

    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§

    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.

    Calls U::from(self).

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

    -
    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/keys/struct.SortedMultiVec.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/struct.SortedMultiVec.html index 05be303e2f..2642eab9b8 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 @@ -9,12 +9,12 @@

    Implementations§

    Create a new instance of SortedMultiVec given a list of keys and the threshold

    Internally checks all the applicable size limits and pubkey types limitations according to the current Ctx.

    Parse an expression tree into a SortedMultiVec

    -

    This will panic if fpk returns an uncompressed key when +

    This will panic if fpk returns an uncompressed key when converting to a Segwit descriptor. To prevent this panic, ensure fpk returns an error in this case instead.

    utility function to sanity a sorted multi vec

    Create Terminal::Multi containing sorted pubkeys

    -

    Encode as a Bitcoin script

    +

    Encode as a Bitcoin script

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

    Size, in bytes of the script-pubkey. If this Miniscript is used outside @@ -37,7 +37,7 @@ 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.

    -

    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 +

    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 by ==. Read more
    This method tests for !=. The default implementation is almost always 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 fdc1b51cdf..14c02c698f 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 @@ -16,12 +16,12 @@ rules regarding script context and valid networks apply.

    an ExtendedPubKey can implement only the required into_extended_key() method.

    use bdk::bitcoin;
    -use bdk::bitcoin::util::bip32;
    +use bdk::bitcoin::bip32;
     use bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
     
     struct MyCustomKeyType {
         key_data: bitcoin::PrivateKey,
    -    chain_code: Vec<u8>,
    +    chain_code: [u8; 32],
         network: bitcoin::Network,
     }
     
    @@ -32,7 +32,7 @@ an ExtendedPubKey can impleme
                 depth: 0,
                 parent_fingerprint: bip32::Fingerprint::default(),
                 private_key: self.key_data.inner,
    -            chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
    +            chain_code: bip32::ChainCode::from(&self.chain_code),
                 child_number: bip32::ChildNumber::Normal { index: 0 },
             };
     
    @@ -44,14 +44,14 @@ steps to override the set of valid networks, otherwise only the network specifie
     ExtendedPrivKey or ExtendedPubKey will be considered valid.

    use bdk::bitcoin;
    -use bdk::bitcoin::util::bip32;
    +use bdk::bitcoin::bip32;
     use bdk::keys::{
         any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
     };
     
     struct MyCustomKeyType {
         key_data: bitcoin::PrivateKey,
    -    chain_code: Vec<u8>,
    +    chain_code: [u8; 32],
     }
     
     impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
    @@ -61,7 +61,7 @@ steps to override the set of valid networks, otherwise only the network specifie
                 depth: 0,
                 parent_fingerprint: bip32::Fingerprint::default(),
                 private_key: self.key_data.inner,
    -            chain_code: bip32::ChainCode::from(self.chain_code.as_ref()),
    +            chain_code: bip32::ChainCode::from(&self.chain_code),
                 child_number: bip32::ChildNumber::Normal { index: 0 },
             };
     
    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 d47d3d73a0..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/trait.ScriptContext.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html index 44df5b0fc7..f9a7d8c18c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/keys/trait.ScriptContext.html @@ -1,8 +1,9 @@ ScriptContext in bdk::keys - Rust

    Trait bdk::keys::ScriptContext

    pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
    +                    logo

    ScriptContext

    Trait bdk::keys::ScriptContext

    pub trait ScriptContext: Debug + Clone + Ord + PartialOrd<Self> + Eq + PartialEq<Self> + Hash + Sealed {
         type Key: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
     
    -
    Show 15 methods fn check_terminal_non_malleable<Pk>(
            _frag: &Terminal<Pk, Self>
        ) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; +
    Show 16 methods fn check_terminal_non_malleable<Pk>(
            _frag: &Terminal<Pk, Self>
        ) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; + fn check_pk<Pk>(pk: &Pk) -> Result<(), ScriptContextError>
        where
            Pk: MiniscriptKey
    ; fn max_satisfaction_size<Pk>(ms: &Miniscript<Pk, Self>) -> Option<usize>
        where
            Pk: MiniscriptKey
    ; fn sig_type() -> SigType; fn pk_len<Pk>(pk: &Pk) -> usize
        where
            Pk: MiniscriptKey
    ; @@ -41,6 +42,10 @@ compilations. This does NOT recursively check if the children of the fragment are valid or not. Since the compilation proceeds in a leaf to root fashion, a recursive check is unnecessary.

    +

    Each context has slightly different rules on what Pks are allowed in descriptors +Legacy/Bare does not allow x_only keys +Segwit does not allow uncompressed keys and x_only keys +Tapscript does not allow uncompressed keys

    Depending on script context, the size of a satifaction witness may slightly differ.

    The type of signature required for satisfaction

    Get the len of public key when serialized based on context 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 a4955dd8ea..57b8fbe9bd 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 c6d9c6c363..6c32295d5a 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/struct.FeeRate.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html
    index f992b63366..232f8b6f13 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.FeeRate.html
    @@ -9,11 +9,11 @@
     
    Panics

    Panics if the value is not normal (except if it’s a positive zero) or negative.

    Create a new FeeRate with the default min relay fee value

    -

    Calculate fee rate from fee and weight units (wu).

    +

    Calculate fee rate from fee and weight units (wu).

    Calculate fee rate from fee and vbytes.

    Return the value as satoshi/vbyte

    Return the value as satoshi/kwu

    -

    Calculate absolute fee in Satoshis using size in weight units.

    +

    Calculate absolute fee in Satoshis using size in weight units.

    Calculate absolute fee in Satoshis using size in virtual bytes.

    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 diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html index 20c72b6320..b00e08f993 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.LocalUtxo.html @@ -13,10 +13,10 @@
    §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

    -

    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 +

    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.

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

    -
    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/struct.TransactionDetails.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html index 2fad07489f..7bf4906704 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/struct.TransactionDetails.html @@ -16,12 +16,12 @@ Sum of owned inputs of this transaction.

    §fee: Option<u64>

    Fee value in sats if it was available.

    §confirmation_time: ConfirmationTime

    If the transaction is confirmed, contains height and Unix timestamp of the block containing the transaction, unconfirmed transaction contains None.

    -

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

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

    -
    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/wallet/coin_selection/enum.Excess.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk/wallet/coin_selection/enum.Excess.html index 4fb32d93be..fd660e421f 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 0043224b8f..159b200009 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

    \ 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
    Converts the given value to a String. 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_chain/keychain/struct.DerivationAdditions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html index b3b5f44221..b46040164f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.DerivationAdditions.html @@ -6,10 +6,10 @@ monotone in that they will never decrease the revealed derivation index.

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

    Returns whether the additions are empty.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    -
    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_chain/keychain/struct.KeychainTxOutIndex.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html index 38d89793fd..e6f952f965 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.KeychainTxOutIndex.html @@ -139,7 +139,7 @@ derived scripts per keychain, as specified in the additions.

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

    Returns the script that has been inserted at the index.

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

    -

    The script pubkeys that are being tracked by the index.

    +

    The script pubkeys that are being tracked by the index.

    Iterates over all unused script pubkeys in an index range.

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

    @@ -173,4 +173,4 @@ transactions in the block and only then use this method.

    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
    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_chain/keychain/struct.LocalChangeSet.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.LocalChangeSet.html index 9a219b9fe1..8d7d83eec2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.LocalChangeSet.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/keychain/struct.LocalChangeSet.html @@ -4,10 +4,10 @@ }
    Expand description

    A structure that records the corresponding changes as result of applying an LocalUpdate.

    Fields§

    §chain_changeset: ChangeSet

    Changes to the LocalChain.

    §indexed_additions: IndexedAdditions<A, DerivationAdditions<K>>

    Additions to IndexedTxGraph.

    -

    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.

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

    -
    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_chain/struct.BlockId.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html index 4e06e0a182..cde288d9a0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.BlockId.html @@ -4,12 +4,12 @@ }
    Expand description

    A reference to a block in the canonical chain.

    Fields§

    §height: u32

    The height of the block.

    §hash: BlockHash

    The hash of the block.

    -

    Trait Implementations§

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

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

    -
    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_chain/struct.ConfirmationHeightAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html index a9354fa733..068e3275c0 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationHeightAnchor.html @@ -5,12 +5,12 @@

    Fields§

    §anchor_block: BlockId

    The anchor block.

    §confirmation_height: u32

    The exact confirmation height of the transaction.

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

    -

    Trait Implementations§

    Returns the BlockId that the associated blockchain data is “anchored” in.
    Get the upper bound of the chain data’s confirmation height. 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
    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 the BlockId that the associated blockchain data is “anchored” in.
    Get the upper bound of the chain data’s confirmation height. 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
    Feeds this value into the given Hasher. Read more
    Feeds a slice of this type into the given Hasher. Read more
    This method returns an Ordering between self and other. Read more
    Compares and returns the maximum of two values. Read more
    Compares and returns the minimum of two values. Read more
    Restrict a value to a certain interval. Read more
    This method tests for self and other values to be equal, and is used by ==. Read more
    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
    This method returns an ordering between self and other values if one exists. Read more
    This method tests less than (for self and other) and is used by the < operator. Read more
    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    This method tests greater than (for self and other) and is used by the > operator. Read more
    This method tests greater than or equal to (for self and other) and is used by the >= -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.

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

    -
    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_chain/struct.ConfirmationTimeAnchor.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeAnchor.html index dd8bb2da4b..2142412dc8 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeAnchor.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.ConfirmationTimeAnchor.html @@ -7,12 +7,12 @@ transaction.

    Fields§

    §anchor_block: BlockId

    The anchor block.

    §confirmation_height: u32

    The confirmation height of the chain data being anchored.

    §confirmation_time: u64

    The confirmation time of the chain data being anchored.

    -

    Trait Implementations§

    Returns the BlockId that the associated blockchain data is “anchored” in.
    Get the upper bound of the chain data’s confirmation height. 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
    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 the BlockId that the associated blockchain data is “anchored” in.
    Get the upper bound of the chain data’s confirmation height. 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
    Feeds this value into the given Hasher. Read more
    Feeds a slice of this type into the given Hasher. Read more
    This method returns an Ordering between self and other. Read more
    Compares and returns the maximum of two values. Read more
    Compares and returns the minimum of two values. Read more
    Restrict a value to a certain interval. Read more
    This method tests for self and other values to be equal, and is used by ==. Read more
    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
    This method returns an ordering between self and other values if one exists. Read more
    This method tests less than (for self and other) and is used by the < operator. Read more
    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    This method tests greater than (for self and other) and is used by the > operator. Read more
    This method tests greater than or equal to (for self and other) and is used by the >= -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.

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

    -
    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_chain/struct.SpkIterator.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkIterator.html index 00581b47b8..305ab0c4b3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkIterator.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkIterator.html @@ -10,7 +10,7 @@ when using their default implementations.

    assert_eq!(spk_iter.next(), Some((0, external_spk_0))); assert_eq!(spk_iter.next(), None);

    Implementations§

    Creates a new script pubkey iterator starting at 0 from a descriptor.

    -

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    The type of the elements being iterated over.
    Advances the iterator and returns the next value. Read more
    Returns the nth element of the iterator. 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
    Creates an iterator starting at the same point, but stepping by +

    Trait Implementations§

    Returns a copy of the value. Read more
    Performs copy-assignment from source. Read more
    The type of the elements being iterated over.
    Advances the iterator and returns the next value. Read more
    Returns the nth element of the iterator. 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
    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 between adjacent items of the original iterator. Read more
    Takes a closure and creates an iterator which calls that closure on each element. Read more
    Calls a closure on each element of an iterator. Read more
    Creates an iterator which uses a closure to determine if an element @@ -47,4 +47,4 @@ function. From<T> for U chooses to do.

    The type of the elements being iterated over.
    Which kind of iterator are we turning this into?
    Creates an iterator from a value. Read more
    Choose one element at random from the iterator. Read more
    Choose one element at random from the iterator. Read more
    Collects values at random from the iterator into a supplied buffer -until that buffer is filled. Read more
    Collects amount values at random from the iterator into a vector. Read more
    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 +until that buffer is filled. Read more
    Collects amount values at random from the iterator into a vector. Read more
    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_chain/struct.SpkTxOutIndex.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html index 38d23976a8..7429cf96b3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/struct.SpkTxOutIndex.html @@ -27,8 +27,8 @@ script pubkey (if any).

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

    Returns the script that has been inserted at the index.

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

    -

    The script pubkeys that are being tracked by the index.

    -

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

    +

    The script pubkeys that are being tracked by the index.

    +

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

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

    Iterates over all unused script pubkeys in an index range.

    Here, “unused” means that after the script pubkey was stored in the index, the index has diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html index 75352d07a5..b720b2b97d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/trait.DescriptorExt.html @@ -1,5 +1,6 @@ -DescriptorExt in bdk_chain - Rust

    Trait bdk_chain::DescriptorExt

    source ·
    pub trait DescriptorExt {
    +DescriptorExt in bdk_chain - Rust

    Trait bdk_chain::DescriptorExt

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

    A trait to extend the functionality of a miniscript descriptor.

    -

    Required Methods§

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

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Required Methods§

    Returns the minimum value (in satoshis) at which an output is broadcastable. +Panics if the descriptor wildcard is hardened.

    +

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.Additions.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.Additions.html index 055a9e42d8..462971f118 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.Additions.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.Additions.html @@ -13,10 +13,10 @@ not removed.

    §last_seen: BTreeMap<Txid, u64>

    Added last-seen unix timestamps of transactions.

    Implementations§

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

    Iterates over all outpoints contained within Additions.

    -

    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
    The provided closure f will be called with each outpoint/txout pair.
    Converts to this type from the input type.
    This method tests for self and other values to be equal, and is used +

    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
    The provided closure f will be called with each outpoint/txout pair.
    Converts to this type from the input type.
    This method tests for self and other values to be equal, and is used by ==. Read more
    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more
    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    -
    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_chain/tx_graph/struct.TxDescendants.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_chain/tx_graph/struct.TxDescendants.html index f81aabafaf..8e38f0fee5 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 @@ -32,8 +32,8 @@ 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 +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.

    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_coin_select/enum.ExcessStrategyKind.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html index c60bc477d7..e64e2ad53a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.ExcessStrategyKind.html @@ -1,12 +1,12 @@ -ExcessStrategyKind in bdk_coin_select - Rust

    pub enum ExcessStrategyKind {
    +ExcessStrategyKind in bdk_coin_select - Rust
    pub enum ExcessStrategyKind {
         ToFee,
         ToRecipient,
         ToDrain,
    -}

    Variants§

    §

    ToFee

    §

    ToRecipient

    §

    ToDrain

    Trait Implementations§

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

    Variants§

    §

    ToFee

    §

    ToRecipient

    §

    ToDrain

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +operator. Read more

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html index 4c241ffba5..942c7472ff 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/enum.SelectionConstraint.html @@ -1,4 +1,4 @@ -SelectionConstraint in bdk_coin_select - Rust
    pub enum SelectionConstraint {
    +SelectionConstraint in bdk_coin_select - Rust
    pub enum SelectionConstraint {
         TargetValue,
         TargetFee,
         MinAbsoluteFee,
    @@ -7,9 +7,9 @@
     
    §

    TargetFee

    The target fee (given the feerate) is not met

    §

    MinAbsoluteFee

    Min absolute fee is not met

    §

    MinDrainValue

    Min drain value is not met

    -

    Trait Implementations§

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

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

    CoinSelector selects and deselects from a set of candidates.

    -

    Fields§

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

    Implementations§

    Weight sum of all selected inputs.

    -

    Effective value sum of all selected inputs.

    -

    Absolute value sum of all selected inputs.

    -

    Waste sum of all selected inputs.

    -

    Current weight of template tx + selected inputs.

    -

    Current excess.

    -

    This is the effective target value.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Fields§

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

    Implementations§

    Weight sum of all selected inputs.

    +

    Effective value sum of all selected inputs.

    +

    Absolute value sum of all selected inputs.

    +

    Waste sum of all selected inputs.

    +

    Current weight of template tx + selected inputs.

    +

    Current excess.

    +

    This is the effective target value.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html index c155083c6e..f0d8b6f716 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_coin_select/struct.CoinSelectorOpt.html @@ -19,7 +19,7 @@ output and satisfy the other constraints (e.g., minimum fees).

    §drain_weight: u32

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

    §spend_drain_weight: u32

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

    §min_drain_value: u64

    Minimum value allowed for a drain (change) output.

    -

    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

    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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

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

    Fields§

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

    Implementations§

    Returns feerate in sats/wu.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Fields§

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

    Implementations§

    Returns feerate in sats/wu.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

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

    Struct bdk_coin_select::Selection

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

    Struct bdk_coin_select::Selection

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

    Fields§

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

    Implementations§

    Returns the ExcessStrategy that results in the least waste.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +}

    Fields§

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

    Implementations§

    Returns the ExcessStrategy that results in the least waste.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

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

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/struct.ElectrumUpdate.html index ff456cb6b0..580dcb9632 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,4 +1,4 @@ -ElectrumUpdate in bdk_electrum - Rust
    pub struct ElectrumUpdate<K, A> {
    +ElectrumUpdate in bdk_electrum - Rust
    pub struct ElectrumUpdate<K, A> {
         pub graph_update: HashMap<Txid, BTreeSet<A>>,
         pub new_tip: CheckPoint,
         pub keychain_update: BTreeMap<K, u32>,
    @@ -9,16 +9,16 @@ the full transactions from Electrum and finalize the update.

    Fields§

    §graph_update: HashMap<Txid, BTreeSet<A>>

    Map of [Txid]s to associated [Anchor]s.

    §new_tip: CheckPoint

    The latest chain tip, as seen by the Electrum server.

    §keychain_update: BTreeMap<K, u32>

    Last-used index update for KeychainTxOutIndex.

    -

    Implementations§

    Determine the full transactions that are missing from graph.

    +

    Implementations§

    Determine the full transactions that are missing from graph.

    Refer to ElectrumUpdate.

    -

    Finalizes update with missing txids to fetch from client.

    +

    Finalizes update with missing txids to fetch from client.

    Refer to ElectrumUpdate.

    -

    Finalizes the ElectrumUpdate with new_txs and anchors of type +

    Finalizes the ElectrumUpdate with new_txs and anchors of type [ConfirmationTimeAnchor].

    Note: The confirmation time might not be precisely correct if there has been a reorg. Electrum’s API intends that we use the merkle proof API, we should change bdk_electrum to use it.

    -

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    +

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

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

    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_electrum/trait.ElectrumExt.html index 792a498b18..7142fbc965 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<A> {
    -    fn scan<K: Ord + Clone>(
            &self,
            prev_tip: Option<CheckPoint>,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            stop_gap: usize,
            batch_size: usize
        ) -> Result<ElectrumUpdate<K, A>, Error>; +ElectrumExt in bdk_electrum - Rust
    pub trait ElectrumExt<A> {
    +    fn scan<K: Ord + Clone>(
            &self,
            prev_tip: Option<CheckPoint>,
            keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            stop_gap: usize,
            batch_size: usize
        ) -> Result<ElectrumUpdate<K, A>, Error>; - fn scan_without_keychain(
            &self,
            prev_tip: Option<CheckPoint>,
            misc_spks: impl IntoIterator<Item = Script>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            batch_size: usize
        ) -> Result<ElectrumUpdate<(), A>, Error> { ... } + fn scan_without_keychain(
            &self,
            prev_tip: Option<CheckPoint>,
            misc_spks: impl IntoIterator<Item = ScriptBuf>,
            txids: impl IntoIterator<Item = Txid>,
            outpoints: impl IntoIterator<Item = OutPoint>,
            batch_size: usize
        ) -> Result<ElectrumUpdate<(), A>, Error> { ... } }
    Expand description

    Trait to extend [Client] functionality.

    -

    Required Methods§

    Scan the blockchain (via electrum) for the data specified and returns a ElectrumUpdate.

    +

    Required Methods§

    Scan the blockchain (via electrum) for the data specified and returns a ElectrumUpdate.

    • prev_tip: the most recent blockchain tip present locally
    • keychain_spks: keychains that we want to scan transactions for
    • @@ -14,5 +14,5 @@ want to included in the update

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

      -

    Provided Methods§

    Convenience method to call scan without requiring a keychain.

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Provided Methods§

    Convenience method to call scan without requiring a keychain.

    +

    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.EsploraAsyncExt.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_esplora/trait.EsploraAsyncExt.html index 75a63e0de8..0218d90018 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,8 +1,8 @@ EsploraAsyncExt in bdk_esplora - Rust
    pub trait EsploraAsyncExt {
         fn update_local_chain<'life0, 'async_trait>(
            &'life0 self,
            local_tip: Option<CheckPoint>,
            request_heights: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = u32> + Send> + Send
        ) -> Pin<Box<dyn Future<Output = Result<Update, Error>> + Send + 'async_trait>>
        where
            Self: 'async_trait,
            'life0: 'async_trait
    ; - fn update_tx_graph<'life0, 'async_trait, K>(
            &'life0 self,
            keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, Script)> + 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,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<(TxGraph<ConfirmationTimeAnchor>, BTreeMap<K, u32>), Error>> + Send + 'async_trait>>
        where
            K: 'async_trait + Ord + Clone + Send,
            Self: 'async_trait,
            'life0: 'async_trait
    ; + fn update_tx_graph<'life0, 'async_trait, K>(
            &'life0 self,
            keychain_spks: BTreeMap<K, impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = (u32, 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,
            stop_gap: usize,
            parallel_requests: usize
        ) -> Pin<Box<dyn Future<Output = Result<(TxGraph<ConfirmationTimeAnchor>, BTreeMap<K, u32>), Error>> + Send + 'async_trait>>
        where
            K: 'async_trait + Ord + Clone + Send,
            Self: 'async_trait,
            'life0: 'async_trait
    ; - fn update_tx_graph_without_keychain<'life0, 'async_trait>(
            &'life0 self,
            misc_spks: impl 'async_trait + IntoIterator<IntoIter = impl 'async_trait + Iterator<Item = Script> + 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<ConfirmationTimeAnchor>, Error>> + Send + 'async_trait>>
        where
            Self: Sync + 'async_trait,
            'life0: 'async_trait
    , + fn update_tx_graph_without_keychain<'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<ConfirmationTimeAnchor>, Error>> + Send + 'async_trait>>
        where
            Self: Sync + 'async_trait,
            'life0: 'async_trait
    , { ... } }
    Expand description

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

    Refer to crate-level documentation for more.

    @@ -12,7 +12,7 @@
  • get_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.

    -

    Scan Esplora for the data specified and return a [TxGraph] and a map of last active +

    Scan Esplora for the data specified and return a [TxGraph] and a map of last active indices.

    • keychain_spks: keychains that we want to scan transactions for
    • @@ -23,5 +23,5 @@ want to include in the update

      The scan for each keychain stops after a gap of stop_gap script pubkeys with no associated transactions. parallel_requests specifies the max number of HTTP requests to make in parallel.

      -

    Provided Methods§

    Convenience method to call update_tx_graph without requiring a keychain.

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Provided Methods§

    Convenience method to call update_tx_graph without requiring a keychain.

    +

    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 075e035118..194be410cf 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,17 +1,17 @@ -EsploraExt in bdk_esplora - Rust

    Trait bdk_esplora::EsploraExt

    source ·
    pub trait EsploraExt {
    +EsploraExt in bdk_esplora - Rust

    Trait bdk_esplora::EsploraExt

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

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

    Refer to crate-level documentation for more.

    -

    Required Methods§

    Prepare an LocalChain update with blocks fetched from Esplora.

    +

    Required Methods§

    Prepare an LocalChain update with blocks fetched from Esplora.

    • prev_tip is the previous tip of LocalChain::tip.
    • get_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.

    -

    Scan Esplora for the data specified and return a [TxGraph] and a map of last active +

    Scan Esplora for the data specified and return a [TxGraph] and a map of last active indices.

    • keychain_spks: keychains that we want to scan transactions for
    • @@ -22,5 +22,5 @@ want to include in the update

      The scan for each keychain stops after a gap of stop_gap script pubkeys with no associated transactions. parallel_requests specifies the max number of HTTP requests to make in parallel.

      -

    Provided Methods§

    Convenience method to call update_tx_graph without requiring a keychain.

    -

    Implementations on Foreign Types§

    Implementors§

    \ No newline at end of file +

    Provided Methods§

    Convenience method to call update_tx_graph without requiring a keychain.

    +

    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/struct.EntryIter.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.EntryIter.html index db558476d5..973ace9293 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.EntryIter.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_file_store/struct.EntryIter.html @@ -1,7 +1,7 @@ EntryIter in bdk_file_store - Rust

    Struct bdk_file_store::EntryIter

    source ·
    pub struct EntryIter<'t, T> { /* private fields */ }
    Expand description

    Iterator over entries in a file store.

    Reads and returns an entry each time next is called. If an error occurs while reading the iterator will yield a Result::Err(_) instead and then None for the next call to next.

    -

    Implementations§

    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 +

    Implementations§

    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 between adjacent items of the original iterator. Read more
    Takes a closure and creates an iterator which calls that closure on each element. Read more
    Calls a closure on each element of an iterator. Read more
    Creates an iterator which uses a closure to determine if an element 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 8c3db48f27..701f2994b1 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<'a, 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§

    Creates a new store from a File.

    +

    Implementations§

    Creates a new store from a File.

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

    magic is the expected prefixed bytes of the file. If this does not match, an error will be returned.

    @@ -27,8 +27,8 @@ 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.

    -
    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 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_tmp_plan/enum.PlanState.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.PlanState.html index e77588f804..5fa144ddd8 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,11 +1,11 @@ PlanState in bdk_tmp_plan - Rust

    Enum bdk_tmp_plan::PlanState

    source ·
    pub enum PlanState<Ak> {
         Complete {
    -        final_script_sig: Option<Script>,
    +        final_script_sig: Option<ScriptBuf>,
             final_script_witness: Option<Witness>,
         },
         Incomplete(Requirements<Ak>),
     }
    Expand description

    The returned value from Plan::try_complete.

    -

    Variants§

    §

    Complete

    Fields

    §final_script_sig: Option<Script>

    The script sig that should be set on the input

    +

    Variants§

    §

    Complete

    Fields

    §final_script_sig: Option<ScriptBuf>

    The script sig that should be set on the input

    §final_script_witness: Option<Witness>

    The witness that should be set on the input

    The plan is complete

    §

    Incomplete(Requirements<Ak>)

    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_tmp_plan/enum.RequiredSignatures.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/enum.RequiredSignatures.html index 3593dbbf50..52162167a0 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>>,
         },
    @@ -7,7 +7,7 @@
         },
         TapKey {
             plan_key: PlanKey<Ak>,
    -        merkle_root: Option<TapBranchHash>,
    +        merkle_root: Option<TapNodeHash>,
         },
         TapScript {
             leaf_hash: TapLeafHash,
    @@ -17,12 +17,12 @@
     

    Variants§

    §

    Legacy

    Fields

    §keys: Vec<PlanKey<Ak>>

    Legacy ECDSA signatures are required

    §

    Segwitv0

    Fields

    §keys: Vec<PlanKey<Ak>>

    Segwitv0 ECDSA signatures are required

    §

    TapKey

    Fields

    §plan_key: PlanKey<Ak>

    the internal key

    -
    §merkle_root: Option<TapBranchHash>

    The merkle root of the taproot output

    +
    §merkle_root: Option<TapNodeHash>

    The merkle root of the taproot output

    A Taproot key spend signature is required

    §

    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 3b044c1886..9f68f349e3 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 4327e837c5..9a1111c3c5 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 44a87bc2ab..f2d1851040 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.Requirements.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/bdk_tmp_plan/struct.Requirements.html index b2422fef45..544df9dc83 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 6f5a93e246..3ee5565448 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,13 +1,13 @@ SatisfactionMaterial in bdk_tmp_plan - Rust
    pub struct SatisfactionMaterial {
    -    pub schnorr_sigs: BTreeMap<DefiniteDescriptorKey, SchnorrSig>,
    -    pub ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, EcdsaSig>,
    +    pub schnorr_sigs: BTreeMap<DefiniteDescriptorKey, Signature>,
    +    pub ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, Signature>,
         pub sha256_preimages: BTreeMap<Hash, Vec<u8>>,
         pub hash160_preimages: BTreeMap<Hash, Vec<u8>>,
         pub hash256_preimages: BTreeMap<Hash, Vec<u8>>,
         pub ripemd160_preimages: BTreeMap<Hash, Vec<u8>>,
     }
    Expand description

    Signatures and hash pre-images that can be used to complete a plan.

    -

    Fields§

    §schnorr_sigs: BTreeMap<DefiniteDescriptorKey, SchnorrSig>

    Schnorr signautres under their keys

    -
    §ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, EcdsaSig>

    ECDSA signatures under their keys

    +

    Fields§

    §schnorr_sigs: BTreeMap<DefiniteDescriptorKey, Signature>

    Schnorr signautres under their keys

    +
    §ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, Signature>

    ECDSA signatures under their keys

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

    SHA256 pre-images under their images

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

    hash160 pre-images under their images

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

    hash256 pre-images under their images

    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 8e127b3357..6ff2c7ccc4 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 {
         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_cli/enum.Commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Commands.html index 59d723e2f7..f68863a7d5 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 @@ -9,13 +9,13 @@ }, Send { value: u64, - address: Address, + address: Address<NetworkUnchecked>, coin_select: CoinSelectionAlgo, }, }

    Variants§

    §

    ChainSpecific(S)

    §

    Address

    Fields

    §addr_cmd: AddressCmd

    Address generation and inspection.

    §

    Balance

    Get the wallet balance.

    §

    TxOut

    Fields

    §txout_cmd: TxOutCmd

    TxOut related commands.

    -
    §

    Send

    Fields

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

    Send coins to an address.

    +
    §

    Send

    Fields

    §value: u64
    §address: Address<NetworkUnchecked>
    §coin_select: CoinSelectionAlgo

    Send coins to an address.

    Trait Implementations§

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

    Auto Trait Implementations§

    Blanket Implementations§

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

    Returns the argument unchanged.

    Calls U::from(self).

    That is, this conversion is whatever the implementation of diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/enum.Keychain.html index dab176692d..98ab5b16e6 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,12 +1,12 @@ 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 <= 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.

    -
    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
    Converts the given value to a String. 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
    Converts the given value to a String. 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/example_cli/fn.handle_commands.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.handle_commands.html index 2de1d160b1..0baf08722b 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<S: Subcommand, 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(&Transaction) -> Result<()>,
        cmd: Commands<S>
    ) -> Result<()>where
        O::Error: Error + Send + Sync + 'static,
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<A>>,
    \ No newline at end of file +handle_commands in example_cli - Rust

    Function example_cli::handle_commands

    source ·
    pub fn handle_commands<S: Subcommand, 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(&Transaction) -> Result<()>,
        cmd: Commands<S>
    ) -> Result<()>where
        O::Error: Error + Send + Sync + 'static,
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<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 447fabc18f..1c2d527117 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 +1 @@ -init in example_cli - Rust

    Function example_cli::init

    source ·
    pub fn init<'m, S: Subcommand, C>(
        db_magic: &'m [u8],
        db_default_path: &str
    ) -> Result<(Args<S>, KeyMap, KeychainTxOutIndex<Keychain>, Mutex<Database<'m, C>>, C)>where
        C: Default + Append + Serialize + DeserializeOwned,
    \ No newline at end of file +init in example_cli - Rust

    Function example_cli::init

    source ·
    pub fn init<'m, S: Subcommand, C>(
        db_magic: &'m [u8],
        db_default_path: &str
    ) -> Result<(Args<S>, KeyMap, KeychainTxOutIndex<Keychain>, Mutex<Database<'m, C>>, C)>where
        C: Default + Append + Serialize + DeserializeOwned,
    \ 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 8f41cec867..06afd4e953 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<(Plan<K>, FullTxOut<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<(Plan<K>, FullTxOut<A>)>, O::Error>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_address_cmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_address_cmd.html index 582352d321..e1f727828f 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_address_cmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_address_cmd.html @@ -1 +1 @@ -run_address_cmd in example_cli - Rust

    Function example_cli::run_address_cmd

    source ·
    pub fn run_address_cmd<A, C>(
        graph: &mut KeychainTxGraph<A>,
        db: &Mutex<Database<'_, C>>,
        network: Network,
        cmd: AddressCmd
    ) -> Result<()>where
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<A>>,
    \ No newline at end of file +run_address_cmd in example_cli - Rust

    Function example_cli::run_address_cmd

    source ·
    pub fn run_address_cmd<A, C>(
        graph: &mut KeychainTxGraph<A>,
        db: &Mutex<Database<'_, C>>,
        network: Network,
        cmd: AddressCmd
    ) -> Result<()>where
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<A>>,
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_send_cmd.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_send_cmd.html index a8781d69b5..64f67c838a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_send_cmd.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_cli/fn.run_send_cmd.html @@ -1 +1 @@ -run_send_cmd in example_cli - Rust

    Function example_cli::run_send_cmd

    source ·
    pub fn run_send_cmd<A: Anchor, O: ChainOracle, C>(
        graph: &Mutex<KeychainTxGraph<A>>,
        db: &Mutex<Database<'_, C>>,
        chain: &O,
        keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
        cs_algorithm: CoinSelectionAlgo,
        address: Address,
        value: u64,
        broadcast: impl FnOnce(&Transaction) -> Result<()>
    ) -> Result<()>where
        O::Error: Error + Send + Sync + 'static,
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<A>>,
    \ No newline at end of file +run_send_cmd in example_cli - Rust

    Function example_cli::run_send_cmd

    source ·
    pub fn run_send_cmd<A: Anchor, O: ChainOracle, C>(
        graph: &Mutex<KeychainTxGraph<A>>,
        db: &Mutex<Database<'_, C>>,
        chain: &O,
        keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
        cs_algorithm: CoinSelectionAlgo,
        address: Address,
        value: u64,
        broadcast: impl FnOnce(&Transaction) -> Result<()>
    ) -> Result<()>where
        O::Error: Error + Send + Sync + 'static,
        C: Default + Append + DeserializeOwned + Serialize + From<KeychainAdditions<A>>,
    \ 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 3140bc3e83..04bd52bfe6 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 +1 @@ -example_cli - Rust
    \ No newline at end of file +example_cli - Rust
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html index fd8222b7c5..2ee8c81e86 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/fn.main.html @@ -1 +1 @@ -main in example_electrum - Rust

    Function example_electrum::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file +main in example_electrum - Rust

    Function example_electrum::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html index fec0dc3098..74e4be3931 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/example_electrum/index.html @@ -1 +1 @@ -example_electrum - Rust
    \ No newline at end of file +example_electrum - Rust
    \ 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 5015239e10..5208931cda 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 = LocalChangeSet<Keychain, ConfirmationHeightAnchor>;
    \ No newline at end of file +ChangeSet in example_electrum - Rust

    Type Definition example_electrum::ChangeSet

    source ·
    pub(crate) type ChangeSet = LocalChangeSet<Keychain, ConfirmationHeightAnchor>;
    \ 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 a44e11eb74..723f275c7c 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<'a, C> PersistBackend<C> for Store<'a, C>where
        C: Default + Append + Serialize + DeserializeOwned,
    "]] +"bdk_file_store":[["impl<'a, C> PersistBackend<C> for Store<'a, C>where
        C: Default + 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/core/clone/trait.Clone.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js index 3341e8fbe5..8868af74cf 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/clone/trait.Clone.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl Clone for PkOrF"],["impl Clone for SatisfiableItem"],["impl Clone for Satisfaction"],["impl Clone for Policy"],["impl Clone for Condition"],["impl<'a> Clone for BuildSatisfaction<'a>"],["impl Clone for ScriptContextEnum"],["impl<K: Clone, Ctx: ScriptContext> Clone for GeneratedKey<K, Ctx>"],["impl Clone for PrivateKeyGenerateOptions"],["impl Clone for KeychainKind"],["impl Clone for FeeRate"],["impl Clone for LocalUtxo"],["impl Clone for WeightedUtxo"],["impl Clone for Utxo"],["impl Clone for TransactionDetails"],["impl Clone for LargestFirstCoinSelection"],["impl Clone for OldestFirstCoinSelection"],["impl Clone for BranchAndBoundCoinSelection"],["impl Clone for SignerId"],["impl Clone for SignerError"],["impl Clone for SignerContext"],["impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>"],["impl Clone for SignerOrdering"],["impl Clone for SignersContainer"],["impl Clone for SignOptions"],["impl Clone for TapLeavesOptions"],["impl Clone for CreateTx"],["impl Clone for BumpFee"],["impl<'a, D, Cs: Clone, Ctx> Clone for TxBuilder<'a, D, Cs, Ctx>"],["impl Clone for TxOrdering"],["impl Clone for ChangeSpendPolicy"]], +"bdk":[["impl Clone for PkOrF"],["impl Clone for SatisfiableItem"],["impl Clone for Satisfaction"],["impl Clone for Policy"],["impl Clone for Condition"],["impl<'a> Clone for BuildSatisfaction<'a>"],["impl Clone for ScriptContextEnum"],["impl<K: Clone, Ctx: ScriptContext> Clone for GeneratedKey<K, Ctx>"],["impl Clone for PrivateKeyGenerateOptions"],["impl Clone for KeychainKind"],["impl Clone for FeeRate"],["impl Clone for LocalUtxo"],["impl Clone for WeightedUtxo"],["impl Clone for Utxo"],["impl Clone for TransactionDetails"],["impl Clone for LargestFirstCoinSelection"],["impl Clone for OldestFirstCoinSelection"],["impl Clone for BranchAndBoundCoinSelection"],["impl Clone for SignerId"],["impl Clone for SignerContext"],["impl<S: Clone + Sized + Debug + Clone> Clone for SignerWrapper<S>"],["impl Clone for SignerOrdering"],["impl Clone for SignersContainer"],["impl Clone for SignOptions"],["impl Clone for TapLeavesOptions"],["impl Clone for CreateTx"],["impl Clone for BumpFee"],["impl<'a, D, Cs: Clone, Ctx> Clone for TxBuilder<'a, D, Cs, Ctx>"],["impl Clone for TxOrdering"],["impl Clone for ChangeSpendPolicy"]], "bdk_chain":[["impl<I: Clone> Clone for SpkTxOutIndex<I>"],["impl<A: Clone> Clone for ChainPosition<A>"],["impl Clone for ConfirmationTime"],["impl Clone for BlockId"],["impl Clone for ConfirmationHeightAnchor"],["impl Clone for ConfirmationTimeAnchor"],["impl<A: Clone> Clone for FullTxOut<A>"],["impl<A: Clone, IA: Clone> Clone for IndexedAdditions<A, IA>"],["impl<K: Clone> Clone for KeychainTxOutIndex<K>"],["impl<K: Clone> Clone for DerivationAdditions<K>"],["impl<K: Clone, A: Clone> Clone for LocalUpdate<K, A>"],["impl<K: Clone, A: Clone> Clone for LocalChangeSet<K, A>"],["impl Clone for Balance"],["impl Clone for CheckPoint"],["impl Clone for Update"],["impl Clone for LocalChain"],["impl Clone for InsertBlockError"],["impl Clone for CannotConnectError"],["impl<A: Clone> Clone for TxGraph<A>"],["impl<'a, T: Clone, A: Clone> Clone for TxNode<'a, T, A>"],["impl<'a, T: Clone, A: Clone> Clone for CanonicalTx<'a, T, A>"],["impl<A: Clone> Clone for Additions<A>"],["impl<D: Clone> Clone for SpkIterator<D>"]], "bdk_coin_select":[["impl Clone for WeightedValue"],["impl Clone for CoinSelectorOpt"],["impl<'a> Clone for CoinSelector<'a>"],["impl Clone for SelectionError"],["impl Clone for SelectionConstraint"],["impl Clone for Selection"],["impl Clone for ExcessStrategyKind"],["impl Clone for ExcessStrategy"]], "bdk_electrum":[["impl<K: Clone, A: Clone> Clone for ElectrumUpdate<K, A>"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js index 1467889149..f708555b1d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.Eq.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl Eq for PkOrF"],["impl Eq for SatisfiableItem"],["impl Eq for Satisfaction"],["impl Eq for Policy"],["impl Eq for Condition"],["impl Eq for PolicyError"],["impl Eq for ScriptContextEnum"],["impl Eq for KeychainKind"],["impl Eq for LocalUtxo"],["impl Eq for WeightedUtxo"],["impl Eq for Utxo"],["impl Eq for TransactionDetails"],["impl Eq for SignerId"],["impl Eq for SignerError"],["impl Eq for SignerContext"],["impl Eq for SignerOrdering"],["impl Eq for TapLeavesOptions"],["impl Eq for TxOrdering"],["impl Eq for ChangeSpendPolicy"],["impl Eq for AddressInfo"]], +"bdk":[["impl Eq for PkOrF"],["impl Eq for SatisfiableItem"],["impl Eq for Satisfaction"],["impl Eq for Policy"],["impl Eq for Condition"],["impl Eq for PolicyError"],["impl Eq for ScriptContextEnum"],["impl Eq for KeychainKind"],["impl Eq for LocalUtxo"],["impl Eq for WeightedUtxo"],["impl Eq for Utxo"],["impl Eq for TransactionDetails"],["impl Eq for SignerId"],["impl Eq for SignerContext"],["impl Eq for SignerOrdering"],["impl Eq for TapLeavesOptions"],["impl Eq for TxOrdering"],["impl Eq for ChangeSpendPolicy"],["impl Eq for AddressInfo"]], "bdk_chain":[["impl<A: Eq> Eq for ChainPosition<A>"],["impl Eq for ConfirmationTime"],["impl Eq for BlockId"],["impl Eq for ConfirmationHeightAnchor"],["impl Eq for ConfirmationTimeAnchor"],["impl<A: Eq> Eq for FullTxOut<A>"],["impl Eq for Balance"],["impl<'a, T: Eq, A: Eq> Eq for TxNode<'a, T, A>"],["impl<'a, T: Eq, A: Eq> Eq for CanonicalTx<'a, T, A>"]], "bdk_coin_select":[["impl Eq for SelectionConstraint"],["impl Eq for ExcessStrategyKind"]], "example_cli":[["impl Eq for Keychain"]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js index bfdf6113f3..85bc446521 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/cmp/trait.PartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl PartialEq<PkOrF> for PkOrF"],["impl PartialEq<SatisfiableItem> for SatisfiableItem"],["impl PartialEq<Satisfaction> for Satisfaction"],["impl PartialEq<Policy> for Policy"],["impl PartialEq<Condition> for Condition"],["impl PartialEq<PolicyError> for PolicyError"],["impl PartialEq<ScriptContextEnum> for ScriptContextEnum"],["impl PartialEq<KeychainKind> for KeychainKind"],["impl PartialEq<FeeRate> for FeeRate"],["impl PartialEq<LocalUtxo> for LocalUtxo"],["impl PartialEq<WeightedUtxo> for WeightedUtxo"],["impl PartialEq<Utxo> for Utxo"],["impl PartialEq<TransactionDetails> for TransactionDetails"],["impl PartialEq<SignerId> for SignerId"],["impl PartialEq<SignerError> for SignerError"],["impl PartialEq<SignerContext> for SignerContext"],["impl PartialEq<SignerOrdering> for SignerOrdering"],["impl PartialEq<TapLeavesOptions> for TapLeavesOptions"],["impl PartialEq<TxOrdering> for TxOrdering"],["impl PartialEq<ChangeSpendPolicy> for ChangeSpendPolicy"],["impl PartialEq<AddressInfo> for AddressInfo"]], +"bdk":[["impl PartialEq<PkOrF> for PkOrF"],["impl PartialEq<SatisfiableItem> for SatisfiableItem"],["impl PartialEq<Satisfaction> for Satisfaction"],["impl PartialEq<Policy> for Policy"],["impl PartialEq<Condition> for Condition"],["impl PartialEq<PolicyError> for PolicyError"],["impl PartialEq<ScriptContextEnum> for ScriptContextEnum"],["impl PartialEq<KeychainKind> for KeychainKind"],["impl PartialEq<FeeRate> for FeeRate"],["impl PartialEq<LocalUtxo> for LocalUtxo"],["impl PartialEq<WeightedUtxo> for WeightedUtxo"],["impl PartialEq<Utxo> for Utxo"],["impl PartialEq<TransactionDetails> for TransactionDetails"],["impl PartialEq<SignerId> for SignerId"],["impl PartialEq<SignerContext> for SignerContext"],["impl PartialEq<SignerOrdering> for SignerOrdering"],["impl PartialEq<TapLeavesOptions> for TapLeavesOptions"],["impl PartialEq<TxOrdering> for TxOrdering"],["impl PartialEq<ChangeSpendPolicy> for ChangeSpendPolicy"],["impl PartialEq<AddressInfo> for AddressInfo"]], "bdk_chain":[["impl<A: PartialEq> PartialEq<ChainPosition<A>> for ChainPosition<A>"],["impl PartialEq<ConfirmationTime> for ConfirmationTime"],["impl PartialEq<BlockId> for BlockId"],["impl PartialEq<ConfirmationHeightAnchor> for ConfirmationHeightAnchor"],["impl PartialEq<ConfirmationTimeAnchor> for ConfirmationTimeAnchor"],["impl<A: PartialEq> PartialEq<FullTxOut<A>> for FullTxOut<A>"],["impl<A: PartialEq, IA: PartialEq> PartialEq<IndexedAdditions<A, IA>> for IndexedAdditions<A, IA>"],["impl<K: PartialEq> PartialEq<DerivationAdditions<K>> for DerivationAdditions<K>"],["impl<K: PartialEq, A: PartialEq> PartialEq<LocalChangeSet<K, A>> for LocalChangeSet<K, A>"],["impl PartialEq<Balance> for Balance"],["impl PartialEq<LocalChain> for LocalChain"],["impl PartialEq<InsertBlockError> for InsertBlockError"],["impl PartialEq<CannotConnectError> for CannotConnectError"],["impl<A: PartialEq> PartialEq<TxGraph<A>> for TxGraph<A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq<TxNode<'a, T, A>> for TxNode<'a, T, A>"],["impl<'a, T: PartialEq, A: PartialEq> PartialEq<CanonicalTx<'a, T, A>> for CanonicalTx<'a, T, A>"],["impl<A: PartialEq> PartialEq<Additions<A>> for Additions<A>"]], "bdk_coin_select":[["impl PartialEq<SelectionConstraint> for SelectionConstraint"],["impl PartialEq<ExcessStrategyKind> for ExcessStrategyKind"]], "example_cli":[["impl PartialEq<Keychain> for Keychain"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/iter/traits/iterator/trait.Iterator.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/iter/traits/iterator/trait.Iterator.js index f4b1c141c2..b10bb246b2 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/iter/traits/iterator/trait.Iterator.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/iter/traits/iterator/trait.Iterator.js @@ -1,5 +1,5 @@ (function() {var implementors = { "bdk_chain":[["impl Iterator for CheckPointIter"],["impl<'g, A, F, O> Iterator for TxDescendants<'g, A, F>where
        F: FnMut(usize, Txid) -> Option<O>,
    "],["impl<D> Iterator for SpkIterator<D>where
        D: Borrow<Descriptor<DescriptorPublicKey>>,
    "]], "bdk_coin_select":[["impl<'c, 'f, S: Ord + Copy + Display> Iterator for BnbIter<'c, 'f, S>"]], -"bdk_file_store":[["impl<'t, T> Iterator for EntryIter<'t, T>where
        T: DeserializeOwned,
    "]] +"bdk_file_store":[["impl<'t, T> Iterator for EntryIter<'t, T>where
        T: 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/core/marker/trait.StructuralEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js index f1871f5ad7..1498cc78ea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl StructuralEq for PkOrF"],["impl StructuralEq for SatisfiableItem"],["impl StructuralEq for Satisfaction"],["impl StructuralEq for Policy"],["impl StructuralEq for Condition"],["impl StructuralEq for PolicyError"],["impl StructuralEq for ScriptContextEnum"],["impl StructuralEq for KeychainKind"],["impl StructuralEq for LocalUtxo"],["impl StructuralEq for WeightedUtxo"],["impl StructuralEq for Utxo"],["impl StructuralEq for TransactionDetails"],["impl StructuralEq for SignerId"],["impl StructuralEq for SignerError"],["impl StructuralEq for SignerContext"],["impl StructuralEq for SignerOrdering"],["impl StructuralEq for TapLeavesOptions"],["impl StructuralEq for TxOrdering"],["impl StructuralEq for ChangeSpendPolicy"],["impl StructuralEq for AddressInfo"]], +"bdk":[["impl StructuralEq for PkOrF"],["impl StructuralEq for SatisfiableItem"],["impl StructuralEq for Satisfaction"],["impl StructuralEq for Policy"],["impl StructuralEq for Condition"],["impl StructuralEq for PolicyError"],["impl StructuralEq for ScriptContextEnum"],["impl StructuralEq for KeychainKind"],["impl StructuralEq for LocalUtxo"],["impl StructuralEq for WeightedUtxo"],["impl StructuralEq for Utxo"],["impl StructuralEq for TransactionDetails"],["impl StructuralEq for SignerId"],["impl StructuralEq for SignerContext"],["impl StructuralEq for SignerOrdering"],["impl StructuralEq for TapLeavesOptions"],["impl StructuralEq for TxOrdering"],["impl StructuralEq for ChangeSpendPolicy"],["impl StructuralEq for AddressInfo"]], "bdk_chain":[["impl<A> StructuralEq for ChainPosition<A>"],["impl StructuralEq for ConfirmationTime"],["impl StructuralEq for BlockId"],["impl StructuralEq for ConfirmationHeightAnchor"],["impl StructuralEq for ConfirmationTimeAnchor"],["impl<A> StructuralEq for FullTxOut<A>"],["impl StructuralEq for Balance"],["impl<'a, T, A> StructuralEq for TxNode<'a, T, A>"],["impl<'a, T, A> StructuralEq for CanonicalTx<'a, T, A>"]], "bdk_coin_select":[["impl StructuralEq for SelectionConstraint"],["impl StructuralEq for ExcessStrategyKind"]], "example_cli":[["impl StructuralEq for Keychain"]] diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js index c7b5d9eb61..30121cfcea 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl StructuralPartialEq for PkOrF"],["impl StructuralPartialEq for SatisfiableItem"],["impl StructuralPartialEq for Satisfaction"],["impl StructuralPartialEq for Policy"],["impl StructuralPartialEq for Condition"],["impl StructuralPartialEq for PolicyError"],["impl StructuralPartialEq for ScriptContextEnum"],["impl StructuralPartialEq for KeychainKind"],["impl StructuralPartialEq for FeeRate"],["impl StructuralPartialEq for LocalUtxo"],["impl StructuralPartialEq for WeightedUtxo"],["impl StructuralPartialEq for Utxo"],["impl StructuralPartialEq for TransactionDetails"],["impl StructuralPartialEq for SignerId"],["impl StructuralPartialEq for SignerError"],["impl StructuralPartialEq for SignerContext"],["impl StructuralPartialEq for SignerOrdering"],["impl StructuralPartialEq for TapLeavesOptions"],["impl StructuralPartialEq for TxOrdering"],["impl StructuralPartialEq for ChangeSpendPolicy"],["impl StructuralPartialEq for AddressInfo"]], +"bdk":[["impl StructuralPartialEq for PkOrF"],["impl StructuralPartialEq for SatisfiableItem"],["impl StructuralPartialEq for Satisfaction"],["impl StructuralPartialEq for Policy"],["impl StructuralPartialEq for Condition"],["impl StructuralPartialEq for PolicyError"],["impl StructuralPartialEq for ScriptContextEnum"],["impl StructuralPartialEq for KeychainKind"],["impl StructuralPartialEq for FeeRate"],["impl StructuralPartialEq for LocalUtxo"],["impl StructuralPartialEq for WeightedUtxo"],["impl StructuralPartialEq for Utxo"],["impl StructuralPartialEq for TransactionDetails"],["impl StructuralPartialEq for SignerId"],["impl StructuralPartialEq for SignerContext"],["impl StructuralPartialEq for SignerOrdering"],["impl StructuralPartialEq for TapLeavesOptions"],["impl StructuralPartialEq for TxOrdering"],["impl StructuralPartialEq for ChangeSpendPolicy"],["impl StructuralPartialEq for AddressInfo"]], "bdk_chain":[["impl<A> StructuralPartialEq for ChainPosition<A>"],["impl StructuralPartialEq for ConfirmationTime"],["impl StructuralPartialEq for BlockId"],["impl StructuralPartialEq for ConfirmationHeightAnchor"],["impl StructuralPartialEq for ConfirmationTimeAnchor"],["impl<A> StructuralPartialEq for FullTxOut<A>"],["impl<A, IA> StructuralPartialEq for IndexedAdditions<A, IA>"],["impl<K> StructuralPartialEq for DerivationAdditions<K>"],["impl<K, A> StructuralPartialEq for LocalChangeSet<K, A>"],["impl StructuralPartialEq for Balance"],["impl StructuralPartialEq for InsertBlockError"],["impl StructuralPartialEq for CannotConnectError"],["impl<A> StructuralPartialEq for TxGraph<A>"],["impl<'a, T, A> StructuralPartialEq for TxNode<'a, T, A>"],["impl<'a, T, A> StructuralPartialEq for CanonicalTx<'a, T, A>"],["impl<A> StructuralPartialEq for Additions<A>"]], "bdk_coin_select":[["impl StructuralPartialEq for SelectionConstraint"],["impl StructuralPartialEq for ExcessStrategyKind"]], "example_cli":[["impl StructuralPartialEq for Keychain"]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 6b8265133f..d168d53b55 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl RefUnwindSafe for Error",1,["bdk::error::Error"]],["impl RefUnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl RefUnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl RefUnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl RefUnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl RefUnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl RefUnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl RefUnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> RefUnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> RefUnwindSafe for P2Pkh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> RefUnwindSafe for P2Wpkh_P2Sh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> RefUnwindSafe for P2Wpkh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> RefUnwindSafe for P2TR<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2TR"]],["impl<K> RefUnwindSafe for Bip44<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip44"]],["impl<K> RefUnwindSafe for Bip44Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> RefUnwindSafe for Bip49<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip49"]],["impl<K> RefUnwindSafe for Bip49Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> RefUnwindSafe for Bip84<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip84"]],["impl<K> RefUnwindSafe for Bip84Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> RefUnwindSafe for Bip86<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip86"]],["impl<K> RefUnwindSafe for Bip86Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> RefUnwindSafe for DescriptorKey<Ctx>where
        Ctx: RefUnwindSafe,
    ",1,["bdk::keys::DescriptorKey"]],["impl RefUnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>where
        Ctx: RefUnwindSafe,
    ",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> RefUnwindSafe for GeneratedKey<K, Ctx>where
        Ctx: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk::keys::GeneratedKey"]],["impl RefUnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl RefUnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl RefUnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl RefUnwindSafe for FeeRate",1,["bdk::types::FeeRate"]],["impl RefUnwindSafe for LocalUtxo",1,["bdk::types::LocalUtxo"]],["impl RefUnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl RefUnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl RefUnwindSafe for TransactionDetails",1,["bdk::types::TransactionDetails"]],["impl RefUnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl RefUnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl RefUnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl RefUnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl RefUnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl RefUnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl RefUnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl RefUnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl RefUnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> RefUnwindSafe for SignerWrapper<S>where
        S: RefUnwindSafe,
    ",1,["bdk::wallet::signer::SignerWrapper"]],["impl RefUnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !RefUnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl RefUnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl RefUnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl RefUnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl RefUnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, D, Cs, Ctx> !RefUnwindSafe for TxBuilder<'a, D, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl RefUnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl RefUnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl<D = ()> !RefUnwindSafe for Wallet<D>",1,["bdk::wallet::Wallet"]],["impl RefUnwindSafe for AddressIndex",1,["bdk::wallet::AddressIndex"]],["impl RefUnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl<P> RefUnwindSafe for NewError<P>where
        P: RefUnwindSafe,
    ",1,["bdk::wallet::NewError"]],["impl RefUnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]]], +"bdk":[["impl !RefUnwindSafe for Error",1,["bdk::error::Error"]],["impl RefUnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl RefUnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl RefUnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl RefUnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl RefUnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl RefUnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl RefUnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> RefUnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> RefUnwindSafe for P2Pkh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> RefUnwindSafe for P2Wpkh_P2Sh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> RefUnwindSafe for P2Wpkh<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> RefUnwindSafe for P2TR<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::P2TR"]],["impl<K> RefUnwindSafe for Bip44<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip44"]],["impl<K> RefUnwindSafe for Bip44Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> RefUnwindSafe for Bip49<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip49"]],["impl<K> RefUnwindSafe for Bip49Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> RefUnwindSafe for Bip84<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip84"]],["impl<K> RefUnwindSafe for Bip84Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> RefUnwindSafe for Bip86<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip86"]],["impl<K> RefUnwindSafe for Bip86Public<K>where
        K: RefUnwindSafe,
    ",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> RefUnwindSafe for DescriptorKey<Ctx>where
        Ctx: RefUnwindSafe,
    ",1,["bdk::keys::DescriptorKey"]],["impl RefUnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> RefUnwindSafe for ExtendedKey<Ctx>where
        Ctx: RefUnwindSafe,
    ",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> RefUnwindSafe for GeneratedKey<K, Ctx>where
        Ctx: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk::keys::GeneratedKey"]],["impl RefUnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl RefUnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl RefUnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl RefUnwindSafe for FeeRate",1,["bdk::types::FeeRate"]],["impl RefUnwindSafe for LocalUtxo",1,["bdk::types::LocalUtxo"]],["impl RefUnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl RefUnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl RefUnwindSafe for TransactionDetails",1,["bdk::types::TransactionDetails"]],["impl RefUnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl RefUnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl RefUnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl RefUnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl RefUnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl RefUnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl RefUnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl RefUnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl RefUnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> RefUnwindSafe for SignerWrapper<S>where
        S: RefUnwindSafe,
    ",1,["bdk::wallet::signer::SignerWrapper"]],["impl RefUnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !RefUnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl RefUnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl RefUnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl RefUnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl RefUnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, D, Cs, Ctx> !RefUnwindSafe for TxBuilder<'a, D, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl RefUnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl RefUnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl<D = ()> !RefUnwindSafe for Wallet<D>",1,["bdk::wallet::Wallet"]],["impl RefUnwindSafe for AddressIndex",1,["bdk::wallet::AddressIndex"]],["impl RefUnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl<P> RefUnwindSafe for NewError<P>where
        P: RefUnwindSafe,
    ",1,["bdk::wallet::NewError"]],["impl RefUnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]]], "bdk_chain":[["impl<I> RefUnwindSafe for SpkTxOutIndex<I>where
        I: RefUnwindSafe,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> RefUnwindSafe for ChainPosition<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl RefUnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl RefUnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl RefUnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl RefUnwindSafe for ConfirmationTimeAnchor",1,["bdk_chain::chain_data::ConfirmationTimeAnchor"]],["impl<A> RefUnwindSafe for FullTxOut<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> RefUnwindSafe for IndexedTxGraph<A, I>where
        A: RefUnwindSafe,
        I: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> RefUnwindSafe for IndexedAdditions<A, IA>where
        A: RefUnwindSafe,
        IA: RefUnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedAdditions"]],["impl<K> RefUnwindSafe for KeychainTxOutIndex<K>where
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> RefUnwindSafe for DerivationAdditions<K>where
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::DerivationAdditions"]],["impl<K, A> RefUnwindSafe for LocalUpdate<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::LocalUpdate"]],["impl<K, A> RefUnwindSafe for LocalChangeSet<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::LocalChangeSet"]],["impl RefUnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl RefUnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl RefUnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl RefUnwindSafe for Update",1,["bdk_chain::local_chain::Update"]],["impl RefUnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl RefUnwindSafe for InsertBlockError",1,["bdk_chain::local_chain::InsertBlockError"]],["impl RefUnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl<A> RefUnwindSafe for TxGraph<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> RefUnwindSafe for TxNode<'a, T, A>where
        A: RefUnwindSafe,
        T: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> RefUnwindSafe for CanonicalTx<'a, T, A>where
        A: RefUnwindSafe,
        T: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<A> RefUnwindSafe for Additions<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::Additions"]],["impl<'g, A, F> RefUnwindSafe for TxDescendants<'g, A, F>where
        A: RefUnwindSafe,
        F: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<B, C> RefUnwindSafe for Persist<B, C>where
        B: RefUnwindSafe,
        C: RefUnwindSafe,
    ",1,["bdk_chain::persist::Persist"]],["impl<D> RefUnwindSafe for SpkIterator<D>where
        D: RefUnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]]], "bdk_coin_select":[["impl RefUnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl RefUnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> RefUnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl RefUnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl RefUnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl RefUnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl RefUnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl RefUnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl RefUnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> RefUnwindSafe for Bnb<'c, S>where
        S: RefUnwindSafe,
    ",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !RefUnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl RefUnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]], "bdk_electrum":[["impl<K, A> RefUnwindSafe for ElectrumUpdate<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 31e824dafc..d92a04c363 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl UnwindSafe for Error",1,["bdk::error::Error"]],["impl UnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl UnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl UnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl UnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl UnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl UnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl UnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> UnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> UnwindSafe for P2Pkh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> UnwindSafe for P2Wpkh_P2Sh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> UnwindSafe for P2Wpkh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> UnwindSafe for P2TR<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2TR"]],["impl<K> UnwindSafe for Bip44<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip44"]],["impl<K> UnwindSafe for Bip44Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> UnwindSafe for Bip49<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip49"]],["impl<K> UnwindSafe for Bip49Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> UnwindSafe for Bip84<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip84"]],["impl<K> UnwindSafe for Bip84Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> UnwindSafe for Bip86<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip86"]],["impl<K> UnwindSafe for Bip86Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> UnwindSafe for DescriptorKey<Ctx>where
        Ctx: UnwindSafe,
    ",1,["bdk::keys::DescriptorKey"]],["impl UnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> UnwindSafe for ExtendedKey<Ctx>where
        Ctx: UnwindSafe,
    ",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> UnwindSafe for GeneratedKey<K, Ctx>where
        Ctx: UnwindSafe,
        K: UnwindSafe,
    ",1,["bdk::keys::GeneratedKey"]],["impl UnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl UnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl UnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl UnwindSafe for FeeRate",1,["bdk::types::FeeRate"]],["impl UnwindSafe for LocalUtxo",1,["bdk::types::LocalUtxo"]],["impl UnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl UnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl UnwindSafe for TransactionDetails",1,["bdk::types::TransactionDetails"]],["impl UnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl UnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl UnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl UnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl UnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl UnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl UnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl UnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl UnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> UnwindSafe for SignerWrapper<S>where
        S: UnwindSafe,
    ",1,["bdk::wallet::signer::SignerWrapper"]],["impl UnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !UnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl UnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl UnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl UnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl UnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, D, Cs, Ctx> !UnwindSafe for TxBuilder<'a, D, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl UnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl UnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl<D = ()> !UnwindSafe for Wallet<D>",1,["bdk::wallet::Wallet"]],["impl UnwindSafe for AddressIndex",1,["bdk::wallet::AddressIndex"]],["impl UnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl<P> UnwindSafe for NewError<P>where
        P: UnwindSafe,
    ",1,["bdk::wallet::NewError"]],["impl UnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]]], +"bdk":[["impl !UnwindSafe for Error",1,["bdk::error::Error"]],["impl UnwindSafe for Error",1,["bdk::descriptor::error::Error"]],["impl UnwindSafe for PkOrF",1,["bdk::descriptor::policy::PkOrF"]],["impl UnwindSafe for SatisfiableItem",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl UnwindSafe for Satisfaction",1,["bdk::descriptor::policy::Satisfaction"]],["impl UnwindSafe for Policy",1,["bdk::descriptor::policy::Policy"]],["impl UnwindSafe for Condition",1,["bdk::descriptor::policy::Condition"]],["impl UnwindSafe for PolicyError",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> UnwindSafe for BuildSatisfaction<'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> UnwindSafe for P2Pkh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> UnwindSafe for P2Wpkh_P2Sh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> UnwindSafe for P2Wpkh<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> UnwindSafe for P2TR<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::P2TR"]],["impl<K> UnwindSafe for Bip44<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip44"]],["impl<K> UnwindSafe for Bip44Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> UnwindSafe for Bip49<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip49"]],["impl<K> UnwindSafe for Bip49Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> UnwindSafe for Bip84<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip84"]],["impl<K> UnwindSafe for Bip84Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> UnwindSafe for Bip86<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip86"]],["impl<K> UnwindSafe for Bip86Public<K>where
        K: UnwindSafe,
    ",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> UnwindSafe for DescriptorKey<Ctx>where
        Ctx: UnwindSafe,
    ",1,["bdk::keys::DescriptorKey"]],["impl UnwindSafe for ScriptContextEnum",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> UnwindSafe for ExtendedKey<Ctx>where
        Ctx: UnwindSafe,
    ",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> UnwindSafe for GeneratedKey<K, Ctx>where
        Ctx: UnwindSafe,
        K: UnwindSafe,
    ",1,["bdk::keys::GeneratedKey"]],["impl UnwindSafe for PrivateKeyGenerateOptions",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl UnwindSafe for KeyError",1,["bdk::keys::KeyError"]],["impl UnwindSafe for KeychainKind",1,["bdk::types::KeychainKind"]],["impl UnwindSafe for FeeRate",1,["bdk::types::FeeRate"]],["impl UnwindSafe for LocalUtxo",1,["bdk::types::LocalUtxo"]],["impl UnwindSafe for WeightedUtxo",1,["bdk::types::WeightedUtxo"]],["impl UnwindSafe for Utxo",1,["bdk::types::Utxo"]],["impl UnwindSafe for TransactionDetails",1,["bdk::types::TransactionDetails"]],["impl UnwindSafe for Excess",1,["bdk::wallet::coin_selection::Excess"]],["impl UnwindSafe for CoinSelectionResult",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl UnwindSafe for LargestFirstCoinSelection",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl UnwindSafe for OldestFirstCoinSelection",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl UnwindSafe for BranchAndBoundCoinSelection",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl UnwindSafe for FullyNodedExport",1,["bdk::wallet::export::FullyNodedExport"]],["impl UnwindSafe for SignerId",1,["bdk::wallet::signer::SignerId"]],["impl UnwindSafe for SignerError",1,["bdk::wallet::signer::SignerError"]],["impl UnwindSafe for SignerContext",1,["bdk::wallet::signer::SignerContext"]],["impl<S> UnwindSafe for SignerWrapper<S>where
        S: UnwindSafe,
    ",1,["bdk::wallet::signer::SignerWrapper"]],["impl UnwindSafe for SignerOrdering",1,["bdk::wallet::signer::SignerOrdering"]],["impl !UnwindSafe for SignersContainer",1,["bdk::wallet::signer::SignersContainer"]],["impl UnwindSafe for SignOptions",1,["bdk::wallet::signer::SignOptions"]],["impl UnwindSafe for TapLeavesOptions",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl UnwindSafe for CreateTx",1,["bdk::wallet::tx_builder::CreateTx"]],["impl UnwindSafe for BumpFee",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, D, Cs, Ctx> !UnwindSafe for TxBuilder<'a, D, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl UnwindSafe for TxOrdering",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl UnwindSafe for ChangeSpendPolicy",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl<D = ()> !UnwindSafe for Wallet<D>",1,["bdk::wallet::Wallet"]],["impl UnwindSafe for AddressIndex",1,["bdk::wallet::AddressIndex"]],["impl UnwindSafe for AddressInfo",1,["bdk::wallet::AddressInfo"]],["impl<P> UnwindSafe for NewError<P>where
        P: UnwindSafe,
    ",1,["bdk::wallet::NewError"]],["impl UnwindSafe for InsertTxError",1,["bdk::wallet::InsertTxError"]]], "bdk_chain":[["impl<I> UnwindSafe for SpkTxOutIndex<I>where
        I: UnwindSafe + RefUnwindSafe,
    ",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> UnwindSafe for ChainPosition<A>where
        A: UnwindSafe,
    ",1,["bdk_chain::chain_data::ChainPosition"]],["impl UnwindSafe for ConfirmationTime",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl UnwindSafe for BlockId",1,["bdk_chain::chain_data::BlockId"]],["impl UnwindSafe for ConfirmationHeightAnchor",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl UnwindSafe for ConfirmationTimeAnchor",1,["bdk_chain::chain_data::ConfirmationTimeAnchor"]],["impl<A> UnwindSafe for FullTxOut<A>where
        A: UnwindSafe,
    ",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> UnwindSafe for IndexedTxGraph<A, I>where
        A: RefUnwindSafe,
        I: UnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> UnwindSafe for IndexedAdditions<A, IA>where
        A: RefUnwindSafe,
        IA: UnwindSafe,
    ",1,["bdk_chain::indexed_tx_graph::IndexedAdditions"]],["impl<K> UnwindSafe for KeychainTxOutIndex<K>where
        K: UnwindSafe + RefUnwindSafe,
    ",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl<K> UnwindSafe for DerivationAdditions<K>where
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::DerivationAdditions"]],["impl<K, A> UnwindSafe for LocalUpdate<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::LocalUpdate"]],["impl<K, A> UnwindSafe for LocalChangeSet<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_chain::keychain::LocalChangeSet"]],["impl UnwindSafe for Balance",1,["bdk_chain::keychain::Balance"]],["impl UnwindSafe for CheckPoint",1,["bdk_chain::local_chain::CheckPoint"]],["impl UnwindSafe for CheckPointIter",1,["bdk_chain::local_chain::CheckPointIter"]],["impl UnwindSafe for Update",1,["bdk_chain::local_chain::Update"]],["impl UnwindSafe for LocalChain",1,["bdk_chain::local_chain::LocalChain"]],["impl UnwindSafe for InsertBlockError",1,["bdk_chain::local_chain::InsertBlockError"]],["impl UnwindSafe for CannotConnectError",1,["bdk_chain::local_chain::CannotConnectError"]],["impl<A> UnwindSafe for TxGraph<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> UnwindSafe for TxNode<'a, T, A>where
        A: RefUnwindSafe,
        T: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> UnwindSafe for CanonicalTx<'a, T, A>where
        A: RefUnwindSafe,
        T: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl<A> UnwindSafe for Additions<A>where
        A: RefUnwindSafe,
    ",1,["bdk_chain::tx_graph::Additions"]],["impl<'g, A, F> UnwindSafe for TxDescendants<'g, A, F>where
        A: RefUnwindSafe,
        F: UnwindSafe,
    ",1,["bdk_chain::tx_graph::TxDescendants"]],["impl<B, C> UnwindSafe for Persist<B, C>where
        B: UnwindSafe,
        C: UnwindSafe,
    ",1,["bdk_chain::persist::Persist"]],["impl<D> UnwindSafe for SpkIterator<D>where
        D: UnwindSafe,
    ",1,["bdk_chain::spk_iter::SpkIterator"]]], "bdk_coin_select":[["impl UnwindSafe for WeightedValue",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl UnwindSafe for CoinSelectorOpt",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> UnwindSafe for CoinSelector<'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl UnwindSafe for SelectionError",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl UnwindSafe for SelectionConstraint",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl UnwindSafe for Selection",1,["bdk_coin_select::coin_selector::Selection"]],["impl UnwindSafe for ExcessStrategyKind",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl UnwindSafe for ExcessStrategy",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl UnwindSafe for BranchStrategy",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> UnwindSafe for Bnb<'c, S>where
        S: UnwindSafe,
    ",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !UnwindSafe for BnbIter<'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl UnwindSafe for BnbLimit",1,["bdk_coin_select::bnb::BnbLimit"]]], "bdk_electrum":[["impl<K, A> UnwindSafe for ElectrumUpdate<K, A>where
        A: RefUnwindSafe,
        K: RefUnwindSafe,
    ",1,["bdk_electrum::electrum_ext::ElectrumUpdate"]]], diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js index 5add507bd9..7d6e3f9609 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/de/trait.Deserialize.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl<'de> Deserialize<'de> for KeychainKind"],["impl<'de> Deserialize<'de> for LocalUtxo"],["impl<'de> Deserialize<'de> for TransactionDetails"],["impl<'de> Deserialize<'de> for FullyNodedExport"]], -"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationHeightAnchor"],["impl<'de> Deserialize<'de> for ConfirmationTimeAnchor"],["impl<'de, A, IA> Deserialize<'de> for IndexedAdditions<A, IA>where
        A: Ord + Deserialize<'de>,
        IA: Deserialize<'de>,
    "],["impl<'de, K> Deserialize<'de> for DerivationAdditions<K>where
        K: Ord + Deserialize<'de>,
    "],["impl<'de, K, A> Deserialize<'de> for LocalChangeSet<K, A>where
        K: Ord + Deserialize<'de>,
        A: Ord + Deserialize<'de>,
    "],["impl<'de> Deserialize<'de> for Balance"],["impl<'de, A> Deserialize<'de> for Additions<A>where
        A: Ord + Deserialize<'de>,
    "]], -"example_cli":[["impl<'de> Deserialize<'de> for Keychain"]] +"bdk":[["impl<'de> Deserialize<'de> for KeychainKind"],["impl<'de> Deserialize<'de> for LocalUtxo"],["impl<'de> Deserialize<'de> for TransactionDetails"],["impl<'de> Deserialize<'de> for FullyNodedExport"]], +"bdk_chain":[["impl<'de> Deserialize<'de> for ConfirmationTime"],["impl<'de> Deserialize<'de> for BlockId"],["impl<'de> Deserialize<'de> for ConfirmationHeightAnchor"],["impl<'de> Deserialize<'de> for ConfirmationTimeAnchor"],["impl<'de, A, IA> Deserialize<'de> for IndexedAdditions<A, IA>where
        A: Ord + Deserialize<'de>,
        IA: Deserialize<'de>,
    "],["impl<'de, K> Deserialize<'de> for DerivationAdditions<K>where
        K: Ord + Deserialize<'de>,
    "],["impl<'de, K, A> Deserialize<'de> for LocalChangeSet<K, A>where
        K: Ord + Deserialize<'de>,
        A: Ord + Deserialize<'de>,
    "],["impl<'de> Deserialize<'de> for Balance"],["impl<'de, A> Deserialize<'de> for Additions<A>where
        A: Ord + Deserialize<'de>,
    "]], +"example_cli":[["impl<'de> Deserialize<'de> for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js index 6b1c263c5b..9dfdb70b3e 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/implementors/serde/ser/trait.Serialize.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"bdk":[["impl Serialize for PkOrF"],["impl Serialize for SatisfiableItem"],["impl Serialize for Satisfaction"],["impl Serialize for Policy"],["impl Serialize for Condition"],["impl Serialize for KeychainKind"],["impl Serialize for LocalUtxo"],["impl Serialize for TransactionDetails"],["impl Serialize for FullyNodedExport"]], -"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationHeightAnchor"],["impl Serialize for ConfirmationTimeAnchor"],["impl<A, IA> Serialize for IndexedAdditions<A, IA>where
        A: Ord + Serialize,
        IA: Serialize,
    "],["impl<K> Serialize for DerivationAdditions<K>where
        K: Ord + Serialize,
    "],["impl<K, A> Serialize for LocalChangeSet<K, A>where
        K: Ord + Serialize,
        A: Ord + Serialize,
    "],["impl Serialize for Balance"],["impl<A> Serialize for Additions<A>where
        A: Ord + Serialize,
    "]], -"example_cli":[["impl Serialize for Keychain"]] +"bdk":[["impl Serialize for PkOrF"],["impl Serialize for SatisfiableItem"],["impl Serialize for Satisfaction"],["impl Serialize for Policy"],["impl Serialize for Condition"],["impl Serialize for KeychainKind"],["impl Serialize for LocalUtxo"],["impl Serialize for TransactionDetails"],["impl Serialize for FullyNodedExport"]], +"bdk_chain":[["impl Serialize for ConfirmationTime"],["impl Serialize for BlockId"],["impl Serialize for ConfirmationHeightAnchor"],["impl Serialize for ConfirmationTimeAnchor"],["impl<A, IA> Serialize for IndexedAdditions<A, IA>where
        A: Ord + Serialize,
        IA: Serialize,
    "],["impl<K> Serialize for DerivationAdditions<K>where
        K: Ord + Serialize,
    "],["impl<K, A> Serialize for LocalChangeSet<K, A>where
        K: Ord + Serialize,
        A: Ord + Serialize,
    "],["impl Serialize for Balance"],["impl<A> Serialize for Additions<A>where
        A: Ord + Serialize,
    "]], +"example_cli":[["impl Serialize for Keychain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/search-index.js index 4efdfde859..fb32a82329 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,11 +1,11 @@ var searchIndex = JSON.parse('{\ -"bdk":{"doc":"bdk","t":[13,13,13,13,13,4,13,3,13,13,13,13,13,2,13,13,13,13,13,13,4,13,3,13,13,13,13,13,13,13,2,13,13,13,3,13,2,13,4,8,2,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,0,14,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,11,11,11,0,12,11,12,12,11,11,11,2,11,2,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,10,5,11,11,11,11,11,11,11,0,11,12,12,12,12,12,12,13,6,4,2,4,3,6,8,13,6,8,16,6,4,3,13,13,2,8,4,13,13,6,13,13,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,5,5,5,5,13,13,4,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,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,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,4,3,3,6,13,13,4,8,13,13,4,13,13,6,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,12,11,11,11,11,11,11,5,12,12,3,13,8,3,6,4,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,13,3,13,13,4,3,13,13,3,8,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bip32","BnBNoExactMatch","BnBTotalTriesExceeded","ChecksumMismatch","Descriptor","Error","External","FeeRate","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","Foreign","Generic","HdKeyPaths","InsufficientFunds","Internal","InvalidOutpoint","InvalidPolicyPathError","IrreplaceableTransaction","Key","KeychainKind","Local","LocalUtxo","Miniscript","MiniscriptPsbt","MissingKeyOrigin","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","Psbt","SignOptions","Signer","SpendingPolicyRequired","TransactionConfirmed","TransactionDetails","TransactionNotFound","TxBuilder","UnknownUtxo","Utxo","Vbytes","Wallet","WeightedUtxo","as_byte","as_ref","as_sat_per_vb","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","check_base32","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","confirmation_time","confirmation_time","default","default_min_relay_fee","derivation_index","descriptor","descriptor","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","fee","fee_vb","fee_wu","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fragment","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_btc_per_kvb","from_sat_per_kvb","from_sat_per_kwu","from_sat_per_vb","from_vb","from_wu","hash","hash","into","into","into","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","partial_cmp","partial_cmp","provide","psbt","received","sat_per_kwu","satisfaction_weight","sent","serialize","serialize","serialize","signer","sub","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txid","txout","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","utxo","vbytes","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet","write_base32","available","needed","required","required","outpoint","psbt_input","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","DescriptorXKey","ExtendedDescriptor","ExtractPolicy","Hardened","HdKeyPaths","IntoWalletDescriptor","Key","KeyMap","Legacy","Miniscript","None","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Unhardened","Wildcard","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","contains_raw_pkh","derivation_path","derive","derived_descriptor","derived_descriptor","desc_type","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from_ast","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","hash","hash","into","into","into","into","into","into","into_inner","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_non_malleable","iter","iter_pk","lift","lift","lift_check","matches","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","origin","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","vzip","vzip","wildcard","within_resource_limits","xkey","calc_checksum","calc_checksum_bytes","get_checksum","get_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","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","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","encode","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressIndex","AddressInfo","Balance","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","InsertTxError","IsDust","LastUnused","New","NewError","Peek","Persist","Update","Wallet","add","add_signer","address","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","cancel_tx","checkpoints","clone","clone_into","coin_selection","commit","confirmed","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","immature","index","insert_checkpoint","insert_tx","into","into","into","into","into","into","is_dust","is_mine","keychain","keychains","latest_checkpoint","list_unspent","local_chain","network","new","new_no_persist","next_derivation_index","policies","provide","public_descriptor","secp_ctx","serialize","sign","signer","spk_index","spks_of_all_keychains","spks_of_keychain","staged","to_owned","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","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","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","tip_height","tx_height","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Excess","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","amount","change_fee","dust_threshold","fee","remaining_amount","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","Untouched","add_data","add_foreign_utxo","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Error","","","","bdk::Utxo","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::InsertTxError","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["BIP32 error","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Descriptor checksum mismatch","Error related to the parsing and usage of descriptors","Errors that can be thrown by the Wallet","External keychain, used for deriving recipient addresses.","Fee rate","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","A UTXO owned by another wallet.","Generic error","","Wallet’s UTXO set is not enough to cover recipient’s …","Internal keychain, used for deriving change addresses.","Requested outpoint doesn’t exist in the tx (vout greater …","Error while extracting and manipulating policies","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Error while working with keys","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","Miniscript error","Miniscript PSBT error","In order to use the TxBuilder::add_global_xpubs option …","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Partially signed bitcoin transaction error","","Signing error","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","A wallet transaction","Thrown when a tx is not found in the internal database","","Happens when trying to spend an UTXO that is not in the …","An unspent transaction output (UTXO).","Trait implemented by types that can be used to measure …","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","Return the value as satoshi/vbyte","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","If the transaction is confirmed, contains height and Unix …","","Create a new FeeRate with the default min relay fee value","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","Fee value in sats if it was available.","Calculate absolute fee in Satoshis using size in virtual …","Calculate absolute fee in Satoshis using size in weight …","","","","","","","","","Macro to write descriptor fragments with code","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Calculate fee rate from fee and vbytes.","Calculate fee rate from fee and weight units (wu).","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","","","","Additional functions on the rust-bitcoin …","Received value (sats) Sum of owned outputs of this …","Return the value as satoshi/kwu","The weight of the witness data and scriptSig expressed in …","Sent value (sats) Sum of owned inputs of this transaction.","","","","","","","","","","","","","","Optional transaction","","","","","","","","","","","","","","","Transaction id","Get the TxOut of the UTXO","Transaction output","","","","","","","","The UTXO","Convert weight units to virtual bytes.","Get the version of BDK at runtime","","","","","","","","Wallet","","Sats available for spending","Sats needed for some transaction","Required fee rate (satoshi/vbyte)","Required fee absolute value (satoshi)","The location of the output.","The information about the input we require to add it to a …","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","An extended key with origin, derivation path, and wildcard.","Alias for a Descriptor that can contain extended keys …","Trait implemented on Descriptors to add a method to …","Unhardened wildcard, e.g. *h","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Alias type for a map of public key to secret key","Legacy ScriptContext To be used as P2SH scripts For …","Top-level script AST type","No wildcard","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Unhardened wildcard, e.g. *","Whether a descriptor has a wildcard in it","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner AstElem representing the root …","Replaces all wildcards (i.e. /*) in the descriptor with a …","","","","","","","","","","","","","Enumerates all child nodes of the current AST node (self) …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","The derivation path","Deprecated name for [at_derivation_index].","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","Encode as a Bitcoin script","","","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending policy","","","Utility method for deriving the descriptor at each index …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns Option::Some with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. /*.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extracts the AstElem representing the root of the …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds conversion of miniscript into Policy […","Compares this key with a keysource and returns the …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold k …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from Pk. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the Abstract Syntax Tree(","Origin information","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","","","Get the len of public key when serialized based on context …","","","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the scriptCode of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Descriptor templates","","","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","","","","","The correctness and malleability type information for the …","","","","","","","Computes the scriptSig that will be in place for an …","","","","","","","Whether the descriptor is wildcard","Whether the miniscript can exceed the resource …","The extended key","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Compute the checksum of a descriptor","Compute the checksum bytes of a descriptor","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","Key-related error","Error while extracting and manipulating policies","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","Absolute timeclock timestamp","Can not add to an item that is Satisfaction::None or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of Condition items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of Condition items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate satisfaction field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like Psbt variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the SatisfiableItem","Identifier for this policy node","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the SatisfiableItem is a leaf item","Returns whether the Satisfaction is a leaf item","Returns true if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to pkh(key/44'/{0,1}'/0'/{0,1}/*)","BIP44 public template. Expands to pkh(key/{0,1}/*)","BIP49 template. Expands to …","BIP49 public template. Expands to sh(wpkh(key/{0,1}/*))","BIP84 template. Expands to wpkh(key/84'/{0,1}'/0'/{0,1}/*)","BIP84 public template. Expands to wpkh(key/{0,1}/*)","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","Extra options required by the generate_with_entropy","A private extended key, aka an xprv","Options for generating a PrivateKey","A public extended key, aka an xpub","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid ScriptContexts","Segwitv0 scripts","Single public key.","Single private key.","A descriptor bitcoin::PrivateKey with optional origin …","A descriptor SinglePubKey with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the ScriptContext as a ScriptContextEnum","Replaces any wildcard (i.e. /*) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name of [at_derivation_index].","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Turn the key into a DescriptorKey within the requested …","Consume self and turn it into a DescriptorKey by adding …","","","","","","Consume self and turn it into an ExtendedKey","","","Consumes self and returns the key","Transform the ExtendedKey into an ExtendedPrivKey for the …","Transform the ExtendedKey into an ExtendedPubKey for the …","Whether or not the key has a wildcard","Returns whether the script context is Legacy","Returns whether the script context is …","Returns whether the script context is Segwitv0","Returns whether the script context is …","Returns whether the script context is Tap, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of SortedMultiVec given a list of …","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the TxOut for the specified input index, if it doesn’…","The address index selection strategy to use to derived an …","A derived address and the index it was found at. For …","Balance, differentiated into various categories.","The changeset produced internally by Wallet when mutated.","The error variant that occurs when the caller attempts to …","There was problem with the descriptors passed in","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 …","Return a new address after incrementing the current …","Error returned from Wallet::new","Return the address for a specific descriptor index. Does …","We were unable to load the wallet’s data from the …","The update to a Wallet used in Wallet::apply_update. This …","A Bitcoin wallet","","Add an external signer","Address","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Informs the wallet that you no longer intend to broadcast …","Get all the checkpoints the wallet is currently storing …","","","Coin selection","Commits all curently staged changed to the persistence …","Confirmed and immediately spendable balance","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return a derived address using the external descriptor, …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Return a derived address using the internal (change) …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Return a single transactions made and received by the …","Returns the utxo owned by this wallet corresponding to …","All coinbase outputs not yet matured","Child index of this address","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Returns the latest checkpoint.","Return the list of unspent outputs of this wallet","Get a reference to the inner LocalChain.","Get the Bitcoin network the wallet is using.","Create a wallet from a descriptor (and an optional …","Creates a wallet that does not persist data.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns a iterators of all the script pubkeys for the …","Gets an iterator over all the script pubkeys in a single …","Returns the changes that will be staged with the next call …","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","Unconfirmed UTXOs received from an external wallet","","","","","","","Deterministically generate a unique name given the …","The internal chain’s tip height.","The introduced transaction’s confirmation height.","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Remaining amount after performing coin selection","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper structure to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Sign a single psbt input","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee 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.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","",""],"i":[17,17,17,17,17,0,1,0,17,17,17,12,17,0,17,1,17,17,17,17,0,12,0,17,17,17,17,17,17,17,0,17,17,17,0,17,0,17,0,0,0,0,1,1,3,1,17,1,3,10,11,12,13,17,1,3,10,11,12,13,0,1,1,3,10,11,12,13,1,3,10,11,12,13,1,13,10,13,3,3,10,0,0,1,10,13,1,3,10,11,12,13,13,3,3,17,17,1,3,10,11,12,13,0,17,17,17,17,17,17,17,17,1,3,10,11,12,13,3,3,3,3,3,3,1,10,17,1,3,10,11,12,13,10,10,0,12,10,1,3,13,17,0,13,3,11,13,1,10,13,0,3,0,1,3,10,11,12,13,17,13,17,1,3,10,11,12,13,17,1,3,10,11,12,13,13,12,10,17,1,3,10,11,12,13,11,174,0,17,1,3,10,11,12,13,0,1,175,175,176,177,178,178,34,0,0,0,0,0,0,0,45,0,0,58,0,0,0,45,34,0,0,0,34,40,0,34,45,0,34,34,40,34,46,47,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,0,58,46,47,58,47,58,58,46,47,58,46,47,58,58,46,47,58,46,47,0,44,45,34,46,47,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,34,34,34,34,34,38,34,38,44,45,34,46,47,38,0,34,38,38,179,34,38,34,44,45,34,34,46,47,38,38,34,38,44,45,34,34,34,34,34,34,34,46,47,38,38,34,38,38,38,34,38,38,38,34,34,38,38,34,44,45,34,46,47,38,44,45,34,46,47,38,38,149,68,34,38,38,38,34,38,38,44,58,46,47,38,34,38,58,46,47,34,34,34,34,34,34,34,34,34,34,34,34,34,34,38,44,58,38,34,38,38,44,45,34,46,47,38,58,46,47,0,38,34,38,34,38,38,34,34,38,34,38,58,46,47,0,44,45,34,46,47,38,34,38,34,58,58,34,38,44,45,34,46,47,38,44,45,34,46,47,38,38,44,45,34,46,47,38,34,44,45,34,46,47,38,44,38,44,0,0,0,0,22,22,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,83,26,26,0,84,0,0,83,82,0,83,83,26,26,26,83,84,56,26,84,84,0,0,0,56,56,82,83,83,0,0,83,83,83,82,82,83,84,57,85,26,56,82,83,84,57,85,26,56,82,83,84,57,85,56,82,83,84,57,85,56,57,85,85,82,83,84,57,85,26,82,83,84,57,85,26,26,56,82,83,84,84,57,57,85,26,56,57,82,85,83,57,82,83,84,57,85,26,56,83,84,85,57,85,26,57,57,82,83,84,57,85,85,82,83,84,57,85,56,26,82,83,84,57,85,26,56,82,83,84,57,85,26,56,82,83,84,57,85,26,56,82,83,84,57,85,26,56,180,180,180,181,182,183,182,183,182,183,182,183,182,183,184,185,186,187,188,189,189,188,190,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,192,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,87,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,20,0,0,0,0,193,193,0,0,109,0,0,0,0,20,20,20,58,0,0,37,20,20,193,115,0,115,0,0,37,40,112,0,0,0,0,37,0,109,112,40,0,194,40,115,105,111,37,106,20,107,40,112,108,113,109,115,105,111,37,106,20,107,40,112,108,113,109,58,58,58,58,58,58,58,58,105,37,106,107,40,108,109,105,37,106,107,40,108,109,107,40,108,109,106,106,105,40,107,37,107,40,108,109,111,37,106,20,20,107,107,40,40,112,112,108,113,109,107,115,115,115,105,111,37,106,20,20,20,107,40,40,112,108,113,109,111,111,40,112,107,40,193,195,193,195,115,40,107,40,108,109,115,105,111,37,106,20,107,40,112,108,113,109,88,94,105,105,111,40,112,94,115,105,105,115,115,40,194,37,194,37,194,37,40,40,107,108,113,107,0,40,58,107,107,0,58,107,108,113,58,111,107,40,108,109,58,107,20,107,107,107,58,107,0,105,37,106,107,40,108,109,112,20,107,40,112,58,58,107,115,105,111,37,106,20,107,40,112,108,113,109,115,105,111,37,106,20,107,40,112,108,113,109,115,105,111,37,106,20,107,40,112,108,113,109,115,105,111,37,106,20,107,40,112,108,113,109,0,196,196,196,0,0,0,0,140,139,0,0,138,138,0,138,139,0,0,120,121,135,121,121,120,121,138,135,139,140,120,121,138,135,139,140,121,121,121,121,120,120,0,121,120,120,135,121,121,121,120,120,135,0,121,120,120,121,138,135,135,139,139,140,120,121,138,135,139,140,121,121,121,121,121,121,121,121,120,135,121,121,120,121,138,135,139,140,197,121,135,121,121,121,121,121,121,121,121,121,139,121,121,120,121,0,121,121,121,121,120,120,135,139,120,121,120,120,120,121,138,135,139,140,120,121,138,135,139,140,0,121,120,121,138,135,139,140,120,120,121,138,135,139,140,0,198,198,0,156,0,0,0,0,0,156,0,156,155,152,153,154,156,155,152,153,154,152,153,154,152,153,154,167,152,153,154,0,152,153,154,155,155,156,155,152,153,154,156,155,152,153,154,156,155,152,153,154,155,154,155,155,152,153,154,156,155,152,153,154,156,155,152,153,154,156,155,152,153,154,156,155,152,153,154,199,200,200,199,200,0,0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,163,158,163,158,163,25,0,25,25,25,160,25,25,25,25,25,25,163,158,160,25,0,0,0,0,0,0,0,0,160,0,0,25,55,137,137,55,137,158,25,160,162,122,55,137,163,158,25,160,162,122,55,137,163,55,158,25,160,162,122,55,137,163,158,25,160,162,122,55,137,163,158,122,122,55,137,163,162,201,162,162,158,25,160,122,163,55,158,25,25,160,162,122,55,137,163,158,158,158,25,25,160,162,122,55,137,163,158,201,162,162,55,158,25,160,162,122,55,137,163,162,55,158,122,25,55,137,202,162,162,123,162,137,55,137,158,25,160,162,122,55,137,163,25,137,137,158,25,160,162,122,55,137,163,158,25,160,162,122,55,137,163,158,25,160,162,122,55,137,163,158,25,160,162,122,55,137,163,203,170,0,169,169,0,0,169,170,0,0,0,170,131,131,131,131,131,131,131,131,131,132,130,131,170,169,132,130,131,170,169,131,132,130,131,170,169,132,130,131,170,169,170,169,131,131,132,130,170,169,131,131,131,131,131,170,169,131,131,131,132,130,131,170,169,132,130,131,170,169,170,169,131,132,130,131,170,169,131,131,131,131,131,170,169,131,131,131,170,132,130,131,170,169,132,130,131,170,169,132,130,131,170,169,132,130,131,170,169,131,131,132,130,131,170,169],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[3,4],[[],5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[9,[[8,[6,7]]]]]],[1,1],[3,3],[10,10],[11,11],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[1,1],14],[[13,13],14],0,0,[[],3],[[],3],0,0,0,[[],[[9,[1]]]],[[],[[9,[10]]]],[[],[[9,[13]]]],[[1,1],15],[[3,3],15],[[10,10],15],[[11,11],15],[[12,12],15],[[13,13],15],0,[[3,5],16],[[3,5],16],[[17,18],19],[[17,18],19],[[1,18],19],[[3,18],19],[[10,18],19],[[11,18],19],[[12,18],19],[[13,18],19],0,[20,17],[21,17],[22,17],[23,17],[24,17],[25,17],[[]],[26,17],[[]],[[]],[[]],[[]],[[]],[[]],[4,3],[4,3],[4,3],[4,3],[[16,5],3],[[16,5],3],[1],[10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[12,27],0,[[1,1],[[28,[14]]]],[[3,3],[[28,[14]]]],[[13,13],[[28,[14]]]],[29],0,0,[3,4],0,0,[1,9],[10,9],[13,9],0,[[3,3]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[12,31],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[],5],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],9],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[34,35],[[9,[36,21]]]],[[],37],[[],37],[38,39],[[[34,[40]],41],[[34,[42]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[8,[38,7]]]],0,[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],[[],[[9,[43]]]],0,[44,44],[45,45],[34,34],[46,46],[47,47],[38,38],[[]],[[]],[[]],[[]],[[]],[[]],[[44,44],14],[[45,45],14],[[34,34],14],[[46,46],14],[[47,47],14],[[38,38],14],[38,15],0,[[[34,[40]],41],[[34,[42]]]],[[[34,[42]],48],[[9,[[34,[49]],50]]]],[[[34,[40]],48,41],[[9,[[34,[49]],50]]]],[34,51],[[],[[9,[34]]]],[[],[[9,[38]]]],[[[34,[40]]],16],[38,52],[[44,44],15],[[45,45],15],[[34,34],15],[[46,46],15],[[47,47],15],[[38,38],15],0,[34,[[9,[52,21]]]],0,[[38,53],[[9,[54]]]],[[55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],55,56,48],[[9,[[28,[57]],22]]]],[[[38,[40,58]],55,56,48],[[9,[[28,[57]],22]]]],[[[34,[40]],48,52,[59,[41]]],[[9,[28,50]]]],[[44,18],[[9,[60]]]],[[45,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[34,18],[[9,[60]]]],[[46,18],[[9,[60]]]],[[47,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[[38,18],[[9,[60]]]],[34,15],[38,15],[[]],[[]],[61,34],[62,34],[63,34],[64,34],[65,34],[66,34],[[]],[[]],[[]],[[]],[39,[[9,[38,21]]]],[33,[[9,[34,21]]]],[33,[[9,[38,21]]]],[[33,53],[[9,[38,21]]]],[33,[[9,[38,21]]]],[67,[[9,[34,21]]]],[67,[[9,[38,21]]]],[[38,5],[[28,[38]]]],[[38,5],28],[34,[[9,[21]]]],[34,[[9,[21]]]],[38,15],[38,15],[[[34,[40]]],15],[44],[45],[34],[46],[47],[38],[[]],[[]],[[]],[[]],[[]],[[]],[38,39],[[48,35],[[9,[22]]]],[[68,48,35],[[9,[22]]]],[[[34,[40]]],15],[38,15],[38,69],[38,70],[34,[[9,[71,21]]]],[38,[[9,[71,21]]]],[38,[[9,[72]]]],[[44,48],[[28,[73]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[28,[5]]]],[38,[[9,[5,21]]]],[34,[[9,[5,21]]]],[38,[[9,[5,21]]]],[[],33],[[],33],[[],33],[[[38,[74]]],[[9,[34,21]]]],[[],34],[[],34],[[[38,[46]]],[[9,[34,21]]]],[[5,[8,[7]]],[[9,[34,21]]]],[62,34],[64,34],[[],[[9,[34,21]]]],[[[38,[47]]],[[9,[34,21]]]],[[5,[8,[7]]],[[9,[34,21]]]],[[[28,[75]]],[[9,[34,21]]]],[[],[[9,[34,21]]]],[[[38,[47]]],[[9,[34,21]]]],[[5,[8,[7]]],[[9,[34,21]]]],0,0,[38,[[9,[21]]]],[52,[[9,[38,21]]]],[[48,33],[[9,[21]]]],[52,[[9,[38,21]]]],[[52,53],[[9,[38,21]]]],[[44,44],[[28,[14]]]],[[45,45],[[28,[14]]]],[[34,34],[[28,[14]]]],[[46,46],[[28,[14]]]],[[47,47],[[28,[14]]]],[[38,38],[[28,[14]]]],[[],5],[[],5],[[],5],0,[38,15],[34,[[9,[21]]]],[38,[[9,[54]]]],[[34,76],[[9,[21]]]],[38,[[9,[[8,[[8,[2,7]],7]],21]]]],[38,[[9,[[8,[[8,[2,7]],7]],21]]]],[34,[[9,[52,21]]]],[34,52],[38,5],[34,9],[38,9],[[],77],[[],77],[[],77],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],30],[[[34,[40]],78],30],[38,[[9,[21]]]],[38,[[9,[21]]]],[34,9],[38,9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[34,52],[[]],[[]],[[]],[[]],[[]],[[]],0,[38,15],0,[33,[[9,[30,22]]]],[33,[[9,[22]]]],[33,[[9,[30,22]]]],[33,[[9,[22]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[22,18],19],[[22,18],19],[79,22],[23,22],[20,22],[21,22],[[]],[80,22],[26,22],[81,22],[[]],[29],[[],30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[82,82],[83,83],[84,84],[57,57],[85,85],[56,56],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],85],[[82,82],15],[[83,83],15],[[84,84],15],[[57,57],15],[[85,85],15],[[26,26],15],[[82,18],19],[[83,18],19],[[84,18],19],[[57,18],19],[[85,18],19],[[26,18],19],[[26,18],19],[[56,18],19],[[]],[[]],[15,84],[[]],[[]],[83,57],[[]],[[]],[[]],[[57,86],[[9,[85,26]]]],[82],[85],[83,30],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,15],[84,15],[85,15],0,[[85,85],[[28,[14]]]],[29],[57,15],0,[82,9],[83,9],[84,9],[57,9],[85,9],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],30],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[35,[[9,[87,22]]]],[[[89,[[88,[46]]]],35],[[9,[87,22]]]],[[[90,[[88,[47]]]],35],[[9,[87,22]]]],[[[91,[[88,[47]]]],35],[[9,[87,22]]]],[[[93,[[88,[92]]]],35],[[9,[87,22]]]],[[[95,[[94,[46]]]],35],[[9,[87,22]]]],[[[96,[[94,[46]]]],35],[[9,[87,22]]]],[[[97,[[94,[47]]]],35],[[9,[87,22]]]],[[[98,[[94,[47]]]],35],[[9,[87,22]]]],[[[99,[[94,[47]]]],35],[[9,[87,22]]]],[[[100,[[94,[47]]]],35],[[9,[87,22]]]],[[[101,[[94,[92]]]],35],[[9,[87,22]]]],[[[102,[[94,[92]]]],35],[[9,[87,22]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[87,48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[48,35],[[9,[22]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],103],[[],37],[[40,41],42],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[38,[[9,[43]]]],[39,[[9,[43]]]],[[],[[9,[43]]]],[[[105,[104,58]]],[[105,[104,58]]]],[37,37],[106,106],[107,107],[40,40],[108,108],[109,109],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[107,107],14],[[40,40],14],[[108,108],14],[[109,109],14],0,[[],106],[[[105,[58]]]],[[40,41],42],[107,52],[[37,37],15],[[107,107],15],[[40,40],15],[[108,108],15],[[109,109],15],[[[111,[[0,[110,58]]]],18],19],[[37,18],19],[[106,18],19],[[20,18],19],[[20,18],19],[[107,18],[[9,[60]]]],[[107,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[40,18],[[9,[60]]]],[[112,18],[[9,[60]]]],[[112,18],[[9,[60]]]],[[108,18],[[9,[60]]]],[[113,18],[[9,[60]]]],[[109,18],[[9,[60]]]],[107,15],[[]],[114,[[115,[58]]]],[116,[[115,[58]]]],[[]],[[]],[[]],[[]],[[]],[23,20],[21,20],[[]],[42,40],[[]],[[]],[[]],[[]],[[]],[[40,103],[[111,[58]]]],[[112,103],[[111,[58]]]],[33,[[9,[40]]]],[33,[[9,[112]]]],[67,[[9,[107,21]]]],[40,73],[[],[[9,[105]]]],[[],[[9,[105]]]],[[],[[9,[105]]]],[[],[[9,[105]]]],[[[115,[58]]],15],[40,15],[107],[40],[108],[109],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[9,[111,20]]]],[[[28,[117]],73],[[9,[111,20]]]],[105,[[9,[111,20]]]],[[105,[28,[117]],73],[[9,[111,20]]]],[[[111,[58]]],[[9,[[111,[58]],20]]]],[40,[[9,[[111,[58]],20]]]],[112,[[9,[[111,[58]],20]]]],[[],[[9,[115,20]]]],[[[115,[58]]],[[9,[[115,[58]],20]]]],[105,[[9,[115,20]]]],[[[105,[58]]]],[[[115,[58]],35],[[28,[116]]]],[[[115,[58]],35,48],114],[40,15],[[],15],[37,15],[[],15],[37,15],[[],15],[37,15],[40,15],[40,15],0,0,0,[107,[[9,[71,21]]]],[[],103],[40,118],[38,[[28,[5]]]],[107,5],[107,5],[[103,103],103],[[],33],[[5,[8,[7]]],[[9,[107,21]]]],0,0,[38,[[9,[21]]]],[[[111,[58]],103],[[111,[58]]]],[[107,107],[[28,[14]]]],[[40,40],[[28,[14]]]],[[108,108],[[28,[14]]]],[[109,109],[[28,[14]]]],[[],5],0,[29],[107,[[9,[21]]]],[107,[[9,[[8,[[8,[2,7]],7]],21]]]],[107,5],[[],77],[107,39],[[],103],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[112,48],[[9,[40,119]]]],[[],30],[[],30],[[],30],[[],30],[38,[[9,[21]]]],[38,[[9,[21]]]],[107,[[9,[107]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[28,[16]]]],[[],[[28,[3]]]],[5,[[28,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[120,120],120],[[121,1,122,[124,[123]]]],0,[[121,125],[[9,[126]]]],[121,127],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[121,128],[[9,[[131,[129,130]],17]]]],[121,[[131,[129,132]]]],[[121,133]],[121,134],[120,120],[[]],0,[121,[[9,[15]]]],0,[[],120],[135],[[121,1],[[28,[41]]]],[[121,52],28],[[121,1],30],[[],[[9,[120]]]],[[120,120],15],[[135,135],15],0,[[121,136,137],[[9,[15,17]]]],[[120,18],[[9,[60]]]],[[120,18],[[9,[60]]]],[[[121,[110]],18],19],[[138,18],19],[[135,18],19],[[135,18],19],[[[139,[110]],18],19],[[139,18],19],[[140,18],19],[[]],[[]],[[]],[[]],[[]],[[]],[[121,138],135],[121,120],[[121,1],68],[[121,138],135],[[121,10,[28,[141]],15],[[9,[142,17]]]],[[121,1],[[124,[55]]]],[[121,128,15],[[28,[13]]]],[[121,27],[[28,[10]]]],0,0,[[121,143],[[9,[15,144]]]],[[121,133,145],[[9,[15,140]]]],[[]],[[]],[[]],[[]],[[]],[[]],[52,15],[[121,52],15],0,[121,86],[121,[[28,[146]]]],[121,147],[121,148],[121,35],[[149,[28,[149]],35],[[9,[121,139]]]],[[149,[28,[149]],35],[[9,[121,22]]]],[[121,1],41],[[121,1],[[9,[[28,[57]],17]]]],[29],[[121,1],[[28,[68]]]],[121,48],[120,9],[[121,136,137],[[9,[15,17]]]],0,[121,150],[121,[[86,[1,[0,[147,104]]]]]],[[121,1],[[0,[147,104]]]],[121,151],[[]],[[],30],[[],30],[[],30],[120,16],[121,147],0,[120,16],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[121,127],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],0,[[]],[[]],[[]],[[]],[[]],[[]],[[28,35,48],[[9,[30,17]]]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[152,152],[153,153],[154,154],[[]],[[]],[[]],[[[8,[11]],[8,[11]],3,16,52],[[9,[155,17]]]],[[152,[8,[11]],[8,[11]],3,16,52],[[9,[155,17]]]],[[153,[8,[11]],[8,[11]],3,16,52],[[9,[155,17]]]],[[154,[8,[11]],[8,[11]],3,16,52],[[9,[155,17]]]],[[16,3,52],156],[[],152],[[],153],[[],154],0,0,[[156,18],19],[[155,18],19],[[152,18],19],[[153,18],19],[[154,18],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[155,16],[16,154],0,[155,16],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,[[]],[[]],[157,[[28,[30]]]],[157,30],[[],[[9,[157]]]],[[121,33,15],[[9,[157,33]]]],[[157,18],19],[[]],[33,[[9,[157]]]],[[]],0,[157,9],[157,30],[[],9],[[],9],[[],32],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[55,158,122,[124,[123]]],[[28,[[124,[123]]]]]],0,0,[[55,48],159],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[159,34,48],55],[158,158],[25,25],[160,160],[[[162,[[0,[104,161,110,104]]]]],[[162,[[0,[104,161,110,104]]]]]],[122,122],[55,55],[137,137],[163,163],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[158,158],14],[[122,122],14],[[],122],[[],55],[[],137],[[],163],[[[162,[[0,[161,110,104]]]]]],[[],[[28,[112]]]],[[[162,[164]]],[[28,[112]]]],[[[162,[[44,[116]]]]],[[28,[112]]]],[[158,158],15],[[25,25],15],[[160,160],15],[[122,122],15],[[163,163],15],[[55,158],[[28,[124]]]],[[158,18],19],[[25,18],19],[[25,18],19],[[160,18],19],[[[162,[[0,[110,161,110,104]]]],18],19],[[122,18],19],[[55,18],19],[[137,18],19],[[163,18],19],[[]],[165,158],[118,158],[166,25],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[158],[48,158],[[[162,[164]],48],158],[[[162,[[44,[116]]]],48],158],[55,[[8,[158]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[161,110,104]],160],[[162,[[0,[161,110,104]]]]]],[[],55],[[158,158],[[28,[14]]]],[[122,122],[[28,[14]]]],[29],[[55,158,122],[[28,[[124,[123]]]]]],0,[[136,5,137,48],[[9,[25]]]],[[[162,[164]],136,5,137,48],[[9,[25]]]],[[[162,[[44,[116]]]],136,5,137,48],[[9,[25]]]],[[136,137,48],[[9,[25]]]],[[136,137,48],[[9,[25]]]],0,[55,[[8,[124]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],30],0,0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[131,[167,132]]],[[131,[167,132]]]],[[[131,[167,168]],27,142,5],[[9,[[131,[167,168]],17]]]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,132]],52,16],[[131,[167,132]]]],[[[131,[167,168]],27],[[131,[167,168]]]],[[[131,[167,168]],27],[[9,[[131,[167,168]],17]]]],[[[131,[167,168]]],[[9,[[131,[167,168]],17]]]],[[[131,[167,168]],15],[[131,[167,168]]]],[[[131,[129,130]],52],[[9,[[131,[129,130]],17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[131,[167,168]],169],[[131,[167,168]]]],[132,132],[130,130],[[[131,[104]]],[[131,[104]]]],[170,170],[169,169],[[]],[[]],[[]],[[]],[[]],[[170,170],14],[[169,169],14],[[[131,[167,168]],167],[[131,[167,168]]]],[[[131,[167,168]],41],[[131,[167,168]]]],[[],132],[[],130],[[],170],[[],169],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,132]],52],[[131,[167,132]]]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,168]],171],[[131,[167,168]]]],[[170,170],15],[[169,169],15],[[[131,[167,168]],16],[[131,[167,168]]]],[[[131,[167,168]],3],[[131,[167,168]]]],[[[131,[167,168]]],[[9,[17]]]],[[132,18],19],[[130,18],19],[[[131,[110,110,110]],18],19],[[170,18],19],[[169,18],19],[[]],[[]],[[]],[[]],[[]],[170],[169],[[[131,[167,168]]],[[131,[167,168]]]],[[]],[[]],[[]],[[]],[[]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,168]],172],[[131,[167,168]]]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,168]]],[[131,[167,168]]]],[[[131,[167,168]],170],[[131,[167,168]]]],[[170,170],[[28,[14]]]],[[169,169],[[28,[14]]]],[[[131,[167,168]],[86,[30,[8,[5]]]],1],[[131,[167,168]]]],[[[131,[167,132]],8],[[131,[167,132]]]],[[[131,[167,168]],141],[[131,[167,168]]]],[[170,133]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],32],[[],32],[[],32],[[],32],[[],32],[[[131,[167,168]],[8,[27]]],[[131,[167,168]]]],[[[131,[167,168]],173],[[131,[167,168]]]],[[]],[[]],[[]],[[]],[[]]],"p":[[4,"KeychainKind"],[15,"u8"],[3,"FeeRate"],[15,"f32"],[15,"usize"],[3,"u5"],[3,"Global"],[3,"Vec"],[4,"Result"],[3,"LocalUtxo"],[3,"WeightedUtxo"],[4,"Utxo"],[3,"TransactionDetails"],[4,"Ordering"],[15,"bool"],[15,"u64"],[4,"Error"],[3,"Formatter"],[6,"Result"],[4,"KeyError"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"SignerError"],[4,"PolicyError"],[3,"OutPoint"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[3,"Address"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ScriptContextError"],[3,"DescriptorXKey"],[4,"Wildcard"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"ConversionError"],[4,"DescriptorType"],[3,"Script"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[8,"ScriptContext"],[3,"Range"],[3,"Error"],[3,"Pkh"],[3,"Wpkh"],[3,"Sh"],[3,"Wsh"],[3,"Bare"],[3,"Tr"],[3,"Tree"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[3,"DerivationPath"],[4,"BareCtx"],[4,"TapTree"],[3,"TxIn"],[4,"SigType"],[3,"HashMap"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[3,"BTreeMap"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[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"],[3,"SinglePub"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[4,"DescriptorSecretKey"],[3,"SinglePriv"],[3,"ExtendedPubKey"],[4,"ExtendedKey"],[3,"ExtendedPrivKey"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[6,"Update"],[3,"CannotConnectError"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[3,"CreateTx"],[3,"Transaction"],[3,"CheckPointIter"],[3,"AddressInfo"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"AddressIndex"],[4,"NewError"],[4,"InsertTxError"],[3,"PsbtSighashType"],[3,"Input"],[3,"BlockId"],[3,"InsertBlockError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"Iterator"],[3,"LocalChain"],[8,"IntoWalletDescriptor"],[3,"KeychainTxOutIndex"],[6,"ChangeSet"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Excess"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[8,"TxBuilderContext"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[3,"Sequence"],[4,"LockTime"],[15,"i32"],[8,"Vbytes"],[13,"InsufficientFunds"],[13,"FeeRateTooLow"],[13,"FeeTooLow"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"Change"],[13,"NoChange"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"]]},\ -"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[8,8,17,3,17,8,4,3,4,3,13,13,8,16,8,3,2,16,3,8,3,3,2,13,13,16,11,10,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,10,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,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,10,0,11,2,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,16,3,3,8,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,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,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,12,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,12,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,3,6,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,3,3,3,3,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,11,11,11,11,11,11,11,11,11,11,11,11,11,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,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,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeAnchor","Confirmed","Confirmed","DescriptorExt","Error","ForEachTxOut","FullTxOut","IndexedTxGraph","LoadError","Persist","PersistBackend","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","WriteError","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_additions","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","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","from","from","from","from","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","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","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","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","Additions","IndexedAdditions","IndexedTxGraph","Indexer","append","apply_additions","apply_additions","apply_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph_additions","index","index_additions","index_tx","index_txout","insert_relevant_txs","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","DerivationAdditions","KeychainTxOutIndex","LocalChangeSet","LocalUpdate","add","add_keychain","append","append","apply_additions","apply_additions","as_inner","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain_changeset","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","default","deref","deserialize","deserialize","deserialize","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","graph","immature","index_tx","index_txout","indexed_additions","inner","into","into","into","into","into","is_empty","is_empty","is_tx_relevant","keychains","last_active_indices","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead_to_target","lookahead_to_target_multi","lookaheads","mark_used","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_spks_of_all_keychains","revealed_spks_of_keychain","scan","scan_txout","serialize","serialize","serialize","set_lookahead","set_lookahead_for_all","spks_of_all_keychains","spks_of_keychain","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","txouts_of_keychain","type_id","type_id","type_id","type_id","type_id","unmark_used","untrusted_pending","unused_spks_of_keychain","vzip","vzip","vzip","vzip","vzip","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InsertBlockError","LocalChain","Update","apply_changeset","apply_update","block_id","blocks","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_blocks","from_changeset","from_tip","get_chain_tip","hash","height","height","initial_changeset","insert_block","into","into","into","into","into","into","into_iter","into_iter","introduce_older_blocks","is_block_in_chain","is_empty","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","push","tip","tip","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_include_height","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","Additions","CanonicalTx","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchors","anchors","append","apply_additions","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","determine_additions","direct_conflicts_of_tx","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","for_each_txout","for_each_txout","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","insert_anchor","insert_anchor_preview","insert_seen_at","insert_seen_at_preview","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into","into","into_iter","is_empty","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","missing_heights","new","next","node","observed_as","outspends","partial_cmp","partial_cmp","serialize","to_owned","to_owned","to_owned","to_owned","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","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_list_chain_txs","tx","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","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 …","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 confirmed variant.","A trait to extend the functionality of a miniscript …","Error type.","Trait to do something with every txout contained in a …","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 seen in mempool at this given timestamp.","The unconfirmed variant.","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 persistance …","The exact confirmation height of the transaction.","The confirmation height of the chain data 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 chain data being anchored.","","","","","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","","","","","The provided closure f will be called with each …","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","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 structure and associated types.","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.","Creates a new script pubkey iterator starting at 0 from 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 an object containing many txouts.","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 commited later with commit.","Get the changes that have not been commited 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.","The resultant “additions” when new transaction data is …","A structure that represents changes to an IndexedTxGraph.","A struct that combines TxGraph and an Indexer …","Represents a structure that can index transaction data.","","Apply additions to itself.","Applies the IndexedAdditions to the IndexedTxGraph.","Apply an update directly.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a reference of the internal transaction graph.","TxGraph additions.","Transaction index.","Indexer additions.","Scan and index the given transaction.","Scan and index the given outpoint and txout.","Insert relevant transactions from the given txs iterator.","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 …","A convenient wrapper around SpkTxOutIndex that relates …","A structure that records the corresponding changes as …","A structure to update KeychainTxOutIndex, TxGraph and …","","Add a keychain to the tracker’s txout_index with a …","Append another DerivationAdditions into self.","","Applies the derivation additions to the KeychainTxOutIndex…","","Get the inner map of the keychain to its new derivation …","","","","","","","","","","","","Update for the LocalChain.","Changes to the LocalChain.","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Update for the TxGraph.","All coinbase outputs not yet matured","","","Additions to IndexedTxGraph.","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the additions are empty.","","","Return a reference to the internal map of the keychain to …","Contains the last active derivation indices per keychain (K…","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Store lookahead scripts until target_index.","Convenience method to call lookahead_to_target for …","Return the lookahead setting for each keychain.","Marks the script pubkey at index as used even though the …","Construct a LocalUpdate with a given local_chain::Update.","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 …","Convenience method to get revealed_spks_of_keychain of all …","Iterates over the script pubkeys revealed by this index …","Scans an object for relevant outpoints, which are stored …","Scan a single outpoint for a matching script pubkey.","","","","Set the lookahead count for keychain.","Convenience method to call set_lookahead for all keychains.","Generates script pubkey iterators for every keychain. The …","Generates a script pubkey iterator for the given keychain…","","","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","Iterates over all the OutPoint that have a TxOut with a …","","","","","","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterates over all unused script pubkeys for a keychain …","","","","","","Occurs when an update does not have a common checkpoint …","A structure that represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement …","A structure that iterates over checkpoints backwards.","Represents a failure when trying to insert a checkpoint …","This is a local implementation of ChainOracle.","A struct to update LocalChain.","Apply the given changeset.","Applies the given update to the chain.","Get the BlockId of the checkpoint.","Get a reference to the internal index mapping the height …","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","Constructs a LocalChain from a BTreeMap of height to …","Construct a LocalChain from an initial changeset.","Construct a LocalChain from a given checkpoint tip.","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpoints’ 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).","","","Whether the update allows for introducing older blocks.","","Returns whether the LocalChain is empty (has no …","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.","","Original checkpoint’s block hash.","Get the previous checkpoint in the chain","","","Puts another checkpoint onto the linked list representing …","Get the highest checkpoint.","The update chain’s new tip.","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two …","","","","","","","","","","","","","Update checkpoint’s block hash.","","","","","","","A structure that represents changes to a TxGraph.","An outwards-facing view of a transaction that is part of …","An iterator that traverses transaction descendants.","A graph of transactions and spends.","An outward-facing view of a (transaction) node in the …","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","The blocks that the transaction is “anchored” in.","Added anchors.","","Applies Additions to TxGraph.","Extends this graph with another so that self becomes the …","","Get the total balance of outpoints that are in chain of …","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","","","","","","","","","","","","","","","","","Previews the resultant Additions when Self is updated …","Given a transaction, return an iterator of txids that …","","","","","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.","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 …","Inserts the given anchor into TxGraph.","Returns the resultant Additions if the txid is set in …","Inserts the given seen_at into TxGraph.","Returns the resultant Additions if the txid is set to …","Inserts the given transaction into TxGraph.","Returns the resultant Additions if the given transaction …","Inserts the given TxOut at OutPoint.","Returns the resultant Additions if the given txout is …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Whether the graph has any transactions or outputs in it.","","Returns true if the Additions is empty (no transactions or …","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.","Find missing block heights of chain.","Construct a new TxGraph from a list of transactions.","","The transaction node (as part of the graph).","How the transaction is observed as (confirmed or …","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.","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within Additions.","Added txouts.","Added transactions.","","","","","","","","","","","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,8,9,0,71,0,0,0,72,0,0,0,0,0,8,9,72,3,17,6,7,6,7,39,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,9,5,6,7,73,8,9,5,6,7,10,3,8,9,5,6,7,10,13,74,3,8,9,9,5,5,5,6,7,10,13,11,71,8,9,5,6,7,5,5,3,3,3,0,3,3,8,9,5,6,7,10,13,11,11,71,8,9,10,39,10,10,3,3,3,0,72,0,3,0,3,13,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,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,72,75,76,75,41,0,0,0,40,41,42,42,42,40,42,40,40,40,42,40,40,40,42,40,42,40,40,40,42,40,42,40,41,41,42,42,42,42,40,40,41,42,40,40,42,40,42,40,42,40,42,40,0,0,0,0,0,48,49,45,52,49,49,45,45,49,45,53,52,48,49,45,53,52,48,53,52,49,45,53,52,48,49,45,53,52,48,48,49,45,52,48,49,45,52,48,45,52,48,49,45,53,52,48,48,49,45,53,52,52,52,48,53,48,49,49,52,49,49,45,53,52,48,45,52,49,49,53,49,49,49,49,49,49,49,49,53,49,49,49,49,49,49,49,49,49,49,45,52,48,49,49,49,49,49,45,53,52,48,48,48,48,48,49,45,53,52,48,49,45,53,52,48,49,49,45,53,52,48,49,48,49,49,45,53,52,48,0,0,0,0,0,0,0,58,58,60,58,63,60,55,58,61,59,63,60,55,58,61,59,60,55,58,61,59,60,55,58,61,59,58,58,61,59,60,60,55,58,61,61,59,59,63,60,55,58,58,61,59,58,58,58,58,60,60,61,58,58,63,60,55,58,61,59,63,60,55,58,58,60,58,60,63,61,60,61,59,60,58,55,60,55,58,61,59,61,59,63,60,55,58,61,59,59,63,60,55,58,61,59,63,60,55,58,61,59,61,63,60,55,58,61,59,0,0,0,0,0,43,43,67,46,46,43,43,43,43,69,43,67,68,46,69,43,67,68,46,43,69,69,43,67,68,46,43,67,68,46,67,68,43,46,67,46,43,43,43,67,68,46,43,43,43,43,67,68,46,43,46,69,43,67,68,46,43,43,43,43,43,43,43,43,43,43,43,43,43,43,69,43,67,68,46,69,43,46,46,46,67,43,43,43,69,68,68,43,67,68,46,43,67,68,46,43,43,43,69,43,67,68,46,43,43,69,43,67,68,46,43,67,43,43,67,46,46,46,69,43,67,68,46,69,43,67,68,46,43,43],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],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],[[],[[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],[24],[[]],[[]],[[[8,[7]]],9],[[]],[[],5],[[]],[[],5],[[]],[[]],[[]],[[]],[[]],[[],[[15,[[14,[5]]]]]],[[[8,[25]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],26],14],[[[3,[[0,[1,2]]]],27]],[[[3,[[0,[1,2]]]],28,29]],0,[[[3,[[0,[1,2]]]],[0,[1,2]],26],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[15,[[14,[20]]]]]],[8,20],[9,20],[[[10,[17]],16],20],[[],20],[[[10,[17]],16],20],0,[[[3,[[0,[1,2]]]],27],20],[[[3,[[0,[1,2]]]],27],20],[[[3,[[0,[1,2]]]]],20],0,[[],15],0,[[[3,[[0,[1,2]]]]],20],0,[[[3,[[0,[1,2]]]],27],30],[[],13],[[],11],[11,14],[[11,31],14],0,[[[3,[[0,[1,2]]]]],32],[[[3,[[0,[1,2]]]],[33,[[0,[1,2]]]]],34],[[[8,[35]],8],[[14,[12]]]],[[9,9],[[14,[12]]]],[[5,5],[[14,[12]]]],[[6,6],[[14,[12]]]],[[7,7],[[14,[12]]]],[[[10,[35]],10],[[14,[12]]]],[[[3,[[0,[1,2]]]]],[[32,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],28,29],14],[[[3,[[0,[1,2]]]],27]],[9,15],[5,15],[6,15],[7,15],0,[[[3,[[0,[1,2]]]]],[[14,[26]]]],[13],[13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[[3,[[0,[1,2]]]],28],14],0,[[[3,[[0,[1,2]]]]],[[0,[34,36]]]],[[[3,[[0,[1,2]]]],37],34],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],[18,9],[[[3,[[0,[1,2]]]]],20],[[[3,[[0,[1,2]]]]],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],0,0,0,0,0,0,0,[[[40,[17,39]],[40,[17,39]]]],[[]],[[[42,[17,41]],[40,[17]]]],[[[42,[17,41]],[43,[17]]],[[40,[17]]]],[[]],[[]],[[]],[[]],[[[40,[1,1]]],[[40,[1,1]]]],[[]],[[],[[42,[44]]]],[[],[[40,[44]]]],[[],[[15,[40]]]],[[[40,[19,19]],40],20],[[[42,[21,21]],22],23],[[[40,[21,21]],22],23],[[]],[[]],[45,[[40,[45]]]],[46,[[40,[44]]]],[42,43],0,0,0,[27],[[28,29]],[[[42,[17,41]],47,[14,[18]]],[[40,[17]]]],[[[42,[17,41]],27,47,[14,[18]]],[[40,[17]]]],[[[42,[17,41]],28,29],[[40,[17]]]],[[]],[[]],[[[40,[17,39]]],20],[27,20],[[],42],[40,15],[[]],[[],15],[[],15],[[],15],[[],15],[[],38],[[],38],[[]],[[]],0,0,0,0,0,[[48,48],48],[[[49,[[0,[1,2,21]]]],[0,[1,2,21]],[51,[50]]]],[[[45,[2]],[45,[2]]]],[[[52,[2,17]],[52,[2,17]]]],[[[49,[[0,[1,2,21]]]],[45,[[0,[1,2,21]]]]]],[[[49,[[0,[1,2,21]]]]]],[45,4],[45,4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[49,[1]]],[[49,[1]]]],[[[45,[1]]],[[45,[1]]]],[[[53,[1,1]]],[[53,[1,1]]]],[[[52,[1,1]]],[[52,[1,1]]]],[48,48],[[]],[[]],[[]],[[]],[[]],0,[[],49],[[],45],[[],52],[[],48],[49],[[],[[15,[45]]]],[[],[[15,[52]]]],[[],[[15,[48]]]],[[[45,[19]],45],20],[[[52,[19,19]],52],20],[[48,48],20],[[[49,[21]],22],23],[[[45,[21]],22],23],[[[53,[21,21]],22],23],[[[52,[21,21]],22],23],[[48,22],23],[[48,22],23],[[]],[[]],[[]],[[[40,[45]]],52],[54,52],[[]],[[]],0,0,[[[49,[[0,[1,2,21]]]],27]],[[[49,[[0,[1,2,21]]]],28,29]],0,[[[49,[[0,[1,2,21]]]]],3],[[]],[[]],[[]],[[]],[[]],[[[45,[2]]],20],[[[52,[2,17]]],20],[[[49,[[0,[1,2,21]]]],27],20],[[[49,[[0,[1,2,21]]]]],4],0,[[[49,[[0,[1,2,21]]]]],[[14,[16]]]],[[[49,[[0,[1,2,21]]]]],4],[[[49,[[0,[1,2,21]]]]],[[14,[16]]]],[[[49,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],16]]]],[[[49,[[0,[1,2,21]]]],16]],[[[49,[[0,[1,2,21]]]],[4,[[0,[1,2,21]],16]]]],[[[49,[[0,[1,2,21]]]]],4],[[[49,[[0,[1,2,21]]]],16],20],[55,53],[[[49,[[0,[1,2,21]]]]]],[[[49,[[0,[1,2,21]]]]]],[[[49,[[0,[1,2,21]]]]],32],[[[49,[[0,[1,2,21]]]]]],[[[49,[[0,[1,2,21]]]],16]],[[[49,[[0,[1,2,21]]]],4]],[[[49,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],[0,[56,1]]]]]],[[[49,[[0,[1,2,21]]]]],[[0,[34,1]]]],[[[49,[[0,[1,2,21]]]]],[[45,[[0,[1,2,21]]]]]],[[[49,[[0,[1,2,21]]]],28,29],[[45,[[0,[1,2,21]]]]]],[45,15],[52,15],[48,15],[[[49,[[0,[1,2,21]]]],16]],[[[49,[[0,[1,2,21]]]],16]],[[[49,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],[11,[[51,[50]]]]]]]],[[[49,[[0,[1,2,21]]]]],[[11,[[51,[50]]]]]],[[]],[[]],[[]],[[]],[[]],[[],57],[48,18],0,[48,18],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[49,[[0,[1,2,21]]]]],34],[[],38],[[],38],[[],38],[[],38],[[],38],[[[49,[[0,[1,2,21]]]],16],20],0,[[[49,[[0,[1,2,21]]]]],34],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[58,54]],[[58,55],[[15,[54,59]]]],[60,5],[58,4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[60,60],[55,55],[58,58],[61,61],[59,59],[[]],[[]],[[]],[[]],[[]],[[],58],[[58,58],20],[[61,61],20],[[59,59],20],[[60,47],[[15,[60,60]]]],[[60,22],23],[[55,22],23],[[58,22],23],[[61,22],23],[[61,22],23],[[59,22],23],[[59,22],23],[[]],[[]],[[]],[[]],[[[4,[16,62]]],58],[[]],[[]],[[[4,[16,62]]],58],[54,58],[60,58],[58,[[15,[[14,[5]]]]]],[60,62],[60,16],0,[58,54],[[58,5],[[15,[54,61]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[60],0,[[58,5,5],[[15,[[14,[20]]]]]],[58,20],[60,63],[58,63],[5,60],[63,14],0,[60,[[14,[60]]]],[64],[64],[[60,5],[[15,[60,60]]]],[58,[[14,[60]]]],0,[[]],[[]],[[]],[[]],[[]],[[],57],[[],57],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],38],[[],38],[[],38],[[],38],[[],38],[[],38],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[43,32],[43,56],0,0,[[[46,[2]],[46,[2]]]],[[[43,[[0,[1,2]]]],[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],[43,[[0,[1,2]]]]],[[46,[[0,[1,2]]]]]],[43,43],[[[43,[17]],5,47,24],48],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[43,27],[[14,[30]]]],[[],[[14,[65]]]],[[],[[14,[66]]]],[[[43,[1]]],[[43,[1]]]],[[[67,[1,1]]],[[67,[1,1]]]],[[[68,[1,1]]],[[68,[1,1]]]],[[[46,[1]]],[[46,[1]]]],[[]],[[]],[[]],[[]],[[[67,[2,2]],67],12],[[[68,[2,2]],68],12],[[],43],[[],46],[67],[[],[[15,[46]]]],[[[43,[[0,[1,2]]]],43],[[46,[[0,[1,2]]]]]],[[43,27],56],[[[43,[19]],43],20],[[[67,[19,19]],67],20],[[[68,[19,19]],68],20],[[[46,[19]],46],20],[[[43,[17]],5,47],56],[[[43,[17]],5,47],56],[43,56],[[[43,[21]],22],23],[[[67,[21,21]],22],23],[[[68,[21,21]],22],23],[[[46,[21]],22],23],[[43,24]],[[46,24]],[[]],[[]],[[]],[[]],[[]],[43,56],[[[43,[17]],5,37],[[14,[8]]]],[[[43,[17]],5,28],14],[[43,37],[[14,[27]]]],[[43,37],[[14,[[67,[27]]]]]],[[43,28],[[14,[29]]]],[[[43,[[0,[1,2]]]],37,[0,[1,2]]],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,[0,[1,2]]],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,18],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],37,18],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],27],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],27],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],28,29],[[46,[[0,[1,2]]]]]],[[[43,[[0,[1,2]]]],28,29],[[46,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[43,20],[[[46,[2]]],20],[46,20],0,0,[[[43,[17]],5],56],[[[43,[17]],58],56],[47,[[43,[[0,[1,2]]]]]],[69,14],0,0,[[43,28],70],[[[67,[35,35]],67],[[14,[12]]]],[[[68,[35,35]],68],[[14,[12]]]],[46,15],[[]],[[]],[[]],[[]],[[[43,[17]],5,47,24],[[15,[48]]]],[[[43,[17]],5,47],56],[[[43,[17]],5,47],56],[[],15],[[],15],[[],15],[[],15],[[],15],[[[43,[17]],5,37],[[15,[[14,[8]]]]]],[[[43,[17]],5,28],[[15,[14]]]],[[],15],[[],15],[[],15],[[],15],[[],15],[[[43,[17]],5],56],0,[[43,37],[[14,[[4,[16,29]]]]]],[[43,37],34],0,[46,56],0,0,[[],38],[[],38],[[],38],[[],38],[[],38],[[]],[[]],[[]],[[]],[[]],[[43,27],69],[[43,37],69]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeAnchor"],[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"],[8,"FnMut"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[15,"i64"],[15,"usize"],[3,"BTreeSet"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"IndexedAdditions"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"Default"],[3,"DerivationAdditions"],[3,"Additions"],[8,"IntoIterator"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"LocalChangeSet"],[3,"LocalUpdate"],[6,"ChangeSet"],[3,"Update"],[8,"Iterator"],[3,"String"],[3,"LocalChain"],[3,"CannotConnectError"],[3,"CheckPoint"],[3,"InsertBlockError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[3,"SignedAmount"],[3,"Amount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"PersistBackend"],[8,"DescriptorExt"],[8,"ForEachTxOut"],[13,"Confirmed"],[13,"Unconfirmed"]]},\ +"bdk":{"doc":"bdk","t":[13,13,13,13,13,4,13,3,13,13,13,13,13,2,13,13,13,13,13,13,4,13,3,13,13,13,13,13,13,13,2,13,13,13,3,13,2,13,4,8,2,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,0,14,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,11,11,11,0,12,11,12,12,11,11,11,2,11,2,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,10,5,11,11,11,11,11,11,11,0,11,12,12,12,12,12,12,13,6,4,2,4,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,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,3,6,13,13,4,8,13,13,4,13,13,6,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,12,11,11,11,11,11,11,5,12,12,3,13,8,3,6,4,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,13,3,13,13,4,3,13,13,3,8,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Bip32","BnBNoExactMatch","BnBTotalTriesExceeded","ChecksumMismatch","Descriptor","Error","External","FeeRate","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","Foreign","Generic","HdKeyPaths","InsufficientFunds","Internal","InvalidOutpoint","InvalidPolicyPathError","IrreplaceableTransaction","Key","KeychainKind","Local","LocalUtxo","Miniscript","MiniscriptPsbt","MissingKeyOrigin","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","Psbt","SignOptions","Signer","SpendingPolicyRequired","TransactionConfirmed","TransactionDetails","TransactionNotFound","TxBuilder","UnknownUtxo","Utxo","Vbytes","Wallet","WeightedUtxo","as_byte","as_ref","as_sat_per_vb","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","check_base32","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","confirmation_time","confirmation_time","default","default_min_relay_fee","derivation_index","descriptor","descriptor","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","fee","fee_vb","fee_wu","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fragment","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_btc_per_kvb","from_sat_per_kvb","from_sat_per_kwu","from_sat_per_vb","from_vb","from_wu","hash","hash","into","into","into","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","partial_cmp","partial_cmp","provide","psbt","received","sat_per_kwu","satisfaction_weight","sent","serialize","serialize","serialize","signer","sub","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txid","txout","txout","type_id","type_id","type_id","type_id","type_id","type_id","type_id","utxo","vbytes","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet","write_base32","available","needed","required","required","outpoint","psbt_input","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","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","get_checksum","get_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","Balance","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","InsertTxError","IsDust","LastUnused","New","NewError","Peek","Persist","Update","Wallet","add","add_signer","address","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","cancel_tx","checkpoints","clone","clone_into","coin_selection","commit","confirmed","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","eq","eq","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","immature","index","insert_checkpoint","insert_tx","into","into","into","into","into","into","is_dust","is_mine","keychain","keychains","latest_checkpoint","list_unspent","local_chain","network","new","new_no_persist","next_derivation_index","policies","provide","public_descriptor","secp_ctx","serialize","sign","signer","spk_index","spks_of_all_keychains","spks_of_keychain","staged","to_owned","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","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","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","tip_height","tx_height","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Excess","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","into","into","into","into","into","local_selected_amount","new","selected","selected_amount","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","amount","change_fee","dust_threshold","fee","remaining_amount","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_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","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","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","Untouched","add_data","add_foreign_utxo","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Error","","","","bdk::Utxo","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::InsertTxError","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["BIP32 error","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Descriptor checksum mismatch","Error related to the parsing and usage of descriptors","Errors that can be thrown by the Wallet","External keychain, used for deriving recipient addresses.","Fee rate","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","A UTXO owned by another wallet.","Generic error","","Wallet’s UTXO set is not enough to cover recipient’s …","Internal keychain, used for deriving change addresses.","Requested outpoint doesn’t exist in the tx (vout greater …","Error while extracting and manipulating policies","Trying to replace a tx that has a sequence >= 0xFFFFFFFE","Error while working with keys","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a Wallet.","Miniscript error","Miniscript PSBT error","In order to use the TxBuilder::add_global_xpubs option …","Cannot build a tx without recipients","manually_selected_only option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Partially signed bitcoin transaction error","","Signing error","Spending policy is not compatible with this KeychainKind","Happens when trying to bump a transaction that is already …","A wallet transaction","Thrown when a tx is not found in the internal database","","Happens when trying to spend an UTXO that is not in the …","An unspent transaction output (UTXO).","Trait implemented by types that can be used to measure …","","A Utxo with its satisfaction_weight.","Return KeychainKind as a byte","","Return the value as satoshi/vbyte","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","If the transaction is confirmed, contains height and Unix …","","Create a new FeeRate with the default min relay fee value","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","Fee value in sats if it was available.","Calculate absolute fee in Satoshis using size in virtual …","Calculate absolute fee in Satoshis using size in weight …","","","","","","","","","Macro to write descriptor fragments with code","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Create a new instance of FeeRate given a float fee rate in …","Calculate fee rate from fee and vbytes.","Calculate fee rate from fee and weight units (wu).","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","","","","Additional functions on the rust-bitcoin …","Received value (sats) Sum of owned outputs of this …","Return the value as satoshi/kwu","The weight of the witness data and scriptSig expressed in …","Sent value (sats) Sum of owned inputs of this transaction.","","","","","","","","","","","","","","Optional transaction","","","","","","","","","","","","","","","Transaction id","Get the TxOut of the UTXO","Transaction output","","","","","","","","The UTXO","Convert weight units to virtual bytes.","Get the version of BDK at runtime","","","","","","","","Wallet","","Sats available for spending","Sats needed for some transaction","Required fee rate (satoshi/vbyte)","Required fee absolute value (satoshi)","The location of the output.","The information about the input we require to add it to a …","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a Descriptor that contains extended derived keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","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 …","Compute the checksum of a descriptor","Compute the checksum bytes of a descriptor","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with keys","Miniscript error","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 …","Balance, differentiated into various categories.","The changeset produced internally by Wallet when mutated.","The error variant that occurs when the caller attempts to …","There was problem with the descriptors passed in","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 …","Return a new address after incrementing the current …","Error returned from Wallet::new","Return the address for a specific descriptor index. Does …","We were unable to load the wallet’s data from the …","The update to a Wallet used in Wallet::apply_update. This …","A Bitcoin wallet","","Add an external signer","Address","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Informs the wallet that you no longer intend to broadcast …","Get all the checkpoints the wallet is currently storing …","","","Coin selection","Commits all curently staged changed to the persistence …","Confirmed and immediately spendable balance","","","The derivation index of this wallet. It will return None …","Finds how the wallet derived the script pubkey spk.","Return the checksum of the public descriptor associated to …","","","","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return a derived address using the external descriptor, …","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","Return a derived address using the internal (change) …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Return a single transactions made and received by the …","Returns the utxo owned by this wallet corresponding to …","All coinbase outputs not yet matured","Child index of this address","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Check whether or not a value is below dust limit","Return whether or not a script is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Returns the latest checkpoint.","Return the list of unspent outputs of this wallet","Get a reference to the inner LocalChain.","Get the Bitcoin network the wallet is using.","Create a wallet from a descriptor (and an optional …","Creates a wallet that does not persist data.","The index of the next address that you would get if you …","Return the spending policies for the wallet’s descriptor","","Return the “public” version of the wallet’s …","Return the secp256k1 context used for all signing …","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner KeychainTxOutIndex.","Returns a iterators of all the script pubkeys for the …","Gets an iterator over all the script pubkeys in a single …","Returns the changes that will be staged with the next call …","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","Transaction builder","Get a reference to the inner TxGraph.","","","","","","","Unconfirmed UTXOs received from an external wallet","","","","","","","Deterministically generate a unique name given the …","The internal chain’s tip height.","The introduced transaction’s confirmation height.","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by TxBuilder if not …","Remaining amount after performing coin selection","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The total value of the inputs selected from the local …","Create new instance with target size for change output","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Structure that contains the export of a wallet","Alias for FullyNodedExport","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","Returns the argument unchanged.","","Calls U::from(self).","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The non_witness_utxo specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The non_witness_utxo field of the transaction is required …","The witness_script field of the transaction is required to …","The witness_utxo field of the transaction is required to …","The psbt contains a non-SIGHASH_ALL sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the SignersContainers. Used as a …","Defines the order in which signers are called","Wrapper structure to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the sighash_type set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a KeyMap","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the SignerId for this signer","","","","Returns the list of identifiers of all the signers in the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","Whether the signer should trust the witness_utxo, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","BIP69 / Lexicographic","Marker type to indicate the TxBuilder is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the TxBuilder is being used to …","Only use change outputs (see TxBuilder::only_spend_change)","Randomized (default)","A transaction builder","Context in which the TxBuilder is valid","Ordering of the transaction’s inputs and outputs","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Fill-in the PSBT_GLOBAL_XPUB field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that must be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","Set a specific ChangeSpendPolicy. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to drain excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee 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.","","","Fill-in the psbt::Output::redeem_script and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Only spend utxos added by add_utxo.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the psbt::Input::witness_utxo field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by TxOrdering variant","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","",""],"i":[18,18,18,18,18,0,1,0,18,18,18,12,18,0,18,1,18,18,18,18,0,12,0,18,18,18,18,18,18,18,0,18,18,18,0,18,0,18,0,0,0,0,1,1,3,1,18,1,3,10,11,12,13,18,1,3,10,11,12,13,0,1,1,3,10,11,12,13,1,3,10,11,12,13,1,13,10,13,3,3,10,0,0,1,10,13,1,3,10,11,12,13,13,3,3,18,18,1,3,10,11,12,13,0,18,18,18,18,18,18,18,18,1,3,10,11,12,13,3,3,3,3,3,3,1,10,18,1,3,10,11,12,13,10,10,0,12,10,1,3,13,18,0,13,3,11,13,1,10,13,0,3,0,1,3,10,11,12,13,18,13,18,1,3,10,11,12,13,18,1,3,10,11,12,13,13,12,10,18,1,3,10,11,12,13,11,180,0,18,1,3,10,11,12,13,0,1,181,181,182,183,184,184,35,0,0,0,0,0,0,0,0,58,0,0,42,35,0,0,0,35,42,0,35,35,35,42,35,47,48,40,35,35,47,48,40,35,47,48,40,40,0,58,47,48,58,48,58,58,47,48,58,47,48,58,58,47,48,58,47,48,58,47,48,0,35,47,48,40,35,47,48,40,35,47,48,40,40,35,35,35,35,35,40,35,40,35,47,48,40,0,35,40,40,185,35,40,35,35,35,47,48,40,40,35,40,35,35,35,35,35,35,35,47,48,40,40,40,35,40,40,40,35,40,40,40,35,35,40,40,35,35,47,48,40,35,47,48,40,40,35,153,71,35,35,40,40,40,35,40,40,58,47,48,40,35,40,35,58,47,48,35,35,35,35,35,35,35,35,35,35,35,35,35,35,40,58,40,35,40,40,35,47,48,40,58,47,48,0,40,35,40,35,40,40,35,35,40,35,40,58,47,48,0,35,47,48,40,35,40,35,58,58,35,40,35,47,48,40,35,47,48,40,40,35,47,48,40,35,35,47,48,40,40,0,0,0,0,24,24,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,86,21,21,0,87,0,0,86,85,0,86,86,21,21,21,86,87,56,21,87,87,0,0,0,56,56,85,86,86,0,0,86,86,86,85,85,86,87,57,88,21,56,85,86,87,57,88,21,56,85,86,87,57,88,56,85,86,87,57,88,56,57,88,88,85,86,87,57,88,21,85,86,87,57,88,21,21,56,85,86,87,87,57,57,88,21,56,57,85,88,86,57,85,86,87,57,88,21,56,86,87,88,57,88,21,57,57,85,86,87,57,88,88,85,86,87,57,88,56,21,85,86,87,57,88,21,56,85,86,87,57,88,21,56,85,86,87,57,88,21,56,85,86,87,57,88,21,56,186,186,186,187,188,189,188,189,188,189,188,189,188,189,190,191,192,193,194,195,195,194,196,197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,198,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,90,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,92,93,94,96,98,99,100,101,102,103,104,105,23,0,0,0,0,199,199,0,0,114,0,0,0,0,23,23,23,58,0,0,39,23,23,111,42,199,118,0,118,0,0,39,42,111,0,0,0,0,39,0,114,111,42,0,200,42,118,108,116,39,109,23,110,42,111,112,113,114,118,108,116,39,109,23,110,42,111,112,113,114,58,58,58,58,58,58,58,58,58,108,39,109,110,42,111,112,113,114,108,39,109,110,42,111,112,113,114,110,42,112,114,109,109,108,42,42,110,39,110,42,111,112,113,114,116,39,109,23,23,110,110,42,42,111,111,112,113,114,110,118,118,118,108,116,39,109,23,23,23,110,42,42,111,112,113,114,116,116,42,111,110,42,199,201,199,201,118,42,110,42,112,114,118,108,116,39,109,23,110,42,111,112,113,114,91,97,108,108,116,42,111,97,118,108,108,42,111,118,118,42,200,39,42,111,200,39,200,39,42,42,110,112,113,110,0,42,58,110,110,0,58,110,42,112,113,58,116,110,42,112,114,58,110,23,110,110,110,42,58,110,0,108,39,109,110,42,111,112,113,114,111,23,110,42,111,58,58,110,118,108,116,39,109,23,110,42,111,112,113,114,118,108,116,39,109,23,110,42,111,112,113,114,118,108,116,39,109,23,110,42,111,112,113,114,118,108,116,39,109,23,110,42,111,112,113,114,0,202,202,202,0,0,0,0,144,143,0,0,142,142,0,142,143,0,0,124,125,139,125,125,124,125,142,139,143,144,124,125,142,139,143,144,125,125,125,125,124,124,0,125,124,124,139,125,125,125,124,124,139,0,125,124,124,125,142,139,139,143,143,144,124,125,142,139,143,144,125,125,125,125,125,125,125,125,124,139,125,125,124,125,142,139,143,144,203,125,139,125,125,125,125,125,125,125,125,125,143,125,125,124,125,0,125,125,125,125,124,124,139,143,124,125,124,124,124,125,142,139,143,144,124,125,142,139,143,144,0,125,124,125,142,139,143,144,124,124,125,142,139,143,144,0,204,204,0,160,0,0,0,0,0,160,0,160,159,156,157,158,160,159,156,157,158,156,157,158,156,157,158,173,156,157,158,0,156,157,158,159,159,160,159,156,157,158,160,159,156,157,158,160,159,156,157,158,159,158,159,159,156,157,158,160,159,156,157,158,160,159,156,157,158,160,159,156,157,158,160,159,156,157,158,205,206,206,205,206,0,0,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,167,162,167,162,167,22,0,22,22,22,164,22,22,22,22,22,22,167,162,164,22,0,0,0,0,0,0,0,0,164,0,0,22,55,141,141,55,141,162,22,164,166,126,55,141,167,162,22,164,166,126,55,141,167,55,162,164,166,126,55,141,167,162,164,166,126,55,141,167,162,126,126,55,141,167,166,207,166,166,166,162,164,126,167,55,162,22,22,164,166,126,55,141,167,162,162,162,22,22,164,166,126,55,141,167,162,207,166,166,166,55,162,22,164,166,126,55,141,167,166,55,162,126,22,55,141,208,166,166,166,127,166,141,55,141,162,164,166,126,55,141,167,22,141,141,162,22,164,166,126,55,141,167,162,22,164,166,126,55,141,167,162,22,164,166,126,55,141,167,162,22,164,166,126,55,141,167,209,176,0,175,175,0,0,175,176,0,0,0,176,135,135,135,135,135,135,135,135,135,136,134,135,176,175,136,134,135,176,175,135,136,134,135,176,175,136,134,135,176,175,176,175,135,135,136,134,176,175,135,135,135,135,135,176,175,135,135,135,136,134,135,176,175,136,134,135,176,175,176,175,135,136,134,135,176,175,135,135,135,135,135,176,175,135,135,135,176,136,134,135,176,175,136,134,135,176,175,136,134,135,176,175,136,134,135,176,175,135,135,136,134,135,176,175],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[3,4],[[],5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[9,[[8,[6,7]]]]]],[1,1],[3,3],[10,10],[11,11],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[1,1],14],[[13,13],14],0,0,[[],3],[[],3],0,0,0,[[],[[9,[1]]]],[[],[[9,[10]]]],[[],[[9,[13]]]],[[1,1],15],[[3,3],15],[[10,10],15],[[11,11],15],[[12,12],15],[[13,13],15],0,[[3,5],16],[[3,17],16],[[18,19],20],[[18,19],20],[[1,19],20],[[3,19],20],[[10,19],20],[[11,19],20],[[12,19],20],[[13,19],20],0,[21,18],[22,18],[23,18],[24,18],[25,18],[26,18],[27,18],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4,3],[4,3],[4,3],[4,3],[[16,5],3],[[16,17],3],[1],[10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[12,28],0,[[1,1],[[29,[14]]]],[[3,3],[[29,[14]]]],[[13,13],[[29,[14]]]],[30],0,0,[3,4],0,0,[1,9],[10,9],[13,9],0,[[3,3]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],31],0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[12,32],0,[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],0,[[],5],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],9],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[35,36],[[9,[[38,[37]],25]]]],[[],39],[[],39],[40,41],[[[35,[42]],43],[[9,[[35,[44]],45]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[40,[[8,[40,7]]]],0,[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[[],[[9,[46]]]],[[],[[9,[46]]]],[[],[[9,[46]]]],[41,[[9,[46]]]],[41,[[9,[46]]]],[41,[[9,[46]]]],[[],[[9,[46]]]],[[],[[9,[46]]]],[[],[[9,[46]]]],0,[35,35],[47,47],[48,48],[40,40],[[]],[[]],[[]],[[]],[[35,35],14],[[47,47],14],[[48,48],14],[[40,40],14],[40,15],[[[35,[42]],43],[[9,[[35,[44]],45]]]],[[[35,[42]],49,43],[[9,[[35,[50]],45]]]],[[[35,[44]],49],[[9,[[35,[50]],45]]]],[35,51],[[],[[9,[35]]]],[[],[[9,[40]]]],[[[35,[42]]],16],[40,52],[[35,35],15],[[47,47],15],[[48,48],15],[[40,40],15],0,[35,[[9,[52,25]]]],0,[[40,53],[[9,[54]]]],[[55,56,49],[[9,[[29,[57]],24]]]],[[[35,[42]],55,56,49],[[9,[[29,[57]],24]]]],[[[40,[42,58]],55,56,49],[[9,[[29,[57]],24]]]],[[[35,[42]],49,59,[60,[43]]],[[9,[29,45]]]],[[35,19],[[9,[61]]]],[[35,19],[[9,[61]]]],[[47,19],[[9,[61]]]],[[48,19],[[9,[61]]]],[[40,19],[[9,[61]]]],[[40,19],[[9,[61]]]],[35,15],[40,15],[62,35],[[]],[63,35],[64,35],[65,35],[66,35],[67,35],[[]],[[]],[[]],[41,[[9,[40,25]]]],[[41,68,69],40],[34,[[9,[35,25]]]],[34,[[9,[40,25]]]],[[34,53],[[9,[40,25]]]],[34,[[9,[40,25]]]],[70,[[9,[35,25]]]],[70,[[9,[40,25]]]],[[40,5],[[29,[40]]]],[[40,5],29],[35,[[9,[25]]]],[35,[[9,[25]]]],[40,15],[40,15],[[[35,[42]]],15],[35],[47],[48],[40],[[]],[[]],[[]],[[]],[40,41],[[[35,[42]]],[[9,[[8,[[35,[42]],7]],25]]]],[[49,36],[[9,[24]]]],[[71,49,36],[[9,[24]]]],[[[35,[42]]],15],[[[35,[42]]],15],[40,15],[40,72],[40,73],[35,[[9,[74,25]]]],[40,[[9,[74,25]]]],[40,[[9,[75]]]],[40,[[29,[5]]]],[40,[[29,[5]]]],[40,[[29,[5]]]],[40,[[9,[5,25]]]],[35,[[9,[5,25]]]],[40,[[9,[5,25]]]],[35,[[9,[5,25]]]],[[],34],[[],34],[[],34],[[[40,[76]]],[[9,[35,25]]]],[[],35],[[],[[9,[35,25]]]],[[[40,[47]]],[[9,[35,25]]]],[[5,[8,[7]]],[[9,[35,25]]]],[63,35],[66,35],[[],[[9,[35,25]]]],[[[40,[48]]],[[9,[35,25]]]],[[5,[8,[7]]],[[9,[35,25]]]],[[[29,[77]]],[[9,[35,25]]]],[[],[[9,[35,25]]]],[[[40,[48]]],[[9,[35,25]]]],[[5,[8,[7]]],[[9,[35,25]]]],0,[40,[[9,[25]]]],[59,[[9,[40,25]]]],[[49,34],[[9,[25]]]],[59,[[9,[40,25]]]],[[59,53],[[9,[40,25]]]],[[35,35],[[29,[14]]]],[[47,47],[[29,[14]]]],[[48,48],[[29,[14]]]],[[40,40],[[29,[14]]]],[[],5],[[],5],[[],5],0,[40,15],[35,[[9,[25]]]],[40,[[9,[54]]]],[[35,78],[[9,[25]]]],[40,[[9,[[8,[[8,[2,7]],7]],25]]]],[40,[[9,[[8,[[8,[2,7]],7]],25]]]],[35,[[9,[52,25]]]],[35,52],[40,5],[35,9],[40,9],[[],79],[[],79],[[],79],0,[[]],[[]],[[]],[[]],[[],31],[[],31],[[[35,[42]],80],31],[40,[[9,[25]]]],[40,[[9,[25]]]],[35,[[9,[81]]]],[40,[[9,[81]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[[],33],[[],33],[[],33],[[],33],[35,52],[[]],[[]],[[]],[[]],[40,15],[34,[[9,[31,24]]]],[34,[[9,[24]]]],[34,[[9,[31,24]]]],[34,[[9,[24]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[24,19],20],[[24,19],20],[82,24],[83,24],[25,24],[[]],[21,24],[84,24],[26,24],[23,24],[[]],[30],[[],31],[[],9],[[],9],[[],33],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[85,85],[86,86],[87,87],[57,57],[88,88],[56,56],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],88],[[85,85],15],[[86,86],15],[[87,87],15],[[57,57],15],[[88,88],15],[[21,21],15],[[85,19],20],[[86,19],20],[[87,19],20],[[57,19],20],[[88,19],20],[[21,19],20],[[21,19],20],[[56,19],20],[[]],[[]],[15,87],[[]],[86,57],[[]],[[]],[[]],[[]],[[57,89],[[9,[88,21]]]],[85],[88],[86,31],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[86,15],[87,15],[88,15],0,[[88,88],[[29,[14]]]],[30],[57,15],0,[85,9],[86,9],[87,9],[57,9],[88,9],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],31],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[36,[[9,[90,24]]]],[[[92,[[91,[47]]]],36],[[9,[90,24]]]],[[[93,[[91,[48]]]],36],[[9,[90,24]]]],[[[94,[[91,[48]]]],36],[[9,[90,24]]]],[[[96,[[91,[95]]]],36],[[9,[90,24]]]],[[[98,[[97,[47]]]],36],[[9,[90,24]]]],[[[99,[[97,[47]]]],36],[[9,[90,24]]]],[[[100,[[97,[48]]]],36],[[9,[90,24]]]],[[[101,[[97,[48]]]],36],[[9,[90,24]]]],[[[102,[[97,[48]]]],36],[[9,[90,24]]]],[[[103,[[97,[48]]]],36],[[9,[90,24]]]],[[[104,[[97,[95]]]],36],[[9,[90,24]]]],[[[105,[[97,[95]]]],36],[[9,[90,24]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[90,49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[49,36],[[9,[24]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],106],[[],39],[[42,43],[[9,[44,45]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[40,[[9,[46]]]],[[],[[9,[46]]]],[41,[[9,[46]]]],[[],[[9,[46]]]],[[[108,[107,58]]],[[108,[107,58]]]],[39,39],[109,109],[110,110],[42,42],[111,111],[112,112],[113,113],[114,114],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[110,110],14],[[42,42],14],[[112,112],14],[[114,114],14],0,[[],109],[[[108,[58]]]],[[42,43],[[9,[44,45]]]],[[],[[9,[42]]]],[110,52],[[39,39],15],[[110,110],15],[[42,42],15],[[111,111],15],[[112,112],15],[[113,113],15],[[114,114],15],[[[116,[[0,[115,58]]]],19],20],[[39,19],20],[[109,19],20],[[23,19],20],[[23,19],20],[[110,19],[[9,[61]]]],[[110,19],[[9,[61]]]],[[42,19],[[9,[61]]]],[[42,19],[[9,[61]]]],[[111,19],[[9,[61]]]],[[111,19],[[9,[61]]]],[[112,19],[[9,[61]]]],[[113,19],[[9,[61]]]],[[114,19],[[9,[61]]]],[110,15],[117,[[118,[58]]]],[119,[[118,[58]]]],[[]],[[]],[[]],[[]],[[]],[[]],[26,23],[25,23],[[]],[[]],[44,42],[[]],[[]],[[]],[[]],[[42,106],[[116,[58]]]],[[111,106],[[116,[58]]]],[34,[[9,[42]]]],[34,[[9,[111]]]],[70,[[9,[110,25]]]],[42,[[29,[120]]]],[[],[[9,[108]]]],[[],[[9,[108]]]],[[],[[9,[108]]]],[[],[[9,[108]]]],[[[118,[58]]],15],[42,15],[110],[42],[112],[114],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[9,[116,23]]]],[[[29,[121]],120],[[9,[116,23]]]],[108,[[9,[116,23]]]],[[108,[29,[121]],120],[[9,[116,23]]]],[[[116,[58]]],[[9,[[116,[58]],23]]]],[42,[[9,[[116,[58]],23]]]],[111,[[9,[[116,[58]],23]]]],[[],[[9,[118,23]]]],[[[118,[58]]],[[9,[[118,[58]],23]]]],[108,[[9,[118,23]]]],[[[108,[58]]]],[42,[[8,[42,7]]]],[111,[[8,[111,7]]]],[[[118,[58]],36],[[29,[117]]]],[[[118,[58]],36,49],119],[42,15],[[],15],[39,15],[42,15],[111,15],[[],15],[39,15],[[],15],[39,15],[42,15],[42,15],0,0,0,[110,[[9,[74,25]]]],[[],106],[42,122],[40,[[29,[5]]]],[110,5],[110,5],[[106,106],106],[[],34],[[5,[8,[7]]],[[9,[110,25]]]],[42,5],0,0,[40,[[9,[25]]]],[[[116,[58]],106],[[116,[58]]]],[[110,110],[[29,[14]]]],[[42,42],[[29,[14]]]],[[112,112],[[29,[14]]]],[[114,114],[[29,[14]]]],[[],5],0,[30],[110,[[9,[25]]]],[110,[[9,[[8,[[8,[2,7]],7]],25]]]],[110,5],[42,9],[[],79],[110,41],[[],106],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[111,49],[[9,[42,123]]]],[[],31],[[],31],[[],31],[[],31],[40,[[9,[25]]]],[40,[[9,[25]]]],[110,[[9,[110,81]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[29,[16]]]],[[],[[29,[3]]]],[5,[[29,[32]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[124,124],124],[[125,1,126,[128,[127]]]],0,[[125,129],[[9,[130]]]],[125,131],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[125,132],[[9,[[135,[133,134]],18]]]],[125,[[135,[133,136]]]],[[125,137]],[125,138],[124,124],[[]],0,[125,[[9,[15]]]],0,[[],124],[139],[[125,1],[[29,[43]]]],[[125,59],29],[[125,1],31],[[],[[9,[124]]]],[[124,124],15],[[139,139],15],0,[[125,140,141],[[9,[15,18]]]],[[124,19],[[9,[61]]]],[[124,19],[[9,[61]]]],[[[125,[115]],19],20],[[142,19],20],[[139,19],20],[[139,19],20],[[143,19],20],[[[143,[115]],19],20],[[144,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[125,142],139],[125,124],[[125,1],71],[[125,142],139],[[125,10,[29,[145]],15],[[9,[146,18]]]],[[125,1],[[128,[55]]]],[[125,132,15],[[29,[13]]]],[[125,28],[[29,[10]]]],0,0,[[125,147],[[9,[15,148]]]],[[125,137,149],[[9,[15,144]]]],[[]],[[]],[[]],[[]],[[]],[[]],[59,15],[[125,59],15],0,[125,89],[125,[[29,[150]]]],[125,151],[125,152],[125,36],[[153,[29,[153]],36],[[9,[125,143]]]],[[153,[29,[153]],36],[[9,[125,24]]]],[[125,1],43],[[125,1],[[9,[[29,[57]],18]]]],[30],[[125,1],[[29,[71]]]],[125,49],[124,9],[[125,140,141],[[9,[15,18]]]],0,[125,154],[125,[[89,[1,[0,[151,107]]]]]],[[125,1],[[0,[151,107]]]],[125,155],[[]],[[],31],[[],31],[[],31],[124,16],[125,151],0,[124,16],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],0,[125,131],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],0,[[]],[[]],[[]],[[]],[[]],[[]],[[29,36,49],[[9,[31,18]]]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[156,156],[157,157],[158,158],[[]],[[]],[[]],[[[8,[11]],[8,[11]],3,16,59],[[9,[159,18]]]],[[156,[8,[11]],[8,[11]],3,16,59],[[9,[159,18]]]],[[157,[8,[11]],[8,[11]],3,16,59],[[9,[159,18]]]],[[158,[8,[11]],[8,[11]],3,16,59],[[9,[159,18]]]],[[16,3,59],160],[[],156],[[],157],[[],158],0,0,[[160,19],20],[[159,19],20],[[156,19],20],[[157,19],20],[[158,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[159,16],[16,158],0,[159,16],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,[[]],[[]],[161,[[29,[31]]]],[161,31],[[],[[9,[161]]]],[[125,34,15],[[9,[161,34]]]],[[161,19],20],[[]],[34,[[9,[161]]]],[[]],0,[161,9],[161,31],[[],9],[[],9],[[],33],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[55,162,126,[128,[127]]],[[29,[[128,[127]]]]]],0,0,[[55,49],163],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[163,35,49],55],[162,162],[164,164],[[[166,[[0,[107,165,115,107]]]]],[[166,[[0,[107,165,115,107]]]]]],[126,126],[55,55],[141,141],[167,167],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[162,162],14],[[126,126],14],[[],126],[[],55],[[],141],[[],167],[[[166,[[0,[165,115,107]]]]]],[[],[[29,[111]]]],[[[166,[[168,[117]]]]],[[29,[111]]]],[[[166,[[169,[117]]]]],[[29,[111]]]],[[[166,[170]]],[[29,[111]]]],[[162,162],15],[[164,164],15],[[126,126],15],[[167,167],15],[[55,162],[[29,[128]]]],[[162,19],20],[[22,19],20],[[22,19],20],[[164,19],20],[[[166,[[0,[115,165,115,107]]]],19],20],[[126,19],20],[[55,19],20],[[141,19],20],[[167,19],20],[122,162],[171,162],[[]],[[]],[172,22],[[]],[[]],[[]],[[]],[[]],[[]],[162],[49,162],[[[166,[[169,[117]]]],49],162],[[[166,[[168,[117]]]],49],162],[[[166,[170]],49],162],[55,[[8,[162]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[165,115,107]],164],[[166,[[0,[165,115,107]]]]]],[[],55],[[162,162],[[29,[14]]]],[[126,126],[[29,[14]]]],[30],[[55,162,126],[[29,[[128,[127]]]]]],0,[[140,5,141,49],[[9,[22]]]],[[[166,[[168,[117]]]],140,5,141,49],[[9,[22]]]],[[[166,[[169,[117]]]],140,5,141,49],[[9,[22]]]],[[[166,[170]],140,5,141,49],[[9,[22]]]],[[140,141,49],[[9,[22]]]],[[140,141,49],[[9,[22]]]],0,[55,[[8,[128]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],31],0,0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[135,[173,136]]],[[135,[173,136]]]],[[[135,[173,174]],28,146,5],[[9,[[135,[173,174]],18]]]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,136]],52,16],[[135,[173,136]]]],[[[135,[173,174]],28],[[135,[173,174]]]],[[[135,[173,174]],28],[[9,[[135,[173,174]],18]]]],[[[135,[173,174]]],[[9,[[135,[173,174]],18]]]],[[[135,[173,174]],15],[[135,[173,174]]]],[[[135,[133,134]],52],[[9,[[135,[133,134]],18]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[135,[173,174]],175],[[135,[173,174]]]],[136,136],[134,134],[[[135,[107]]],[[135,[107]]]],[176,176],[175,175],[[]],[[]],[[]],[[]],[[]],[[176,176],14],[[175,175],14],[[[135,[173,174]],173],[[135,[173,174]]]],[[[135,[173,174]],43],[[135,[173,174]]]],[[],136],[[],134],[[],176],[[],175],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,136]],52],[[135,[173,136]]]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,174]],177],[[135,[173,174]]]],[[176,176],15],[[175,175],15],[[[135,[173,174]],16],[[135,[173,174]]]],[[[135,[173,174]],3],[[135,[173,174]]]],[[[135,[173,174]]],[[9,[18]]]],[[136,19],20],[[134,19],20],[[[135,[115,115,115]],19],20],[[176,19],20],[[175,19],20],[[]],[[]],[[]],[[]],[[]],[176],[175],[[[135,[173,174]]],[[135,[173,174]]]],[[]],[[]],[[]],[[]],[[]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,174]],178],[[135,[173,174]]]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,174]]],[[135,[173,174]]]],[[[135,[173,174]],176],[[135,[173,174]]]],[[176,176],[[29,[14]]]],[[175,175],[[29,[14]]]],[[[135,[173,174]],[89,[31,[8,[5]]]],1],[[135,[173,174]]]],[[[135,[173,136]],8],[[135,[173,136]]]],[[[135,[173,174]],145],[[135,[173,174]]]],[[176,137]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],33],[[],33],[[],33],[[],33],[[],33],[[[135,[173,174]],[8,[28]]],[[135,[173,174]]]],[[[135,[173,174]],179],[[135,[173,174]]]],[[]],[[]],[[]],[[]],[[]]],"p":[[4,"KeychainKind"],[15,"u8"],[3,"FeeRate"],[15,"f32"],[15,"usize"],[3,"u5"],[3,"Global"],[3,"Vec"],[4,"Result"],[3,"LocalUtxo"],[3,"WeightedUtxo"],[4,"Utxo"],[3,"TransactionDetails"],[4,"Ordering"],[15,"bool"],[15,"u64"],[3,"Weight"],[4,"Error"],[3,"Formatter"],[6,"Result"],[4,"PolicyError"],[4,"SignerError"],[4,"KeyError"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"Error"],[3,"OutPoint"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[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"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Sh"],[3,"Wpkh"],[3,"Tr"],[3,"Pkh"],[3,"Wsh"],[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,"HashMap"],[4,"TranslateErr"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[3,"BTreeMap"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[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,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[6,"Update"],[3,"CannotConnectError"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[3,"CreateTx"],[3,"Transaction"],[3,"CheckPointIter"],[3,"AddressInfo"],[3,"PartiallySignedTransaction"],[3,"SignOptions"],[4,"AddressIndex"],[4,"NewError"],[4,"InsertTxError"],[3,"PsbtSighashType"],[3,"Input"],[3,"BlockId"],[3,"InsertBlockError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"Iterator"],[3,"LocalChain"],[8,"IntoWalletDescriptor"],[3,"KeychainTxOutIndex"],[6,"ChangeSet"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Excess"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"DescriptorMultiXKey"],[3,"DescriptorXKey"],[3,"PrivateKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[8,"TxBuilderContext"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[3,"Sequence"],[4,"LockTime"],[15,"i32"],[8,"Vbytes"],[13,"InsufficientFunds"],[13,"FeeRateTooLow"],[13,"FeeTooLow"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"Change"],[13,"NoChange"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"]]},\ +"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[8,8,17,3,17,8,4,3,4,3,13,13,8,16,8,3,2,16,3,8,3,3,2,13,13,16,11,10,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,10,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,10,11,11,11,11,11,12,12,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,10,0,11,2,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,16,3,3,8,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,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,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,12,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,12,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,3,6,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,3,3,3,3,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,11,11,11,11,11,11,11,11,11,11,11,11,11,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,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,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeAnchor","Confirmed","Confirmed","DescriptorExt","Error","ForEachTxOut","FullTxOut","IndexedTxGraph","LoadError","Persist","PersistBackend","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","WriteError","all_spks","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_additions","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","deserialize","deserialize","deserialize","deserialize","dust_value","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_txout","from","from","from","from","from","from","from","from","from","from","from","from","get_chain_tip","hash","hash","hash","hash","hash","hash","height","index_of_spk","index_tx","index_txout","indexed_tx_graph","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","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","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","Additions","IndexedAdditions","IndexedTxGraph","Indexer","append","apply_additions","apply_additions","apply_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph_additions","index","index_additions","index_tx","index_txout","insert_relevant_txs","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","DerivationAdditions","KeychainTxOutIndex","LocalChangeSet","LocalUpdate","add","add_keychain","append","append","apply_additions","apply_additions","as_inner","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain_changeset","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","confirmed","default","default","default","default","deref","deserialize","deserialize","deserialize","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","graph","immature","index_tx","index_txout","indexed_additions","inner","into","into","into","into","into","is_empty","is_empty","is_tx_relevant","keychains","last_active_indices","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead_to_target","lookahead_to_target_multi","lookaheads","mark_used","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_spks_of_all_keychains","revealed_spks_of_keychain","scan","scan_txout","serialize","serialize","serialize","set_lookahead","set_lookahead_for_all","spks_of_all_keychains","spks_of_keychain","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","txouts_of_keychain","type_id","type_id","type_id","type_id","type_id","unmark_used","untrusted_pending","unused_spks_of_keychain","vzip","vzip","vzip","vzip","vzip","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InsertBlockError","LocalChain","Update","apply_changeset","apply_update","block_id","blocks","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_blocks","from_changeset","from_tip","get_chain_tip","hash","height","height","initial_changeset","insert_block","into","into","into","into","into","into","into_iter","into_iter","introduce_older_blocks","is_block_in_chain","is_empty","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","push","tip","tip","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_include_height","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","Additions","CanonicalTx","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchors","anchors","append","apply_additions","apply_update","as_ref","balance","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","determine_additions","direct_conflicts_of_tx","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","for_each_txout","for_each_txout","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","insert_anchor","insert_anchor_preview","insert_seen_at","insert_seen_at_preview","insert_tx","insert_tx_preview","insert_txout","insert_txout_preview","into","into","into","into","into","into_iter","is_empty","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","missing_heights","new","next","node","observed_as","outspends","partial_cmp","partial_cmp","serialize","to_owned","to_owned","to_owned","to_owned","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","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_list_chain_txs","tx","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","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 …","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 confirmed variant.","A trait to extend the functionality of a miniscript …","Error type.","Trait to do something with every txout contained in a …","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 seen in mempool at this given timestamp.","The unconfirmed variant.","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 persistance …","The exact confirmation height of the transaction.","The confirmation height of the chain data 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 chain data being anchored.","","","","","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","","","","","The provided closure f will be called with each …","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","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 structure and associated types.","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.","Creates a new script pubkey iterator starting at 0 from 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 an object containing many txouts.","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 commited later with commit.","Get the changes that have not been commited 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.","The resultant “additions” when new transaction data is …","A structure that represents changes to an IndexedTxGraph.","A struct that combines TxGraph and an Indexer …","Represents a structure that can index transaction data.","","Apply additions to itself.","Applies the IndexedAdditions to the IndexedTxGraph.","Apply an update directly.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a reference of the internal transaction graph.","TxGraph additions.","Transaction index.","Indexer additions.","Scan and index the given transaction.","Scan and index the given outpoint and txout.","Insert relevant transactions from the given txs iterator.","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 …","A convenient wrapper around SpkTxOutIndex that relates …","A structure that records the corresponding changes as …","A structure to update KeychainTxOutIndex, TxGraph and …","","Add a keychain to the tracker’s txout_index with a …","Append another DerivationAdditions into self.","","Applies the derivation additions to the KeychainTxOutIndex…","","Get the inner map of the keychain to its new derivation …","","","","","","","","","","","","Update for the LocalChain.","Changes to the LocalChain.","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Update for the TxGraph.","All coinbase outputs not yet matured","","","Additions to IndexedTxGraph.","Return a reference to the internal SpkTxOutIndex.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns whether the additions are empty.","","","Return a reference to the internal map of the keychain to …","Contains the last active derivation indices per keychain (K…","Get the last derivation index revealed for keychain.","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the keychain where …","Returns the highest derivation index of each keychain that …","Store lookahead scripts until target_index.","Convenience method to call lookahead_to_target for …","Return the lookahead setting for each keychain.","Marks the script pubkey at index as used even though the …","Construct a LocalUpdate with a given local_chain::Update.","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 …","Convenience method to get revealed_spks_of_keychain of all …","Iterates over the script pubkeys revealed by this index …","Scans an object for relevant outpoints, which are stored …","Scan a single outpoint for a matching script pubkey.","","","","Set the lookahead count for keychain.","Convenience method to call set_lookahead for all keychains.","Generates script pubkey iterators for every keychain. The …","Generates a script pubkey iterator for the given keychain…","","","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","Iterates over all the OutPoint that have a TxOut with a …","","","","","","Undoes the effect of mark_used. Returns whether the index …","Unconfirmed UTXOs received from an external wallet","Iterates over all unused script pubkeys for a keychain …","","","","","","Occurs when an update does not have a common checkpoint …","A structure that represents changes to LocalChain.","A LocalChain checkpoint is used to find the agreement …","A structure that iterates over checkpoints backwards.","Represents a failure when trying to insert a checkpoint …","This is a local implementation of ChainOracle.","A struct to update LocalChain.","Apply the given changeset.","Applies the given update to the chain.","Get the BlockId of the checkpoint.","Get a reference to the internal index mapping the height …","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","Constructs a LocalChain from a BTreeMap of height to …","Construct a LocalChain from an initial changeset.","Construct a LocalChain from a given checkpoint tip.","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpoints’ 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).","","","Whether the update allows for introducing older blocks.","","Returns whether the LocalChain is empty (has no …","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.","","Original checkpoint’s block hash.","Get the previous checkpoint in the chain","","","Puts another checkpoint onto the linked list representing …","Get the highest checkpoint.","The update chain’s new tip.","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two …","","","","","","","","","","","","","Update checkpoint’s block hash.","","","","","","","A structure that represents changes to a TxGraph.","An outwards-facing view of a transaction that is part of …","An iterator that traverses transaction descendants.","A graph of transactions and spends.","An outward-facing view of a (transaction) node in the …","Get all transaction anchors known by TxGraph.","Iterate over all tx outputs known by TxGraph.","The blocks that the transaction is “anchored” in.","Added anchors.","","Applies Additions to TxGraph.","Extends this graph with another so that self becomes the …","","Get the total balance of outpoints that are in chain of …","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if tx …","","","","","","","","","","","","","","","","","Previews the resultant Additions when Self is updated …","Given a transaction, return an iterator of txids that …","","","","","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.","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 …","Inserts the given anchor into TxGraph.","Returns the resultant Additions if the txid is set in …","Inserts the given seen_at into TxGraph.","Returns the resultant Additions if the txid is set to …","Inserts the given transaction into TxGraph.","Returns the resultant Additions if the given transaction …","Inserts the given TxOut at OutPoint.","Returns the resultant Additions if the given txout is …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Whether the graph has any transactions or outputs in it.","","Returns true if the Additions is empty (no transactions or …","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.","Find missing block heights of chain.","Construct a new TxGraph from a list of transactions.","","The transaction node (as part of the graph).","How the transaction is observed as (confirmed or …","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.","Returns known outputs of a given txid.","Iterates over the transactions spending from txid.","Txid of the transaction.","Iterates over all outpoints contained within Additions.","Added txouts.","Added transactions.","","","","","","","","","","","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,8,9,0,72,0,0,0,73,0,0,0,0,0,8,9,73,3,17,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,9,5,6,7,74,8,9,5,6,7,10,3,8,9,5,6,7,10,13,75,3,8,9,9,5,5,5,6,7,10,13,11,72,8,9,5,6,7,5,5,3,3,3,0,3,3,8,9,5,6,7,10,13,11,11,72,8,9,10,40,10,10,3,3,3,0,73,0,3,0,3,13,11,11,11,10,3,3,8,9,5,6,7,10,3,3,3,9,5,6,7,10,3,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,73,76,77,76,42,0,0,0,41,42,43,43,43,41,43,41,41,41,43,41,41,41,43,41,43,41,41,41,43,41,43,41,42,42,43,43,43,43,41,41,42,43,41,41,43,41,43,41,43,41,43,41,0,0,0,0,0,49,50,46,53,50,50,46,46,50,46,54,53,49,50,46,54,53,49,54,53,50,46,54,53,49,50,46,54,53,49,49,50,46,53,49,50,46,53,49,46,53,49,50,46,54,53,49,49,50,46,54,53,53,53,49,54,49,50,50,53,50,50,46,54,53,49,46,53,50,50,54,50,50,50,50,50,50,50,50,54,50,50,50,50,50,50,50,50,50,50,46,53,49,50,50,50,50,50,46,54,53,49,49,49,49,49,50,46,54,53,49,50,46,54,53,49,50,50,46,54,53,49,50,49,50,50,46,54,53,49,0,0,0,0,0,0,0,59,59,61,59,64,61,56,59,62,60,64,61,56,59,62,60,61,56,59,62,60,61,56,59,62,60,59,59,62,60,61,61,56,59,62,62,60,60,64,61,56,59,59,62,60,59,59,59,59,61,61,62,59,59,64,61,56,59,62,60,64,61,56,59,59,61,59,61,64,62,61,62,60,61,59,56,61,56,59,62,60,62,60,64,61,56,59,62,60,60,64,61,56,59,62,60,64,61,56,59,62,60,62,64,61,56,59,62,60,0,0,0,0,0,44,44,68,47,47,44,44,44,44,70,44,68,69,47,70,44,68,69,47,44,70,70,44,68,69,47,44,68,69,47,68,69,44,47,68,47,44,44,44,68,69,47,44,44,44,44,68,69,47,44,47,70,44,68,69,47,44,44,44,44,44,44,44,44,44,44,44,44,44,44,70,44,68,69,47,70,44,47,47,47,68,44,44,44,70,69,69,44,68,69,47,44,68,69,47,44,44,44,70,44,68,69,47,44,44,70,44,68,69,47,44,68,44,44,68,47,47,47,70,44,68,69,47,70,44,68,69,47,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],[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],[[],[[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],[24],[[]],[[]],[[[8,[7]]],9],[[]],[[],5],[[]],[[],5],[[]],[[]],[[]],[[]],[[]],[[],[[15,[[14,[5]]]]]],[[[8,[25]]]],[9],[5],[6],[7],0,0,[[[3,[[0,[1,2]]]],26],14],[[[3,[[0,[1,2]]]],27]],[[[3,[[0,[1,2]]]],28,29]],0,[[[3,[[0,[1,2]]]],[0,[1,2]],30],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[5,5],[[15,[[14,[20]]]]]],[8,20],[9,20],[[[10,[17]],16],20],[[],20],[[[10,[17]],16],20],0,[[[3,[[0,[1,2]]]],27],20],[[[3,[[0,[1,2]]]],27],20],[[[3,[[0,[1,2]]]]],20],0,[[],15],0,[[[3,[[0,[1,2]]]]],20],0,[[[3,[[0,[1,2]]]],27],31],[[],13],[[],11],[11,14],[[11,32],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]]]]],[[33,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],28,29],14],[[[3,[[0,[1,2]]]],27]],[9,15],[5,15],[6,15],[7,15],0,[[[3,[[0,[1,2]]]]],[[14,[26]]]],[13],[13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[[3,[[0,[1,2]]]],28],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]]]]],35],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],0,0,0,0,0,0,0,[[[41,[17,40]],[41,[17,40]]]],[[]],[[[43,[17,42]],[41,[17]]]],[[[43,[17,42]],[44,[17]]],[[41,[17]]]],[[]],[[]],[[]],[[]],[[[41,[1,1]]],[[41,[1,1]]]],[[]],[[],[[43,[45]]]],[[],[[41,[45]]]],[[],[[15,[41]]]],[[[41,[19,19]],41],20],[[[43,[21,21]],22],23],[[[41,[21,21]],22],23],[[]],[[]],[46,[[41,[46]]]],[47,[[41,[45]]]],[43,44],0,0,0,[27],[[28,29]],[[[43,[17,42]],48,[14,[18]]],[[41,[17]]]],[[[43,[17,42]],27,48,[14,[18]]],[[41,[17]]]],[[[43,[17,42]],28,29],[[41,[17]]]],[[]],[[]],[[[41,[17,40]]],20],[27,20],[[],43],[41,15],[[]],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[]],[[]],0,0,0,0,0,[[49,49],49],[[[50,[[0,[1,2,21]]]],[0,[1,2,21]],[52,[51]]]],[[[46,[2]],[46,[2]]]],[[[53,[2,17]],[53,[2,17]]]],[[[50,[[0,[1,2,21]]]],[46,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]]]],[46,4],[46,4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[50,[1]]],[[50,[1]]]],[[[46,[1]]],[[46,[1]]]],[[[54,[1,1]]],[[54,[1,1]]]],[[[53,[1,1]]],[[53,[1,1]]]],[49,49],[[]],[[]],[[]],[[]],[[]],0,[[],50],[[],46],[[],53],[[],49],[50],[[],[[15,[46]]]],[[],[[15,[53]]]],[[],[[15,[49]]]],[[[46,[19]],46],20],[[[53,[19,19]],53],20],[[49,49],20],[[[50,[21]],22],23],[[[46,[21]],22],23],[[[54,[21,21]],22],23],[[[53,[21,21]],22],23],[[49,22],23],[[49,22],23],[[]],[[]],[[]],[[[41,[46]]],53],[55,53],[[]],[[]],0,0,[[[50,[[0,[1,2,21]]]],27]],[[[50,[[0,[1,2,21]]]],28,29]],0,[[[50,[[0,[1,2,21]]]]],3],[[]],[[]],[[]],[[]],[[]],[[[46,[2]]],20],[[[53,[2,17]]],20],[[[50,[[0,[1,2,21]]]],27],20],[[[50,[[0,[1,2,21]]]]],4],0,[[[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]]]],[4,[[0,[1,2,21]],16]]]],[[[50,[[0,[1,2,21]]]]],4],[[[50,[[0,[1,2,21]]]],16],20],[56,54],[[[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]]]]],[[4,[[0,[1,2,21]],[0,[57,1]]]]]],[[[50,[[0,[1,2,21]]]]],[[0,[35,1]]]],[[[50,[[0,[1,2,21]]]]],[[46,[[0,[1,2,21]]]]]],[[[50,[[0,[1,2,21]]]],28,29],[[46,[[0,[1,2,21]]]]]],[46,15],[53,15],[49,15],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]],16]],[[[50,[[0,[1,2,21]]]]],[[4,[[0,[1,2,21]],[11,[[52,[51]]]]]]]],[[[50,[[0,[1,2,21]]]]],[[11,[[52,[51]]]]]],[[]],[[]],[[]],[[]],[[]],[[],58],[49,18],0,[49,18],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[50,[[0,[1,2,21]]]]],35],[[],39],[[],39],[[],39],[[],39],[[],39],[[[50,[[0,[1,2,21]]]],16],20],0,[[[50,[[0,[1,2,21]]]]],35],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[59,55]],[[59,56],[[15,[55,60]]]],[61,5],[59,4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61,61],[56,56],[59,59],[62,62],[60,60],[[]],[[]],[[]],[[]],[[]],[[],59],[[59,59],20],[[62,62],20],[[60,60],20],[[61,48],[[15,[61,61]]]],[[61,22],23],[[56,22],23],[[59,22],23],[[62,22],23],[[62,22],23],[[60,22],23],[[60,22],23],[[]],[[]],[[]],[[]],[[[4,[16,63]]],59],[[]],[[]],[[[4,[16,63]]],59],[55,59],[61,59],[59,[[15,[[14,[5]]]]]],[61,63],[61,16],0,[59,55],[[59,5],[[15,[55,62]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61],0,[[59,5,5],[[15,[[14,[20]]]]]],[59,20],[61,64],[59,64],[5,61],[64,14],0,[61,[[14,[61]]]],[65],[65],[[61,5],[[15,[61,61]]]],[59,[[14,[61]]]],0,[[]],[[]],[[]],[[]],[[]],[[],58],[[],58],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],39],[[],39],[[],39],[[],39],[[],39],[[],39],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[44,33],[44,57],0,0,[[[47,[2]],[47,[2]]]],[[[44,[[0,[1,2]]]],[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],[44,[[0,[1,2]]]]],[[47,[[0,[1,2]]]]]],[44,44],[[[44,[17]],5,48,24],49],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[44,27],[[14,[31]]]],[[],[[14,[66]]]],[[],[[14,[67]]]],[[[44,[1]]],[[44,[1]]]],[[[68,[1,1]]],[[68,[1,1]]]],[[[69,[1,1]]],[[69,[1,1]]]],[[[47,[1]]],[[47,[1]]]],[[]],[[]],[[]],[[]],[[[68,[2,2]],68],12],[[[69,[2,2]],69],12],[[],44],[[],47],[68],[[],[[15,[47]]]],[[[44,[[0,[1,2]]]],44],[[47,[[0,[1,2]]]]]],[[44,27],57],[[[44,[19]],44],20],[[[68,[19,19]],68],20],[[[69,[19,19]],69],20],[[[47,[19]],47],20],[[[44,[17]],5,48],57],[[[44,[17]],5,48],57],[44,57],[[[44,[21]],22],23],[[[68,[21,21]],22],23],[[[69,[21,21]],22],23],[[[47,[21]],22],23],[[44,24]],[[47,24]],[[]],[[]],[[]],[[]],[[]],[44,57],[[[44,[17]],5,38],[[14,[8]]]],[[[44,[17]],5,28],14],[[44,38],[[14,[27]]]],[[44,38],[[14,[[68,[27]]]]]],[[44,28],[[14,[29]]]],[[[44,[[0,[1,2]]]],38,[0,[1,2]]],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,[0,[1,2]]],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,18],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],38,18],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],27],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],27],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],28,29],[[47,[[0,[1,2]]]]]],[[[44,[[0,[1,2]]]],28,29],[[47,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[44,20],[[[47,[2]]],20],[47,20],0,0,[[[44,[17]],5],57],[[[44,[17]],59],57],[48,[[44,[[0,[1,2]]]]]],[70,14],0,0,[[44,28],71],[[[68,[36,36]],68],[[14,[12]]]],[[[69,[36,36]],69],[[14,[12]]]],[47,15],[[]],[[]],[[]],[[]],[[[44,[17]],5,48,24],[[15,[49]]]],[[[44,[17]],5,48],57],[[[44,[17]],5,48],57],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5,38],[[15,[[14,[8]]]]]],[[[44,[17]],5,28],[[15,[14]]]],[[],15],[[],15],[[],15],[[],15],[[],15],[[[44,[17]],5],57],0,[[44,38],[[14,[[4,[16,29]]]]]],[[44,38],35],0,[47,57],0,0,[[],39],[[],39],[[],39],[[],39],[[],39],[[]],[[]],[[]],[[]],[[]],[[44,27],70],[[44,38],70]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeAnchor"],[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"],[8,"FnMut"],[8,"Hash"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[15,"i64"],[15,"usize"],[3,"BTreeSet"],[8,"RangeBounds"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"IndexedAdditions"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"Default"],[3,"DerivationAdditions"],[3,"Additions"],[8,"IntoIterator"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"LocalChangeSet"],[3,"LocalUpdate"],[6,"ChangeSet"],[3,"Update"],[8,"Iterator"],[3,"String"],[3,"LocalChain"],[3,"CannotConnectError"],[3,"CheckPoint"],[3,"InsertBlockError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[3,"Amount"],[3,"SignedAmount"],[3,"TxNode"],[3,"CanonicalTx"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"PersistBackend"],[8,"DescriptorExt"],[8,"ForEachTxOut"],[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 the bdk_chain…","t":[8,3,2,11,11,11,11,2,11,11,11,11,12,11,12,11,12,10,11,11,11,11,11,11,11],"n":["ElectrumExt","ElectrumUpdate","bdk_chain","borrow","borrow_mut","clone","clone_into","electrum_client","finalize","finalize_as_confirmation_time","fmt","from","graph_update","into","keychain_update","missing_full_txs","new_tip","scan","scan_without_keychain","scan_without_keychain","to_owned","try_from","try_into","type_id","vzip"],"q":["bdk_electrum","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait to extend Client functionality.","Represents an update fetched from an Electrum server, but …","","","","","","","Finalizes update with missing txids to fetch from client.","Finalizes the ElectrumUpdate with new_txs and anchors of …","","Returns the argument unchanged.","Map of Txids to associated Anchors.","Calls U::from(self).","Last-used index update for KeychainTxOutIndex.","Determine the full transactions that are missing from graph…","The latest chain tip, as seen by the Electrum server.","Scan the blockchain (via electrum) for the data specified …","Convenience method to call scan without requiring a …","Convenience method to call scan without requiring a …","","","","",""],"i":[0,0,0,2,2,2,2,0,2,2,2,2,2,2,2,2,2,24,24,24,2,2,2,2,2],"f":[0,0,0,[[]],[[]],[[[2,[1,1]]],[[2,[1,1]]]],[[]],0,[[[2,[3]],4,[6,[5]],[8,[7]]],[[11,[[9,[3]],10]]]],[[[2,[12]],4,[6,[5]],[8,[7]]],[[11,[[9,[13]],10]]]],[[[2,[14,14]],15],16],[[]],0,[[]],0,[[[2,[3]],17],[[8,[7]]]],0,[[[6,[18]],[21,[[0,[19,1]],20]],20,20,22,22],[[11,[[2,[[0,[19,1]]]],10]]]],[[[6,[18]],20,20,20,22],[[11,[2,10]]]],[[[6,[18]],20,20,20,22],[[11,[2,10]]]],[[]],[[],11],[[],11],[[],23],[[]]],"p":[[8,"Clone"],[3,"ElectrumUpdate"],[8,"Anchor"],[3,"Client"],[15,"u64"],[4,"Option"],[3,"Txid"],[3,"Vec"],[3,"LocalUpdate"],[4,"Error"],[4,"Result"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeAnchor"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"TxGraph"],[3,"CheckPoint"],[8,"Ord"],[8,"IntoIterator"],[3,"BTreeMap"],[15,"usize"],[3,"TypeId"],[8,"ElectrumExt"]]},\ "bdk_esplora":{"doc":"BDK Esplora","t":[8,8,2,10,10,10,10,11,11,11,11],"n":["EsploraAsyncExt","EsploraExt","esplora_client","update_local_chain","update_local_chain","update_tx_graph","update_tx_graph","update_tx_graph_without_keychain","update_tx_graph_without_keychain","update_tx_graph_without_keychain","update_tx_graph_without_keychain"],"q":["bdk_esplora","","","","","","","","","",""],"d":["Trait to extend the functionality of …","Trait to extend the functionality of …","","Prepare an LocalChain update with blocks fetched from …","Prepare an LocalChain update with blocks fetched from …","Scan Esplora for the data specified and return a TxGraph …","Scan Esplora for the data specified and return a TxGraph …","Convenience method to call update_tx_graph without …","Convenience method to call update_tx_graph without …","Convenience method to call update_tx_graph without …","Convenience method to call update_tx_graph without …"],"i":[0,0,0,17,18,17,18,17,17,18,18],"f":[0,0,0,[[[2,[1]],3],[[6,[4,5]]]],[[[2,[1]],[0,[3,7]]],[[10,[[9,[8]]]]]],[[[13,[[0,[11,12]],3]],3,3,14,14],[[6,[5]]]],[[[13,[[0,[3,7]]]],[0,[3,7]],[0,[3,7]],14,14],[[10,[[9,[8]]]]]],[[3,3,3,14],[[6,[[16,[15]],5]]]],[[3,3,3,14],[[6,[[16,[15]],5]]]],[[[0,[3,7]],[0,[3,7]],[0,[3,7]],14],[[10,[[9,[8]]]]]],[[[0,[3,7]],[0,[3,7]],[0,[3,7]],14],[[10,[[9,[8]]]]]]],"p":[[3,"CheckPoint"],[4,"Option"],[8,"IntoIterator"],[3,"Update"],[4,"Error"],[4,"Result"],[8,"Send"],[8,"Future"],[3,"Box"],[3,"Pin"],[8,"Ord"],[8,"Clone"],[3,"BTreeMap"],[15,"usize"],[3,"ConfirmationTimeAnchor"],[3,"TxGraph"],[8,"EsploraExt"],[8,"EsploraAsyncExt"]]},\ "bdk_file_store":{"doc":"BDK File Store","t":[13,3,4,13,13,13,4,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["Bincode","EntryIter","FileError","InvalidMagicBytes","Io","Io","IterError","Store","aggregate_changesets","append_changeset","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into_iter","iter_changesets","load_from_persistence","new","new","new_from_path","next","provide","provide","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_changes","expected","got"],"q":["bdk_file_store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_file_store::FileError",""],"d":["Failure to decode data from the file.","Iterator over entries in a file store.","Error that occurs due to problems encountered with the …","Magic bytes do not match what is expected.","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 …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the stored changeset from first to last, …","","","Creates a new store from a File.","Creates or loads a store from db_path.","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[4,0,0,8,4,8,0,0,1,1,9,4,1,8,9,4,1,8,4,4,1,8,8,9,4,4,1,8,8,9,4,1,8,9,1,1,9,1,1,9,4,8,4,8,9,4,1,8,9,4,1,8,9,4,1,8,9,4,1,8,1,16,16],"f":[0,0,0,0,0,0,0,0,[1],[1,[[3,[2]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,5],6],[[4,5],6],[[[1,[7]],5],6],[[8,5],6],[[8,5],6],[[]],[[]],[2,4],[[]],[2,8],[[]],[[]],[[]],[[]],[[]],[[]],[1,9],[1,3],[[10,11],9],[11,[[3,[1,8]]]],[[],[[3,[1,8]]]],[9,12],[13],[13],[[],14],[[],14],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[1,3],0,0],"p":[[3,"Store"],[3,"Error"],[4,"Result"],[4,"IterError"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[4,"FileError"],[3,"EntryIter"],[15,"u64"],[3,"File"],[4,"Option"],[3,"Demand"],[3,"String"],[3,"TypeId"],[13,"InvalidMagicBytes"]]},\ -"bdk_tmp_plan":{"doc":"A spending plan or plan for short is a representation of a …","t":[3,8,13,13,13,13,3,3,4,4,3,3,13,13,4,13,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,12,12,12,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12],"n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashError","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","provide","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":["bdk_tmp_plan","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_tmp_plan::PlanState","","bdk_tmp_plan::RequiredSignatures","","","","",""],"d":["","","The plan is complete","","","Legacy ECDSA signatures are required","A plan represents a particular spending path for a …","A plan key contains the asset key originally provided …","The returned value from Plan::try_complete.","The signatures required to complete the plan","Signatures and hash pre-images that must be provided to …","Signatures and hash pre-images that can be used to …","Segwitv0 ECDSA signatures are required","","","A Taproot key spend signature is required","Taproot script path signatures are required","The key the planner will sign with","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A hint from how to get from the asset key to the concrete …","The key that was in the descriptor that we are satisfying …","ECDSA signatures under their keys","The expected satisfaction weight for the plan if it is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","required hash160 pre-images","hash160 pre-images under their images","","required hash256 pre-images","hash256 pre-images under their images","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","The minmum required transaction version required on the …","","","The minimum required locktime height or time on the …","The minimum required sequence (height or time) on the …","","Whether any hash pre-images are required in the plan","","required ripemd160 pre-images","ripemd160 pre-images under their images","Schnorr signautres under their keys","","required sha256 pre-images","SHA256 pre-images under their images","","required signatures","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness version for the plan","The script sig that should be set on the input","The witness that should be set on the input","","","The leaf hash of the script being used","The merkle root of the taproot output","the internal key","The keys in the script that require signatures"],"i":[0,0,33,7,33,6,0,0,0,0,0,0,6,7,0,6,6,8,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,36,5,6,7,8,9,10,11,5,6,7,8,9,10,11,5,6,10,11,8,8,10,9,5,6,7,7,8,9,10,11,33,5,6,7,7,7,8,9,10,11,11,5,10,11,5,10,33,5,6,7,8,9,10,11,11,11,9,0,7,9,9,9,5,11,5,10,10,11,5,10,6,5,5,6,7,8,9,10,11,7,9,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,11,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,9,37,37,38,39,40,41,41,40],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[3,[2]]]],[[[5,[4]]],[[5,[4]]]],[[[6,[4]]],[[6,[4]]]],[7,7],[[[8,[4]]],[[8,[4]]]],[[[9,[4]]],[[9,[4]]]],[10,10],[[[11,[4]]],[[11,[4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],6],[[],10],[[],11],0,0,0,[9,12],[[[5,[13]],14],15],[[[6,[13]],14],15],[[7,14],15],[[7,14],15],[[[8,[13]],14],15],[[[9,[13]],14],15],[[10,14],15],[[[11,[13]],14],15],[[]],[[]],[[]],[16,7],[[]],[17,7],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[9,[[3,[18]]]],[[19,11],[[3,[9]]]],[20],[9,[[3,[21]]]],[9,[[3,[22]]]],[9,5],[5,23],0,0,0,0,0,0,0,[[[6,[24]],12,25,26,[3,[27]],[3,[28]],29,10,30],[[31,[23,7]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[9,10],33],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[3,[35]]]],0,0,0,0,0,0,0,0],"p":[[3,"DefiniteDescriptorKey"],[3,"DerivationPath"],[4,"Option"],[8,"Clone"],[3,"Requirements"],[4,"RequiredSignatures"],[4,"SigningError"],[3,"PlanKey"],[3,"Plan"],[3,"SatisfactionMaterial"],[3,"Assets"],[15,"usize"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[15,"u32"],[4,"Descriptor"],[3,"Demand"],[4,"LockTime"],[3,"Sequence"],[15,"bool"],[4,"DescriptorPublicKey"],[6,"KeyMap"],[4,"Prevouts"],[4,"SchnorrSighashType"],[4,"EcdsaSighashType"],[3,"SighashCache"],[3,"Secp256k1"],[4,"Result"],[3,"String"],[4,"PlanState"],[3,"TypeId"],[4,"WitnessVersion"],[8,"CanDerive"],[13,"Complete"],[13,"Legacy"],[13,"Segwitv0"],[13,"TapScript"],[13,"TapKey"]]},\ +"bdk_tmp_plan":{"doc":"A spending plan or plan for short is a representation of a …","t":[3,8,13,13,13,13,3,3,4,4,3,3,13,13,4,13,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,12,12,12,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12],"n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashError","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","provide","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":["bdk_tmp_plan","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_tmp_plan::PlanState","","bdk_tmp_plan::RequiredSignatures","","","","",""],"d":["","","The plan is complete","","","Legacy ECDSA signatures are required","A plan represents a particular spending path for a …","A plan key contains the asset key originally provided …","The returned value from Plan::try_complete.","The signatures required to complete the plan","Signatures and hash pre-images that must be provided to …","Signatures and hash pre-images that can be used to …","Segwitv0 ECDSA signatures are required","","","A Taproot key spend signature is required","Taproot script path signatures are required","The key the planner will sign with","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A hint from how to get from the asset key to the concrete …","The key that was in the descriptor that we are satisfying …","ECDSA signatures under their keys","The expected satisfaction weight for the plan if it is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","required hash160 pre-images","hash160 pre-images under their images","","required hash256 pre-images","hash256 pre-images under their images","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","The minmum required transaction version required on the …","","","The minimum required locktime height or time on the …","The minimum required sequence (height or time) on the …","","Whether any hash pre-images are required in the plan","","required ripemd160 pre-images","ripemd160 pre-images under their images","Schnorr signautres under their keys","","required sha256 pre-images","SHA256 pre-images under their images","","required signatures","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness version for the plan","The script sig that should be set on the input","The witness that should be set on the input","","","The leaf hash of the script being used","The merkle root of the taproot output","the internal key","The keys in the script that require signatures"],"i":[0,0,33,7,33,6,0,0,0,0,0,0,6,7,0,6,6,8,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,36,5,6,7,8,9,10,11,5,6,7,8,9,10,11,5,6,10,11,8,8,10,9,5,6,7,7,8,9,10,11,33,5,6,7,7,7,8,9,10,11,11,5,10,11,5,10,33,5,6,7,8,9,10,11,11,11,9,0,7,9,9,9,5,11,5,10,10,11,5,10,6,5,5,6,7,8,9,10,11,7,9,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,11,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,9,37,37,38,39,40,41,41,40],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[3,[2]]]],[[[5,[4]]],[[5,[4]]]],[[[6,[4]]],[[6,[4]]]],[7,7],[[[8,[4]]],[[8,[4]]]],[[[9,[4]]],[[9,[4]]]],[10,10],[[[11,[4]]],[[11,[4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],6],[[],10],[[],11],0,0,0,[9,12],[[[5,[13]],14],15],[[[6,[13]],14],15],[[7,14],15],[[7,14],15],[[[8,[13]],14],15],[[[9,[13]],14],15],[[10,14],15],[[[11,[13]],14],15],[[]],[[]],[[]],[16,7],[[]],[17,7],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[9,[[3,[18]]]],[[19,11],[[3,[9]]]],[20],[9,[[3,[21]]]],[9,[[3,[22]]]],[9,5],[5,23],0,0,0,0,0,0,0,[[[6,[24]],12,25,26,[3,[27]],[3,[28]],29,10,30],[[31,[23,7]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[9,10],33],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[3,[35]]]],0,0,0,0,0,0,0,0],"p":[[3,"DefiniteDescriptorKey"],[3,"DerivationPath"],[4,"Option"],[8,"Clone"],[3,"Requirements"],[4,"RequiredSignatures"],[4,"SigningError"],[3,"PlanKey"],[3,"Plan"],[3,"SatisfactionMaterial"],[3,"Assets"],[15,"usize"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[15,"u32"],[4,"Descriptor"],[3,"Demand"],[4,"LockTime"],[3,"Sequence"],[15,"bool"],[4,"DescriptorPublicKey"],[6,"KeyMap"],[4,"Prevouts"],[4,"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_cli":{"doc":"","t":[13,4,3,13,13,13,4,4,6,13,13,13,4,6,6,13,13,13,13,13,13,13,13,13,13,4,2,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,12,11,5,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","Database","External","Index","Internal","Keychain","KeychainAdditions","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","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_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db_path","default","descriptor","deserialize","eq","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","init","into","into","into","into","into","into","into_app","into_app_for_update","network","partial_cmp","planned_utxos","run_address_cmd","run_balance_cmd","run_send_cmd","run_txo_cmd","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_into","try_into","try_into","try_into","try_into","try_into","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","change","addr_cmd","address","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.","","","","","","","","","","","","","List all addresses","","Get a new address regardless of the existing unused …","","Get the next unused address.","","Send coins to an address.","","TxOut related commands.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return only confirmed outputs.","Return only spent outputs.","Return only unconfirmed outputs.","Return only unspent outputs."],"i":[4,0,0,4,5,4,0,0,0,8,6,8,0,0,0,5,6,7,6,5,6,5,4,5,4,0,0,21,21,4,6,7,4,6,7,0,21,4,5,6,7,8,21,4,5,6,7,8,21,0,4,5,6,7,8,4,5,6,7,8,8,21,21,0,21,5,21,8,8,8,4,5,5,6,7,8,8,21,4,5,6,7,8,21,4,6,7,21,4,6,7,5,0,4,6,7,0,21,4,5,6,7,8,21,21,21,8,0,0,0,0,0,8,4,5,6,7,8,5,8,21,4,5,6,7,8,21,4,5,6,7,8,21,4,5,6,7,8,21,4,6,7,21,4,6,7,21,4,5,6,7,8,32,33,34,34,35,34,36,36,36,36],"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,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[4,[[0,[2,3]]]]],[[4,[[0,[2,3]]]]]],[5,5],[6,6],[7,7],[8,8],[[]],[[]],[[]],[[]],[[]],[[8,8],9],0,0,[[10,11,5,12,13],14],0,[[],5],0,[[],[[15,[8]]]],[[8,8],16],[[],16],[[[4,[[0,[17,3]]]],18],19],[[5,18],19],[[5,18],19],[[6,18],19],[[7,18],19],[[8,18],19],[[8,18],19],[[]],[[]],[[]],[[]],[[]],[[]],[20,[[15,[[21,[3]],22]]]],[20,[[15,[[4,[3]],22]]]],[20,[[15,[6,22]]]],[20,[[15,[7,22]]]],[20,[[15,[[21,[3]],22]]]],[20,[[15,[[4,[3]],22]]]],[20,[[15,[6,22]]]],[20,[[15,[7,22]]]],[23,[[15,[5]]]],[[24,24,24,11,25,26,[4,[3]]],14],[23,16],[23,16],[23,16],[23,14],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,[[8,8],[[27,[9]]]],[[10,28],[[15,[29]]]],[[10,24,25,6],14],[10,15],[[24,24,11,5,12,13,26],14],[[10,25,7],14],[8,15],[[]],[[]],[[]],[[]],[[]],[[],30],[[],30],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[[21,[3]],20],[[15,[22]]]],[[[4,[3]],20],[[15,[22]]]],[[6,20],[[15,[22]]]],[[7,20],[[15,[22]]]],[[[21,[3]],20],[[15,[22]]]],[[[4,[3]],20],[[15,[22]]]],[[6,20],[[15,[22]]]],[[7,20],[[15,[22]]]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[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"],[4,"Option"],[3,"Assets"],[3,"Vec"],[3,"String"],[3,"TypeId"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\ "example_electrum":{"doc":"","t":[6,17,17,4,13,3,13,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12],"n":["ChangeSet","DB_MAGIC","DB_PATH","ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","eq","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into_app","into_app_for_update","main","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","all_spks","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["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 …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,0,0,0,2,0,2,3,3,2,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,2,3,3,3,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,13,14,13,13,13],"f":[0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[2,2],[3,3],[[]],[[]],[[3,3],4],[[2,5],6],[[3,5],6],[[]],[[]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[7,[[9,[2,8]]]],[7,[[9,[3,8]]]],[10,4],[[]],[[]],[[],1],[[],1],[[],11],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],12],[[],12],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[2,7],[[9,[8]]]],[[3,7],[[9,[8]]]],[[]],[[]],0,0,0,0,0,0,0],"p":[[6,"Command"],[4,"ElectrumCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\ "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,[[],[[3,[[2,[1]]]]]]],"p":[[8,"Error"],[3,"Box"],[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 9736ee321a..2e038764e5 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 @@ -1216,11 +1216,6 @@ 1215 1216 1217 -1218 -1219 -1220 -1221 -1222
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1739,13 +1734,14 @@
             use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey};
     
             $crate::impl_top_level_pk!(Pkh, $crate::miniscript::Legacy, $key)
    +            .and_then(|(a, b, c)| Ok((a.map_err(|e| miniscript::Error::from(e))?, b, c)))
                 .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Pkh(a), b, c))
         });
         ( wpkh ( $key:expr ) ) => ({
             use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey};
     
             $crate::impl_top_level_pk!(Wpkh, $crate::miniscript::Segwitv0, $key)
    -            .and_then(|(a, b, c)| Ok((a?, b, c)))
    +            .and_then(|(a, b, c)| Ok((a.map_err(|e| miniscript::Error::from(e))?, b, c)))
                 .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Wpkh(a), b, c))
         });
         ( sh ( wpkh ( $key:expr ) ) ) => ({
    @@ -1755,7 +1751,7 @@
             use $crate::miniscript::descriptor::{Descriptor, DescriptorPublicKey, Sh};
     
             $crate::impl_top_level_pk!(Wpkh, $crate::miniscript::Segwitv0, $key)
    -            .and_then(|(a, b, c)| Ok((a?, b, c)))
    +            .and_then(|(a, b, c)| Ok((a.map_err(|e| miniscript::Error::from(e))?, b, c)))
                 .and_then(|(a, b, c)| Ok((Descriptor::<DescriptorPublicKey>::Sh(Sh::new_wpkh(a.into_inner())?), b, c)))
         });
         ( sh ( $( $minisc:tt )* ) ) => ({
    @@ -1925,8 +1921,8 @@
             $crate::keys::make_pkh($key, &secp)
         });
         ( after ( $value:expr ) ) => ({
    -        $crate::impl_leaf_opcode_value!(After, $crate::bitcoin::PackedLockTime($value)) // TODO!! https://github.com/rust-bitcoin/rust-bitcoin/issues/1302
    -    });
    +        $crate::impl_leaf_opcode_value!(After, $crate::miniscript::AbsLockTime::from_consensus($value))
    +    });
         ( older ( $value:expr ) ) => ({
             $crate::impl_leaf_opcode_value!(Older, $crate::bitcoin::Sequence($value)) // TODO!!
         });
    @@ -2019,7 +2015,6 @@
     #[cfg(test)]
     mod test {
         use alloc::string::ToString;
    -    use bitcoin::hashes::hex::ToHex;
         use bitcoin::secp256k1::Secp256k1;
         use miniscript::descriptor::{DescriptorPublicKey, KeyMap};
         use miniscript::{Descriptor, Legacy, Segwitv0};
    @@ -2028,8 +2023,8 @@
     
         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::util::bip32;
         use bitcoin::PrivateKey;
     
         // test the descriptor!() macro
    @@ -2045,18 +2040,15 @@
             assert_eq!(desc.is_witness(), is_witness);
             assert_eq!(!desc.has_wildcard(), is_fixed);
             for i in 0..expected.len() {
    -            let index = i as u32;
    -            let child_desc = if !desc.has_wildcard() {
    -                desc.at_derivation_index(0)
    -            } else {
    -                desc.at_derivation_index(index)
    -            };
    +            let child_desc = desc
    +                .at_derivation_index(i as u32)
    +                .expect("i is not hardened");
                 let address = child_desc.address(Regtest);
                 if let Ok(address) = address {
                     assert_eq!(address.to_string(), *expected.get(i).unwrap());
                 } else {
                     let script = child_desc.script_pubkey();
    -                assert_eq!(script.to_hex().as_str(), *expected.get(i).unwrap());
    +                assert_eq!(script.to_hex_string(), *expected.get(i).unwrap());
                 }
             }
         }
    @@ -2401,9 +2393,7 @@
         }
     
         #[test]
    -    #[should_panic(
    -        expected = "Miniscript(ContextError(CompressedOnly(\"04b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a87378ec38ff91d43e8c2092ebda601780485263da089465619e0358a5c1be7ac91f4\")))"
    -    )]
    +    #[should_panic(expected = "Miniscript(ContextError(UncompressedKeysNotAllowed))")]
         fn test_dsl_miniscript_checks() {
             let mut uncompressed_pk =
                 PrivateKey::from_wif("L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6").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 83044efa13..d907ecd46c 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
    @@ -88,6 +88,12 @@
     87
     88
     89
    +90
    +91
    +92
    +93
    +94
    +95
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -112,6 +118,8 @@
         InvalidDescriptorChecksum,
         /// The descriptor contains hardened derivation steps on public extended keys
         HardenedDerivationXpub,
    +    /// The descriptor contains multipath keys
    +    MultiPath,
     
         /// Error thrown while working with [`keys`](crate::keys)
         Key(crate::keys::KeyError),
    @@ -122,11 +130,11 @@
         InvalidDescriptorCharacter(u8),
     
         /// BIP32 error
    -    Bip32(bitcoin::util::bip32::Error),
    +    Bip32(bitcoin::bip32::Error),
         /// Error during base58 decoding
    -    Base58(bitcoin::util::base58::Error),
    +    Base58(bitcoin::base58::Error),
         /// Key-related error
    -    Pk(bitcoin::util::key::Error),
    +    Pk(bitcoin::key::Error),
         /// Miniscript error
         Miniscript(miniscript::Error),
         /// Hex decoding error
    @@ -154,6 +162,10 @@
                     f,
                     "The descriptor contains hardened derivation steps on public extended keys"
                 ),
    +            Self::MultiPath => write!(
    +                f,
    +                "The descriptor contains multipath keys, which are not supported yet"
    +            ),
                 Self::Key(err) => write!(f, "Key error: {}", err),
                 Self::Policy(err) => write!(f, "Policy error: {}", err),
                 Self::InvalidDescriptorCharacter(char) => {
    @@ -171,9 +183,9 @@
     #[cfg(feature = "std")]
     impl std::error::Error for Error {}
     
    -impl_error!(bitcoin::util::bip32::Error, Bip32);
    -impl_error!(bitcoin::util::base58::Error, Base58);
    -impl_error!(bitcoin::util::key::Error, Pk);
    +impl_error!(bitcoin::bip32::Error, Bip32);
    +impl_error!(bitcoin::base58::Error, Base58);
    +impl_error!(bitcoin::key::Error, Pk);
     impl_error!(miniscript::Error, Miniscript);
     impl_error!(bitcoin::hashes::hex::Error, Hex);
     impl_error!(crate::descriptor::policy::PolicyError, Policy);
    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 3d68eec433..046008976e 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
    @@ -875,6 +875,36 @@
     874
     875
     876
    +877
    +878
    +879
    +880
    +881
    +882
    +883
    +884
    +885
    +886
    +887
    +888
    +889
    +890
    +891
    +892
    +893
    +894
    +895
    +896
    +897
    +898
    +899
    +900
    +901
    +902
    +903
    +904
    +905
    +906
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -895,17 +925,17 @@
     use alloc::string::String;
     use alloc::vec::Vec;
     
    -use bitcoin::util::bip32::{ChildNumber, DerivationPath, ExtendedPubKey, Fingerprint, KeySource};
    -use bitcoin::util::{psbt, taproot};
    -use bitcoin::{secp256k1, PublicKey, XOnlyPublicKey};
    +use bitcoin::bip32::{ChildNumber, DerivationPath, ExtendedPubKey, Fingerprint, KeySource};
    +use bitcoin::{key::XOnlyPublicKey, secp256k1, PublicKey};
    +use bitcoin::{psbt, taproot};
     use bitcoin::{Network, TxOut};
     
     use miniscript::descriptor::{
    -    DefiniteDescriptorKey, DescriptorSecretKey, DescriptorType, InnerXKey, SinglePubKey,
    +    DefiniteDescriptorKey, DescriptorMultiXKey, DescriptorSecretKey, DescriptorType,
    +    DescriptorXKey, InnerXKey, KeyMap, SinglePubKey, Wildcard,
     };
     pub use miniscript::{
    -    descriptor::DescriptorXKey, descriptor::KeyMap, descriptor::Wildcard, Descriptor,
    -    DescriptorPublicKey, Legacy, Miniscript, ScriptContext, Segwitv0,
    +    Descriptor, DescriptorPublicKey, Legacy, Miniscript, ScriptContext, Segwitv0,
     };
     use miniscript::{ForEachKey, MiniscriptKey, TranslatePk};
     
    @@ -936,16 +966,16 @@
     /// Alias for the type of maps that represent derivation paths in a [`psbt::Input`] or
     /// [`psbt::Output`]
     ///
    -/// [`psbt::Input`]: bitcoin::util::psbt::Input
    -/// [`psbt::Output`]: bitcoin::util::psbt::Output
    +/// [`psbt::Input`]: bitcoin::psbt::Input
    +/// [`psbt::Output`]: bitcoin::psbt::Output
     pub type HdKeyPaths = BTreeMap<secp256k1::PublicKey, KeySource>;
     
     /// Alias for the type of maps that represent taproot key origins in a [`psbt::Input`] or
     /// [`psbt::Output`]
     ///
    -/// [`psbt::Input`]: bitcoin::util::psbt::Input
    -/// [`psbt::Output`]: bitcoin::util::psbt::Output
    -pub type TapKeyOrigins = BTreeMap<bitcoin::XOnlyPublicKey, (Vec<taproot::TapLeafHash>, KeySource)>;
    +/// [`psbt::Input`]: bitcoin::psbt::Input
    +/// [`psbt::Output`]: bitcoin::psbt::Output
    +pub type TapKeyOrigins = BTreeMap<XOnlyPublicKey, (Vec<taproot::TapLeafHash>, KeySource)>;
     
     /// Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]
     pub trait IntoWalletDescriptor {
    @@ -1013,14 +1043,10 @@
                 network: Network,
             }
     
    -        impl<'s, 'd>
    -            miniscript::Translator<DescriptorPublicKey, miniscript::DummyKey, DescriptorError>
    +        impl<'s, 'd> miniscript::Translator<DescriptorPublicKey, String, DescriptorError>
                 for Translator<'s, 'd>
             {
    -            fn pk(
    -                &mut self,
    -                pk: &DescriptorPublicKey,
    -            ) -> Result<miniscript::DummyKey, DescriptorError> {
    +            fn pk(&mut self, pk: &DescriptorPublicKey) -> Result<String, DescriptorError> {
                     let secp = &self.secp;
     
                     let (_, _, networks) = if self.descriptor.is_taproot() {
    @@ -1038,7 +1064,7 @@
                     };
     
                     if networks.contains(&self.network) {
    -                    Ok(miniscript::DummyKey)
    +                    Ok(Default::default())
                     } else {
                         Err(DescriptorError::Key(KeyError::InvalidNetwork))
                     }
    @@ -1046,35 +1072,40 @@
                 fn sha256(
                     &mut self,
                     _sha256: &<DescriptorPublicKey as MiniscriptKey>::Sha256,
    -            ) -> Result<miniscript::DummySha256Hash, DescriptorError> {
    +            ) -> Result<String, DescriptorError> {
                     Ok(Default::default())
                 }
                 fn hash256(
                     &mut self,
                     _hash256: &<DescriptorPublicKey as MiniscriptKey>::Hash256,
    -            ) -> Result<miniscript::DummyHash256Hash, DescriptorError> {
    +            ) -> Result<String, DescriptorError> {
                     Ok(Default::default())
                 }
                 fn ripemd160(
                     &mut self,
                     _ripemd160: &<DescriptorPublicKey as MiniscriptKey>::Ripemd160,
    -            ) -> Result<miniscript::DummyRipemd160Hash, DescriptorError> {
    +            ) -> Result<String, DescriptorError> {
                     Ok(Default::default())
                 }
                 fn hash160(
                     &mut self,
                     _hash160: &<DescriptorPublicKey as MiniscriptKey>::Hash160,
    -            ) -> Result<miniscript::DummyHash160Hash, DescriptorError> {
    +            ) -> Result<String, DescriptorError> {
                     Ok(Default::default())
                 }
             }
     
             // check the network for the keys
    -        self.0.translate_pk(&mut Translator {
    +        use miniscript::TranslateErr;
    +        match self.0.translate_pk(&mut Translator {
                 secp,
                 network,
                 descriptor: &self.0,
    -        })?;
    +        }) {
    +            Ok(_) => {}
    +            Err(TranslateErr::TranslatorErr(e)) => return Err(e),
    +            Err(TranslateErr::OuterError(e)) => return Err(e.into()),
    +        }
     
             Ok(self)
         }
    @@ -1128,7 +1159,12 @@
             }
     
             // fixup the network for keys that need it in the descriptor
    -        let translated = desc.translate_pk(&mut Translator { network })?;
    +        use miniscript::TranslateErr;
    +        let translated = match desc.translate_pk(&mut Translator { network }) {
    +            Ok(descriptor) => descriptor,
    +            Err(TranslateErr::TranslatorErr(e)) => return Err(e),
    +            Err(TranslateErr::OuterError(e)) => return Err(e.into()),
    +        };
             // ...and in the key map
             let fixed_keymap = keymap
                 .into_iter()
    @@ -1179,6 +1215,10 @@
             return Err(DescriptorError::HardenedDerivationXpub);
         }
     
    +    if descriptor.is_multipath() {
    +        return Err(DescriptorError::MultiPath);
    +    }
    +
         // Run miniscript's sanity check, which will look for duplicated keys and other potential
         // issues
         descriptor.sanity_check()?;
    @@ -1217,6 +1257,18 @@
         fn root_fingerprint(&self, secp: &SecpCtx) -> Fingerprint;
     }
     
    +impl<T> XKeyUtils for DescriptorMultiXKey<T>
    +where
    +    T: InnerXKey,
    +{
    +    fn root_fingerprint(&self, secp: &SecpCtx) -> Fingerprint {
    +        match self.origin {
    +            Some((fingerprint, _)) => fingerprint,
    +            None => self.xkey.xkey_fingerprint(secp),
    +        }
    +    }
    +}
    +
     impl<T> XKeyUtils for DescriptorXKey<T>
     where
         T: InnerXKey,
    @@ -1371,7 +1423,10 @@
                 false
             });
     
    -        path_found.map(|path| self.at_derivation_index(path))
    +        path_found.map(|path| {
    +            self.at_derivation_index(path)
    +                .expect("We ignore hardened wildcards")
    +        })
         }
     
         fn derive_from_hd_keypaths(
    @@ -1422,7 +1477,7 @@
                 return None;
             }
     
    -        let descriptor = self.at_derivation_index(0);
    +        let descriptor = self.at_derivation_index(0).expect("0 is not hardened");
             match descriptor.desc_type() {
                 // TODO: add pk() here
                 DescriptorType::Pkh
    @@ -1462,11 +1517,10 @@
         use core::str::FromStr;
     
         use assert_matches::assert_matches;
    -    use bitcoin::consensus::encode::deserialize;
         use bitcoin::hashes::hex::FromHex;
         use bitcoin::secp256k1::Secp256k1;
    -    use bitcoin::util::{bip32, psbt};
    -    use bitcoin::Script;
    +    use bitcoin::ScriptBuf;
    +    use bitcoin::{bip32, psbt::Psbt};
     
         use super::*;
         use crate::psbt::PsbtUtils;
    @@ -1477,7 +1531,7 @@
                 "wpkh(02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737)",
             )
             .unwrap();
    -        let psbt: psbt::PartiallySignedTransaction = deserialize(
    +        let psbt = Psbt::deserialize(
                 &Vec::<u8>::from_hex(
                     "70736274ff010052010000000162307be8e431fbaff807cdf9cdc3fde44d7402\
                      11bc8342c31ffd6ec11fe35bcc0100000000ffffffff01328601000000000016\
    @@ -1500,7 +1554,7 @@
                 "pkh([0f056943/44h/0h/0h]tpubDDpWvmUrPZrhSPmUzCMBHffvC3HyMAPnWDSAQNBTnj1iZeJa7BZQEttFiP4DS4GCcXQHezdXhn86Hj6LHX5EDstXPWrMaSneRWM8yUf6NFd/10/*)",
             )
             .unwrap();
    -        let psbt: psbt::PartiallySignedTransaction = deserialize(
    +        let psbt = Psbt::deserialize(
                 &Vec::<u8>::from_hex(
                     "70736274ff010053010000000145843b86be54a3cd8c9e38444e1162676c00df\
                      e7964122a70df491ea12fd67090100000000ffffffff01c19598000000000017\
    @@ -1531,7 +1585,7 @@
                 "wsh(and_v(v:pk(03b6633fef2397a0a9de9d7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14),older(6)))",
             )
             .unwrap();
    -        let psbt: psbt::PartiallySignedTransaction = deserialize(
    +        let psbt = Psbt::deserialize(
                 &Vec::<u8>::from_hex(
                     "70736274ff01005302000000011c8116eea34408ab6529223c9a176606742207\
                      67a1ff1d46a6e3c4a88243ea6e01000000000600000001109698000000000017\
    @@ -1555,7 +1609,7 @@
                 "sh(and_v(v:pk(021403881a5587297818fcaf17d239cefca22fce84a45b3b1d23e836c4af671dbb),after(630000)))",
             )
             .unwrap();
    -        let psbt: psbt::PartiallySignedTransaction = deserialize(
    +        let psbt = Psbt::deserialize(
                 &Vec::<u8>::from_hex(
                     "70736274ff0100530100000001bc8c13df445dfadcc42afa6dc841f85d22b01d\
                      a6270ebf981740f4b7b1d800390000000000feffffff01ba9598000000000017\
    @@ -1722,7 +1776,13 @@
     
             assert_matches!(result, Err(DescriptorError::HardenedDerivationXpub));
     
    -        let descriptor = "wsh(multi(2,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*))";
    +        let descriptor = "wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/<0;1>/*)";
    +        let result = into_wallet_descriptor_checked(descriptor, &secp, Network::Testnet);
    +
    +        assert_matches!(result, Err(DescriptorError::MultiPath));
    +
    +        // repeated pubkeys
    +        let descriptor = "wsh(multi(2,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*))";
             let result = into_wallet_descriptor_checked(descriptor, &secp, Network::Testnet);
     
             assert!(result.is_err());
    @@ -1738,9 +1798,9 @@
             let (descriptor, _) =
                 into_wallet_descriptor_checked(descriptor, &secp, Network::Testnet).unwrap();
     
    -        let descriptor = descriptor.at_derivation_index(0);
    +        let descriptor = descriptor.at_derivation_index(0).unwrap();
     
    -        let script = Script::from_str("5321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae").unwrap();
    +        let script = ScriptBuf::from_hex("5321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae").unwrap();
     
             let mut psbt_input = psbt::Input::default();
             psbt_input
    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 d908cfaad3..e5ac38315d 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
    @@ -1890,6 +1890,22 @@
     1889
     1890
     1891
    +1892
    +1893
    +1894
    +1895
    +1896
    +1897
    +1898
    +1899
    +1900
    +1901
    +1902
    +1903
    +1904
    +1905
    +1906
    +1907
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1937,9 +1953,9 @@
     use serde::ser::SerializeMap;
     use serde::{Serialize, Serializer};
     
    +use bitcoin::bip32::Fingerprint;
     use bitcoin::hashes::{hash160, ripemd160, sha256};
    -use bitcoin::util::bip32::Fingerprint;
    -use bitcoin::{LockTime, PublicKey, Sequence, XOnlyPublicKey};
    +use bitcoin::{absolute, key::XOnlyPublicKey, PublicKey, Sequence};
     
     use miniscript::descriptor::{
         DescriptorPublicKey, ShInner, SinglePub, SinglePubKey, SortedMultiVec, WshInner,
    @@ -1960,7 +1976,7 @@
     use super::checksum::calc_checksum;
     use super::error::Error;
     use super::XKeyUtils;
    -use bitcoin::util::psbt::{Input as PsbtInput, PartiallySignedTransaction as Psbt};
    +use bitcoin::psbt::{self, Psbt};
     use miniscript::psbt::PsbtInputSatisfier;
     
     /// A unique identifier for a key
    @@ -1987,6 +2003,9 @@
                     ..
                 }) => PkOrF::XOnlyPubkey(*pk),
                 DescriptorPublicKey::XPub(xpub) => PkOrF::Fingerprint(xpub.root_fingerprint(secp)),
    +            DescriptorPublicKey::MultiXPub(multi) => {
    +                PkOrF::Fingerprint(multi.root_fingerprint(secp))
    +            }
             }
         }
     }
    @@ -2023,7 +2042,7 @@
         /// Absolute timeclock timestamp
         AbsoluteTimelock {
             /// The timelock value
    -        value: LockTime,
    +        value: absolute::LockTime,
         },
         /// Relative timelock locktime
         RelativeTimelock {
    @@ -2343,11 +2362,14 @@
         pub csv: Option<Sequence>,
         /// Optional timelock condition
         #[serde(skip_serializing_if = "Option::is_none")]
    -    pub timelock: Option<LockTime>,
    +    pub timelock: Option<absolute::LockTime>,
     }
     
     impl Condition {
    -    fn merge_nlocktime(a: LockTime, b: LockTime) -> Result<LockTime, PolicyError> {
    +    fn merge_nlocktime(
    +        a: absolute::LockTime,
    +        b: absolute::LockTime,
    +    ) -> Result<absolute::LockTime, PolicyError> {
             if !a.is_same_unit(b) {
                 Err(PolicyError::MixedTimelockUnits)
             } else if a > b {
    @@ -2641,6 +2663,7 @@
                 ..
             }) => pk.to_pubkeyhash(SigType::Ecdsa).into(),
             DescriptorPublicKey::XPub(xpub) => xpub.root_fingerprint(secp).into(),
    +        DescriptorPublicKey::MultiXPub(xpub) => xpub.root_fingerprint(secp).into(),
         }
     }
     
    @@ -2678,9 +2701,9 @@
     fn generic_sig_in_psbt<
         // C is for "check", it's a closure we use to *check* if a psbt input contains the signature
         // for a specific key
    -    C: Fn(&PsbtInput, &SinglePubKey) -> bool,
    +    C: Fn(&psbt::Input, &SinglePubKey) -> bool,
         // E is for "extract", it extracts a key from the bip32 derivations found in the psbt input
    -    E: Fn(&PsbtInput, Fingerprint) -> Option<SinglePubKey>,
    +    E: Fn(&psbt::Input, Fingerprint) -> Option<SinglePubKey>,
     >(
         psbt: &Psbt,
         key: &DescriptorPublicKey,
    @@ -2698,6 +2721,13 @@
                     None => false,
                 }
             }
    +        DescriptorPublicKey::MultiXPub(xpub) => {
    +            //TODO check actual derivation matches
    +            match extract(input, xpub.root_fingerprint(secp)) {
    +                Some(pubkey) => check(input, &pubkey),
    +                None => false,
    +            }
    +        }
         })
     }
     
    @@ -2803,12 +2833,12 @@
                 }
                 Terminal::After(value) => {
                     let mut policy: Policy = SatisfiableItem::AbsoluteTimelock {
    -                    value: value.into(),
    +                    value: (*value).into(),
                     }
                     .into();
                     policy.contribution = Satisfaction::Complete {
                         condition: Condition {
    -                        timelock: Some(value.into()),
    +                        timelock: Some((*value).into()),
                             csv: None,
                         },
                     };
    @@ -2820,9 +2850,9 @@
                     {
                         let after = After::new(Some(current_height), false);
                         let after_sat =
    -                        Satisfier::<bitcoin::PublicKey>::check_after(&after, value.into());
    +                        Satisfier::<bitcoin::PublicKey>::check_after(&after, (*value).into());
                         let inputs_sat = psbt_inputs_sat(psbt).all(|sat| {
    -                        Satisfier::<bitcoin::PublicKey>::check_after(&sat, value.into())
    +                        Satisfier::<bitcoin::PublicKey>::check_after(&sat, (*value).into())
                         });
                         if after_sat && inputs_sat {
                             policy.satisfaction = policy.contribution.clone();
    @@ -3048,8 +3078,8 @@
         use crate::wallet::signer::SignersContainer;
         use alloc::{string::ToString, sync::Arc};
         use assert_matches::assert_matches;
    +    use bitcoin::bip32;
         use bitcoin::secp256k1::Secp256k1;
    -    use bitcoin::util::bip32;
         use bitcoin::Network;
         use core::str::FromStr;
     
    @@ -3467,6 +3497,7 @@
     
             let addr = wallet_desc
                 .at_derivation_index(0)
    +            .unwrap()
                 .address(Network::Testnet)
                 .unwrap();
             assert_eq!(
    @@ -3533,6 +3564,7 @@
     
             let addr = wallet_desc
                 .at_derivation_index(0)
    +            .unwrap()
                 .address(Network::Testnet)
                 .unwrap();
             assert_eq!(
    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 d2018c8ce8..6a733a0b17 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
    @@ -1000,7 +1000,7 @@
     //! This module contains the definition of various common script templates that are ready to be
     //! used. See the documentation of each template for an example.
     
    -use bitcoin::util::bip32;
    +use bitcoin::bip32;
     use bitcoin::Network;
     
     use miniscript::{Legacy, Segwitv0, Tap};
    @@ -1181,7 +1181,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip44;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip44(key.clone(), KeychainKind::External),
     ///     Some(Bip44(key, KeychainKind::Internal)),
    @@ -1218,8 +1218,8 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip44Public;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
    -/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
    +/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip44Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
    @@ -1256,7 +1256,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip49;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip49(key.clone(), KeychainKind::External),
     ///     Some(Bip49(key, KeychainKind::Internal)),
    @@ -1293,8 +1293,8 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip49Public;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
    -/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
    +/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip49Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
    @@ -1331,7 +1331,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip84;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip84(key.clone(), KeychainKind::External),
     ///     Some(Bip84(key, KeychainKind::Internal)),
    @@ -1368,8 +1368,8 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip84Public;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    -/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip84Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
    @@ -1406,7 +1406,7 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip86;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
    +/// let key = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip86(key.clone(), KeychainKind::External),
     ///     Some(Bip86(key, KeychainKind::Internal)),
    @@ -1443,8 +1443,8 @@
     /// # use bdk::wallet::AddressIndex::New;
     /// use bdk::template::Bip86Public;
     ///
    -/// let key = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    -/// let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f")?;
    +/// let key = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
    +/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
     /// let mut wallet = Wallet::new_no_persist(
     ///     Bip86Public(key.clone(), fingerprint, KeychainKind::External),
     ///     Some(Bip86Public(key, fingerprint, KeychainKind::Internal)),
    @@ -1551,30 +1551,30 @@
         // BIP44 `pkh(key/44'/{0,1}'/0'/{0,1}/*)`
         #[test]
         fn test_bip44_template_cointype() {
    -        use bitcoin::util::bip32::ChildNumber::{self, Hardened};
    +        use bitcoin::bip32::ChildNumber::{self, Hardened};
     
    -        let xprvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf").unwrap();
    +        let xprvkey = bitcoin::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf").unwrap();
             assert_eq!(Network::Bitcoin, xprvkey.network);
             let xdesc = Bip44(xprvkey, KeychainKind::Internal)
                 .build(Network::Bitcoin)
                 .unwrap();
     
             if let ExtendedDescriptor::Pkh(pkh) = xdesc.0 {
    -            let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().into();
    +            let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
                 let purpose = path.get(0).unwrap();
                 assert_matches!(purpose, Hardened { index: 44 });
                 let coin_type = path.get(1).unwrap();
                 assert_matches!(coin_type, Hardened { index: 0 });
             }
     
    -        let tprvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let tprvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             assert_eq!(Network::Testnet, tprvkey.network);
             let tdesc = Bip44(tprvkey, KeychainKind::Internal)
                 .build(Network::Testnet)
                 .unwrap();
     
             if let ExtendedDescriptor::Pkh(pkh) = tdesc.0 {
    -            let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().into();
    +            let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
                 let purpose = path.get(0).unwrap();
                 assert_matches!(purpose, Hardened { index: 44 });
                 let coin_type = path.get(1).unwrap();
    @@ -1598,9 +1598,9 @@
             for i in 0..expected.len() {
                 let index = i as u32;
                 let child_desc = if !desc.has_wildcard() {
    -                desc.at_derivation_index(0)
    +                desc.at_derivation_index(0).unwrap()
                 } else {
    -                desc.at_derivation_index(index)
    +                desc.at_derivation_index(index).unwrap()
                 };
                 let address = child_desc.address(network).unwrap();
                 assert_eq!(address.to_string(), *expected.get(i).unwrap());
    @@ -1726,7 +1726,7 @@
         // BIP44 `pkh(key/44'/0'/0'/{0,1}/*)`
         #[test]
         fn test_bip44_template() {
    -        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip44(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 false,
    @@ -1756,8 +1756,8 @@
         // BIP44 public `pkh(key/{0,1}/*)`
         #[test]
         fn test_bip44_public_template() {
    -        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU").unwrap();
    -        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
    +        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU").unwrap();
    +        let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip44Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
                 false,
    @@ -1787,7 +1787,7 @@
         // BIP49 `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
         #[test]
         fn test_bip49_template() {
    -        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip49(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -1817,8 +1817,8 @@
         // BIP49 public `sh(wpkh(key/{0,1}/*))`
         #[test]
         fn test_bip49_public_template() {
    -        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L").unwrap();
    -        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
    +        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L").unwrap();
    +        let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip49Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -1848,7 +1848,7 @@
         // BIP84 `wpkh(key/84'/0'/0'/{0,1}/*)`
         #[test]
         fn test_bip84_template() {
    -        let prvkey = bitcoin::util::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
    +        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap();
             check(
                 Bip84(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -1878,8 +1878,8 @@
         // BIP84 public `wpkh(key/{0,1}/*)`
         #[test]
         fn test_bip84_public_template() {
    -        let pubkey = bitcoin::util::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q").unwrap();
    -        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("c55b303f").unwrap();
    +        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q").unwrap();
    +        let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f").unwrap();
             check(
                 Bip84Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
                 true,
    @@ -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::util::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu").unwrap();
    +        let prvkey = bitcoin::bip32::ExtendedPrivKey::from_str("xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu").unwrap();
             check(
                 Bip86(prvkey, KeychainKind::External).build(Network::Bitcoin),
                 false,
    @@ -1941,8 +1941,8 @@
         // 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::util::bip32::ExtendedPubKey::from_str("xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ").unwrap();
    -        let fingerprint = bitcoin::util::bip32::Fingerprint::from_str("73c5da0a").unwrap();
    +        let pubkey = bitcoin::bip32::ExtendedPubKey::from_str("xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ").unwrap();
    +        let fingerprint = bitcoin::bip32::Fingerprint::from_str("73c5da0a").unwrap();
             check(
                 Bip86Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
                 false,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html
    index e49193773d..5d08108082 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/error.rs.html
    @@ -286,9 +286,9 @@
         /// Miniscript PSBT error
         MiniscriptPsbt(MiniscriptPsbtError),
         /// BIP32 error
    -    Bip32(bitcoin::util::bip32::Error),
    +    Bip32(bitcoin::bip32::Error),
         /// Partially signed bitcoin transaction error
    -    Psbt(bitcoin::util::psbt::Error),
    +    Psbt(bitcoin::psbt::Error),
     }
     
     /// Errors returned by miniscript when updating inconsistent PSBTs
    @@ -399,7 +399,7 @@
     
     impl_error!(miniscript::Error, Miniscript);
     impl_error!(MiniscriptPsbtError, MiniscriptPsbt);
    -impl_error!(bitcoin::util::bip32::Error, Bip32);
    -impl_error!(bitcoin::util::psbt::Error, Psbt);
    +impl_error!(bitcoin::bip32::Error, Bip32);
    +impl_error!(bitcoin::psbt::Error, Psbt);
     
    \ No newline at end of file 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 44e34c39b5..a80f58a05c 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 @@ -1020,8 +1020,8 @@ use bitcoin::secp256k1::{self, Secp256k1, Signing}; -use bitcoin::util::bip32; -use bitcoin::{Network, PrivateKey, PublicKey, XOnlyPublicKey}; +use bitcoin::bip32; +use bitcoin::{key::XOnlyPublicKey, Network, PrivateKey, PublicKey}; use miniscript::descriptor::{Descriptor, DescriptorXKey, Wildcard}; pub use miniscript::descriptor::{ @@ -1386,12 +1386,12 @@ /// /// ``` /// use bdk::bitcoin; -/// use bdk::bitcoin::util::bip32; +/// use bdk::bitcoin::bip32; /// use bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext}; /// /// struct MyCustomKeyType { /// key_data: bitcoin::PrivateKey, -/// chain_code: Vec<u8>, +/// chain_code: [u8; 32], /// network: bitcoin::Network, /// } /// @@ -1402,7 +1402,7 @@ /// depth: 0, /// parent_fingerprint: bip32::Fingerprint::default(), /// private_key: self.key_data.inner, -/// chain_code: bip32::ChainCode::from(self.chain_code.as_ref()), +/// chain_code: bip32::ChainCode::from(&self.chain_code), /// child_number: bip32::ChildNumber::Normal { index: 0 }, /// }; /// @@ -1417,14 +1417,14 @@ /// /// ``` /// use bdk::bitcoin; -/// use bdk::bitcoin::util::bip32; +/// use bdk::bitcoin::bip32; /// use bdk::keys::{ /// any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext, /// }; /// /// struct MyCustomKeyType { /// key_data: bitcoin::PrivateKey, -/// chain_code: Vec<u8>, +/// chain_code: [u8; 32], /// } /// /// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType { @@ -1434,7 +1434,7 @@ /// depth: 0, /// parent_fingerprint: bip32::Fingerprint::default(), /// private_key: self.key_data.inner, -/// chain_code: bip32::ChainCode::from(self.chain_code.as_ref()), +/// chain_code: bip32::ChainCode::from(&self.chain_code), /// child_number: bip32::ChildNumber::Normal { index: 0 }, /// }; /// @@ -1925,13 +1925,13 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap(); Message(String), /// BIP32 error - Bip32(bitcoin::util::bip32::Error), + Bip32(bitcoin::bip32::Error), /// Miniscript error Miniscript(miniscript::Error), } impl_error!(miniscript::Error, Miniscript, KeyError); -impl_error!(bitcoin::util::bip32::Error, Bip32, KeyError); +impl_error!(bitcoin::bip32::Error, Bip32, KeyError); impl fmt::Display for KeyError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -1951,7 +1951,7 @@ let xprv = xkey.into_xprv(Network::Bitcoin).unwrap(); #[cfg(test)] pub mod test { - use bitcoin::util::bip32; + use bitcoin::bip32; use super::*; 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 7917b17de9..875cb1e6a2 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 @@ -93,7 +93,7 @@ use crate::FeeRate; use alloc::vec::Vec; -use bitcoin::util::psbt::PartiallySignedTransaction as Psbt; +use bitcoin::psbt::PartiallySignedTransaction as Psbt; use bitcoin::TxOut; // TODO upstream the functions here to `rust-bitcoin`? diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html index 17f248ce98..30ac4f7ee3 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk/types.rs.html @@ -355,7 +355,7 @@ use bdk_chain::ConfirmationTime; use bitcoin::blockdata::transaction::{OutPoint, Transaction, TxOut}; -use bitcoin::{hash_types::Txid, util::psbt}; +use bitcoin::{hash_types::Txid, psbt, Weight}; use serde::{Deserialize, Serialize}; @@ -439,8 +439,8 @@ } /// Calculate fee rate from `fee` and weight units (`wu`). - pub fn from_wu(fee: u64, wu: usize) -> FeeRate { - Self::from_vb(fee, wu.vbytes()) + pub fn from_wu(fee: u64, wu: Weight) -> FeeRate { + Self::from_vb(fee, wu.to_vbytes_ceil() as usize) } /// Calculate fee rate from `fee` and `vbytes`. @@ -460,8 +460,8 @@ } /// Calculate absolute fee in Satoshis using size in weight units. - pub fn fee_wu(&self, wu: usize) -> u64 { - self.fee_vb(wu.vbytes()) + pub fn fee_wu(&self, wu: Weight) -> u64 { + self.fee_vb(wu.to_vbytes_ceil() as usize) } /// Calculate absolute fee in Satoshis using size in virtual bytes. 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 f4b3f06a9d..c48d94a8a4 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 @@ -1444,6 +1444,14 @@ 1443 1444 1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1484,12 +1492,12 @@
     //!         &self,
     //!         required_utxos: Vec<WeightedUtxo>,
     //!         optional_utxos: Vec<WeightedUtxo>,
    -//!         fee_rate: FeeRate,
    +//!         fee_rate: bdk::FeeRate,
     //!         target_amount: u64,
     //!         drain_script: &Script,
     //!     ) -> Result<CoinSelectionResult, bdk::Error> {
     //!         let mut selected_amount = 0;
    -//!         let mut additional_weight = 0;
    +//!         let mut additional_weight = Weight::ZERO;
     //!         let all_utxos_selected = required_utxos
     //!             .into_iter()
     //!             .chain(optional_utxos)
    @@ -1497,7 +1505,9 @@
     //!                 (&mut selected_amount, &mut additional_weight),
     //!                 |(selected_amount, additional_weight), weighted_utxo| {
     //!                     **selected_amount += weighted_utxo.utxo.txout().value;
    -//!                     **additional_weight += TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight;
    +//!                     **additional_weight += Weight::from_wu(
    +//!                         (TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight) as u64,
    +//!                     );
     //!                     Some(weighted_utxo.utxo)
     //!                 },
     //!             )
    @@ -1526,7 +1536,10 @@
     //! # let mut wallet = doctest_wallet!();
     //! // create wallet, sync, ...
     //!
    -//! let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +//! let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
    +//!     .unwrap()
    +//!     .require_network(Network::Testnet)
    +//!     .unwrap();
     //! let (psbt, details) = {
     //!     let mut builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
     //!     builder.add_recipient(to_address.script_pubkey(), 50_000);
    @@ -1545,7 +1558,7 @@
     
     use alloc::vec::Vec;
     use bitcoin::consensus::encode::serialize;
    -use bitcoin::Script;
    +use bitcoin::{Script, Weight};
     
     use core::convert::TryInto;
     use rand::seq::SliceRandom;
    @@ -1748,8 +1761,9 @@
                 (&mut selected_amount, &mut fee_amount),
                 |(selected_amount, fee_amount), (must_use, weighted_utxo)| {
                     if must_use || **selected_amount < target_amount + **fee_amount {
    -                    **fee_amount +=
    -                        fee_rate.fee_wu(TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight);
    +                    **fee_amount += fee_rate.fee_wu(Weight::from_wu(
    +                        (TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight) as u64,
    +                    ));
                         **selected_amount += weighted_utxo.utxo.txout().value;
     
                         log::debug!(
    @@ -1797,7 +1811,9 @@
     
     impl OutputGroup {
         fn new(weighted_utxo: WeightedUtxo, fee_rate: FeeRate) -> Self {
    -        let fee = fee_rate.fee_wu(TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight);
    +        let fee = fee_rate.fee_wu(Weight::from_wu(
    +            (TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight) as u64,
    +        ));
             let effective_value = weighted_utxo.utxo.txout().value as i64 - fee as i64;
             OutputGroup {
                 weighted_utxo,
    @@ -2127,7 +2143,7 @@
         use core::str::FromStr;
     
         use bdk_chain::ConfirmationTime;
    -    use bitcoin::{OutPoint, Script, TxOut};
    +    use bitcoin::{OutPoint, ScriptBuf, TxOut};
     
         use super::*;
         use crate::types::*;
    @@ -2156,7 +2172,7 @@
                     outpoint,
                     txout: TxOut {
                         value,
    -                    script_pubkey: Script::new(),
    +                    script_pubkey: ScriptBuf::new(),
                     },
                     keychain: KeychainKind::External,
                     is_spent: false,
    @@ -2219,7 +2235,7 @@
                         .unwrap(),
                         txout: TxOut {
                             value: rng.gen_range(0..200000000),
    -                        script_pubkey: Script::new(),
    +                        script_pubkey: ScriptBuf::new(),
                         },
                         keychain: KeychainKind::External,
                         is_spent: false,
    @@ -2248,7 +2264,7 @@
                     .unwrap(),
                     txout: TxOut {
                         value: utxos_value,
    -                    script_pubkey: Script::new(),
    +                    script_pubkey: ScriptBuf::new(),
                     },
                     keychain: KeychainKind::External,
                     is_spent: false,
    @@ -2271,7 +2287,7 @@
         #[test]
         fn test_largest_first_coin_selection_success() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 250_000 + FEE_AMOUNT;
     
             let result = LargestFirstCoinSelection::default()
    @@ -2292,7 +2308,7 @@
         #[test]
         fn test_largest_first_coin_selection_use_all() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
     
             let result = LargestFirstCoinSelection::default()
    @@ -2313,7 +2329,7 @@
         #[test]
         fn test_largest_first_coin_selection_use_only_necessary() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
     
             let result = LargestFirstCoinSelection::default()
    @@ -2335,7 +2351,7 @@
         #[should_panic(expected = "InsufficientFunds")]
         fn test_largest_first_coin_selection_insufficient_funds() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 500_000 + FEE_AMOUNT;
     
             LargestFirstCoinSelection::default()
    @@ -2353,7 +2369,7 @@
         #[should_panic(expected = "InsufficientFunds")]
         fn test_largest_first_coin_selection_insufficient_funds_high_fees() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 250_000 + FEE_AMOUNT;
     
             LargestFirstCoinSelection::default()
    @@ -2370,7 +2386,7 @@
         #[test]
         fn test_oldest_first_coin_selection_success() {
             let utxos = get_oldest_first_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 180_000 + FEE_AMOUNT;
     
             let result = OldestFirstCoinSelection::default()
    @@ -2391,7 +2407,7 @@
         #[test]
         fn test_oldest_first_coin_selection_use_all() {
             let utxos = get_oldest_first_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
     
             let result = OldestFirstCoinSelection::default()
    @@ -2412,7 +2428,7 @@
         #[test]
         fn test_oldest_first_coin_selection_use_only_necessary() {
             let utxos = get_oldest_first_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
     
             let result = OldestFirstCoinSelection::default()
    @@ -2434,7 +2450,7 @@
         #[should_panic(expected = "InsufficientFunds")]
         fn test_oldest_first_coin_selection_insufficient_funds() {
             let utxos = get_oldest_first_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 600_000 + FEE_AMOUNT;
     
             OldestFirstCoinSelection::default()
    @@ -2454,7 +2470,7 @@
             let utxos = get_oldest_first_test_utxos();
     
             let target_amount: u64 = utxos.iter().map(|wu| wu.utxo.txout().value).sum::<u64>() - 50;
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             OldestFirstCoinSelection::default()
                 .coin_select(
    @@ -2473,7 +2489,7 @@
             // select three outputs
             let utxos = generate_same_value_utxos(100_000, 20);
     
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let target_amount = 250_000 + FEE_AMOUNT;
     
    @@ -2495,7 +2511,7 @@
         #[test]
         fn test_bnb_coin_selection_required_are_enough() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
     
             let result = BranchAndBoundCoinSelection::default()
    @@ -2516,7 +2532,7 @@
         #[test]
         fn test_bnb_coin_selection_optional_are_enough() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 299756 + FEE_AMOUNT;
     
             let result = BranchAndBoundCoinSelection::default()
    @@ -2552,7 +2568,7 @@
             assert_eq!(amount, 100_000);
             let amount: u64 = optional.iter().map(|u| u.utxo.txout().value).sum();
             assert!(amount > 150_000);
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let target_amount = 150_000 + FEE_AMOUNT;
     
    @@ -2575,7 +2591,7 @@
         #[should_panic(expected = "InsufficientFunds")]
         fn test_bnb_coin_selection_insufficient_funds() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 500_000 + FEE_AMOUNT;
     
             BranchAndBoundCoinSelection::default()
    @@ -2593,7 +2609,7 @@
         #[should_panic(expected = "InsufficientFunds")]
         fn test_bnb_coin_selection_insufficient_funds_high_fees() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 250_000 + FEE_AMOUNT;
     
             BranchAndBoundCoinSelection::default()
    @@ -2610,7 +2626,7 @@
         #[test]
         fn test_bnb_coin_selection_check_fee_rate() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 99932; // first utxo's effective value
     
             let result = BranchAndBoundCoinSelection::new(0)
    @@ -2638,7 +2654,7 @@
             for _i in 0..200 {
                 let mut optional_utxos = generate_random_utxos(&mut rng, 16);
                 let target_amount = sum_random_utxos(&mut rng, &mut optional_utxos);
    -            let drain_script = Script::default();
    +            let drain_script = ScriptBuf::default();
                 let result = BranchAndBoundCoinSelection::new(0)
                     .coin_select(
                         vec![],
    @@ -2666,7 +2682,7 @@
             let size_of_change = 31;
             let cost_of_change = size_of_change as f32 * fee_rate.as_sat_per_vb();
     
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
             let target_amount = 20_000 + FEE_AMOUNT;
             BranchAndBoundCoinSelection::new(size_of_change)
                 .bnb(
    @@ -2697,7 +2713,7 @@
             let cost_of_change = size_of_change as f32 * fee_rate.as_sat_per_vb();
             let target_amount = 20_000 + FEE_AMOUNT;
     
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             BranchAndBoundCoinSelection::new(size_of_change)
                 .bnb(
    @@ -2733,7 +2749,7 @@
             // cost_of_change + 5.
             let target_amount = 2 * 50_000 - 2 * 67 - cost_of_change.ceil() as i64 + 5;
     
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let result = BranchAndBoundCoinSelection::new(size_of_change)
                 .bnb(
    @@ -2773,7 +2789,7 @@
                 let target_amount =
                     optional_utxos[3].effective_value + optional_utxos[23].effective_value;
     
    -            let drain_script = Script::default();
    +            let drain_script = ScriptBuf::default();
     
                 let result = BranchAndBoundCoinSelection::new(0)
                     .bnb(
    @@ -2804,7 +2820,7 @@
                 .map(|u| OutputGroup::new(u, fee_rate))
                 .collect();
     
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let result = BranchAndBoundCoinSelection::default().single_random_draw(
                 vec![],
    @@ -2822,7 +2838,7 @@
         #[test]
         fn test_bnb_exclude_negative_effective_value() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let selection = BranchAndBoundCoinSelection::default().coin_select(
                 vec![],
    @@ -2844,7 +2860,7 @@
         #[test]
         fn test_bnb_include_negative_effective_value_when_required() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let (required, optional) = utxos
                 .into_iter()
    @@ -2870,7 +2886,7 @@
         #[test]
         fn test_bnb_sum_of_effective_value_negative() {
             let utxos = get_test_utxos();
    -        let drain_script = Script::default();
    +        let drain_script = ScriptBuf::default();
     
             let selection = BranchAndBoundCoinSelection::default().coin_select(
                 utxos,
    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 c00daef15b..bc02e6a9c9 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
    @@ -574,7 +574,7 @@
                 input: vec![],
                 output: vec![],
                 version: 0,
    -            lock_time: bitcoin::PackedLockTime::ZERO,
    +            lock_time: bitcoin::absolute::LockTime::ZERO,
             };
             wallet
                 .insert_checkpoint(BlockId {
    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 88075933cb..edbd933769 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
    @@ -1903,6 +1903,15 @@
     1902
     1903
     1904
    +1905
    +1906
    +1907
    +1908
    +1909
    +1910
    +1911
    +1912
    +1913
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1934,11 +1943,12 @@
         IndexedTxGraph, Persist, PersistBackend,
     };
     use bitcoin::consensus::encode::serialize;
    +use bitcoin::psbt;
     use bitcoin::secp256k1::Secp256k1;
    -use bitcoin::util::psbt;
    +use bitcoin::sighash::{EcdsaSighashType, TapSighashType};
     use bitcoin::{
    -    Address, EcdsaSighashType, LockTime, Network, OutPoint, SchnorrSighashType, Script, Sequence,
    -    Transaction, TxOut, Txid, Witness,
    +    absolute, Address, Network, OutPoint, Script, ScriptBuf, Sequence, Transaction, TxOut, Txid,
    +    Weight, Witness,
     };
     use core::fmt;
     use core::ops::Deref;
    @@ -2227,11 +2237,11 @@
             let (index, spk, additions) = match address_index {
                 AddressIndex::New => {
                     let ((index, spk), index_additions) = txout_index.reveal_next_spk(&keychain);
    -                (index, spk.clone(), Some(index_additions))
    +                (index, spk.into(), Some(index_additions))
                 }
                 AddressIndex::LastUnused => {
                     let ((index, spk), index_additions) = txout_index.next_unused_spk(&keychain);
    -                (index, spk.clone(), Some(index_additions))
    +                (index, spk.into(), Some(index_additions))
                 }
                 AddressIndex::Peek(index) => {
                     let (index, spk) = txout_index
    @@ -2301,7 +2311,7 @@
         /// script pubkeys the wallet is storing internally).
         pub fn spks_of_all_keychains(
             &self,
    -    ) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, Script)> + Clone> {
    +    ) -> BTreeMap<KeychainKind, impl Iterator<Item = (u32, ScriptBuf)> + Clone> {
             self.indexed_graph.index.spks_of_all_keychains()
         }
     
    @@ -2313,7 +2323,7 @@
         pub fn spks_of_keychain(
             &self,
             keychain: KeychainKind,
    -    ) -> impl Iterator<Item = (u32, Script)> + Clone {
    +    ) -> impl Iterator<Item = (u32, ScriptBuf)> + Clone {
             self.indexed_graph.index.spks_of_keychain(&keychain)
         }
     
    @@ -2504,7 +2514,7 @@
         /// # use bdk::*;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
    -    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
         /// let (psbt, details) = {
         ///    let mut builder =  wallet.build_tx();
         ///    builder
    @@ -2621,7 +2631,7 @@
                 None => self
                     .chain
                     .tip()
    -                .map(|cp| LockTime::from_height(cp.height()).expect("Invalid height")),
    +                .map(|cp| absolute::LockTime::from_height(cp.height()).expect("Invalid height")),
                 h => h,
             };
     
    @@ -2631,7 +2641,7 @@
                     // Fee sniping can be partially prevented by setting the timelock
                     // to current_height. If we don't know the current_height,
                     // we default to 0.
    -                let fee_sniping_height = current_height.unwrap_or(LockTime::ZERO);
    +                let fee_sniping_height = current_height.unwrap_or(absolute::LockTime::ZERO);
     
                     // We choose the biggest between the required nlocktime and the fee sniping
                     // height
    @@ -2639,7 +2649,7 @@
                         // No requirement, just use the fee_sniping_height
                         None => fee_sniping_height,
                         // There's a block-based requirement, but the value is lower than the fee_sniping_height
    -                    Some(value @ LockTime::Blocks(_)) if value < fee_sniping_height => fee_sniping_height,
    +                    Some(value @ absolute::LockTime::Blocks(_)) if value < fee_sniping_height => fee_sniping_height,
                         // There's a time-based requirement or a block-based requirement greater
                         // than the fee_sniping_height use that value
                         Some(value) => value,
    @@ -2655,7 +2665,9 @@
     
             let n_sequence = match (params.rbf, requirements.csv) {
                 // No RBF or CSV but there's an nLockTime, so the nSequence cannot be final
    -            (None, None) if lock_time != LockTime::ZERO => Sequence::ENABLE_LOCKTIME_NO_RBF,
    +            (None, None) if lock_time != absolute::LockTime::ZERO => {
    +                Sequence::ENABLE_LOCKTIME_NO_RBF
    +            }
                 // No RBF, CSV or nLockTime, make the transaction final
                 (None, None) => Sequence::MAX,
     
    @@ -2718,7 +2730,7 @@
     
             let mut tx = Transaction {
                 version,
    -            lock_time: lock_time.into(),
    +            lock_time,
                 input: vec![],
                 output: vec![],
             };
    @@ -2766,7 +2778,7 @@
             // 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.fee_wu(2);
    +        fee_amount += fee_rate.fee_wu(Weight::from_wu(2));
     
             if params.change_policy != tx_builder::ChangeSpendPolicy::ChangeAllowed
                 && internal_descriptor.is_none()
    @@ -2783,7 +2795,7 @@
                 params.drain_wallet,
                 params.manually_selected_only,
                 params.bumping_fee.is_some(), // we mandate confirmed transactions if we're bumping the fee
    -            current_height.map(LockTime::to_consensus_u32),
    +            current_height.map(absolute::LockTime::to_consensus_u32),
             );
     
             // get drain script
    @@ -2793,7 +2805,7 @@
                     let change_keychain = self.map_keychain(KeychainKind::Internal);
                     let ((index, spk), index_additions) =
                         self.indexed_graph.index.next_unused_spk(&change_keychain);
    -                let spk = spk.clone();
    +                let spk = spk.into();
                     self.indexed_graph.index.mark_used(&change_keychain, index);
                     self.persist
                         .stage(ChangeSet::from(IndexedAdditions::from(index_additions)));
    @@ -2817,7 +2829,7 @@
                 .iter()
                 .map(|u| bitcoin::TxIn {
                     previous_output: u.outpoint(),
    -                script_sig: Script::default(),
    +                script_sig: ScriptBuf::default(),
                     sequence: n_sequence,
                     witness: Witness::new(),
                 })
    @@ -2905,7 +2917,7 @@
         /// # use bdk::*;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
    -    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
         /// let (mut psbt, _) = {
         ///     let mut builder = wallet.build_tx();
         ///     builder
    @@ -2919,7 +2931,7 @@
         /// let (mut psbt, _) =  {
         ///     let mut builder = wallet.build_fee_bump(tx.txid())?;
         ///     builder
    -    ///         .fee_rate(FeeRate::from_sat_per_vb(5.0));
    +    ///         .fee_rate(bdk::FeeRate::from_sat_per_vb(5.0));
         ///     builder.finish()?
         /// };
         ///
    @@ -2983,7 +2995,8 @@
     
                     let weighted_utxo = match txout_index.index_of_spk(&txout.script_pubkey) {
                         Some(&(keychain, derivation_index)) => {
    -                        let satisfaction_weight = self
    +                        #[allow(deprecated)]
    +                        let satisfaction_weight = self
                                 .get_descriptor_for_keychain(keychain)
                                 .max_satisfaction_weight()
                                 .unwrap();
    @@ -3075,7 +3088,7 @@
         /// # use bdk::*;
         /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
         /// # let mut wallet = doctest_wallet!();
    -    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
         /// let (mut psbt, _) = {
         ///     let mut builder = wallet.build_tx();
         ///     builder.add_recipient(to_address.script_pubkey(), 50_000);
    @@ -3112,8 +3125,8 @@
                 && !psbt.inputs.iter().all(|i| {
                     i.sighash_type.is_none()
                         || i.sighash_type == Some(EcdsaSighashType::All.into())
    -                    || i.sighash_type == Some(SchnorrSighashType::All.into())
    -                    || i.sighash_type == Some(SchnorrSighashType::Default.into())
    +                    || i.sighash_type == Some(TapSighashType::All.into())
    +                    || i.sighash_type == Some(TapSighashType::Default.into())
                 })
             {
                 return Err(Error::Signer(signer::SignerError::NonStandardSighash));
    @@ -3308,14 +3321,15 @@
                 .index
                 .index_of_spk(&txout.script_pubkey)?;
             let descriptor = self.get_descriptor_for_keychain(keychain);
    -        Some(descriptor.at_derivation_index(child))
    +        descriptor.at_derivation_index(child).ok()
         }
     
         fn get_available_utxos(&self) -> Vec<(LocalUtxo, usize)> {
             self.list_unspent()
                 .map(|utxo| {
                     let keychain = utxo.keychain;
    -                (
    +                #[allow(deprecated)]
    +                (
                         utxo,
                         self.get_descriptor_for_keychain(keychain)
                             .max_satisfaction_weight()
    @@ -3525,7 +3539,9 @@
             };
     
             let desc = self.get_descriptor_for_keychain(keychain);
    -        let derived_descriptor = desc.at_derivation_index(child);
    +        let derived_descriptor = desc
    +            .at_derivation_index(child)
    +            .expect("child can't be hardened");
     
             psbt_input
                 .update_with_descriptor_unchecked(&derived_descriptor)
    @@ -3574,7 +3590,9 @@
                     );
     
                     let desc = self.get_descriptor_for_keychain(keychain);
    -                let desc = desc.at_derivation_index(child);
    +                let desc = desc
    +                    .at_derivation_index(child)
    +                    .expect("child can't be hardened");
     
                     if is_input {
                         psbt.update_input_with_descriptor(index, &desc)
    @@ -3776,7 +3794,7 @@
     /// Macro for getting a wallet for use in a doctest
     macro_rules! doctest_wallet {
         () => {{
    -        use $crate::bitcoin::{BlockHash, Transaction, PackedLockTime, TxOut, Network, hashes::Hash};
    +        use $crate::bitcoin::{BlockHash, Transaction, absolute, TxOut, Network, hashes::Hash};
             use $crate::chain::{ConfirmationTime, BlockId};
             use $crate::wallet::{AddressIndex, Wallet};
             let descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)";
    @@ -3791,7 +3809,7 @@
             let address = wallet.get_address(AddressIndex::New).address;
             let tx = Transaction {
                 version: 1,
    -            lock_time: PackedLockTime(0),
    +            lock_time: absolute::LockTime::ZERO,
                 input: vec![],
                 output: vec![TxOut {
                     value: 500_000,
    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 28acc9b3d3..c95ea942f4 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
    @@ -1139,6 +1139,55 @@
     1138
     1139
     1140
    +1141
    +1142
    +1143
    +1144
    +1145
    +1146
    +1147
    +1148
    +1149
    +1150
    +1151
    +1152
    +1153
    +1154
    +1155
    +1156
    +1157
    +1158
    +1159
    +1160
    +1161
    +1162
    +1163
    +1164
    +1165
    +1166
    +1167
    +1168
    +1169
    +1170
    +1171
    +1172
    +1173
    +1174
    +1175
    +1176
    +1177
    +1178
    +1179
    +1180
    +1181
    +1182
    +1183
    +1184
    +1185
    +1186
    +1187
    +1188
    +1189
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -1160,7 +1209,7 @@
     //! # use core::str::FromStr;
     //! # use bitcoin::secp256k1::{Secp256k1, All};
     //! # use bitcoin::*;
    -//! # use bitcoin::util::psbt;
    +//! # use bitcoin::psbt;
     //! # use bdk::signer::*;
     //! # use bdk::*;
     //! # #[derive(Debug)]
    @@ -1227,18 +1276,17 @@
     use core::fmt;
     use core::ops::{Bound::Included, Deref};
     
    -use bitcoin::blockdata::opcodes;
    -use bitcoin::blockdata::script::Builder as ScriptBuilder;
    -use bitcoin::hashes::{hash160, Hash};
    +use bitcoin::bip32::{ChildNumber, DerivationPath, ExtendedPrivKey, Fingerprint};
    +use bitcoin::hashes::hash160;
     use bitcoin::secp256k1::Message;
    -use bitcoin::util::bip32::{ChildNumber, DerivationPath, ExtendedPrivKey, Fingerprint};
    -use bitcoin::util::{ecdsa, psbt, schnorr, sighash, taproot};
    -use bitcoin::{secp256k1, XOnlyPublicKey};
    -use bitcoin::{EcdsaSighashType, PrivateKey, PublicKey, SchnorrSighashType, Script};
    +use bitcoin::sighash::{EcdsaSighashType, TapSighash, TapSighashType};
    +use bitcoin::{ecdsa, psbt, sighash, taproot};
    +use bitcoin::{key::TapTweak, key::XOnlyPublicKey, secp256k1};
    +use bitcoin::{PrivateKey, PublicKey};
     
     use miniscript::descriptor::{
    -    Descriptor, DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, KeyMap, SinglePriv,
    -    SinglePubKey,
    +    Descriptor, DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey,
    +    InnerXKey, KeyMap, SinglePriv, SinglePubKey,
     };
     use miniscript::{Legacy, Segwitv0, SigType, Tap, ToPublicKey};
     
    @@ -1271,7 +1319,7 @@
     }
     
     /// Signing error
    -#[derive(Debug, PartialEq, Eq, Clone)]
    +#[derive(Debug)]
     pub enum SignerError {
         /// The private key is missing for the required public key
         MissingKey,
    @@ -1524,6 +1572,48 @@
         }
     }
     
    +fn multikey_to_xkeys<K: InnerXKey + Clone>(
    +    multikey: DescriptorMultiXKey<K>,
    +) -> Vec<DescriptorXKey<K>> {
    +    multikey
    +        .derivation_paths
    +        .into_paths()
    +        .into_iter()
    +        .map(|derivation_path| DescriptorXKey {
    +            origin: multikey.origin.clone(),
    +            xkey: multikey.xkey.clone(),
    +            derivation_path,
    +            wildcard: multikey.wildcard,
    +        })
    +        .collect()
    +}
    +
    +impl SignerCommon for SignerWrapper<DescriptorMultiXKey<ExtendedPrivKey>> {
    +    fn id(&self, secp: &SecpCtx) -> SignerId {
    +        SignerId::from(self.root_fingerprint(secp))
    +    }
    +
    +    fn descriptor_secret_key(&self) -> Option<DescriptorSecretKey> {
    +        Some(DescriptorSecretKey::MultiXPrv(self.signer.clone()))
    +    }
    +}
    +
    +impl InputSigner for SignerWrapper<DescriptorMultiXKey<ExtendedPrivKey>> {
    +    fn sign_input(
    +        &self,
    +        psbt: &mut psbt::PartiallySignedTransaction,
    +        input_index: usize,
    +        sign_options: &SignOptions,
    +        secp: &SecpCtx,
    +    ) -> Result<(), SignerError> {
    +        let xkeys = multikey_to_xkeys(self.signer.clone());
    +        for xkey in xkeys {
    +            SignerWrapper::new(xkey, self.ctx).sign_input(psbt, input_index, sign_options, secp)?
    +        }
    +        Ok(())
    +    }
    +}
    +
     impl SignerCommon for SignerWrapper<PrivateKey> {
         fn id(&self, secp: &SecpCtx) -> SignerId {
             SignerId::from(self.public_key(secp).to_pubkeyhash(SigType::Ecdsa))
    @@ -1618,8 +1708,16 @@
             }
     
             let (hash, hash_ty) = match self.ctx {
    -            SignerContext::Segwitv0 => Segwitv0::sighash(psbt, input_index, ())?,
    -            SignerContext::Legacy => Legacy::sighash(psbt, input_index, ())?,
    +            SignerContext::Segwitv0 => {
    +                let (h, t) = Segwitv0::sighash(psbt, input_index, ())?;
    +                let h = h.to_raw_hash();
    +                (h, t)
    +            }
    +            SignerContext::Legacy => {
    +                let (h, t) = Legacy::sighash(psbt, input_index, ())?;
    +                let h = h.to_raw_hash();
    +                (h, t)
    +            }
                 _ => return Ok(()), // handled above
             };
             sign_psbt_ecdsa(
    @@ -1640,12 +1738,12 @@
         secret_key: &secp256k1::SecretKey,
         pubkey: PublicKey,
         psbt_input: &mut psbt::Input,
    -    hash: bitcoin::Sighash,
    +    hash: impl bitcoin::hashes::Hash + bitcoin::secp256k1::ThirtyTwoByteHash,
         hash_ty: EcdsaSighashType,
         secp: &SecpCtx,
         allow_grinding: bool,
     ) {
    -    let msg = &Message::from_slice(&hash.into_inner()[..]).unwrap();
    +    let msg = &Message::from(hash);
         let sig = if allow_grinding {
             secp.sign_ecdsa_low_r(msg, secret_key)
         } else {
    @@ -1654,7 +1752,7 @@
         secp.verify_ecdsa(msg, &sig, &pubkey.inner)
             .expect("invalid or corrupted ecdsa signature");
     
    -    let final_signature = ecdsa::EcdsaSig { sig, hash_ty };
    +    let final_signature = ecdsa::Signature { sig, hash_ty };
         psbt_input.partial_sigs.insert(pubkey, final_signature);
     }
     
    @@ -1664,12 +1762,10 @@
         pubkey: XOnlyPublicKey,
         leaf_hash: Option<taproot::TapLeafHash>,
         psbt_input: &mut psbt::Input,
    -    hash: taproot::TapSighashHash,
    -    hash_ty: SchnorrSighashType,
    +    hash: TapSighash,
    +    hash_ty: TapSighashType,
         secp: &SecpCtx,
     ) {
    -    use schnorr::TapTweak;
    -
         let keypair = secp256k1::KeyPair::from_seckey_slice(secp, secret_key.as_ref()).unwrap();
         let keypair = match leaf_hash {
             None => keypair
    @@ -1678,12 +1774,12 @@
             Some(_) => keypair, // no tweak for script spend
         };
     
    -    let msg = &Message::from_slice(&hash.into_inner()[..]).unwrap();
    +    let msg = &Message::from(hash);
         let sig = secp.sign_schnorr(msg, &keypair);
         secp.verify_schnorr(&sig, msg, &XOnlyPublicKey::from_keypair(&keypair).0)
             .expect("invalid or corrupted schnorr signature");
     
    -    let final_signature = schnorr::SchnorrSig { sig, hash_ty };
    +    let final_signature = taproot::Signature { sig, hash_ty };
     
         if let Some(lh) = leaf_hash {
             psbt_input
    @@ -1773,6 +1869,11 @@
                         SignerOrdering::default(),
                         Arc::new(SignerWrapper::new(xprv, ctx)),
                     ),
    +                DescriptorSecretKey::MultiXPrv(xprv) => container.add_external(
    +                    SignerId::from(xprv.root_fingerprint(secp)),
    +                    SignerOrdering::default(),
    +                    Arc::new(SignerWrapper::new(xprv, ctx)),
    +                ),
                 };
             }
     
    @@ -1943,7 +2044,7 @@
     
     impl ComputeSighash for Legacy {
         type Extra = ();
    -    type Sighash = bitcoin::Sighash;
    +    type Sighash = sighash::LegacySighash;
         type SighashType = EcdsaSighashType;
     
         fn sighash(
    @@ -1990,19 +2091,9 @@
         }
     }
     
    -fn p2wpkh_script_code(script: &Script) -> Script {
    -    ScriptBuilder::new()
    -        .push_opcode(opcodes::all::OP_DUP)
    -        .push_opcode(opcodes::all::OP_HASH160)
    -        .push_slice(&script[2..])
    -        .push_opcode(opcodes::all::OP_EQUALVERIFY)
    -        .push_opcode(opcodes::all::OP_CHECKSIG)
    -        .into_script()
    -}
    -
     impl ComputeSighash for Segwitv0 {
         type Extra = ();
    -    type Sighash = bitcoin::Sighash;
    +    type Sighash = sighash::SegwitV0Sighash;
         type SighashType = EcdsaSighashType;
     
         fn sighash(
    @@ -2049,14 +2140,21 @@
                 Some(ref witness_script) => witness_script.clone(),
                 None => {
                     if utxo.script_pubkey.is_v0_p2wpkh() {
    -                    p2wpkh_script_code(&utxo.script_pubkey)
    +                    utxo.script_pubkey
    +                        .p2wpkh_script_code()
    +                        .expect("We check above that the spk is a p2wpkh")
                     } else if psbt_input
                         .redeem_script
                         .as_ref()
    -                    .map(Script::is_v0_p2wpkh)
    +                    .map(|s| s.is_v0_p2wpkh())
                         .unwrap_or(false)
                     {
    -                    p2wpkh_script_code(psbt_input.redeem_script.as_ref().unwrap())
    +                    psbt_input
    +                        .redeem_script
    +                        .as_ref()
    +                        .unwrap()
    +                        .p2wpkh_script_code()
    +                        .expect("We check above that the spk is a p2wpkh")
                     } else {
                         return Err(SignerError::MissingWitnessScript);
                     }
    @@ -2077,14 +2175,14 @@
     
     impl ComputeSighash for Tap {
         type Extra = Option<taproot::TapLeafHash>;
    -    type Sighash = taproot::TapSighashHash;
    -    type SighashType = SchnorrSighashType;
    +    type Sighash = TapSighash;
    +    type SighashType = TapSighashType;
     
         fn sighash(
             psbt: &psbt::PartiallySignedTransaction,
             input_index: usize,
             extra: Self::Extra,
    -    ) -> Result<(Self::Sighash, SchnorrSighashType), SignerError> {
    +    ) -> Result<(Self::Sighash, TapSighashType), SignerError> {
             if input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
                 return Err(SignerError::InputIndexOutOfRange);
             }
    @@ -2093,8 +2191,8 @@
     
             let sighash_type = psbt_input
                 .sighash_type
    -            .unwrap_or_else(|| SchnorrSighashType::Default.into())
    -            .schnorr_hash_ty()
    +            .unwrap_or_else(|| TapSighashType::Default.into())
    +            .taproot_hash_ty()
                 .map_err(|_| SignerError::InvalidSighash)?;
             let witness_utxos = (0..psbt.inputs.len())
                 .map(|i| psbt.get_utxo_for(i))
    @@ -2156,8 +2254,8 @@
         use crate::descriptor::IntoWalletDescriptor;
         use crate::keys::{DescriptorKey, IntoDescriptorKey};
         use assert_matches::assert_matches;
    +    use bitcoin::bip32;
         use bitcoin::secp256k1::{All, Secp256k1};
    -    use bitcoin::util::bip32;
         use bitcoin::Network;
         use core::str::FromStr;
         use miniscript::ScriptContext;
    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 0cc0b5e979..d34b748f12 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
    @@ -946,6 +946,17 @@
     945
     946
     947
    +948
    +949
    +950
    +951
    +952
    +953
    +954
    +955
    +956
    +957
    +958
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -966,7 +977,7 @@
     //! # use bitcoin::*;
     //! # use bdk::*;
     //! # use bdk::wallet::tx_builder::CreateTx;
    -//! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +//! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
     //! # let mut wallet = doctest_wallet!();
     //! // create a TxBuilder from a wallet
     //! let mut tx_builder = wallet.build_tx();
    @@ -975,7 +986,7 @@
     //!     // Create a transaction with one output to `to_address` of 50_000 satoshi
     //!     .add_recipient(to_address.script_pubkey(), 50_000)
     //!     // With a custom fee rate of 5.0 satoshi/vbyte
    -//!     .fee_rate(FeeRate::from_sat_per_vb(5.0))
    +//!     .fee_rate(bdk::FeeRate::from_sat_per_vb(5.0))
     //!     // Only spend non-change outputs
     //!     .do_not_spend_change()
     //!     // Turn on RBF signaling
    @@ -991,8 +1002,8 @@
     use core::cell::RefCell;
     use core::marker::PhantomData;
     
    -use bitcoin::util::psbt::{self, PartiallySignedTransaction as Psbt};
    -use bitcoin::{LockTime, OutPoint, Script, Sequence, Transaction};
    +use bitcoin::psbt::{self, PartiallySignedTransaction as Psbt};
    +use bitcoin::{absolute, script::PushBytes, OutPoint, ScriptBuf, Sequence, Transaction};
     
     use super::coin_selection::{CoinSelectionAlgorithm, DefaultCoinSelectionAlgorithm};
     use super::ChangeSet;
    @@ -1030,7 +1041,7 @@
     /// # use bitcoin::*;
     /// # use core::str::FromStr;
     /// # let mut wallet = doctest_wallet!();
    -/// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +/// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
     /// # let addr2 = addr1.clone();
     /// // chaining
     /// let (psbt1, details) = {
    @@ -1077,9 +1088,9 @@
     //TODO: TxParams should eventually be exposed publicly.
     #[derive(Default, Debug, Clone)]
     pub(crate) struct TxParams {
    -    pub(crate) recipients: Vec<(Script, u64)>,
    +    pub(crate) recipients: Vec<(ScriptBuf, u64)>,
         pub(crate) drain_wallet: bool,
    -    pub(crate) drain_to: Option<Script>,
    +    pub(crate) drain_to: Option<ScriptBuf>,
         pub(crate) fee_policy: Option<FeePolicy>,
         pub(crate) internal_policy_path: Option<BTreeMap<String, Vec<usize>>>,
         pub(crate) external_policy_path: Option<BTreeMap<String, Vec<usize>>>,
    @@ -1088,7 +1099,7 @@
         pub(crate) manually_selected_only: bool,
         pub(crate) sighash: Option<psbt::PsbtSighashType>,
         pub(crate) ordering: TxOrdering,
    -    pub(crate) locktime: Option<LockTime>,
    +    pub(crate) locktime: Option<absolute::LockTime>,
         pub(crate) rbf: Option<RbfValue>,
         pub(crate) version: Option<Version>,
         pub(crate) change_policy: ChangeSpendPolicy,
    @@ -1096,7 +1107,7 @@
         pub(crate) add_global_xpubs: bool,
         pub(crate) include_output_redeem_witness_script: bool,
         pub(crate) bumping_fee: Option<PreviousFee>,
    -    pub(crate) current_height: Option<LockTime>,
    +    pub(crate) current_height: Option<absolute::LockTime>,
         pub(crate) allow_dust: bool,
     }
     
    @@ -1193,7 +1204,10 @@
         /// # use std::collections::BTreeMap;
         /// # use bitcoin::*;
         /// # use bdk::*;
    -    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +    /// # let to_address =
    +    /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
    +    ///     .unwrap()
    +    ///     .assume_checked();
         /// # let mut wallet = doctest_wallet!();
         /// let mut path = BTreeMap::new();
         /// path.insert("aabbccdd".to_string(), vec![0, 1]);
    @@ -1235,7 +1249,8 @@
     
                 for utxo in utxos {
                     let descriptor = wallet.get_descriptor_for_keychain(utxo.keychain);
    -                let satisfaction_weight = descriptor.max_satisfaction_weight().unwrap();
    +                #[allow(deprecated)]
    +                let satisfaction_weight = descriptor.max_satisfaction_weight().unwrap();
                     self.params.utxos.push(WeightedUtxo {
                         satisfaction_weight,
                         utxo: Utxo::Local(utxo),
    @@ -1379,7 +1394,7 @@
         /// Use a specific nLockTime while creating the transaction
         ///
         /// This can cause conflicts if the wallet's descriptors contain an "after" (OP_CLTV) operator.
    -    pub fn nlocktime(&mut self, locktime: LockTime) -> &mut Self {
    +    pub fn nlocktime(&mut self, locktime: absolute::LockTime) -> &mut Self {
             self.params.locktime = Some(locktime);
             self
         }
    @@ -1418,7 +1433,7 @@
             self
         }
     
    -    /// Only Fill-in the [`psbt::Input::witness_utxo`](bitcoin::util::psbt::Input::witness_utxo) field when spending from
    +    /// Only Fill-in the [`psbt::Input::witness_utxo`](bitcoin::psbt::Input::witness_utxo) field when spending from
         /// SegWit descriptors.
         ///
         /// This reduces the size of the PSBT, but some signers might reject them due to the lack of
    @@ -1428,8 +1443,8 @@
             self
         }
     
    -    /// Fill-in the [`psbt::Output::redeem_script`](bitcoin::util::psbt::Output::redeem_script) and
    -    /// [`psbt::Output::witness_script`](bitcoin::util::psbt::Output::witness_script) fields.
    +    /// Fill-in the [`psbt::Output::redeem_script`](bitcoin::psbt::Output::redeem_script) and
    +    /// [`psbt::Output::witness_script`](bitcoin::psbt::Output::witness_script) fields.
         ///
         /// This is useful for signers which always require it, like ColdCard hardware wallets.
         pub fn include_output_redeem_witness_script(&mut self) -> &mut Self {
    @@ -1516,7 +1531,8 @@
         ///
         /// In both cases, if you don't provide a current height, we use the last sync height.
         pub fn current_height(&mut self, height: u32) -> &mut Self {
    -        self.params.current_height = Some(LockTime::from_height(height).expect("Invalid height"));
    +        self.params.current_height =
    +            Some(absolute::LockTime::from_height(height).expect("Invalid height"));
             self
         }
     
    @@ -1531,20 +1547,20 @@
     
     impl<'a, D, Cs: CoinSelectionAlgorithm> TxBuilder<'a, D, Cs, CreateTx> {
         /// Replace the recipients already added with a new list
    -    pub fn set_recipients(&mut self, recipients: Vec<(Script, u64)>) -> &mut Self {
    +    pub fn set_recipients(&mut self, recipients: Vec<(ScriptBuf, u64)>) -> &mut Self {
             self.params.recipients = recipients;
             self
         }
     
         /// Add a recipient to the internal list
    -    pub fn add_recipient(&mut self, script_pubkey: Script, amount: u64) -> &mut Self {
    +    pub fn add_recipient(&mut self, script_pubkey: ScriptBuf, amount: u64) -> &mut Self {
             self.params.recipients.push((script_pubkey, amount));
             self
         }
     
         /// Add data as an output, using OP_RETURN
    -    pub fn add_data(&mut self, data: &[u8]) -> &mut Self {
    -        let script = Script::new_op_return(data);
    +    pub fn add_data<T: AsRef<PushBytes>>(&mut self, data: &T) -> &mut Self {
    +        let script = ScriptBuf::new_op_return(data);
             self.add_recipient(script, 0u64);
             self
         }
    @@ -1574,7 +1590,10 @@
         /// # use bitcoin::*;
         /// # use bdk::*;
         /// # use bdk::wallet::tx_builder::CreateTx;
    -    /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap();
    +    /// # let to_address =
    +    /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
    +    ///     .unwrap()
    +    ///     .assume_checked();
         /// # let mut wallet = doctest_wallet!();
         /// let mut tx_builder = wallet.build_tx();
         ///
    @@ -1583,7 +1602,7 @@
         ///     .drain_wallet()
         ///     // Send the excess (which is all the coins minus the fee) to this address.
         ///     .drain_to(to_address.script_pubkey())
    -    ///     .fee_rate(FeeRate::from_sat_per_vb(5.0))
    +    ///     .fee_rate(bdk::FeeRate::from_sat_per_vb(5.0))
         ///     .enable_rbf();
         /// let (psbt, tx_details) = tx_builder.finish()?;
         /// # Ok::<(), bdk::Error>(())
    @@ -1593,7 +1612,7 @@
         /// [`add_recipient`]: Self::add_recipient
         /// [`add_utxos`]: Self::add_utxos
         /// [`drain_wallet`]: Self::drain_wallet
    -    pub fn drain_to(&mut self, script_pubkey: Script) -> &mut Self {
    +    pub fn drain_to(&mut self, script_pubkey: ScriptBuf) -> &mut Self {
             self.params.drain_to = Some(script_pubkey);
             self
         }
    @@ -1611,7 +1630,7 @@
         ///
         /// Returns an `Err` if `script_pubkey` can't be found among the recipients of the
         /// transaction we are bumping.
    -    pub fn allow_shrinking(&mut self, script_pubkey: Script) -> Result<&mut Self, Error> {
    +    pub fn allow_shrinking(&mut self, script_pubkey: ScriptBuf) -> Result<&mut Self, Error> {
             match self
                 .params
                 .recipients
    @@ -1816,8 +1835,11 @@
             );
     
             assert_eq!(tx.output[0].value, 800);
    -        assert_eq!(tx.output[1].script_pubkey, From::from(vec![0xAA]));
    -        assert_eq!(tx.output[2].script_pubkey, From::from(vec![0xAA, 0xEE]));
    +        assert_eq!(tx.output[1].script_pubkey, ScriptBuf::from(vec![0xAA]));
    +        assert_eq!(
    +            tx.output[2].script_pubkey,
    +            ScriptBuf::from(vec![0xAA, 0xEE])
    +        );
         }
     
         fn get_test_utxos() -> Vec<LocalUtxo> {
    @@ -1826,7 +1848,7 @@
             vec![
                 LocalUtxo {
                     outpoint: OutPoint {
    -                    txid: bitcoin::Txid::from_inner([0; 32]),
    +                    txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(),
                         vout: 0,
                     },
                     txout: Default::default(),
    @@ -1837,7 +1859,7 @@
                 },
                 LocalUtxo {
                     outpoint: OutPoint {
    -                    txid: bitcoin::Txid::from_inner([0; 32]),
    +                    txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(),
                         vout: 1,
                     },
                     txout: Default::default(),
    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 27f289cb07..2285e2e0e6 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
    @@ -180,6 +180,10 @@
     179
     180
     181
    +182
    +183
    +184
    +185
     
    // Bitcoin Dev Kit
     // Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
     //
    @@ -192,7 +196,7 @@
     // licenses.
     
     use bitcoin::secp256k1::{All, Secp256k1};
    -use bitcoin::{LockTime, Script, Sequence};
    +use bitcoin::{absolute, Script, Sequence};
     
     use miniscript::{MiniscriptKey, Satisfier, ToPublicKey};
     
    @@ -247,7 +251,7 @@
     }
     
     impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for After {
    -    fn check_after(&self, n: LockTime) -> bool {
    +    fn check_after(&self, n: absolute::LockTime) -> bool {
             if let Some(current_height) = self.current_height {
                 current_height >= n.to_consensus_u32()
             } else {
    @@ -301,12 +305,14 @@
         pub(crate) const SEQUENCE_LOCKTIME_TYPE_FLAG: u32 = 1 << 22;
     
         use super::{check_nsequence_rbf, IsDust};
    -    use crate::bitcoin::{Address, Sequence};
    +    use crate::bitcoin::{Address, Network, Sequence};
         use core::str::FromStr;
     
         #[test]
         fn test_is_dust() {
             let script_p2pkh = Address::from_str("1GNgwA8JfG7Kc8akJ8opdNWJUihqUztfPe")
    +            .unwrap()
    +            .require_network(Network::Bitcoin)
                 .unwrap()
                 .script_pubkey();
             assert!(script_p2pkh.is_p2pkh());
    @@ -314,6 +320,8 @@
             assert!(!546.is_dust(&script_p2pkh));
     
             let script_p2wpkh = Address::from_str("bc1qxlh2mnc0yqwas76gqq665qkggee5m98t8yskd8")
    +            .unwrap()
    +            .require_network(Network::Bitcoin)
                 .unwrap()
                 .script_pubkey();
             assert!(script_p2wpkh.is_v0_p2wpkh());
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html
    index 4783b49213..123089d9da 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/chain_data.rs.html
    @@ -362,7 +362,7 @@
         fn default() -> Self {
             Self {
                 height: Default::default(),
    -            hash: BlockHash::from_inner([0u8; 32]),
    +            hash: BlockHash::all_zeros(),
             }
         }
     }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
    index 06e564d851..098af8addf 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/descriptor_ext.rs.html
    @@ -14,17 +14,21 @@
     14
     15
     16
    +17
    +18
     
    use crate::miniscript::{Descriptor, DescriptorPublicKey};
     
     /// A trait to extend the functionality of a miniscript descriptor.
     pub trait DescriptorExt {
         /// Returns the minimum value (in satoshis) at which an output is broadcastable.
    +    /// Panics if the descriptor wildcard is hardened.
         fn dust_value(&self) -> u64;
     }
     
     impl DescriptorExt for Descriptor<DescriptorPublicKey> {
         fn dust_value(&self) -> u64 {
             self.at_derivation_index(0)
    +            .expect("descriptor can't have hardened derivation")
                 .script_pubkey()
                 .dust_value()
                 .to_sat()
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
    index 22e2cca691..35f26c30c6 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/keychain/txout_index.rs.html
    @@ -901,7 +901,7 @@
             self.inner
                 .all_spks()
                 .range((keychain.clone(), u32::MIN)..(keychain.clone(), next_index))
    -            .map(|((_, derivation_index), spk)| (*derivation_index, spk))
    +            .map(|((_, derivation_index), spk)| (*derivation_index, spk.as_script()))
         }
     
         /// Get the next derivation index for `keychain`. The next index is the index after the last revealed
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_iter.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_iter.rs.html
    index e40c964bac..f1bc703af2 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_iter.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_chain/spk_iter.rs.html
    @@ -212,9 +212,8 @@
     212
     213
     214
    -215
     
    use crate::{
    -    bitcoin::{secp256k1::Secp256k1, Script},
    +    bitcoin::{secp256k1::Secp256k1, ScriptBuf},
         miniscript::{Descriptor, DescriptorPublicKey},
     };
     use core::{borrow::Borrow, ops::Bound, ops::RangeBounds};
    @@ -237,9 +236,9 @@
     /// # use std::str::FromStr;
     /// # let secp = bitcoin::secp256k1::Secp256k1::signing_only();
     /// # let (descriptor, _) = Descriptor::<DescriptorPublicKey>::parse_descriptor(&secp, "wpkh([73c5da0a/86'/0'/0']xprv9xgqHN7yz9MwCkxsBPN5qetuNdQSUttZNKw1dcYTV4mkaAFiBVGQziHs3NRSWMkCzvgjEe3n9xV8oYywvM8at9yRqyaZVz6TYYhX98VjsUk/1/0)").unwrap();
    -/// # let external_spk_0 = descriptor.at_derivation_index(0).script_pubkey();
    -/// # let external_spk_3 = descriptor.at_derivation_index(3).script_pubkey();
    -/// # let external_spk_4 = descriptor.at_derivation_index(4).script_pubkey();
    +/// # let external_spk_0 = descriptor.at_derivation_index(0).unwrap().script_pubkey();
    +/// # let external_spk_3 = descriptor.at_derivation_index(3).unwrap().script_pubkey();
    +/// # let external_spk_4 = descriptor.at_derivation_index(4).unwrap().script_pubkey();
     ///
     /// // Creates a new script pubkey iterator starting at 0 from a descriptor.
     /// let mut spk_iter = SpkIterator::new(&descriptor);
    @@ -299,7 +298,7 @@
     where
         D: Borrow<Descriptor<DescriptorPublicKey>>,
     {
    -    type Item = (u32, Script);
    +    type Item = (u32, ScriptBuf);
     
         fn next(&mut self) -> Option<Self::Item> {
             // For non-wildcard descriptors, we expect the first element to be Some((0, spk)), then None after.
    @@ -311,8 +310,7 @@
             let script = self
                 .descriptor
                 .borrow()
    -            .at_derivation_index(self.next_index)
    -            .derived_descriptor(&self.secp)
    +            .derived_descriptor(&self.secp, self.next_index)
                 .expect("the descriptor cannot need hardened derivation")
                 .script_pubkey();
             let output = (self.next_index, script);
    @@ -364,15 +362,14 @@
     
         #[test]
         #[allow(clippy::iter_nth_zero)]
    +    #[rustfmt::skip]
         fn test_spkiterator_wildcard() {
             let (_, external_desc, _) = init_txout_index();
    -        let external_spk_0 = external_desc.at_derivation_index(0).script_pubkey();
    -        let external_spk_16 = external_desc.at_derivation_index(16).script_pubkey();
    -        let external_spk_20 = external_desc.at_derivation_index(20).script_pubkey();
    -        let external_spk_21 = external_desc.at_derivation_index(21).script_pubkey();
    -        let external_spk_max = external_desc
    -            .at_derivation_index(BIP32_MAX_INDEX)
    -            .script_pubkey();
    +        let external_spk_0 = external_desc.at_derivation_index(0).unwrap().script_pubkey();
    +        let external_spk_16 = external_desc.at_derivation_index(16).unwrap().script_pubkey();
    +        let external_spk_20 = external_desc.at_derivation_index(20).unwrap().script_pubkey();
    +        let external_spk_21 = external_desc.at_derivation_index(21).unwrap().script_pubkey();
    +        let external_spk_max = external_desc.at_derivation_index(BIP32_MAX_INDEX).unwrap().script_pubkey();
     
             let mut external_spk = SpkIterator::new(&external_desc);
             let max_index = BIP32_MAX_INDEX - 22;
    @@ -402,6 +399,7 @@
             let (no_wildcard_descriptor, _) = Descriptor::<DescriptorPublicKey>::parse_descriptor(&secp, "wpkh([73c5da0a/86'/0'/0']xprv9xgqHN7yz9MwCkxsBPN5qetuNdQSUttZNKw1dcYTV4mkaAFiBVGQziHs3NRSWMkCzvgjEe3n9xV8oYywvM8at9yRqyaZVz6TYYhX98VjsUk/1/0)").unwrap();
             let external_spk_0 = no_wildcard_descriptor
                 .at_derivation_index(0)
    +            .unwrap()
                 .script_pubkey();
     
             let mut external_spk = SpkIterator::new(&no_wildcard_descriptor);
    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 8e676c71af..587685a200 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
    @@ -342,7 +342,7 @@
         indexed_tx_graph::Indexer,
         ForEachTxOut,
     };
    -use bitcoin::{self, OutPoint, Script, Transaction, TxOut, Txid};
    +use bitcoin::{self, OutPoint, Script, ScriptBuf, Transaction, TxOut, Txid};
     
     /// An index storing [`TxOut`]s that have a script pubkey that matches those in a list.
     ///
    @@ -367,9 +367,9 @@
     #[derive(Clone, Debug)]
     pub struct SpkTxOutIndex<I> {
         /// script pubkeys ordered by index
    -    spks: BTreeMap<I, Script>,
    +    spks: BTreeMap<I, ScriptBuf>,
         /// A reverse lookup from spk to spk index
    -    spk_indices: HashMap<Script, I>,
    +    spk_indices: HashMap<ScriptBuf, I>,
         /// The set of unused indexes.
         unused: BTreeSet<I>,
         /// Lookup index and txout by outpoint.
    @@ -489,11 +489,11 @@
             use bitcoin::hashes::Hash;
             use core::ops::Bound::*;
             let min_op = OutPoint {
    -            txid: Txid::from_inner([0x00; 32]),
    +            txid: Txid::all_zeros(),
                 vout: u32::MIN,
             };
             let max_op = OutPoint {
    -            txid: Txid::from_inner([0xff; 32]),
    +            txid: Txid::from_byte_array([0xff; Txid::LEN]),
                 vout: u32::MAX,
             };
     
    @@ -525,18 +525,18 @@
         ///
         /// If that index hasn't been inserted yet, it will return `None`.
         pub fn spk_at_index(&self, index: &I) -> Option<&Script> {
    -        self.spks.get(index)
    +        self.spks.get(index).map(|s| s.as_script())
         }
     
         /// The script pubkeys that are being tracked by the index.
    -    pub fn all_spks(&self) -> &BTreeMap<I, Script> {
    +    pub fn all_spks(&self) -> &BTreeMap<I, ScriptBuf> {
             &self.spks
         }
     
         /// Adds a script pubkey to scan for. Returns `false` and does nothing if spk already exists in the map
         ///
         /// the index will look for outputs spending to this spk whenever it scans new data.
    -    pub fn insert_spk(&mut self, index: I, spk: Script) -> bool {
    +    pub fn insert_spk(&mut self, index: I, spk: ScriptBuf) -> bool {
             match self.spk_indices.entry(spk.clone()) {
                 Entry::Vacant(value) => {
                     value.insert(index.clone());
    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 52dfe7fb13..16b7ac4e12 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_coin_select/coin_selector.rs.html
    @@ -613,6 +613,8 @@
     613
     614
     615
    +616
    +617
     
    use super::*;
     
     /// A [`WeightedValue`] represents an input candidate for [`CoinSelector`]. This can either be a
    @@ -712,11 +714,13 @@
             let mut tx = Transaction {
                 input: vec![],
                 version: 1,
    -            lock_time: LockTime::ZERO.into(),
    +            lock_time: absolute::LockTime::ZERO,
                 output: txouts.to_vec(),
             };
             let base_weight = tx.weight();
    -        // this awkward calculation is necessary since TxOut doesn't have \.weight()
    +        // Calculating drain_weight like this instead of using .weight()
    +        // allows us to take into account the output len varint increase that
    +        // might happen when adding a new output
             let drain_weight = {
                 tx.output.push(drain_output.clone());
                 tx.weight() - base_weight
    @@ -728,8 +732,8 @@
                     Some(txouts.iter().map(|txout| txout.value).sum())
                 },
                 ..Self::from_weights(
    -                base_weight as u32,
    -                drain_weight as u32,
    +                base_weight.to_wu() as u32,
    +                drain_weight.to_wu() as u32,
                     TXIN_BASE_WEIGHT + drain_satisfaction_weight,
                 )
             }
    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 9e5ff002d3..6d0e3cb8a9 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::{LockTime, Transaction, TxOut};
    +use bitcoin::{absolute, Transaction, TxOut};
     use core::fmt::{Debug, Display};
     
     mod coin_selector;
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/electrum_ext.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/electrum_ext.rs.html
    index e6d17f12b0..edc9193025 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/electrum_ext.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_electrum/electrum_ext.rs.html
    @@ -545,8 +545,10 @@
     545
     546
     547
    +548
    +549
     
    use bdk_chain::{
    -    bitcoin::{hashes::hex::FromHex, OutPoint, Script, Transaction, Txid},
    +    bitcoin::{OutPoint, ScriptBuf, Transaction, Txid},
         keychain::LocalUpdate,
         local_chain::{self, CheckPoint},
         tx_graph::{self, TxGraph},
    @@ -556,6 +558,7 @@
     use std::{
         collections::{BTreeMap, BTreeSet, HashMap, HashSet},
         fmt::Debug,
    +    str::FromStr,
     };
     
     /// We assume that a block of this depth and deeper cannot be reorged.
    @@ -714,7 +717,7 @@
         fn scan<K: Ord + Clone>(
             &self,
             prev_tip: Option<CheckPoint>,
    -        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
    +        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             stop_gap: usize,
    @@ -727,7 +730,7 @@
         fn scan_without_keychain(
             &self,
             prev_tip: Option<CheckPoint>,
    -        misc_spks: impl IntoIterator<Item = Script>,
    +        misc_spks: impl IntoIterator<Item = ScriptBuf>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             batch_size: usize,
    @@ -752,7 +755,7 @@
         fn scan<K: Ord + Clone>(
             &self,
             prev_tip: Option<CheckPoint>,
    -        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
    +        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             stop_gap: usize,
    @@ -762,7 +765,7 @@
                 .into_iter()
                 .map(|(k, s)| (k, s.into_iter()))
                 .collect::<BTreeMap<K, _>>();
    -        let mut scanned_spks = BTreeMap::<(K, u32), (Script, bool)>::new();
    +        let mut scanned_spks = BTreeMap::<(K, u32), (ScriptBuf, bool)>::new();
     
             let txids = txids.into_iter().collect::<Vec<_>>();
             let outpoints = outpoints.into_iter().collect::<Vec<_>>();
    @@ -922,7 +925,7 @@
         // transactions residing in the genesis block to have height 0, then interpret a height of 0 as
         // unconfirmed for all other transactions.
         if txid
    -        == Txid::from_hex("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")
    +        == Txid::from_str("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")
                 .expect("must deserialize genesis coinbase txid")
         {
             let anchor_block = cps.values().next()?.block_id();
    @@ -1053,10 +1056,10 @@
         client: &Client,
         cps: &BTreeMap<u32, CheckPoint>,
         update: &mut ElectrumUpdate<K, ConfirmationHeightAnchor>,
    -    spks: &mut impl Iterator<Item = (I, Script)>,
    +    spks: &mut impl Iterator<Item = (I, ScriptBuf)>,
         stop_gap: usize,
         batch_size: usize,
    -) -> Result<BTreeMap<I, (Script, bool)>, Error> {
    +) -> Result<BTreeMap<I, (ScriptBuf, bool)>, Error> {
         let mut unused_spk_count = 0_usize;
         let mut scanned_spks = BTreeMap::new();
     
    @@ -1068,7 +1071,8 @@
                 return Ok(scanned_spks);
             }
     
    -        let spk_histories = client.batch_script_get_history(spks.iter().map(|(_, s)| s))?;
    +        let spk_histories =
    +            client.batch_script_get_history(spks.iter().map(|(_, s)| s.as_script()))?;
     
             for ((spk_index, spk), spk_history) in spks.into_iter().zip(spk_histories) {
                 if spk_history.is_empty() {
    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 b0a8b1bd3f..b17dd83607 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
    @@ -326,7 +326,7 @@
     
    use async_trait::async_trait;
     use bdk_chain::collections::btree_map;
     use bdk_chain::{
    -    bitcoin::{BlockHash, OutPoint, Script, Txid},
    +    bitcoin::{BlockHash, OutPoint, ScriptBuf, Txid},
         collections::{BTreeMap, BTreeSet},
         local_chain::{self, CheckPoint},
         BlockId, ConfirmationTimeAnchor, TxGraph,
    @@ -377,7 +377,7 @@
             &self,
             keychain_spks: BTreeMap<
                 K,
    -            impl IntoIterator<IntoIter = impl Iterator<Item = (u32, Script)> + Send> + Send,
    +            impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send> + Send,
             >,
             txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send,
             outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send,
    @@ -391,7 +391,7 @@
         #[allow(clippy::result_large_err)]
         async fn update_tx_graph_without_keychain(
             &self,
    -        misc_spks: impl IntoIterator<IntoIter = impl Iterator<Item = Script> + Send> + Send,
    +        misc_spks: impl IntoIterator<IntoIter = impl Iterator<Item = ScriptBuf> + Send> + Send,
             txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send,
             outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send,
             parallel_requests: usize,
    @@ -530,7 +530,7 @@
             &self,
             keychain_spks: BTreeMap<
                 K,
    -            impl IntoIterator<IntoIter = impl Iterator<Item = (u32, Script)> + Send> + Send,
    +            impl IntoIterator<IntoIter = impl Iterator<Item = (u32, ScriptBuf)> + Send> + Send,
             >,
             txids: impl IntoIterator<IntoIter = impl Iterator<Item = Txid> + Send> + Send,
             outpoints: impl IntoIterator<IntoIter = impl Iterator<Item = OutPoint> + Send> + Send,
    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 446daa60a6..526dea0de4 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
    @@ -317,14 +317,12 @@
     317
     318
     319
    -320
     
    use std::thread::JoinHandle;
     
    -use bdk_chain::bitcoin::{OutPoint, Txid};
     use bdk_chain::collections::btree_map;
     use bdk_chain::collections::{BTreeMap, BTreeSet};
     use bdk_chain::{
    -    bitcoin::{BlockHash, Script},
    +    bitcoin::{BlockHash, OutPoint, ScriptBuf, Txid},
         local_chain::{self, CheckPoint},
         BlockId, ConfirmationTimeAnchor, TxGraph,
     };
    @@ -369,7 +367,7 @@
         #[allow(clippy::result_large_err)]
         fn update_tx_graph<K: Ord + Clone>(
             &self,
    -        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
    +        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             stop_gap: usize,
    @@ -382,7 +380,7 @@
         #[allow(clippy::result_large_err)]
         fn update_tx_graph_without_keychain(
             &self,
    -        misc_spks: impl IntoIterator<Item = Script>,
    +        misc_spks: impl IntoIterator<Item = ScriptBuf>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             parallel_requests: usize,
    @@ -515,7 +513,7 @@
     
         fn update_tx_graph<K: Ord + Clone>(
             &self,
    -        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
    +        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
             txids: impl IntoIterator<Item = Txid>,
             outpoints: impl IntoIterator<Item = OutPoint>,
             stop_gap: usize,
    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 277fc1b33c..e6aee56c86 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
    @@ -435,6 +435,11 @@
     435
     436
     437
    +438
    +439
    +440
    +441
    +442
     
    #![allow(unused)]
     #![allow(missing_docs)]
     #![allow(clippy::all)] // FIXME
    @@ -453,15 +458,15 @@
     //! witness/script_sig for the input.
     use bdk_chain::{bitcoin, collections::*, miniscript};
     use bitcoin::{
    -    blockdata::{locktime::LockTime, transaction::Sequence},
    +    absolute,
    +    address::WitnessVersion,
    +    bip32::{DerivationPath, Fingerprint, KeySource},
    +    blockdata::transaction::Sequence,
    +    ecdsa,
         hashes::{hash160, ripemd160, sha256},
         secp256k1::Secp256k1,
    -    util::{
    -        address::WitnessVersion,
    -        bip32::{DerivationPath, Fingerprint, KeySource},
    -        taproot::{LeafVersion, TapBranchHash, TapLeafHash},
    -    },
    -    EcdsaSig, SchnorrSig, Script, TxIn, Witness,
    +    taproot::{self, LeafVersion, TapLeafHash},
    +    ScriptBuf, TxIn, Witness,
     };
     use miniscript::{
         descriptor::{InnerXKey, Tr},
    @@ -483,7 +488,7 @@
     enum TrSpend {
         KeySpend,
         LeafSpend {
    -        script: Script,
    +        script: ScriptBuf,
             leaf_version: LeafVersion,
         },
     }
    @@ -492,7 +497,7 @@
     enum Target {
         Legacy,
         Segwitv0 {
    -        script_code: Script,
    +        script_code: ScriptBuf,
         },
         Segwitv1 {
             tr: Tr<DefiniteDescriptorKey>,
    @@ -509,7 +514,7 @@
     pub struct Plan<AK> {
         template: Vec<TemplateItem<AK>>,
         target: Target,
    -    set_locktime: Option<LockTime>,
    +    set_locktime: Option<absolute::LockTime>,
         set_sequence: Option<Sequence>,
     }
     
    @@ -523,9 +528,9 @@
     /// Signatures and hash pre-images that can be used to complete a plan.
     pub struct SatisfactionMaterial {
         /// Schnorr signautres under their keys
    -    pub schnorr_sigs: BTreeMap<DefiniteDescriptorKey, SchnorrSig>,
    +    pub schnorr_sigs: BTreeMap<DefiniteDescriptorKey, taproot::Signature>,
         /// ECDSA signatures under their keys
    -    pub ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, EcdsaSig>,
    +    pub ecdsa_sigs: BTreeMap<DefiniteDescriptorKey, ecdsa::Signature>,
         /// SHA256 pre-images under their images
         pub sha256_preimages: BTreeMap<sha256::Hash, Vec<u8>>,
         /// hash160 pre-images under their images
    @@ -638,7 +643,7 @@
                         ..
                     } => PlanState::Complete {
                         final_script_sig: None,
    -                    final_script_witness: Some(Witness::from_vec(witness)),
    +                    final_script_witness: Some(Witness::from(witness)),
                     },
                     Target::Segwitv1 {
                         tr,
    @@ -657,7 +662,7 @@
     
                         PlanState::Complete {
                             final_script_sig: None,
    -                        final_script_witness: Some(Witness::from_vec(witness)),
    +                        final_script_witness: Some(Witness::from(witness)),
                         }
                     }
                 }
    @@ -743,7 +748,7 @@
         }
     
         /// The minimum required locktime height or time on the transaction using the plan.
    -    pub fn required_locktime(&self) -> Option<LockTime> {
    +    pub fn required_locktime(&self) -> Option<absolute::LockTime> {
             self.set_locktime.clone()
         }
     
    @@ -767,7 +772,7 @@
         /// The plan is complete
         Complete {
             /// The script sig that should be set on the input
    -        final_script_sig: Option<Script>,
    +        final_script_sig: Option<ScriptBuf>,
             /// The witness that should be set on the input
             final_script_witness: Option<Witness>,
         },
    @@ -778,7 +783,7 @@
     pub struct Assets<K> {
         pub keys: Vec<K>,
         pub txo_age: Option<Sequence>,
    -    pub max_locktime: Option<LockTime>,
    +    pub max_locktime: Option<absolute::LockTime>,
         pub sha256: Vec<sha256::Hash>,
         pub hash256: Vec<hash256::Hash>,
         pub ripemd160: Vec<ripemd160::Hash>,
    @@ -817,6 +822,11 @@
     
                     path_to_child(self, &origin, Some(&dxk.derivation_path))
                 }
    +            DescriptorPublicKey::MultiXPub(_) => {
    +                // This crate will be replaced by
    +                // https://github.com/rust-bitcoin/rust-miniscript/pull/481 anyways
    +                todo!();
    +            }
             }
         }
     }
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/plan_impls.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/plan_impls.rs.html
    index ea027ec39f..ba1e627194 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/plan_impls.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/plan_impls.rs.html
    @@ -321,8 +321,10 @@
     321
     322
     323
    +324
    +325
     
    use bdk_chain::{bitcoin, miniscript};
    -use bitcoin::locktime::{Height, Time};
    +use bitcoin::locktime::absolute;
     use miniscript::Terminal;
     
     use super::*;
    @@ -477,7 +479,7 @@
     
     #[derive(Debug)]
     struct TermPlan<Ak> {
    -    pub min_locktime: Option<LockTime>,
    +    pub min_locktime: Option<absolute::LockTime>,
         pub min_sequence: Option<Sequence>,
         pub template: Vec<TemplateItem<Ak>>,
     }
    @@ -539,10 +541,12 @@
             }
             Terminal::After(locktime) => {
                 let max_locktime = assets.max_locktime?;
    -            let locktime = LockTime::from(locktime);
    +            let locktime = absolute::LockTime::from(*locktime);
                 let (height, time) = match max_locktime {
    -                LockTime::Blocks(height) => (height, Time::from_consensus(0).unwrap()),
    -                LockTime::Seconds(seconds) => (Height::from_consensus(0).unwrap(), seconds),
    +                absolute::LockTime::Blocks(height) => {
    +                    (height, absolute::Time::from_consensus(0).unwrap())
    +                }
    +                absolute::LockTime::Seconds(seconds) => (absolute::Height::ZERO, seconds),
                 };
                 if max_locktime.is_satisfied_by(height, time) {
                     Some(TermPlan {
    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 73afceff07..de7d14c480 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
    @@ -216,15 +216,31 @@
     216
     217
     218
    +219
    +220
    +221
    +222
    +223
    +224
    +225
    +226
    +227
    +228
    +229
    +230
    +231
     
    use bdk_chain::{bitcoin, collections::*, miniscript};
     use core::ops::Deref;
     
     use bitcoin::{
    +    bip32,
         hashes::{hash160, ripemd160, sha256},
    +    key::XOnlyPublicKey,
         psbt::Prevouts,
         secp256k1::{KeyPair, Message, PublicKey, Signing, Verification},
    -    util::{bip32, sighash, sighash::SighashCache, taproot},
    -    EcdsaSighashType, SchnorrSighashType, Transaction, TxOut, XOnlyPublicKey,
    +    sighash,
    +    sighash::{EcdsaSighashType, SighashCache, TapSighashType},
    +    taproot, Transaction, TxOut,
     };
     
     use super::*;
    @@ -290,7 +306,7 @@
             /// the internal key
             plan_key: PlanKey<Ak>,
             /// The merkle root of the taproot output
    -        merkle_root: Option<TapBranchHash>,
    +        merkle_root: Option<taproot::TapNodeHash>,
         },
         /// Taproot script path signatures are required
         TapScript {
    @@ -332,12 +348,12 @@
     impl std::error::Error for SigningError {}
     
     impl RequiredSignatures<DescriptorPublicKey> {
    -    pub fn sign_with_keymap<T: Deref<Target = Transaction>>(
    +    pub fn sign_with_keymap<T: core::borrow::Borrow<Transaction>>(
             &self,
             input_index: usize,
             keymap: &KeyMap,
             prevouts: &Prevouts<'_, impl core::borrow::Borrow<TxOut>>,
    -        schnorr_sighashty: Option<SchnorrSighashType>,
    +        schnorr_sighashty: Option<TapSighashType>,
             _ecdsa_sighashty: Option<EcdsaSighashType>,
             sighash_cache: &mut SighashCache<T>,
             auth_data: &mut SatisfactionMaterial,
    @@ -349,7 +365,7 @@
                     plan_key,
                     merkle_root,
                 } => {
    -                let schnorr_sighashty = schnorr_sighashty.unwrap_or(SchnorrSighashType::Default);
    +                let schnorr_sighashty = schnorr_sighashty.unwrap_or(TapSighashType::Default);
                     let sighash = sighash_cache.taproot_key_spend_signature_hash(
                         input_index,
                         prevouts,
    @@ -366,6 +382,11 @@
                                 .derive_priv(&secp, &plan_key.derivation_hint)?
                                 .private_key
                         }
    +                    DescriptorSecretKey::MultiXPrv(_) => {
    +                        // This crate will be replaced by
    +                        // https://github.com/rust-bitcoin/rust-miniscript/pull/481 anyways
    +                        todo!();
    +                    }
                     };
     
                     let pubkey = PublicKey::from_secret_key(&secp, &secret_key);
    @@ -380,7 +401,7 @@
                     let msg = Message::from_slice(sighash.as_ref()).expect("Sighashes are 32 bytes");
                     let sig = secp.sign_schnorr_no_aux_rand(&msg, &keypair);
     
    -                let bitcoin_sig = SchnorrSig {
    +                let bitcoin_sig = taproot::Signature {
                         sig,
                         hash_ty: schnorr_sighashty,
                     };
    @@ -394,7 +415,7 @@
                     leaf_hash,
                     plan_keys,
                 } => {
    -                let sighash_type = schnorr_sighashty.unwrap_or(SchnorrSighashType::Default);
    +                let sighash_type = schnorr_sighashty.unwrap_or(TapSighashType::Default);
                     let sighash = sighash_cache.taproot_script_spend_signature_hash(
                         input_index,
                         prevouts,
    @@ -413,12 +434,17 @@
                                         .derive_priv(&secp, &plan_key.derivation_hint)?
                                         .private_key
                                 }
    +                            DescriptorSecretKey::MultiXPrv(_) => {
    +                                // This crate will be replaced by
    +                                // https://github.com/rust-bitcoin/rust-miniscript/pull/481 anyways
    +                                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 sig = secp.sign_schnorr_no_aux_rand(&msg, &keypair);
    -                        let bitcoin_sig = SchnorrSig {
    +                        let bitcoin_sig = taproot::Signature {
                                 sig,
                                 hash_ty: sighash_type,
                             };
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/template.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/template.rs.html
    index 0fca27af5a..fbbac6f25a 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/template.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/bdk_tmp_plan/template.rs.html
    @@ -76,8 +76,8 @@
     76
     
    use bdk_chain::{bitcoin, miniscript};
     use bitcoin::{
    +    bip32::DerivationPath,
         hashes::{hash160, ripemd160, sha256},
    -    util::bip32::DerivationPath,
     };
     
     use super::*;
    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 c2c0e4593e..86a7f06581 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_cli/lib.rs.html
    @@ -734,6 +734,8 @@
     734
     735
     736
    +737
    +738
     
    pub use anyhow;
     use anyhow::Context;
     use bdk_coin_select::{coin_select_bnb, CoinSelector, CoinSelectorOpt, WeightedValue};
    @@ -743,7 +745,7 @@
     
     use bdk_chain::{
         bitcoin::{
    -        psbt::Prevouts, secp256k1::Secp256k1, util::sighash::SighashCache, Address, LockTime,
    +        absolute, address, psbt::Prevouts, secp256k1::Secp256k1, sighash::SighashCache, Address,
             Network, Sequence, Transaction, TxIn, TxOut,
         },
         indexed_tx_graph::{IndexedAdditions, IndexedTxGraph},
    @@ -806,7 +808,7 @@
         /// Send coins to an address.
         Send {
             value: u64,
    -        address: Address,
    +        address: Address<address::NetworkUnchecked>,
             #[clap(short, default_value = "bnb")]
             coin_select: CoinSelectionAlgo,
         },
    @@ -1193,7 +1195,7 @@
         additions.append(change_additions);
     
         // Clone to drop the immutable reference.
    -    let change_script = change_script.clone();
    +    let change_script = change_script.into();
     
         let change_plan = bdk_tmp_plan::plan_satisfaction(
             &graph
    @@ -1201,7 +1203,8 @@
                 .keychains()
                 .get(&internal_keychain)
                 .expect("must exist")
    -            .at_derivation_index(change_index),
    +            .at_derivation_index(change_index)
    +            .expect("change_index can't be hardened"),
             &assets,
         )
         .expect("failed to obtain change plan");
    @@ -1256,9 +1259,8 @@
             // tip as the `lock_time` for anti-fee-sniping purposes
             lock_time: chain
                 .get_chain_tip()?
    -            .and_then(|block_id| LockTime::from_height(block_id.height).ok())
    -            .unwrap_or(LockTime::ZERO)
    -            .into(),
    +            .and_then(|block_id| absolute::LockTime::from_height(block_id.height).ok())
    +            .unwrap_or(absolute::LockTime::ZERO),
             input: selected_txos
                 .iter()
                 .map(|(_, utxo)| TxIn {
    @@ -1361,7 +1363,8 @@
                         .keychains()
                         .get(&k)
                         .expect("keychain must exist")
    -                    .at_derivation_index(i);
    +                    .at_derivation_index(i)
    +                    .expect("i can't be hardened");
                     let plan = bdk_tmp_plan::plan_satisfaction(&desc, assets)?;
                     Some(Ok((plan, full_txo)))
                 },
    @@ -1404,6 +1407,7 @@
                 coin_select,
             } => {
                 let chain = &*chain.lock().unwrap();
    +            let address = address.require_network(network)?;
                 run_send_cmd(
                     graph,
                     db,
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    index 2a402d3ec0..bb1697453f 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/example_electrum/main.rs.html
    @@ -300,6 +300,7 @@
     300
     301
     302
    +303
     
    use std::{
         collections::BTreeMap,
         io::{self, Write},
    @@ -307,7 +308,7 @@
     };
     
     use bdk_chain::{
    -    bitcoin::{Address, Network, OutPoint, Txid},
    +    bitcoin::{Address, Network, OutPoint, ScriptBuf, Txid},
         indexed_tx_graph::{IndexedAdditions, IndexedTxGraph},
         keychain::LocalChangeSet,
         local_chain::LocalChain,
    @@ -381,6 +382,7 @@
             Network::Testnet => "ssl://electrum.blockstream.info:60002",
             Network::Regtest => "tcp://localhost:60401",
             Network::Signet => "tcp://signet-electrumx.wakiyamap.dev:50001",
    +        _ => panic!("Unknown network"),
         };
         let config = electrum_client::Config::builder()
             .validate_domain(matches!(args.network, Network::Bitcoin))
    @@ -474,7 +476,7 @@
                     unused_spks = false;
                 }
     
    -            let mut spks: Box<dyn Iterator<Item = bdk_chain::bitcoin::Script>> =
    +            let mut spks: Box<dyn Iterator<Item = bdk_chain::bitcoin::ScriptBuf>> =
                     Box::new(core::iter::empty());
                 if all_spks {
                     let all_spks = graph
    @@ -492,7 +494,7 @@
                     let unused_spks = graph
                         .index
                         .unused_spks(..)
    -                    .map(|(k, v)| (*k, v.clone()))
    +                    .map(|(k, v)| (*k, ScriptBuf::from(v)))
                         .collect::<Vec<_>>();
                     spks = Box::new(spks.chain(unused_spks.into_iter().map(|(index, script)| {
                         eprintln!(
    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 51dbf49196..ce28f3d59b 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
    @@ -90,6 +90,7 @@
     90
     91
     92
    +93
     
    const DB_MAGIC: &str = "bdk_wallet_electrum_example";
     const SEND_AMOUNT: u64 = 5000;
     const STOP_GAP: usize = 50;
    @@ -165,7 +166,8 @@
             std::process::exit(0);
         }
     
    -    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?;
    +    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?
    +        .require_network(Network::Testnet)?;
     
         let mut tx_builder = wallet.build_tx();
         tx_builder
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora/main.rs.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora/main.rs.html
    index 0c9a9d1e7a..48c9ae45d5 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora/main.rs.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/src/wallet_esplora/main.rs.html
    @@ -96,6 +96,7 @@
     96
     97
     98
    +99
     
    const DB_MAGIC: &str = "bdk_wallet_esplora_example";
     const SEND_AMOUNT: u64 = 1000;
     const STOP_GAP: usize = 5;
    @@ -177,7 +178,8 @@
             std::process::exit(0);
         }
     
    -    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?;
    +    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?
    +        .require_network(Network::Testnet)?;
     
         let mut tx_builder = wallet.build_tx();
         tx_builder
    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 ba85f7a382..be0a844547 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
    @@ -96,6 +96,7 @@
     96
     97
     98
    +99
     
    use std::{io::Write, str::FromStr};
     
     use bdk::{
    @@ -177,7 +178,8 @@
             std::process::exit(0);
         }
     
    -    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?;
    +    let faucet_address = Address::from_str("mkHS9ne12qx9pS9VojpwU5xtRd4T7X7ZUt")?
    +        .require_network(Network::Testnet)?;
     
         let mut tx_builder = wallet.build_tx();
         tx_builder
    diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html
    index 82b3d758c4..facc9c8fb9 100644
    --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html
    +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/fn.main.html
    @@ -1 +1 @@
    -main in wallet_electrum_example - Rust

    Function wallet_electrum_example::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file +main in wallet_electrum_example - Rust

    Function wallet_electrum_example::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html index 73adf2965f..b9f2e3459d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_electrum_example/index.html @@ -1 +1 @@ -wallet_electrum_example - Rust

    Constants

    BATCH_SIZE ðŸ”’
    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file +wallet_electrum_example - Rust

    Constants

    BATCH_SIZE ðŸ”’
    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/fn.main.html index 981f374dff..ac7c62e95c 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/fn.main.html @@ -1 +1 @@ -main in wallet_esplora - Rust

    Function wallet_esplora::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file +main in wallet_esplora - Rust

    Function wallet_esplora::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/index.html index 1e9daadab8..7e9c7cf915 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora/index.html @@ -1 +1 @@ -wallet_esplora - Rust

    Crate wallet_esplora

    source ·

    Constants

    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file +wallet_esplora - Rust

    Crate wallet_esplora

    source ·

    Constants

    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html index 563ecd3d40..28d22b528d 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/fn.main.html @@ -1 +1 @@ -main in wallet_esplora_async - Rust

    Function wallet_esplora_async::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file +main in wallet_esplora_async - Rust

    Function wallet_esplora_async::main

    source ·
    pub(crate) fn main() -> Result<(), Box<dyn Error>>
    \ No newline at end of file diff --git a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html index d685d76dfa..443df17e8a 100644 --- a/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html +++ b/docs/.vuepress/public/docs-rs/bdk/nightly/latest/wallet_esplora_async/index.html @@ -1 +1 @@ -wallet_esplora_async - Rust

    Constants

    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file +wallet_esplora_async - Rust

    Constants

    DB_MAGIC ðŸ”’
    SEND_AMOUNT ðŸ”’
    STOP_GAP ðŸ”’

    Functions

    main ðŸ”’
    \ No newline at end of file