btcsuite / btcd

An alternative full node bitcoin implementation written in Go (golang)
https://github.com/btcsuite/btcd/blob/master/README.md
ISC License
6.09k stars 2.31k forks source link

[2/2]: BIP 322 Support #2152

Open mohamedawnallah opened 3 months ago

mohamedawnallah commented 3 months ago

Change Description

  1. Adds to_spend and to_sign transactions in accordance to BIP-322 generic signed message format.
  2. Adds EncodeWitness function that encodes witness stack in a signed BIP-322 PSBT into base-64 encoded format.

Additional Context

Depends on #2151 Closes #2077

How Has This Been Tested?

  1. Added test cases for BuildToSpendTx function with an empty message and "Hello World" message as in BIP-322
  2. Added test cases for BuildToSignTx function with an empty message and "Hello World" message as in BIP-322.
  3. Added test cases for EncodeWitness function where it encodes the input witness FinalScriptWitness of a finalized to_sign transaction into base64 and throws an error if the to_sign transaction is not signed yet.

Remaining Parts

I would greatly appreciate your feedback during this draft phase to ensure it aligns with the desired objectives. Thank you. 🙏

gamedevod commented 2 months ago

Hello, can you help please, how it use for taproot addreses?

gamedevod commented 2 months ago

Hi do you need help to finish ?

yes, i cant use it for taproot(