-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat(qt): Add flag to allow duplicate recipient addresses in GUI #7012
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
✅ No Merge Conflicts DetectedThis PR currently has no conflicts with other open PRs. |
WalkthroughAdds a GUI command-line option Sequence DiagramsequenceDiagram
participant User
participant GUI as "GUI Layer\n(src/qt/bitcoin.cpp)"
participant WalletModel as "WalletModel\n(src/qt/walletmodel.cpp)"
participant TxValidation as "Tx Validation\n(duplicate-address check)"
User->>GUI: Launch app (may set -allowduplicaterecipients)
GUI->>WalletModel: Initialize (passes fAllowDuplicateDestAddr)
User->>GUI: Create transaction with recipients (possible duplicates)
GUI->>WalletModel: PrepareTransaction request
WalletModel->>TxValidation: Check for duplicate recipient addresses
alt fAllowDuplicateDestAddr == true
TxValidation-->>WalletModel: Duplicate check skipped (allowed)
else fAllowDuplicateDestAddr == false
TxValidation->>TxValidation: Validate no duplicate addresses
TxValidation-->>WalletModel: Return validation result
end
WalletModel-->>GUI: Return prepared transaction / error
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Areas requiring attention:
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
🧰 Additional context used📓 Path-based instructions (2)src/**/*.{cpp,h,hpp,cc}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
src/qt/**/*.{cpp,h}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
🧠 Learnings (1)📓 Common learnings🧬 Code graph analysis (1)src/qt/bitcoin.cpp (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
🔇 Additional comments (1)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This enables users of the Qt wallet to send to the same address in a single transaction. This is useful for setting up multiple MN collateral transactions, but probably only for advanced users and developers. Usage: ./qt/dash-qt -allowduplicaterecipients I'm ok if there's no desire to merge this. I just thought it was a nice feature to send all collateral in a single TX instead of having to send multiple. I presume this is mostly just useful for testnet, as a hardware wallet would be preferred for mainnet, but it may also work to create an unsigned TX which could be signed by a HW wallet w/the right UI.
f51e0d0 to
1808006
Compare
|
Force-pushed w/a GPG-signed commit, no changes to code. |
This enables users of the Qt wallet to send to the same address in a single transaction. This is useful for setting up multiple MN collateral transactions, but probably only for advanced users and developers.
Usage: ./qt/dash-qt -allowduplicaterecipients
I'm ok if there's no desire to merge this. I just thought it was a nice feature to send all collateral in a single TX instead of having to send multiple. I presume this is mostly just useful for testnet, as a hardware wallet would be preferred for mainnet, but it may also work to create an unsigned TX which could be signed by a HW wallet w/the right UI.