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
    No fields configured for issues without a type.

    Projects

    Status

    Discussion

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions