Skip to content

Reject recipient addresses from the wrong network - #370

Open
emma31-dev wants to merge 1 commit into
bitcoindevkit:masterfrom
emma31-dev:fix/360-create-tx-network-validation
Open

emma31-dev wants to merge 1 commit into
bitcoindevkit:masterfrom
emma31-dev:fix/360-create-tx-network-validation

Conversation

@emma31-dev

Copy link
Copy Markdown

Description

Fixes #360 .

Retain recipient addresses as unchecked addresses until the wallet network is available, then validate them before converting them to scripts. create_tx, create_sp_tx --to, and create_dns_tx --to now reject addresses from a different network. create_sp_tx --to-sp also rejects silent payment codes whose network differs from the wallet’s.

Notes to the reviewers

The mismatch errors use BDKCliError::Generic with a formatted message rather than adding payload-carrying error variants. Carrying an address or silent payment code in new variants made BDKCliError large enough for Clippy’s result_large_err lint to fail across many functions.

Some integration tests used testnet tb1... recipients with regtest wallets. Those fixtures now use regtest addresses so the tests exercise their intended behavior instead of failing at network validation.

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt
  • I ran cargo clippy successfully before committing

Bugfixes:

Validate network on --to addresses and --to-sp silent payment codes in
create_tx, create_sp_tx, and create_dns_tx. Previously these commands
would silently build an unspendable PSBT; they now return a clear error
with the expected and actual network.

- parse_recipient now stores Address<NetworkUnchecked> instead of ScriptBuf
- New recipient_script() helper validates network before converting to ScriptBuf
- Silent payment codes also validated against wallet network
- Tests added for all three commands with wrong-network inputs
@emma31-dev
emma31-dev force-pushed the fix/360-create-tx-network-validation branch from 9c0cef4 to eecb1d4 Compare November 9, 2026 21:53

This branch has not been deployed

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

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

create_tx accepts recipient addresses from the wrong network

1 participant