Merge rust-bitcoin/rust-bitcoin#2886: taproot: Split errors up

6a7f780018 api: Run just check-api (Tobin C. Harding)
0c9223ac05 Manually format write_err statement (Tobin C. Harding)
43d7c750cc taproot: Add error types (Tobin C. Harding)
afe41c8a39 taproot: Split errors up (Tobin C. Harding)

Pull request description:

  Currently there are a couple of errors in the `taproot` module that are too general, resulting in functions that return a general error type when a specific one would do.

  Split two errors out and use them for for enum variants and function returns as possible.

  Done as part of #2883

ACKs for top commit:
  Kixunil:
    ACK 6a7f780018
  apoelstra:
    ACK 6a7f780018

Tree-SHA512: bf5ed50dd8f913280d007f03124c7918c4b6cd642e67726bc3ffff23d9897f764a4391e167115668c3a1e951197485eba280fdbb8a0ce1bb7efb051388d13997
This commit is contained in:
merge-script 2024-06-28 19:50:37 +00:00
commit 6e1fe5e1c1
No known key found for this signature in database
GPG Key ID: C588D63CE41B97C1
5 changed files with 446 additions and 79 deletions

View File

@ -427,6 +427,10 @@ impl bitcoin::taproot::ControlBlock
impl bitcoin::taproot::FutureLeafVersion impl bitcoin::taproot::FutureLeafVersion
impl bitcoin::taproot::HiddenNodesError impl bitcoin::taproot::HiddenNodesError
impl bitcoin::taproot::IncompleteBuilderError impl bitcoin::taproot::IncompleteBuilderError
impl bitcoin::taproot::InvalidControlBlockSizeError
impl bitcoin::taproot::InvalidMerkleBranchSizeError
impl bitcoin::taproot::InvalidMerkleTreeDepthError
impl bitcoin::taproot::InvalidTaprootLeafVersionError
impl bitcoin::taproot::LeafNode impl bitcoin::taproot::LeafNode
impl bitcoin::taproot::LeafVersion impl bitcoin::taproot::LeafVersion
impl bitcoin::taproot::NodeInfo impl bitcoin::taproot::NodeInfo
@ -715,6 +719,10 @@ impl core::clone::Clone for bitcoin::taproot::ControlBlock
impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion
impl core::clone::Clone for bitcoin::taproot::HiddenNodesError impl core::clone::Clone for bitcoin::taproot::HiddenNodesError
impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError
impl core::clone::Clone for bitcoin::taproot::InvalidControlBlockSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::clone::Clone for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::clone::Clone for bitcoin::taproot::LeafNode impl core::clone::Clone for bitcoin::taproot::LeafNode
impl core::clone::Clone for bitcoin::taproot::LeafVersion impl core::clone::Clone for bitcoin::taproot::LeafVersion
impl core::clone::Clone for bitcoin::taproot::NodeInfo impl core::clone::Clone for bitcoin::taproot::NodeInfo
@ -916,6 +924,10 @@ impl core::cmp::Eq for bitcoin::taproot::ControlBlock
impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError
impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::Eq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::Eq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::Eq for bitcoin::taproot::LeafNode impl core::cmp::Eq for bitcoin::taproot::LeafNode
impl core::cmp::Eq for bitcoin::taproot::LeafVersion impl core::cmp::Eq for bitcoin::taproot::LeafVersion
impl core::cmp::Eq for bitcoin::taproot::NodeInfo impl core::cmp::Eq for bitcoin::taproot::NodeInfo
@ -1205,6 +1217,10 @@ impl core::cmp::PartialEq for bitcoin::taproot::ControlBlock
impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError
impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::PartialEq for bitcoin::taproot::LeafNode impl core::cmp::PartialEq for bitcoin::taproot::LeafNode
impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo
@ -1874,6 +1890,11 @@ impl core::convert::From<bitcoin::sighash::PrevoutsIndexError> for bitcoin::sigh
impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError
impl core::convert::From<bitcoin::taproot::InvalidControlBlockSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleBranchSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidTaprootLeafVersionError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash
impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature
impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash
@ -1946,6 +1967,10 @@ impl core::convert::From<core::convert::Infallible> for bitcoin::sighash::Taproo
impl core::convert::From<core::convert::Infallible> for bitcoin::sign_message::MessageSignatureError impl core::convert::From<core::convert::Infallible> for bitcoin::sign_message::MessageSignatureError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidControlBlockSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError
@ -2085,6 +2110,10 @@ impl core::error::Error for bitcoin::sighash::TaprootError
impl core::error::Error for bitcoin::sign_message::MessageSignatureError impl core::error::Error for bitcoin::sign_message::MessageSignatureError
impl core::error::Error for bitcoin::taproot::HiddenNodesError impl core::error::Error for bitcoin::taproot::HiddenNodesError
impl core::error::Error for bitcoin::taproot::IncompleteBuilderError impl core::error::Error for bitcoin::taproot::IncompleteBuilderError
impl core::error::Error for bitcoin::taproot::InvalidControlBlockSizeError
impl core::error::Error for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::error::Error for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::error::Error for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::error::Error for bitcoin::taproot::SigFromSliceError impl core::error::Error for bitcoin::taproot::SigFromSliceError
impl core::error::Error for bitcoin::taproot::TaprootBuilderError impl core::error::Error for bitcoin::taproot::TaprootBuilderError
impl core::error::Error for bitcoin::taproot::TaprootError impl core::error::Error for bitcoin::taproot::TaprootError
@ -2274,6 +2303,10 @@ impl core::fmt::Debug for bitcoin::taproot::ControlBlock
impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError
impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Debug for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Debug for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Debug for bitcoin::taproot::LeafNode impl core::fmt::Debug for bitcoin::taproot::LeafNode
impl core::fmt::Debug for bitcoin::taproot::LeafVersion impl core::fmt::Debug for bitcoin::taproot::LeafVersion
impl core::fmt::Debug for bitcoin::taproot::NodeInfo impl core::fmt::Debug for bitcoin::taproot::NodeInfo
@ -2414,6 +2447,10 @@ impl core::fmt::Display for bitcoin::sign_message::MessageSignatureError
impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Display for bitcoin::taproot::HiddenNodesError impl core::fmt::Display for bitcoin::taproot::HiddenNodesError
impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Display for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Display for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Display for bitcoin::taproot::LeafVersion impl core::fmt::Display for bitcoin::taproot::LeafVersion
impl core::fmt::Display for bitcoin::taproot::SigFromSliceError impl core::fmt::Display for bitcoin::taproot::SigFromSliceError
impl core::fmt::Display for bitcoin::taproot::TapLeafHash impl core::fmt::Display for bitcoin::taproot::TapLeafHash
@ -2873,6 +2910,10 @@ impl core::marker::Freeze for bitcoin::taproot::ControlBlock
impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion
impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError
impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Freeze for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Freeze for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Freeze for bitcoin::taproot::LeafNode impl core::marker::Freeze for bitcoin::taproot::LeafNode
impl core::marker::Freeze for bitcoin::taproot::LeafVersion impl core::marker::Freeze for bitcoin::taproot::LeafVersion
impl core::marker::Freeze for bitcoin::taproot::NodeInfo impl core::marker::Freeze for bitcoin::taproot::NodeInfo
@ -3085,6 +3126,10 @@ impl core::marker::Send for bitcoin::taproot::ControlBlock
impl core::marker::Send for bitcoin::taproot::FutureLeafVersion impl core::marker::Send for bitcoin::taproot::FutureLeafVersion
impl core::marker::Send for bitcoin::taproot::HiddenNodesError impl core::marker::Send for bitcoin::taproot::HiddenNodesError
impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Send for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Send for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Send for bitcoin::taproot::LeafNode impl core::marker::Send for bitcoin::taproot::LeafNode
impl core::marker::Send for bitcoin::taproot::LeafVersion impl core::marker::Send for bitcoin::taproot::LeafVersion
impl core::marker::Send for bitcoin::taproot::NodeInfo impl core::marker::Send for bitcoin::taproot::NodeInfo
@ -3285,6 +3330,10 @@ impl core::marker::StructuralPartialEq for bitcoin::taproot::ControlBlock
impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError
impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError
@ -3493,6 +3542,10 @@ impl core::marker::Sync for bitcoin::taproot::ControlBlock
impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion
impl core::marker::Sync for bitcoin::taproot::HiddenNodesError impl core::marker::Sync for bitcoin::taproot::HiddenNodesError
impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Sync for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Sync for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Sync for bitcoin::taproot::LeafNode impl core::marker::Sync for bitcoin::taproot::LeafNode
impl core::marker::Sync for bitcoin::taproot::LeafVersion impl core::marker::Sync for bitcoin::taproot::LeafVersion
impl core::marker::Sync for bitcoin::taproot::NodeInfo impl core::marker::Sync for bitcoin::taproot::NodeInfo
@ -3705,6 +3758,10 @@ impl core::marker::Unpin for bitcoin::taproot::ControlBlock
impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion
impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError
impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Unpin for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Unpin for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Unpin for bitcoin::taproot::LeafNode impl core::marker::Unpin for bitcoin::taproot::LeafNode
impl core::marker::Unpin for bitcoin::taproot::LeafVersion impl core::marker::Unpin for bitcoin::taproot::LeafVersion
impl core::marker::Unpin for bitcoin::taproot::NodeInfo impl core::marker::Unpin for bitcoin::taproot::NodeInfo
@ -3944,6 +4001,10 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo
@ -4151,6 +4212,10 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo
@ -5637,15 +5702,15 @@ pub bitcoin::taproot::Signature::signature: secp256k1::schnorr::Signature
pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash) pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash)
pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion) pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion)
pub bitcoin::taproot::TaprootBuilderError::EmptyTree pub bitcoin::taproot::TaprootBuilderError::EmptyTree
pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder
pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree
pub bitcoin::taproot::TaprootError::EmptyTree pub bitcoin::taproot::TaprootError::EmptyTree
pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(usize) pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(bitcoin::taproot::InvalidControlBlockSizeError)
pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error) pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error)
pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(bitcoin::taproot::InvalidMerkleBranchSizeError)
pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(u8) pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(bitcoin::taproot::InvalidTaprootLeafVersionError)
pub bitcoin::transaction::IndexOutOfBoundsError::index: usize pub bitcoin::transaction::IndexOutOfBoundsError::index: usize
pub bitcoin::transaction::IndexOutOfBoundsError::length: usize pub bitcoin::transaction::IndexOutOfBoundsError::length: usize
pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid
@ -9470,6 +9535,26 @@ pub fn bitcoin::taproot::IncompleteBuilderError::fmt(&self, f: &mut core::fmt::F
pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder
pub fn bitcoin::taproot::IncompleteBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::IncompleteBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::InvalidControlBlockSizeError::clone(&self) -> bitcoin::taproot::InvalidControlBlockSizeError
pub fn bitcoin::taproot::InvalidControlBlockSizeError::eq(&self, other: &bitcoin::taproot::InvalidControlBlockSizeError) -> bool
pub fn bitcoin::taproot::InvalidControlBlockSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidControlBlockSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidControlBlockSizeError::invalid_control_block_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::clone(&self) -> bitcoin::taproot::InvalidMerkleBranchSizeError
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::eq(&self, other: &bitcoin::taproot::InvalidMerkleBranchSizeError) -> bool
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::invalid_merkle_branch_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::clone(&self) -> bitcoin::taproot::InvalidMerkleTreeDepthError
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::eq(&self, other: &bitcoin::taproot::InvalidMerkleTreeDepthError) -> bool
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::invalid_merkle_tree_depth(&self) -> usize
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::clone(&self) -> bitcoin::taproot::InvalidTaprootLeafVersionError
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::eq(&self, other: &bitcoin::taproot::InvalidTaprootLeafVersionError) -> bool
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::invalid_leaf_version(&self) -> u8
pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode
pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering
pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8 pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8
@ -9493,7 +9578,7 @@ pub fn bitcoin::taproot::LeafVersion::cmp(&self, other: &bitcoin::taproot::LeafV
pub fn bitcoin::taproot::LeafVersion::deserialize<D>(deserializer: D) -> core::result::Result<Self, <D as serde::de::Deserializer>::Error> where D: serde::de::Deserializer<'de> pub fn bitcoin::taproot::LeafVersion::deserialize<D>(deserializer: D) -> core::result::Result<Self, <D as serde::de::Deserializer>::Error> where D: serde::de::Deserializer<'de>
pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool
pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::TaprootError> pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::InvalidTaprootLeafVersionError>
pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering> pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering>
pub fn bitcoin::taproot::LeafVersion::serialize<S>(&self, serializer: S) -> core::result::Result<<S as serde::ser::Serializer>::Ok, <S as serde::ser::Serializer>::Error> where S: serde::ser::Serializer pub fn bitcoin::taproot::LeafVersion::serialize<S>(&self, serializer: S) -> core::result::Result<<S as serde::ser::Serializer>::Ok, <S as serde::ser::Serializer>::Error> where S: serde::ser::Serializer
@ -9701,11 +9786,16 @@ pub fn bitcoin::taproot::TaprootBuilder::with_huffman_tree<I>(script_weights: I)
pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError
pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool
pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootBuilderError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::TaprootBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError
pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool
pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidControlBlockSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleBranchSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidTaprootLeafVersionError) -> Self
pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::TaprootError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo
@ -10272,6 +10362,10 @@ pub struct bitcoin::sighash::TapSighashTag
pub struct bitcoin::sign_message::MessageSignature pub struct bitcoin::sign_message::MessageSignature
pub struct bitcoin::taproot::ControlBlock pub struct bitcoin::taproot::ControlBlock
pub struct bitcoin::taproot::FutureLeafVersion(_) pub struct bitcoin::taproot::FutureLeafVersion(_)
pub struct bitcoin::taproot::InvalidControlBlockSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleBranchSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleTreeDepthError(_)
pub struct bitcoin::taproot::InvalidTaprootLeafVersionError(_)
pub struct bitcoin::taproot::LeafNode pub struct bitcoin::taproot::LeafNode
pub struct bitcoin::taproot::LeafNodes<'a> pub struct bitcoin::taproot::LeafNodes<'a>
pub struct bitcoin::taproot::NodeInfo pub struct bitcoin::taproot::NodeInfo
@ -10506,7 +10600,7 @@ pub type bitcoin::taproot::TapTweakHash::Engine = <bitcoin_hashes::sha256t::Hash
pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError
pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output
pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::TaprootError pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::InvalidMerkleTreeDepthError
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash] pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash]

