Crate bpstd

Source

Re-exports§

pub use bc::secp256k1;
pub use psbt;

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
ControlBlockFactory
DerivationPath
Derivation path that consisting only of single type of segments.
DerivationSeg
DerivedAddr
FinalizedTree
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
LeafInfo
LeafScript
LegacyKeySig
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.
Pkh
Prevout
PrevoutMismatch
Psbt
PsbtUnsupportedVer
PubkeyHash
Raw
RedeemScript
Rejected
Sats
ScriptBytes
ScriptCode
Type used for generating sighash in SegWit signing
ScriptDescr
ScriptHash
ScriptPubkey
SeqNo
Sh
ShMulti
Representation of BIP-383 multi as it is used inside sh.
ShSortedMulti
Representation of BIP-383 sortedmulti as it is used inside sh.
ShWpkh
SigScript
Sighash
SighashCache
Efficiently calculates signature hash message for legacy, segwit and taproot inputs.
SighashType
TapBranchHash
TapDerivation
A compact size unsigned integer representing the number of leaf hashes, followed by a list of leaf hashes, followed by the 4 byte master key fingerprint concatenated with the derivation path of the public key. The derivation path is represented as 32-bit little endian unsigned integer indexes concatenated with each other. Public keys are those needed to spend this output. The leaf hashes are of the leaves which involve this public key. The internal key does not have leaf hashes, so can be indicated with a hashes len of 0. Finalizers should remove this field after PSBT_IN_FINAL_SCRIPTWITNESS is constructed.
TapLeafHash
TapMerklePath
TapNodeHash
TapScript
TapSighash
TapTree
Non-empty taproot script tree.
TapTreeBuilder
TaprootKeySig
Terminal
TrKey
TrMulti
TrScript
TrSortedMulti
Tx
TxIn
TxOut
TxVer
Txid
UncompressedPk
UnfinalizedTree
UnknownGenesisBlock
UnknownNetwork
Unmodifiable
UnsignedTx
Structure representing data on unsigned transaction the way it is stored in PSBTv1 global key.
UnsignedTxIn
VBytes
VarInt
A variable-length unsigned integer.
Vout
WPubkeyHash
WScriptHash
WeightUnits
Witness
WitnessProgram
Witness program as defined in BIP141.
WitnessScript
Wpkh
Wsh
WshMulti
Representation of BIP-383 multi as it is used inside wsh.
WshSortedMulti
Representation of BIP-383 sortedmulti as it is used inside wsh.
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
InvalidTree
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.
PsbtError
TODO #44: Split PsbtError into a specific error types
PsbtParseError
PsbtVer
PubkeyParseError
ScriptItem
SegParseError
SegwitError
ShWsh
SigError
An ECDSA signature-related error.
SighashError
SighashFlag
SpkClass
StdDescr
TapCode
TerminalParseError
TimeLockInterval
Time lock interval describing both relative (OP_CHECKSEQUENCEVERIFY) and absolute (OP_CHECKTIMELOCKVERIFY) timelocks.
TimelockParseError
Tr
WitnessItem
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
Descriptor
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.
Signer
Trait which should be implemented by all signers.
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