Module bitcoin::psbt

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

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/from PsbtSighashType 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 is SIGHASH_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.