Crate derive

Source

Re-exports§

pub use taptree::ControlBlockFactory;
pub use taptree::FinalizedTree;
pub use taptree::InvalidTree;
pub use taptree::LeafInfo;
pub use taptree::TapDerivation;
pub use taptree::TapTree;
pub use taptree::TapTreeBuilder;
pub use taptree::UnfinalizedTree;

Modules§

base58
Base58 encoder and decoder.
opcodes
secp256k1
Rust bindings for Pieter Wuille’s secp256k1 library, which is used for fast and accurate manipulation of ECDSA and Schnorr signatures on the secp256k1 curve. Such signatures are used extensively by the Bitcoin network and its derivatives.
taptree

Macros§

h

Structs§

Address
Annex
The Annex struct enforces first byte to be 0x50.
Bip340Sig
Block
BlockHash
BlockHeader
BlockMerkleRoot
ByteStr
ChainCode
BIP32 chain code used for hierarchical derivation
CompressedPk
ControlBlock
DerivationPath
Derivation path that consisting only of single type of segments.
DerivationSeg
DerivedAddr
FutureLeafVer
Inner type representing future (non-tapscript) leaf versions. See LeafVer::Future.
HardenedIndex
Index for hardened children derivation; ensures that the index always >= 2^31.
IndexError
InternalKeypair
Internal taproot public key, which can be present only in key fragment inside taproot descriptors.
InternalPk
Internal taproot public key, which can be present only in key fragment inside taproot descriptors.
InvalidLeafVer
invalid taproot leaf version {0}.
InvalidParityValue
invalid parity value {0} - must be 0 or 1
InvalidTimelock
Error constructing timelock from the provided value.
KeyOrigin
Keychain
LeafScript
LegacyPk
LegacySig
LockHeight
Value for a transaction nTimeLock field which is guaranteed to represent a block height number which is always less than 500000000.
LockTime
LockTimestamp
Value for a transaction nTimeLock field which is guaranteed to represent a UNIX timestamp which is always either 0 or a greater than or equal to 500000000.
NonStandardValue
the provided value {value} for {matter} is non-standard; while it is accepted by the bitcoin consensus rules, the software prohibits from using it.
NormalIndex
Index for unhardened children derivation; ensures that the inner value is always < 2^31
Outpoint
OutputPk
Output taproot key - an InternalPk tweaked with merkle root of the script tree - or its own hash. Used only inside addresses and raw taproot descriptors.
PrevoutMismatch
PubkeyHash
RedeemScript
Sats
ScriptBytes
ScriptCode
Type used for generating sighash in SegWit signing
ScriptHash
ScriptPubkey
SeqNo
SigScript
Sighash
SighashCache
Efficiently calculates signature hash message for legacy, segwit and taproot inputs.
SighashType
TapBranchHash
TapLeafHash
TapMerklePath
TapNodeHash
TapScript
TapSighash
Terminal
Tx
TxIn
TxOut
TxVer
Txid
UncompressedPk
UnknownGenesisBlock
UnknownNetwork
VBytes
VarInt
A variable-length unsigned integer.
Vout
WPubkeyHash
WScriptHash
WeightUnits
Witness
WitnessProgram
Witness program as defined in BIP141.
WitnessScript
Wtxid
XOnlyPk
Generic taproot x-only (BIP-340) public key - a wrapper around XOnlyPublicKey providing APIs compatible with the rest of the library. Should be used everywhere when InternalPk and OutputPk do not apply: as an output of BIP32 key derivation functions, inside tapscripts/ leafscripts etc.
XkeyMeta
XkeyOrigin
Xpriv
XprivAccount
XprivCore
Deterministic part of the extended public key.
Xpub
XpubAccount
XpubCore
Deterministic part of the extended public key.
XpubDerivable
XpubFp
XpubId

Enums§

AddressError
Errors creating address from scriptPubkey.
AddressNetwork
Bitcoin network used by the address
AddressParseError
Errors parsing address strings.
AddressPayload
Internal address content. Consists of serialized hashes or x-only key value.
AddressType
Address type
AnnexError
BlockDataParseError
ConsensusDataError
ConsensusDecodeError
DerivationIndex
DerivationParseError
DerivedAddrParseError
DerivedScript
IndexParseError
InvalidPubkey
LeafVer
The leaf version for tapleafs.
Network
Bitcoin network used by the address
OpCode
OriginParseError
OutpointParseError
Parity
Represents the parity passed between FFI function calls.
PubkeyParseError
SegParseError
SegwitError
SigError
An ECDSA signature-related error.
SighashError
SighashFlag
TapCode
TerminalParseError
TimeLockInterval
Time lock interval describing both relative (OP_CHECKSEQUENCEVERIFY) and absolute (OP_CHECKTIMELOCKVERIFY) timelocks.
TimelockParseError
WitnessVer
Version of the witness program.
XkeyAccountError
XkeyDecodeError
XkeyParseError

Constants§

HARDENED_INDEX_BOUNDARY
Constant determining BIP32 boundary for u32 values after which index is treated as hardened
LIB_NAME_BITCOIN
LOCKTIME_THRESHOLD
The Threshold for deciding whether a lock time value is a height or a time (see Bitcoin Core).
MIDSTATE_TAPSIGHASH
The SHA-256 midstate value for the TapSig hash.
SEQ_NO_CSV_DISABLE_MASK
SEQ_NO_CSV_TYPE_MASK
TAPROOT_ANNEX_PREFIX
Taproot annex prefix.
TAPROOT_LEAF_MASK
Tapleaf mask for getting the leaf version from first byte of control block.
TAPROOT_LEAF_TAPSCRIPT
Tapscript leaf version.
XPRIV_MAINNET_MAGIC
XPRIV_TESTNET_MAGIC

Traits§

ConsensusDecode
ConsensusEncode
Derive
DeriveCompr
DeriveKey
DeriveLegacy
DeriveScripts
DeriveSet
DeriveXOnly
Idx
Trait defining common API for different types of indexes which may be present in a certain derivation path segment: hardened, unhardened, mixed.
IdxBase
Trait defining basic index functionality without mathematics operations.
IntoTapHash
LenVarInt
Sign
Trait used for signing transactions.
Weight

Type Aliases§

VarIntArray
Bitcoin consensus allows arrays which length is encoded as VarInt to grow up to 64-bit values. However, at the same time no consensus rule allows any block data structure to exceed 2^32 bytes (4GB), and any change to that rule will be a hardfork. So for practical reasons we are safe to restrict the maximum size here with just 32 bits.
VarIntBytes