Expand description
Partially Signed Bitcoin Transactions.
Implementation of BIP174 Partially Signed Bitcoin Transaction Format as defined at https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki except we define PSBTs containing non-standard sighash types as invalid.
Modules
- Raw PSBT key-value pairs.
- PSBT serialization.
Structs
- A key-value map for an input of the corresponding index in the unsigned transaction.
- A key-value map for an output of the corresponding index in the unsigned transaction.
- A Partially Signed Transaction.
- A Signature hash type for the corresponding input. As of taproot upgrade, the signature hash type can be either [
EcdsaSighashType
] or [TapSighashType
] but it is not possible to know directly which signature hash type the user is dealing with. Therefore, the user is responsible for converting to/fromPsbtSighashType
from/to the desired signature hash type they need.
Enums
- Ways that a Partially Signed Transaction might fail.
- Errors when getting a key.
- Data required to call
GetKey
to get the private key to sign an input. - The various output types supported by the Bitcoin network.
- Contains outputs of previous transactions. In the case [
TapSighashType
] variant isSIGHASH_ANYONECANPAY
,Prevouts::One
may be used. - Errors encountered while calculating the sighash message.
- Signing algorithms supported by the Bitcoin network.
Traits
- Trait to get a private key from a key request, key is then used to sign an input.
Type Definitions
- Partially signed transaction, commonly referred to as a PSBT.
- Map of input index -> the error encountered while attempting to sign that input.
- Map of input index -> pubkey associated with secret key used to create signature for that input.