View File

@ -418,6 +418,10 @@ impl bitcoin::taproot::ControlBlock
impl bitcoin::taproot::FutureLeafVersion impl bitcoin::taproot::FutureLeafVersion
impl bitcoin::taproot::HiddenNodesError impl bitcoin::taproot::HiddenNodesError
impl bitcoin::taproot::IncompleteBuilderError impl bitcoin::taproot::IncompleteBuilderError
impl bitcoin::taproot::InvalidControlBlockSizeError
impl bitcoin::taproot::InvalidMerkleBranchSizeError
impl bitcoin::taproot::InvalidMerkleTreeDepthError
impl bitcoin::taproot::InvalidTaprootLeafVersionError
impl bitcoin::taproot::LeafNode impl bitcoin::taproot::LeafNode
impl bitcoin::taproot::LeafVersion impl bitcoin::taproot::LeafVersion
impl bitcoin::taproot::NodeInfo impl bitcoin::taproot::NodeInfo
@ -683,6 +687,10 @@ impl core::clone::Clone for bitcoin::taproot::ControlBlock
impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion
impl core::clone::Clone for bitcoin::taproot::HiddenNodesError impl core::clone::Clone for bitcoin::taproot::HiddenNodesError
impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError
impl core::clone::Clone for bitcoin::taproot::InvalidControlBlockSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::clone::Clone for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::clone::Clone for bitcoin::taproot::LeafNode impl core::clone::Clone for bitcoin::taproot::LeafNode
impl core::clone::Clone for bitcoin::taproot::LeafVersion impl core::clone::Clone for bitcoin::taproot::LeafVersion
impl core::clone::Clone for bitcoin::taproot::NodeInfo impl core::clone::Clone for bitcoin::taproot::NodeInfo
@ -880,6 +888,10 @@ impl core::cmp::Eq for bitcoin::taproot::ControlBlock
impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError
impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::Eq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::Eq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::Eq for bitcoin::taproot::LeafNode impl core::cmp::Eq for bitcoin::taproot::LeafNode
impl core::cmp::Eq for bitcoin::taproot::LeafVersion impl core::cmp::Eq for bitcoin::taproot::LeafVersion
impl core::cmp::Eq for bitcoin::taproot::NodeInfo impl core::cmp::Eq for bitcoin::taproot::NodeInfo
@ -1165,6 +1177,10 @@ impl core::cmp::PartialEq for bitcoin::taproot::ControlBlock
impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError
impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::PartialEq for bitcoin::taproot::LeafNode impl core::cmp::PartialEq for bitcoin::taproot::LeafNode
impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo
@ -1833,6 +1849,11 @@ impl core::convert::From<bitcoin::sighash::PrevoutsIndexError> for bitcoin::sigh
impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError
impl core::convert::From<bitcoin::taproot::InvalidControlBlockSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleBranchSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidTaprootLeafVersionError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash
impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature
impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash
@ -1903,6 +1924,10 @@ impl core::convert::From<core::convert::Infallible> for bitcoin::sighash::Taproo
impl core::convert::From<core::convert::Infallible> for bitcoin::sign_message::MessageSignatureError impl core::convert::From<core::convert::Infallible> for bitcoin::sign_message::MessageSignatureError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidControlBlockSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError
@ -2039,6 +2064,10 @@ impl core::error::Error for bitcoin::sighash::TaprootError
impl core::error::Error for bitcoin::sign_message::MessageSignatureError impl core::error::Error for bitcoin::sign_message::MessageSignatureError
impl core::error::Error for bitcoin::taproot::HiddenNodesError impl core::error::Error for bitcoin::taproot::HiddenNodesError
impl core::error::Error for bitcoin::taproot::IncompleteBuilderError impl core::error::Error for bitcoin::taproot::IncompleteBuilderError
impl core::error::Error for bitcoin::taproot::InvalidControlBlockSizeError
impl core::error::Error for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::error::Error for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::error::Error for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::error::Error for bitcoin::taproot::SigFromSliceError impl core::error::Error for bitcoin::taproot::SigFromSliceError
impl core::error::Error for bitcoin::taproot::TaprootBuilderError impl core::error::Error for bitcoin::taproot::TaprootBuilderError
impl core::error::Error for bitcoin::taproot::TaprootError impl core::error::Error for bitcoin::taproot::TaprootError
@ -2223,6 +2252,10 @@ impl core::fmt::Debug for bitcoin::taproot::ControlBlock
impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError
impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Debug for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Debug for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Debug for bitcoin::taproot::LeafNode impl core::fmt::Debug for bitcoin::taproot::LeafNode
impl core::fmt::Debug for bitcoin::taproot::LeafVersion impl core::fmt::Debug for bitcoin::taproot::LeafVersion
impl core::fmt::Debug for bitcoin::taproot::NodeInfo impl core::fmt::Debug for bitcoin::taproot::NodeInfo
@ -2358,6 +2391,10 @@ impl core::fmt::Display for bitcoin::sign_message::MessageSignatureError
impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Display for bitcoin::taproot::HiddenNodesError impl core::fmt::Display for bitcoin::taproot::HiddenNodesError
impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Display for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Display for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Display for bitcoin::taproot::LeafVersion impl core::fmt::Display for bitcoin::taproot::LeafVersion
impl core::fmt::Display for bitcoin::taproot::SigFromSliceError impl core::fmt::Display for bitcoin::taproot::SigFromSliceError
impl core::fmt::Display for bitcoin::taproot::TapLeafHash impl core::fmt::Display for bitcoin::taproot::TapLeafHash
@ -2810,6 +2847,10 @@ impl core::marker::Freeze for bitcoin::taproot::ControlBlock
impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion
impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError
impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Freeze for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Freeze for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Freeze for bitcoin::taproot::LeafNode impl core::marker::Freeze for bitcoin::taproot::LeafNode
impl core::marker::Freeze for bitcoin::taproot::LeafVersion impl core::marker::Freeze for bitcoin::taproot::LeafVersion
impl core::marker::Freeze for bitcoin::taproot::NodeInfo impl core::marker::Freeze for bitcoin::taproot::NodeInfo
@ -3015,6 +3056,10 @@ impl core::marker::Send for bitcoin::taproot::ControlBlock
impl core::marker::Send for bitcoin::taproot::FutureLeafVersion impl core::marker::Send for bitcoin::taproot::FutureLeafVersion
impl core::marker::Send for bitcoin::taproot::HiddenNodesError impl core::marker::Send for bitcoin::taproot::HiddenNodesError
impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Send for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Send for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Send for bitcoin::taproot::LeafNode impl core::marker::Send for bitcoin::taproot::LeafNode
impl core::marker::Send for bitcoin::taproot::LeafVersion impl core::marker::Send for bitcoin::taproot::LeafVersion
impl core::marker::Send for bitcoin::taproot::NodeInfo impl core::marker::Send for bitcoin::taproot::NodeInfo
@ -3211,6 +3256,10 @@ impl core::marker::StructuralPartialEq for bitcoin::taproot::ControlBlock
impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError
impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError
@ -3412,6 +3461,10 @@ impl core::marker::Sync for bitcoin::taproot::ControlBlock
impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion
impl core::marker::Sync for bitcoin::taproot::HiddenNodesError impl core::marker::Sync for bitcoin::taproot::HiddenNodesError
impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Sync for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Sync for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Sync for bitcoin::taproot::LeafNode impl core::marker::Sync for bitcoin::taproot::LeafNode
impl core::marker::Sync for bitcoin::taproot::LeafVersion impl core::marker::Sync for bitcoin::taproot::LeafVersion
impl core::marker::Sync for bitcoin::taproot::NodeInfo impl core::marker::Sync for bitcoin::taproot::NodeInfo
@ -3617,6 +3670,10 @@ impl core::marker::Unpin for bitcoin::taproot::ControlBlock
impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion
impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError
impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Unpin for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Unpin for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Unpin for bitcoin::taproot::LeafNode impl core::marker::Unpin for bitcoin::taproot::LeafNode
impl core::marker::Unpin for bitcoin::taproot::LeafVersion impl core::marker::Unpin for bitcoin::taproot::LeafVersion
impl core::marker::Unpin for bitcoin::taproot::NodeInfo impl core::marker::Unpin for bitcoin::taproot::NodeInfo
@ -3850,6 +3907,10 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo
@ -4051,6 +4112,10 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo
@ -5357,15 +5422,15 @@ pub bitcoin::taproot::Signature::signature: secp256k1::schnorr::Signature
pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash) pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash)
pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion) pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion)
pub bitcoin::taproot::TaprootBuilderError::EmptyTree pub bitcoin::taproot::TaprootBuilderError::EmptyTree
pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder
pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree
pub bitcoin::taproot::TaprootError::EmptyTree pub bitcoin::taproot::TaprootError::EmptyTree
pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(usize) pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(bitcoin::taproot::InvalidControlBlockSizeError)
pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error) pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error)
pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(bitcoin::taproot::InvalidMerkleBranchSizeError)
pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(u8) pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(bitcoin::taproot::InvalidTaprootLeafVersionError)
pub bitcoin::transaction::IndexOutOfBoundsError::index: usize pub bitcoin::transaction::IndexOutOfBoundsError::index: usize
pub bitcoin::transaction::IndexOutOfBoundsError::length: usize pub bitcoin::transaction::IndexOutOfBoundsError::length: usize
pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid
@ -8975,6 +9040,26 @@ pub fn bitcoin::taproot::IncompleteBuilderError::fmt(&self, f: &mut core::fmt::F
pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder
pub fn bitcoin::taproot::IncompleteBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::IncompleteBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::InvalidControlBlockSizeError::clone(&self) -> bitcoin::taproot::InvalidControlBlockSizeError
pub fn bitcoin::taproot::InvalidControlBlockSizeError::eq(&self, other: &bitcoin::taproot::InvalidControlBlockSizeError) -> bool
pub fn bitcoin::taproot::InvalidControlBlockSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidControlBlockSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidControlBlockSizeError::invalid_control_block_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::clone(&self) -> bitcoin::taproot::InvalidMerkleBranchSizeError
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::eq(&self, other: &bitcoin::taproot::InvalidMerkleBranchSizeError) -> bool
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::invalid_merkle_branch_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::clone(&self) -> bitcoin::taproot::InvalidMerkleTreeDepthError
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::eq(&self, other: &bitcoin::taproot::InvalidMerkleTreeDepthError) -> bool
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::invalid_merkle_tree_depth(&self) -> usize
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::clone(&self) -> bitcoin::taproot::InvalidTaprootLeafVersionError
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::eq(&self, other: &bitcoin::taproot::InvalidTaprootLeafVersionError) -> bool
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::invalid_leaf_version(&self) -> u8
pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode
pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering
pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8 pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8
@ -8997,7 +9082,7 @@ pub fn bitcoin::taproot::LeafVersion::clone(&self) -> bitcoin::taproot::LeafVers
pub fn bitcoin::taproot::LeafVersion::cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::cmp::Ordering pub fn bitcoin::taproot::LeafVersion::cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::cmp::Ordering
pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool
pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::TaprootError> pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::InvalidTaprootLeafVersionError>
pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering> pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering>
pub fn bitcoin::taproot::LeafVersion::to_consensus(self) -> u8 pub fn bitcoin::taproot::LeafVersion::to_consensus(self) -> u8
@ -9187,11 +9272,16 @@ pub fn bitcoin::taproot::TaprootBuilder::with_huffman_tree<I>(script_weights: I)
pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError
pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool
pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootBuilderError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::TaprootBuilderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError
pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool
pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidControlBlockSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleBranchSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidTaprootLeafVersionError) -> Self
pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::taproot::TaprootError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo
@ -9746,6 +9836,10 @@ pub struct bitcoin::sighash::TapSighashTag
pub struct bitcoin::sign_message::MessageSignature pub struct bitcoin::sign_message::MessageSignature
pub struct bitcoin::taproot::ControlBlock pub struct bitcoin::taproot::ControlBlock
pub struct bitcoin::taproot::FutureLeafVersion(_) pub struct bitcoin::taproot::FutureLeafVersion(_)
pub struct bitcoin::taproot::InvalidControlBlockSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleBranchSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleTreeDepthError(_)
pub struct bitcoin::taproot::InvalidTaprootLeafVersionError(_)
pub struct bitcoin::taproot::LeafNode pub struct bitcoin::taproot::LeafNode
pub struct bitcoin::taproot::LeafNodes<'a> pub struct bitcoin::taproot::LeafNodes<'a>
pub struct bitcoin::taproot::NodeInfo pub struct bitcoin::taproot::NodeInfo
@ -9964,7 +10058,7 @@ pub type bitcoin::taproot::TapTweakHash::Engine = <bitcoin_hashes::sha256t::Hash
pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError
pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output
pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::TaprootError pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::InvalidMerkleTreeDepthError
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash] pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash]

