Skip to content

Validate human PSBT approvals against template - #557

Open
Jossec101 wants to merge 1 commit into
mainfrom
improve-psbt-validation-input
Open

Validate human PSBT approvals against template#557
Jossec101 wants to merge 1 commit into
mainfrom
improve-psbt-validation-input

Conversation

@Jossec101

Copy link
Copy Markdown
Contributor

Add PsbtApprovalValidator gate to ChannelOperationRequestPSBT and WalletWithdrawalRequestPSBT repositories to reject malformed or duplicate human signatures before they reach the signing path.

  • Wire ValidateApproval into AddAsync/AddRangeAsync for channel operation PSBTs, using SIGHASH_NONE to match ChannelRequests.razor.
  • Server-generated rows (template, internal wallet, finalised) bypass validation; human approvals are checked against the request's template PSBT and existing signatures.
  • Include ChannelOperationRequestPsbts when loading the request so the validator has the full signature set.
  • Log rejections with the request id and reason, and surface the error to the caller.
  • Add BitcoinService tests covering the duplicate-template-row and related rejection scenarios on the withdrawal signing path.

Add PsbtApprovalValidator gate to ChannelOperationRequestPSBT and
WalletWithdrawalRequestPSBT repositories to reject malformed or
duplicate human signatures before they reach the signing path.

- Wire ValidateApproval into AddAsync/AddRangeAsync for channel
  operation PSBTs, using SIGHASH_NONE to match ChannelRequests.razor.
- Server-generated rows (template, internal wallet, finalised) bypass
  validation; human approvals are checked against the request's
  template PSBT and existing signatures.
- Include ChannelOperationRequestPsbts when loading the request so the
  validator has the full signature set.
- Log rejections with the request id and reason, and surface the error
  to the caller.
- Add BitcoinService tests covering the duplicate-template-row and
  related rejection scenarios on the withdrawal signing path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant