jam icon indicating copy to clipboard operation
jam copied to clipboard

[feat] Coin Control

Open kn0wmad opened this issue 2 years ago • 7 comments

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.

kn0wmad avatar Oct 29 '23 23:10 kn0wmad

Related - https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1112 (there is dispute between using UTXOs vs addresses).

kristapsk avatar Oct 29 '23 23:10 kristapsk

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"..?

theborakompanioni avatar Oct 30 '23 09:10 theborakompanioni

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).

kn0wmad avatar Oct 30 '23 20:10 kn0wmad

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.

kn0wmad avatar Oct 30 '23 20:10 kn0wmad

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.

kristapsk avatar Oct 30 '23 20:10 kristapsk

  • [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
  • [ ] …

editwentyone avatar May 07 '24 09:05 editwentyone

[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"

amitx13 avatar Jul 15 '24 05:07 amitx13