View File

@ -349,6 +349,10 @@ impl bitcoin::taproot::ControlBlock
impl bitcoin::taproot::FutureLeafVersion impl bitcoin::taproot::FutureLeafVersion
impl bitcoin::taproot::HiddenNodesError impl bitcoin::taproot::HiddenNodesError
impl bitcoin::taproot::IncompleteBuilderError impl bitcoin::taproot::IncompleteBuilderError
impl bitcoin::taproot::InvalidControlBlockSizeError
impl bitcoin::taproot::InvalidMerkleBranchSizeError
impl bitcoin::taproot::InvalidMerkleTreeDepthError
impl bitcoin::taproot::InvalidTaprootLeafVersionError
impl bitcoin::taproot::LeafNode impl bitcoin::taproot::LeafNode
impl bitcoin::taproot::LeafVersion impl bitcoin::taproot::LeafVersion
impl bitcoin::taproot::NodeInfo impl bitcoin::taproot::NodeInfo
@ -586,6 +590,10 @@ impl core::clone::Clone for bitcoin::taproot::ControlBlock
impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion impl core::clone::Clone for bitcoin::taproot::FutureLeafVersion
impl core::clone::Clone for bitcoin::taproot::HiddenNodesError impl core::clone::Clone for bitcoin::taproot::HiddenNodesError
impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError impl core::clone::Clone for bitcoin::taproot::IncompleteBuilderError
impl core::clone::Clone for bitcoin::taproot::InvalidControlBlockSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::clone::Clone for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::clone::Clone for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::clone::Clone for bitcoin::taproot::LeafNode impl core::clone::Clone for bitcoin::taproot::LeafNode
impl core::clone::Clone for bitcoin::taproot::LeafVersion impl core::clone::Clone for bitcoin::taproot::LeafVersion
impl core::clone::Clone for bitcoin::taproot::NodeInfo impl core::clone::Clone for bitcoin::taproot::NodeInfo
@ -755,6 +763,10 @@ impl core::cmp::Eq for bitcoin::taproot::ControlBlock
impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion impl core::cmp::Eq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError impl core::cmp::Eq for bitcoin::taproot::HiddenNodesError
impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::Eq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::Eq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::Eq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::Eq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::Eq for bitcoin::taproot::LeafNode impl core::cmp::Eq for bitcoin::taproot::LeafNode
impl core::cmp::Eq for bitcoin::taproot::LeafVersion impl core::cmp::Eq for bitcoin::taproot::LeafVersion
impl core::cmp::Eq for bitcoin::taproot::NodeInfo impl core::cmp::Eq for bitcoin::taproot::NodeInfo
@ -1007,6 +1019,10 @@ impl core::cmp::PartialEq for bitcoin::taproot::ControlBlock
impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion impl core::cmp::PartialEq for bitcoin::taproot::FutureLeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError impl core::cmp::PartialEq for bitcoin::taproot::HiddenNodesError
impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError impl core::cmp::PartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::cmp::PartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::cmp::PartialEq for bitcoin::taproot::LeafNode impl core::cmp::PartialEq for bitcoin::taproot::LeafNode
impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion impl core::cmp::PartialEq for bitcoin::taproot::LeafVersion
impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo impl core::cmp::PartialEq for bitcoin::taproot::NodeInfo
@ -1669,6 +1685,11 @@ impl core::convert::From<bitcoin::sighash::PrevoutsIndexError> for bitcoin::sigh
impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsKindError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError impl core::convert::From<bitcoin::sighash::PrevoutsSizeError> for bitcoin::sighash::TaprootError
impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError impl core::convert::From<bitcoin::sighash::TaprootError> for bitcoin::psbt::SignError
impl core::convert::From<bitcoin::taproot::InvalidControlBlockSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleBranchSizeError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<bitcoin::taproot::InvalidMerkleTreeDepthError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::InvalidTaprootLeafVersionError> for bitcoin::taproot::TaprootError
impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::LeafNode> for bitcoin::taproot::TapNodeHash
impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature impl core::convert::From<bitcoin::taproot::Signature> for bitcoin::taproot::serialized_signature::SerializedSignature
impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash impl core::convert::From<bitcoin::taproot::TapLeafHash> for bitcoin::taproot::TapNodeHash
@ -1738,6 +1759,10 @@ impl core::convert::From<core::convert::Infallible> for bitcoin::sighash::Prevou
impl core::convert::From<core::convert::Infallible> for bitcoin::sighash::TaprootError impl core::convert::From<core::convert::Infallible> for bitcoin::sighash::TaprootError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::HiddenNodesError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::IncompleteBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidControlBlockSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::SigFromSliceError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootBuilderError
impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError impl core::convert::From<core::convert::Infallible> for bitcoin::taproot::TaprootError
@ -1954,6 +1979,10 @@ impl core::fmt::Debug for bitcoin::taproot::ControlBlock
impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion impl core::fmt::Debug for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError impl core::fmt::Debug for bitcoin::taproot::HiddenNodesError
impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Debug for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Debug for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Debug for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Debug for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Debug for bitcoin::taproot::LeafNode impl core::fmt::Debug for bitcoin::taproot::LeafNode
impl core::fmt::Debug for bitcoin::taproot::LeafVersion impl core::fmt::Debug for bitcoin::taproot::LeafVersion
impl core::fmt::Debug for bitcoin::taproot::NodeInfo impl core::fmt::Debug for bitcoin::taproot::NodeInfo
@ -2086,6 +2115,10 @@ impl core::fmt::Display for bitcoin::sighash::TaprootError
impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion impl core::fmt::Display for bitcoin::taproot::FutureLeafVersion
impl core::fmt::Display for bitcoin::taproot::HiddenNodesError impl core::fmt::Display for bitcoin::taproot::HiddenNodesError
impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError impl core::fmt::Display for bitcoin::taproot::IncompleteBuilderError
impl core::fmt::Display for bitcoin::taproot::InvalidControlBlockSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::fmt::Display for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::fmt::Display for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::fmt::Display for bitcoin::taproot::LeafVersion impl core::fmt::Display for bitcoin::taproot::LeafVersion
impl core::fmt::Display for bitcoin::taproot::SigFromSliceError impl core::fmt::Display for bitcoin::taproot::SigFromSliceError
impl core::fmt::Display for bitcoin::taproot::TapLeafHash impl core::fmt::Display for bitcoin::taproot::TapLeafHash
@ -2497,6 +2530,10 @@ impl core::marker::Freeze for bitcoin::taproot::ControlBlock
impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion impl core::marker::Freeze for bitcoin::taproot::FutureLeafVersion
impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError impl core::marker::Freeze for bitcoin::taproot::HiddenNodesError
impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError impl core::marker::Freeze for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Freeze for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Freeze for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Freeze for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Freeze for bitcoin::taproot::LeafNode impl core::marker::Freeze for bitcoin::taproot::LeafNode
impl core::marker::Freeze for bitcoin::taproot::LeafVersion impl core::marker::Freeze for bitcoin::taproot::LeafVersion
impl core::marker::Freeze for bitcoin::taproot::NodeInfo impl core::marker::Freeze for bitcoin::taproot::NodeInfo
@ -2674,6 +2711,10 @@ impl core::marker::Send for bitcoin::taproot::ControlBlock
impl core::marker::Send for bitcoin::taproot::FutureLeafVersion impl core::marker::Send for bitcoin::taproot::FutureLeafVersion
impl core::marker::Send for bitcoin::taproot::HiddenNodesError impl core::marker::Send for bitcoin::taproot::HiddenNodesError
impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError impl core::marker::Send for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Send for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Send for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Send for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Send for bitcoin::taproot::LeafNode impl core::marker::Send for bitcoin::taproot::LeafNode
impl core::marker::Send for bitcoin::taproot::LeafVersion impl core::marker::Send for bitcoin::taproot::LeafVersion
impl core::marker::Send for bitcoin::taproot::NodeInfo impl core::marker::Send for bitcoin::taproot::NodeInfo
@ -2842,6 +2883,10 @@ impl core::marker::StructuralPartialEq for bitcoin::taproot::ControlBlock
impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::FutureLeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError impl core::marker::StructuralPartialEq for bitcoin::taproot::HiddenNodesError
impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError impl core::marker::StructuralPartialEq for bitcoin::taproot::IncompleteBuilderError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::StructuralPartialEq for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafNode
impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion impl core::marker::StructuralPartialEq for bitcoin::taproot::LeafVersion
impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError impl core::marker::StructuralPartialEq for bitcoin::taproot::SigFromSliceError
@ -3015,6 +3060,10 @@ impl core::marker::Sync for bitcoin::taproot::ControlBlock
impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion impl core::marker::Sync for bitcoin::taproot::FutureLeafVersion
impl core::marker::Sync for bitcoin::taproot::HiddenNodesError impl core::marker::Sync for bitcoin::taproot::HiddenNodesError
impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError impl core::marker::Sync for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Sync for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Sync for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Sync for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Sync for bitcoin::taproot::LeafNode impl core::marker::Sync for bitcoin::taproot::LeafNode
impl core::marker::Sync for bitcoin::taproot::LeafVersion impl core::marker::Sync for bitcoin::taproot::LeafVersion
impl core::marker::Sync for bitcoin::taproot::NodeInfo impl core::marker::Sync for bitcoin::taproot::NodeInfo
@ -3192,6 +3241,10 @@ impl core::marker::Unpin for bitcoin::taproot::ControlBlock
impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion impl core::marker::Unpin for bitcoin::taproot::FutureLeafVersion
impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError impl core::marker::Unpin for bitcoin::taproot::HiddenNodesError
impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError impl core::marker::Unpin for bitcoin::taproot::IncompleteBuilderError
impl core::marker::Unpin for bitcoin::taproot::InvalidControlBlockSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::marker::Unpin for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::marker::Unpin for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::marker::Unpin for bitcoin::taproot::LeafNode impl core::marker::Unpin for bitcoin::taproot::LeafNode
impl core::marker::Unpin for bitcoin::taproot::LeafVersion impl core::marker::Unpin for bitcoin::taproot::LeafVersion
impl core::marker::Unpin for bitcoin::taproot::NodeInfo impl core::marker::Unpin for bitcoin::taproot::NodeInfo
@ -3397,6 +3450,10 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::taproot::NodeInfo
@ -3570,6 +3627,10 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::ControlBlock
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::FutureLeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::HiddenNodesError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::IncompleteBuilderError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidControlBlockSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleBranchSizeError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidMerkleTreeDepthError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::InvalidTaprootLeafVersionError
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafNode
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::LeafVersion
impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo impl core::panic::unwind_safe::UnwindSafe for bitcoin::taproot::NodeInfo
@ -4740,15 +4801,15 @@ pub bitcoin::taproot::Signature::signature: secp256k1::schnorr::Signature
pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash) pub bitcoin::taproot::TapLeaf::Hidden(bitcoin::taproot::TapNodeHash)
pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion) pub bitcoin::taproot::TapLeaf::Script(bitcoin::blockdata::script::ScriptBuf, bitcoin::taproot::LeafVersion)
pub bitcoin::taproot::TaprootBuilderError::EmptyTree pub bitcoin::taproot::TaprootBuilderError::EmptyTree
pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootBuilderError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder pub bitcoin::taproot::TaprootBuilderError::NodeNotInDfsOrder
pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree pub bitcoin::taproot::TaprootBuilderError::OverCompleteTree
pub bitcoin::taproot::TaprootError::EmptyTree pub bitcoin::taproot::TaprootError::EmptyTree
pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(usize) pub bitcoin::taproot::TaprootError::InvalidControlBlockSize(bitcoin::taproot::InvalidControlBlockSizeError)
pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error) pub bitcoin::taproot::TaprootError::InvalidInternalKey(secp256k1::Error)
pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleBranchSize(bitcoin::taproot::InvalidMerkleBranchSizeError)
pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(usize) pub bitcoin::taproot::TaprootError::InvalidMerkleTreeDepth(bitcoin::taproot::InvalidMerkleTreeDepthError)
pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(u8) pub bitcoin::taproot::TaprootError::InvalidTaprootLeafVersion(bitcoin::taproot::InvalidTaprootLeafVersionError)
pub bitcoin::transaction::IndexOutOfBoundsError::index: usize pub bitcoin::transaction::IndexOutOfBoundsError::index: usize
pub bitcoin::transaction::IndexOutOfBoundsError::length: usize pub bitcoin::transaction::IndexOutOfBoundsError::length: usize
pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid pub bitcoin::transaction::OutPoint::txid: bitcoin::blockdata::transaction::Txid
@ -8087,6 +8148,26 @@ pub fn bitcoin::taproot::IncompleteBuilderError::eq(&self, other: &bitcoin::tapr
pub fn bitcoin::taproot::IncompleteBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::IncompleteBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::IncompleteBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder pub fn bitcoin::taproot::IncompleteBuilderError::into_builder(self) -> bitcoin::taproot::TaprootBuilder
pub fn bitcoin::taproot::InvalidControlBlockSizeError::clone(&self) -> bitcoin::taproot::InvalidControlBlockSizeError
pub fn bitcoin::taproot::InvalidControlBlockSizeError::eq(&self, other: &bitcoin::taproot::InvalidControlBlockSizeError) -> bool
pub fn bitcoin::taproot::InvalidControlBlockSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidControlBlockSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidControlBlockSizeError::invalid_control_block_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::clone(&self) -> bitcoin::taproot::InvalidMerkleBranchSizeError
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::eq(&self, other: &bitcoin::taproot::InvalidMerkleBranchSizeError) -> bool
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleBranchSizeError::invalid_merkle_branch_size(&self) -> usize
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::clone(&self) -> bitcoin::taproot::InvalidMerkleTreeDepthError
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::eq(&self, other: &bitcoin::taproot::InvalidMerkleTreeDepthError) -> bool
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidMerkleTreeDepthError::invalid_merkle_tree_depth(&self) -> usize
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::clone(&self) -> bitcoin::taproot::InvalidTaprootLeafVersionError
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::eq(&self, other: &bitcoin::taproot::InvalidTaprootLeafVersionError) -> bool
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::InvalidTaprootLeafVersionError::invalid_leaf_version(&self) -> u8
pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode pub fn bitcoin::taproot::LeafNode::clone(&self) -> bitcoin::taproot::LeafNode
pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering pub fn bitcoin::taproot::LeafNode::cmp(&self, other: &bitcoin::taproot::LeafNode) -> core::cmp::Ordering
pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8 pub fn bitcoin::taproot::LeafNode::depth(&self) -> u8
@ -8109,7 +8190,7 @@ pub fn bitcoin::taproot::LeafVersion::clone(&self) -> bitcoin::taproot::LeafVers
pub fn bitcoin::taproot::LeafVersion::cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::cmp::Ordering pub fn bitcoin::taproot::LeafVersion::cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::cmp::Ordering
pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool pub fn bitcoin::taproot::LeafVersion::eq(&self, other: &bitcoin::taproot::LeafVersion) -> bool
pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::LeafVersion::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::TaprootError> pub fn bitcoin::taproot::LeafVersion::from_consensus(version: u8) -> core::result::Result<Self, bitcoin::taproot::InvalidTaprootLeafVersionError>
pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::taproot::LeafVersion::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering> pub fn bitcoin::taproot::LeafVersion::partial_cmp(&self, other: &bitcoin::taproot::LeafVersion) -> core::option::Option<core::cmp::Ordering>
pub fn bitcoin::taproot::LeafVersion::to_consensus(self) -> u8 pub fn bitcoin::taproot::LeafVersion::to_consensus(self) -> u8
@ -8298,10 +8379,15 @@ pub fn bitcoin::taproot::TaprootBuilder::with_huffman_tree<I>(script_weights: I)
pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError pub fn bitcoin::taproot::TaprootBuilderError::clone(&self) -> bitcoin::taproot::TaprootBuilderError
pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool pub fn bitcoin::taproot::TaprootBuilderError::eq(&self, other: &bitcoin::taproot::TaprootBuilderError) -> bool
pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootBuilderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootBuilderError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootBuilderError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError pub fn bitcoin::taproot::TaprootError::clone(&self) -> bitcoin::taproot::TaprootError
pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool pub fn bitcoin::taproot::TaprootError::eq(&self, other: &bitcoin::taproot::TaprootError) -> bool
pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::taproot::TaprootError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidControlBlockSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleBranchSizeError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidMerkleTreeDepthError) -> Self
pub fn bitcoin::taproot::TaprootError::from(e: bitcoin::taproot::InvalidTaprootLeafVersionError) -> Self
pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self pub fn bitcoin::taproot::TaprootError::from(never: core::convert::Infallible) -> Self
pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo pub fn bitcoin::taproot::TaprootSpendInfo::clone(&self) -> bitcoin::taproot::TaprootSpendInfo
pub fn bitcoin::taproot::TaprootSpendInfo::cmp(&self, other: &bitcoin::taproot::TaprootSpendInfo) -> core::cmp::Ordering pub fn bitcoin::taproot::TaprootSpendInfo::cmp(&self, other: &bitcoin::taproot::TaprootSpendInfo) -> core::cmp::Ordering
@ -8824,6 +8910,10 @@ pub struct bitcoin::sighash::TapSighash(_)
pub struct bitcoin::sighash::TapSighashTag pub struct bitcoin::sighash::TapSighashTag
pub struct bitcoin::taproot::ControlBlock pub struct bitcoin::taproot::ControlBlock
pub struct bitcoin::taproot::FutureLeafVersion(_) pub struct bitcoin::taproot::FutureLeafVersion(_)
pub struct bitcoin::taproot::InvalidControlBlockSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleBranchSizeError(_)
pub struct bitcoin::taproot::InvalidMerkleTreeDepthError(_)
pub struct bitcoin::taproot::InvalidTaprootLeafVersionError(_)
pub struct bitcoin::taproot::LeafNode pub struct bitcoin::taproot::LeafNode
pub struct bitcoin::taproot::LeafNodes<'a> pub struct bitcoin::taproot::LeafNodes<'a>
pub struct bitcoin::taproot::NodeInfo pub struct bitcoin::taproot::NodeInfo
@ -9036,7 +9126,7 @@ pub type bitcoin::taproot::TapTweakHash::Engine = <bitcoin_hashes::sha256t::Hash
pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError pub type bitcoin::taproot::TapTweakHash::Err = hex_conservative::error::HexToArrayError
pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output pub type bitcoin::taproot::TapTweakHash::Output = <I as core::slice::index::SliceIndex<[u8]>>::Output
pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::IntoIter::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::TaprootError pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Error = bitcoin::taproot::InvalidMerkleTreeDepthError
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::IntoIter = bitcoin::taproot::merkle_branch::IntoIter
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Item = bitcoin::taproot::TapNodeHash
pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash] pub type bitcoin::taproot::merkle_branch::TaprootMerkleBranch::Target = [bitcoin::taproot::TapNodeHash]

