[feat] Coin Control
Describe the solution you'd like During a non-collaborative send, it would be nice to be able to select a UTXO (and consume it) to spend.
*Note There is currently a workaround to this where you can freeze all UTXOs except the one you'd like to spend.
Related - https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1112 (there is dispute between using UTXOs vs addresses).
Ping @editwentyone Can we think of a nice UI flow during a direct send (non-collaborative send), where a user is able to select specific UTXOs (effectively doing Coin Control)? Maybe a modal is all we need here, e.g. opening on click on the source jar? Or a dedicated button "Coin Control"..?
To me, when going to the send screen, you would just be presented with the option of collaborative or not. After this selection, you can then decide which UTXOs you'd like to use, with a tick-box for "consume" (to use the entire UTXO without change).
Related - JoinMarket-Org/joinmarket-clientserver#1112 (there is dispute between using UTXOs vs addresses).
Interesting, although I would still think UTXO control is the more important option as they are the atomic unit in this context, and address re-use maybe ought to be shunned in general, especially when considering privacy. I think my above desired UI/UX could accommodate both, but I would favor UTXOs only, for simplicity.
I think my above desired UI/UX could accommodate both, but I would favor UTXOs only, for simplicity.
In UI like Jam this could be actually achieved purely in frontend side - when address reuse has happened, if user selects one of UTXOs sent to that address, just automatically select others related to that address too. And user can override by deselecting them.
- [x] @theborakompanioni invites everyone to JAM repo
- [ ] all: decide between simple coin control or editing backend to allow providing UTXOs to send (Tbk: 2nd is more desireable) (read up here: https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1561)
- [ ] lets talk and decide about the decision what is the right path
- [ ] @editwentyone design a coin control feature during send overall
- [ ] Implement
- [ ] …
[feat] Coin Control #689
- [x] (ui) Quick freeze/unfreeze UTXOs from selected source Jar
- [x] (ui) Distinct "Coin Control for Sweeps"
- Show "Select what UTXOs to send" with a subsequent sweep
Bonus:
- [ ] (backend) Ability to specify specific UTXOs in "coinjoin"-API call (https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1561)
- [ ] (backend) Ability to specify specific UTXOs in "direct-send"-API call
- [ ] (ui): Unified "Coin Control" for both, direct-sends and collaborative transactions
- This is in order for it to not necessarily be a "sweep"