joinmarket-webui / jam

Your sats. Your privacy. Your profit.
https://jamapp.org
MIT License
265 stars 54 forks source link

Align general application flow with scheduler changes #488

Closed dergigi closed 2 years ago

dergigi commented 2 years ago

The reason why Jam is structured the way it is, is because we wanted to have an easy way to create cj-out UTXOs to create Fidelity Bonds for the Earn screen. That's why the default "app flow" is as follows:

Receive  »  Jam (Scheduler)  /  Earn  »  Send

With the recent Scheduler changes, this has to change. The Scheduler now always sweeps to external addresses, which means it is an automated way to sweep the whole wallet (all non-frozen funds) to addresses you control.

With #483 in mind, the updated flow could be simplified into Receive » Earn, since creating a cj-out UTXO for the FB will be part of the Earn flow.

Thus, the updated flow should be:

Receive  »  Earn  »  Send  |  Sweep

...with Sweep being the scheduler.

In the end, I think Sweep should be part of Send, because a sweep is just a special type of send, and the scheduler is just a special kind of sweep (with multiple targets & random splits). The main use-case of the scheduler will probably be to sweep to cold storage or to Lightning, since it will usually be a wallet you control.

I'd suggest we:

483 can be another increment, and "merging" the scheduler with "send" can be another increment.


P.S: Not sure about terminology. "Sweep" is taken from JoinMarket—if we want to stick with the "jam" metaphors, something else might make more sense. "Flush" comes to mind, as it "cleans" all the jars.

theborakompanioni commented 2 years ago

It seems I am still not completely over removing the ability to "keep funds in Jam".. : D

In all seriousness: I think the proposed changes are good. Jam will effectively be used as an intermediate wallet to sweep to cold storage, which is fine and in fact super-awesome. The "incentive" to keep funds in the wallet is lowered, which is a good thing™.

Also agree with "merging " Send and Sweep, but someone needs to come up with a nice UX. Personally I cannot image how this can be communicated in a meaningful way on a single page. Certainly coming from my limited skills in this area. Maybe even a simple "sweep all available funds" checkbox is enough.. hmm.. :thinking: Do you think the cooking pot https://github.com/joinmarket-webui/jam/issues/319 metaphor still makes sense?

Cheatsheet items should also be updated/reordered.

Regarding "Sweep": Thought this is generally common terminology not limited to JM. I'd keep this and not try to invent new wording. Fair?

dergigi commented 2 years ago

Regarding "Sweep": Thought this is generally common terminology not limited to JM. I'd keep this and not try to invent new wording. Fair?

Agree 👍

dergigi commented 2 years ago

Cheatsheet items should also be updated/reordered.

Yes, this is tracked as #482. Documentation changes are tracked in the docs repo.

I'll do the first increment of the interface changes, shouldn't be too much work (as they aren't too drastic).

dergigi commented 2 years ago

All tasks done & ready for review. See https://github.com/joinmarket-webui/jamdocs/pull/12 and https://github.com/joinmarket-webui/jam/pull/496

editwentyone commented 1 year ago

I would love to "jam" instead of sweeping. because we sweep already during "send", and after watching ben's tutorial I think it confuses more.

if we "jam" and combine that with the pot cooking visual, we should be good to go. what do you think?

image

https://www.figma.com/file/kfejZJFlwBywvLEnPEmJo1/JoinMarket-UI?node-id=4409%3A84286&t=jL3pT3ELgD9n83IM-11

theborakompanioni commented 1 year ago

what do you think?

Unsure about using "Jam" for this.

To quote @dergigi:

Not sure about terminology. "Sweep" is taken from JoinMarket—if we want to stick with the "jam" metaphors, something else might make more sense. "Flush" comes to mind, as it "cleans" all the jars.

Something like "clean" or "drain" feels more natural. Also, I like "flush", as that is what you do after emptying Jars, right?

editwentyone commented 1 year ago

hm, I'm not sure. sweep is already in the app. I think that's already confusing to use it twice. because sweep scheduler is much more expensive.

the scheduler is just a lot of sweeps and other stuff. so basically, the scheduler is in our world like a whole recipe to preserve the jam. you are not cooking one jam (from one big fruit to a mashup inside a jar), its bigger, longer and more steps. like adding sugar, different cooking time, etc etc

preserving? I'm lost

editwentyone commented 1 year ago

so, basically we would define "to jam" here with a new meaning.

we "jam" like improvising (music), cooking and preserving based on a defined recipe (scheduler) with resources (utxos) and time (randomized), with the last step to flush/empty our cooking pot (no change left) unevenly into three "external jars" with the final product (mashed up jam aka history unlinked coins).

hope that makes any sense.

and because its also the name of the app, its like the final important step. everybody would basically want to jam at some point.