fix(create_tx): enforce single recipient for send_all#291
Open
1estart wants to merge 1 commit into
Open
Conversation
Previously, passing multiple --to arguments with --send_all would
silently drain the wallet to only the first recipient, ignoring the
rest. This was inconsistent with the silent-payments create_tx, which
already validates the recipient count.
Now returns an error unless exactly one recipient is provided, using
idiomatic slice pattern matching (`if let [recipient] = ...`).
Also fixes a minor grammar issue in the error message
("drain to" → "drained to").
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #290
Description
Previously, passing multiple
--toarguments with--send_allwould silently drain the wallet to only the first recipient, ignoring the rest. This was inconsistent with the silent-paymentscreate_tx, which already validates the recipient count.Now returns an error unless exactly one recipient is provided, using idiomatic slice pattern matching (
if let [recipient] = ...).Also fixes a minor grammar issue in the error message ("drain to" → "drained to").
Notes to the reviewers
create_txbranch of the same file, so behavior is now consistent between the two code paths.if let [recipient] = recipients.as_slice()instead ofrecipients.len() == 1+ indexing, as it's more idiomatic Rust and eliminates the possibility of a panic on empty slices.tests/send_all_validation.rsverifies the fix end-to-end: it sets up a wallet viawallet config, then callscreate_tx --send_allwith two recipients and asserts that the command fails with the expected error message.Changelog notice
Checklists
All Submissions:
cargo fmtandcargo clippybefore committingNew Features:
CHANGELOG.mdBugfixes: