Skip to content

feat: expose detailed try_finalize_psbt outcomes#433

Open
reez wants to merge 5 commits into
bitcoindevkit:masterfrom
reez:issue-73
Open

feat: expose detailed try_finalize_psbt outcomes#433
reez wants to merge 5 commits into
bitcoindevkit:masterfrom
reez:issue-73

Conversation

@reez

@reez reez commented Apr 7, 2026

Copy link
Copy Markdown

Description

First step for #73, following ValuedMammal's suggestion.

This PR keeps the scope to PSBT finalization only:

  • add try_finalize_psbt which returns FinalizePsbtResult
  • report per input outcomes via FinalizePsbtInputResult

Notes to the reviewers

This is now additive rather than breaking: Wallet::finalize_psbt still returns bool

Intentionally not included here:

  • changing Wallet::sign to return a richer result type
  • any broader redesign beyond the PSBT finalization API surface

Changelog notice

  • Add Wallet::try_finalize_psbt, which returns FinalizePsbtResult and exposes per-input finalization outcomes while preserving the existing Wallet::finalize_psbt API.

Checklists

All Submissions:

New Features:

  • I've added tests for the new feature
  • I've added docs for the new feature

@codecov

codecov Bot commented Apr 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.38554% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.13%. Comparing base (58fe631) to head (653031a).

Files with missing lines Patch % Lines
src/wallet/mod.rs 96.38% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #433      +/-   ##
==========================================
+ Coverage   80.96%   81.13%   +0.17%     
==========================================
  Files          24       24              
  Lines        5489     5546      +57     
  Branches      247      246       -1     
==========================================
+ Hits         4444     4500      +56     
- Misses        968      970       +2     
+ Partials       77       76       -1     
Flag Coverage Δ
rust 81.13% <96.38%> (+0.17%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@reez reez force-pushed the issue-73 branch 2 times, most recently from c65f534 to e046adc Compare April 7, 2026 20:16
@reez reez changed the title (draft) feat: expose detailed finalize_psbt outcomes (draft) feat: expose detailed try_finalize_psbt outcomes Apr 7, 2026
@reez

reez commented Apr 7, 2026

Copy link
Copy Markdown
Author

Updated per some good feedback from mammal

@reez reez marked this pull request as ready for review April 9, 2026 19:21
@reez reez changed the title (draft) feat: expose detailed try_finalize_psbt outcomes feat: expose detailed try_finalize_psbt outcomes Apr 9, 2026
@reez reez force-pushed the issue-73 branch 5 times, most recently from f3fb2a6 to 69966b6 Compare April 14, 2026 19:14
@ValuedMammal ValuedMammal added this to the Wallet 3.1.0 milestone Apr 14, 2026
@ValuedMammal ValuedMammal added the new feature New feature or request label Apr 14, 2026
@ValuedMammal ValuedMammal moved this to In Progress in BDK Wallet Apr 14, 2026

@ValuedMammal ValuedMammal left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think After and Older are doing much good, and would prefer to leave them out of the new implementation if we plan to support try_finalize_psbt into the future.

@notmandatory

Copy link
Copy Markdown
Member

Concept ACK, glad to see this as a non-breaking change.

@reez

reez commented Jun 16, 2026

Copy link
Copy Markdown
Author

Added four commits as small follow-ups from review feedback from mammal: make finalization cleanup more explicit, preserve opaque PSBT/input metadata, stop the new try_finalize_psbt path from redacting output metadata, and clarify the internal timelock inputs without changing legacy finalize_psbt behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature New feature or request

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants