bitcoindevkit / bitcoindevkit/bdk_wallet

Remove signers from `Wallet`

Open
#70 1 comment 7 reactions 1 assignee Claimed by @oleonardolima View on GitHub
api
Dominant language
Rust
Stars
59
Forks
105
Avg merge
10d 9h
Merged PRs (30d)
1

Description

**Describe the enhancement**

This is a tracking issue to remove signing capabilities and requirements to handle private key material from [`Wallet`](https://docs.rs/bdk_wallet/latest/bdk_wallet/struct.Wallet.html#). The new recommended flow will leverage `rust-bitcoin` [`Psbt::sign`](https://docs.rs/bitcoin/latest/bitcoin/psbt/struct.Psbt.html#method.sign). Please comment below or mention this issue in related issues and PRs.

### Proposed timeline

| When | What |
| -------- | ------- |
| Available now since `3.1.0` | Allow users to bring in their private keys at the last minute while still using our APIs (`Wallet::sign_with_signers`). |
| Available now ([but](rust-bitcoin/rust-miniscript#867)) | Make sure users can sign using `Psbt::sign`. |
| Coming up ([bookofbdk](https://github.com/bitcoindevkit/book-of-bdk/pull/149)) | Write documentation, recommendations, release notes, etc. |
| ? | Mark signing-related APIs as deprecated. See bitcoindevkit/bdk_wallet#505 for more info! |
| `4.0` (Option 1) | Remove signers entirely from the `Wallet` type and crate. |
| `4.0` (Option 2) | Remove signers entirely from the `Wallet`, but keep them as separate helper module if required (after deep dive into `SignOptions`, see todos below). |

### Todos

- [x] Add an API to keep using the wallet `Signers` but bring in your private keys just at the moment of signing (not in the constuction of the `Wallet`)
- [ ] Produce extensive documentation and write-ups on the migration, timeline, and options available for users
- [ ] Do a deep dive into and produce a write-up of our `SignOption` type, which currently potentially offers options not covered by rust-bitcoin's `Psbt::sign` API
- [ ] Deprecate all signing and policy related APIs

### Related issues and PRs

- rust-bitcoin/rust-miniscript#851
- rust-bitcoin/rust-miniscript#867
- bitcoindevkit/bdk_wallet#331
- bitcoindevkit/bdk_wallet#20
- bitcoindevkit/bdk_wallet#73
- bitcoindevkit/bdk_wallet#379
- bitcoindevkit/bdk_wallet#434
- bitcoindevkit/book-of-bdk#159
- bitcoindevkit/bdk_wallet#235
- bitcoindevkit/bdk_wallet#505
- bitcoindevkit/bdk_wallet#438
- bitcoindevkit/bdk_wallet#334

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.