Module nostr_sdk::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.