Summary
Add manual/custom fee entry and include/subtract-fee behavior parity.
Complexity
Dependencies
Global Constraints
- All implementation lives under
gui-qml/.
- No GUI runtime dependency on
bitcoin/src/qt components. Reused logic must be moved/ported into gui-qml/.
- Do not change
interfaces::Wallet or interfaces::Node in this version.
- Issue completion must satisfy
DefinitionOfDone.md.
Scope
- Replace hardcoded fee rate in
WalletQmlModel::prepareTransaction with model-driven settings.
- Add custom fee entry UI with validation and presets coexistence.
- Expose subtract-fee-from-amount in single and multi-recipient flows.
- Update review screen amounts (recipient totals, fee, effective send) correctly.
Acceptance Criteria (DoD-Aligned)
- User can switch between preset fee targets and custom fee input.
- Subtract fee from amount toggles correctly and matches transaction result.
- Validation handles insufficient funds, dust, and invalid fee input cleanly.
Required Tests
- C++ unit tests: Unit tests for fee/subtract calculation and coin control mapping.
- QML QTest: QTests for fee UI states and subtract toggle behavior.
- Python E2E (
qml/test/testbridge.h): E2E flow: send with custom fee + send with subtract-fee; validate review and broadcast outcomes.
Implementation Notes
- Likely touches
qml/models/sendrecipient.*, qml/models/walletqmlmodel.*, qml/components/FeeSelection.qml, send review pages.
https://bitcoincore.app/send/send-form-input-fields/
Summary
Add manual/custom fee entry and include/subtract-fee behavior parity.
Complexity
XLDependencies
02Global Constraints
gui-qml/.bitcoin/src/qtcomponents. Reused logic must be moved/ported intogui-qml/.interfaces::Walletorinterfaces::Nodein this version.DefinitionOfDone.md.Scope
WalletQmlModel::prepareTransactionwith model-driven settings.Acceptance Criteria (DoD-Aligned)
Required Tests
qml/test/testbridge.h): E2E flow: send with custom fee + send with subtract-fee; validate review and broadcast outcomes.Implementation Notes
qml/models/sendrecipient.*,qml/models/walletqmlmodel.*,qml/components/FeeSelection.qml, send review pages.https://bitcoincore.app/send/send-form-input-fields/