View File

@ -5,8 +5,8 @@
use hashes::Hash; use hashes::Hash;
use super::{ use super::{
TapNodeHash, TaprootBuilderError, TaprootError, TAPROOT_CONTROL_MAX_NODE_COUNT, InvalidMerkleBranchSizeError, InvalidMerkleTreeDepthError, TapNodeHash, TaprootError,
TAPROOT_CONTROL_NODE_SIZE, TAPROOT_CONTROL_MAX_NODE_COUNT, TAPROOT_CONTROL_NODE_SIZE,
}; };
use crate::prelude::*; use crate::prelude::*;
@ -47,9 +47,9 @@ impl TaprootMerkleBranch {
/// if the number of hashes exceeds 128. /// if the number of hashes exceeds 128.
pub fn decode(sl: &[u8]) -> Result<Self, TaprootError> { pub fn decode(sl: &[u8]) -> Result<Self, TaprootError> {
if sl.len() % TAPROOT_CONTROL_NODE_SIZE != 0 { if sl.len() % TAPROOT_CONTROL_NODE_SIZE != 0 {
Err(TaprootError::InvalidMerkleBranchSize(sl.len())) Err(InvalidMerkleBranchSizeError(sl.len()).into())
} else if sl.len() > TAPROOT_CONTROL_NODE_SIZE * TAPROOT_CONTROL_MAX_NODE_COUNT { } else if sl.len() > TAPROOT_CONTROL_NODE_SIZE * TAPROOT_CONTROL_MAX_NODE_COUNT {
Err(TaprootError::InvalidMerkleTreeDepth(sl.len() / TAPROOT_CONTROL_NODE_SIZE)) Err(InvalidMerkleTreeDepthError(sl.len() / TAPROOT_CONTROL_NODE_SIZE).into())
} else { } else {
let inner = sl let inner = sl
.chunks_exact(TAPROOT_CONTROL_NODE_SIZE) .chunks_exact(TAPROOT_CONTROL_NODE_SIZE)
@ -71,9 +71,9 @@ impl TaprootMerkleBranch {
#[inline] #[inline]
fn from_collection<T: AsRef<[TapNodeHash]> + Into<Vec<TapNodeHash>>>( fn from_collection<T: AsRef<[TapNodeHash]> + Into<Vec<TapNodeHash>>>(
collection: T, collection: T,
) -> Result<Self, TaprootError> { ) -> Result<Self, InvalidMerkleTreeDepthError> {
if collection.as_ref().len() > TAPROOT_CONTROL_MAX_NODE_COUNT { if collection.as_ref().len() > TAPROOT_CONTROL_MAX_NODE_COUNT {
Err(TaprootError::InvalidMerkleTreeDepth(collection.as_ref().len())) Err(InvalidMerkleTreeDepthError(collection.as_ref().len()))
} else { } else {
Ok(TaprootMerkleBranch(collection.into())) Ok(TaprootMerkleBranch(collection.into()))
} }
@ -97,9 +97,9 @@ impl TaprootMerkleBranch {
} }
/// Appends elements to proof. /// Appends elements to proof.
pub(super) fn push(&mut self, h: TapNodeHash) -> Result<(), TaprootBuilderError> { pub(super) fn push(&mut self, h: TapNodeHash) -> Result<(), InvalidMerkleTreeDepthError> {
if self.len() >= TAPROOT_CONTROL_MAX_NODE_COUNT { if self.len() >= TAPROOT_CONTROL_MAX_NODE_COUNT {
Err(TaprootBuilderError::InvalidMerkleTreeDepth(self.0.len())) Err(InvalidMerkleTreeDepthError(self.0.len()))
} else { } else {
self.0.push(h); self.0.push(h);
Ok(()) Ok(())
@ -119,7 +119,7 @@ impl TaprootMerkleBranch {
macro_rules! impl_try_from { macro_rules! impl_try_from {
($from:ty) => { ($from:ty) => {
impl TryFrom<$from> for TaprootMerkleBranch { impl TryFrom<$from> for TaprootMerkleBranch {
type Error = TaprootError; type Error = InvalidMerkleTreeDepthError;
/// Creates a merkle proof from list of hashes. /// Creates a merkle proof from list of hashes.
/// ///

View File

@ -546,7 +546,7 @@ impl TaprootBuilder {
// early error on invalid depth. Though this will be checked later // early error on invalid depth. Though this will be checked later
// while constructing TaprootMerkelBranch // while constructing TaprootMerkelBranch
if depth as usize > TAPROOT_CONTROL_MAX_NODE_COUNT { if depth as usize > TAPROOT_CONTROL_MAX_NODE_COUNT {
return Err(TaprootBuilderError::InvalidMerkleTreeDepth(depth as usize)); return Err(InvalidMerkleTreeDepthError(depth as usize).into());
} }
// We cannot insert a leaf at a lower depth while a deeper branch is unfinished. Doing // We cannot insert a leaf at a lower depth while a deeper branch is unfinished. Doing
// so would mean the add_leaf/add_hidden invocations do not correspond to a DFS traversal of a // so would mean the add_leaf/add_hidden invocations do not correspond to a DFS traversal of a
@ -1110,7 +1110,7 @@ impl ControlBlock {
if sl.len() < TAPROOT_CONTROL_BASE_SIZE if sl.len() < TAPROOT_CONTROL_BASE_SIZE
|| (sl.len() - TAPROOT_CONTROL_BASE_SIZE) % TAPROOT_CONTROL_NODE_SIZE != 0 || (sl.len() - TAPROOT_CONTROL_BASE_SIZE) % TAPROOT_CONTROL_NODE_SIZE != 0
{ {
return Err(TaprootError::InvalidControlBlockSize(sl.len())); return Err(InvalidControlBlockSizeError(sl.len()).into());
} }
let output_key_parity = match sl[0] & 1 { let output_key_parity = match sl[0] & 1 {
0 => secp256k1::Parity::Even, 0 => secp256k1::Parity::Even,
@ -1188,14 +1188,15 @@ impl ControlBlock {
pub struct FutureLeafVersion(u8); pub struct FutureLeafVersion(u8);
impl FutureLeafVersion { impl FutureLeafVersion {
pub(self) fn from_consensus(version: u8) -> Result<FutureLeafVersion, TaprootError> { pub(self) fn from_consensus(
version: u8,
) -> Result<FutureLeafVersion, InvalidTaprootLeafVersionError> {
match version { match version {
TAPROOT_LEAF_TAPSCRIPT => unreachable!( TAPROOT_LEAF_TAPSCRIPT => unreachable!(
"FutureLeafVersion::from_consensus should be never called for 0xC0 value" "FutureLeafVersion::from_consensus should be never called for 0xC0 value"
), ),
TAPROOT_ANNEX_PREFIX => TAPROOT_ANNEX_PREFIX => Err(InvalidTaprootLeafVersionError(TAPROOT_ANNEX_PREFIX)),
Err(TaprootError::InvalidTaprootLeafVersion(TAPROOT_ANNEX_PREFIX)), odd if odd & 0xFE != odd => Err(InvalidTaprootLeafVersionError(odd)),
odd if odd & 0xFE != odd => Err(TaprootError::InvalidTaprootLeafVersion(odd)),
even => Ok(FutureLeafVersion(even)), even => Ok(FutureLeafVersion(even)),
} }
} }
@ -1237,11 +1238,10 @@ impl LeafVersion {
/// ///
/// - If the last bit of the `version` is odd. /// - If the last bit of the `version` is odd.
/// - If the `version` is 0x50 ([`TAPROOT_ANNEX_PREFIX`]). /// - If the `version` is 0x50 ([`TAPROOT_ANNEX_PREFIX`]).
pub fn from_consensus(version: u8) -> Result<Self, TaprootError> { pub fn from_consensus(version: u8) -> Result<Self, InvalidTaprootLeafVersionError> {
match version { match version {
TAPROOT_LEAF_TAPSCRIPT => Ok(LeafVersion::TapScript), TAPROOT_LEAF_TAPSCRIPT => Ok(LeafVersion::TapScript),
TAPROOT_ANNEX_PREFIX => TAPROOT_ANNEX_PREFIX => Err(InvalidTaprootLeafVersionError(TAPROOT_ANNEX_PREFIX)),
Err(TaprootError::InvalidTaprootLeafVersion(TAPROOT_ANNEX_PREFIX)),
future => FutureLeafVersion::from_consensus(future).map(LeafVersion::Future), future => FutureLeafVersion::from_consensus(future).map(LeafVersion::Future),
} }
} }
@ -1332,7 +1332,7 @@ impl<'de> serde::Deserialize<'de> for LeafVersion {
#[non_exhaustive] #[non_exhaustive]
pub enum TaprootBuilderError { pub enum TaprootBuilderError {
/// Merkle tree depth must not be more than 128. /// Merkle tree depth must not be more than 128.
InvalidMerkleTreeDepth(usize), InvalidMerkleTreeDepth(InvalidMerkleTreeDepthError),
/// Nodes must be added specified in DFS walk order. /// Nodes must be added specified in DFS walk order.
NodeNotInDfsOrder, NodeNotInDfsOrder,
/// Two nodes at depth 0 are not allowed. /// Two nodes at depth 0 are not allowed.
@ -1348,13 +1348,7 @@ impl fmt::Display for TaprootBuilderError {
use TaprootBuilderError::*; use TaprootBuilderError::*;
match *self { match *self {
InvalidMerkleTreeDepth(d) => { InvalidMerkleTreeDepth(ref e) => write_err!(f, "invalid Merkle tree depth"; e),
write!(
f,
"Merkle Tree depth({}) must be less than {}",
d, TAPROOT_CONTROL_MAX_NODE_COUNT
)
}
NodeNotInDfsOrder => { NodeNotInDfsOrder => {
write!(f, "add_leaf/add_hidden must be called in DFS walk order",) write!(f, "add_leaf/add_hidden must be called in DFS walk order",)
} }
@ -1375,24 +1369,29 @@ impl std::error::Error for TaprootBuilderError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
use TaprootBuilderError::*; use TaprootBuilderError::*;
match self { match *self {
InvalidMerkleTreeDepth(_) | NodeNotInDfsOrder | OverCompleteTree | EmptyTree => None, InvalidMerkleTreeDepth(ref e) => Some(e),
NodeNotInDfsOrder | OverCompleteTree | EmptyTree => None,
} }
} }
} }
impl From<InvalidMerkleTreeDepthError> for TaprootBuilderError {
fn from(e: InvalidMerkleTreeDepthError) -> Self { Self::InvalidMerkleTreeDepth(e) }
}
/// Detailed error type for taproot utilities. /// Detailed error type for taproot utilities.
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive] #[non_exhaustive]
pub enum TaprootError { pub enum TaprootError {
/// Proof size must be a multiple of 32. /// Proof size must be a multiple of 32.
InvalidMerkleBranchSize(usize), InvalidMerkleBranchSize(InvalidMerkleBranchSizeError),
/// Merkle tree depth must not be more than 128. /// Merkle tree depth must not be more than 128.
InvalidMerkleTreeDepth(usize), InvalidMerkleTreeDepth(InvalidMerkleTreeDepthError),
/// The last bit of tapleaf version must be zero. /// The last bit of tapleaf version must be zero.
InvalidTaprootLeafVersion(u8), InvalidTaprootLeafVersion(InvalidTaprootLeafVersionError),
/// Invalid control block size. /// Invalid control block size.
InvalidControlBlockSize(usize), InvalidControlBlockSize(InvalidControlBlockSizeError),
/// Invalid taproot internal key. /// Invalid taproot internal key.
InvalidInternalKey(secp256k1::Error), InvalidInternalKey(secp256k1::Error),
/// Empty tap tree. /// Empty tap tree.
@ -1406,27 +1405,11 @@ impl fmt::Display for TaprootError {
use TaprootError::*; use TaprootError::*;
match *self { match *self {
InvalidMerkleBranchSize(sz) => write!( InvalidMerkleBranchSize(ref e) => write_err!(f, "invalid Merkle branch size"; e),
f, InvalidMerkleTreeDepth(ref e) => write_err!(f, "invalid Merkle tree depth"; e),
"Merkle branch size({}) must be a multiple of {}", InvalidTaprootLeafVersion(ref e) => write_err!(f, "invalid Taproot leaf version"; e),
sz, TAPROOT_CONTROL_NODE_SIZE InvalidControlBlockSize(ref e) => write_err!(f, "invalid control block size"; e),
), InvalidInternalKey(ref e) => write_err!(f, "invalid internal x-only key"; e),
InvalidMerkleTreeDepth(d) => write!(
f,
"Merkle Tree depth({}) must be less than {}",
d, TAPROOT_CONTROL_MAX_NODE_COUNT
),
InvalidTaprootLeafVersion(v) => {
write!(f, "Leaf version({}) must have the least significant bit 0", v)
}
InvalidControlBlockSize(sz) => write!(
f,
"Control Block size({}) must be of the form 33 + 32*m where 0 <= m <= {} ",
sz, TAPROOT_CONTROL_MAX_NODE_COUNT
),
InvalidInternalKey(ref e) => {
write_err!(f, "invalid internal x-only key"; e)
}
EmptyTree => write!(f, "Taproot Tree must contain at least one script"), EmptyTree => write!(f, "Taproot Tree must contain at least one script"),
} }
} }
@ -1439,15 +1422,121 @@ impl std::error::Error for TaprootError {
match self { match self {
InvalidInternalKey(e) => Some(e), InvalidInternalKey(e) => Some(e),
InvalidMerkleBranchSize(_) InvalidTaprootLeafVersion(ref e) => Some(e),
| InvalidMerkleTreeDepth(_) InvalidMerkleTreeDepth(ref e) => Some(e),
| InvalidTaprootLeafVersion(_) InvalidMerkleBranchSize(_) | InvalidControlBlockSize(_) | EmptyTree => None,
| InvalidControlBlockSize(_)
| EmptyTree => None,
} }
} }
} }
impl From<InvalidMerkleBranchSizeError> for TaprootError {
fn from(e: InvalidMerkleBranchSizeError) -> Self { Self::InvalidMerkleBranchSize(e) }
}
impl From<InvalidMerkleTreeDepthError> for TaprootError {
fn from(e: InvalidMerkleTreeDepthError) -> Self { Self::InvalidMerkleTreeDepth(e) }
}
impl From<InvalidTaprootLeafVersionError> for TaprootError {
fn from(e: InvalidTaprootLeafVersionError) -> Self { Self::InvalidTaprootLeafVersion(e) }
}
impl From<InvalidControlBlockSizeError> for TaprootError {
fn from(e: InvalidControlBlockSizeError) -> Self { Self::InvalidControlBlockSize(e) }
}
/// Proof size must be a multiple of 32.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InvalidMerkleBranchSizeError(usize);
impl InvalidMerkleBranchSizeError {
/// Accessor for the invalid merkle branch size.
pub fn invalid_merkle_branch_size(&self) -> usize { self.0 }
}
internals::impl_from_infallible!(InvalidMerkleBranchSizeError);
impl fmt::Display for InvalidMerkleBranchSizeError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"Merkle branch size({}) must be a multiple of {}",
self.0, TAPROOT_CONTROL_NODE_SIZE
)
}
}
#[cfg(feature = "std")]
impl std::error::Error for InvalidMerkleBranchSizeError {}
/// Merkle tree depth must not be more than 128.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InvalidMerkleTreeDepthError(usize);
impl InvalidMerkleTreeDepthError {
/// Accessor for the invalid merkle tree depth.
pub fn invalid_merkle_tree_depth(&self) -> usize { self.0 }
}
internals::impl_from_infallible!(InvalidMerkleTreeDepthError);
impl fmt::Display for InvalidMerkleTreeDepthError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"Merkle tree depth({}) must be less than {}",
self.0, TAPROOT_CONTROL_MAX_NODE_COUNT
)
}
}
#[cfg(feature = "std")]
impl std::error::Error for InvalidMerkleTreeDepthError {}
/// The last bit of tapleaf version must be zero.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InvalidTaprootLeafVersionError(u8);
impl InvalidTaprootLeafVersionError {
/// Accessor for the invalid leaf version.
pub fn invalid_leaf_version(&self) -> u8 { self.0 }
}
internals::impl_from_infallible!(InvalidTaprootLeafVersionError);
impl fmt::Display for InvalidTaprootLeafVersionError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "leaf version({}) must have the least significant bit 0", self.0)
}
}
#[cfg(feature = "std")]
impl std::error::Error for InvalidTaprootLeafVersionError {}
/// Invalid control block size.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InvalidControlBlockSizeError(usize);
impl InvalidControlBlockSizeError {
/// Accessor for the invalid control block size.
pub fn invalid_control_block_size(&self) -> usize { self.0 }
}
internals::impl_from_infallible!(InvalidControlBlockSizeError);
impl fmt::Display for InvalidControlBlockSizeError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"Control Block size({}) must be of the form 33 + 32*m where 0 <= m <= {} ",
self.0, TAPROOT_CONTROL_MAX_NODE_COUNT
)
}
}
#[cfg(feature = "std")]
impl std::error::Error for InvalidControlBlockSizeError {}
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use core::str::FromStr; use core::str::FromStr;