Skip to content

Add an example/Make more obvious how to sign a transaction #340

@w3irdrobot

Description

@w3irdrobot

Describe the enhancement

With the release of bdk_wallet v2.2.0, the signer module has been deprecated seemingly in favor of using the bitcoin::psbt::Psbt::sign method instead. I think this change generally makes sense. However, the Psbt::sign method takes in two params, one of which is something implementing the GetKey trait. There are a few structs that implement GetKey, none of which seem reasonably possible from bdk_wallet. There is an open PR #334, and I can use that code to create a key map. However, this KeyMap doesn't implement GetKey. In addition, the as_key_map method of the SignersContainer struct is also deprecated due to the signer module deprecation, meaning this won't be usable going forward either.

Perhaps I'm just missing something, and there's a good chance I am given this has been released for a month now and I don't see any issues about this. However, to prevent other users from having this issue, and as a way of helping me move forward as well, a simple example demonstrating this newer method of signing instead of using the Wallet::sign method would be very helpful.

Use case

I want to be able to create and sign transactions in whatever the recommended way is, which seems to not involve the signer module anymore.

Impact

  • Blocking production usage
  • Nice-to-have / UX improvement
  • Developer experience / maintainability

Are you using BDK in a production project?

  • Yes
  • No
  • Not yet, but planning to

Which backend(s) are relevant (if any)?

  • Electrum
  • Esplora
  • Bitcoin Core RPC
  • None / not backend-related (e.g. bdk_chain, bdk_core)
  • Other (please specify): ____

Project or organization (optional)

Voltage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Discussion

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions