-
Notifications
You must be signed in to change notification settings - Fork 43
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
Should the UI be an Electron app? #496
Comments
Electron might be the best way to go. I think any integration, like metamask, that requires a user to do approvals for each transaction is a bad UI that will make swaps fail. We need the "set ready" transaction to be fully automatic, as the end-user can not be expected to sit and watch the swap for the 10 confirmations (~ 20 minutes) required before the Monero in the temporary swap wallet is fully unlocked. Bisq is a java application. I'm guessing it is using JavaFX? There is a Go framework named Fyne that may or may not be good solution. I wanted to play around with it, as it would be a way to keep the majority of the codebase in one language. |
Indeed, that makes the decision much easier :)
Interesting, I didn't know about Fyne; I have nothing against it, but considering that there's already some work being done in Typescript and that I'm experienced with Electron, it might makes more sense to continue with what we got. |
@dimalinux |
Hi @stubbrn
The PiNodeXMR project runs entirely headless with interaction all through a Web UI, as does the Blockexplorer we host and a web terminal for ssh console menus. Based on this if we were to add these Atomic Swaps as a feature we could really do with a Web UI for this swap tool, if only for the offer searches and taking offers initially, (other aspects - display balance/QR etc- can be done from a CLI menu as we use that for other system management). With what I've done this week building swapd and cli on PiNodeXMR, carrying out swaps and preparing install menus the only element I havn't yet got working is the Web UI, it doesn't seem to connect to swapd. Is it easily fixed? I'm happy to help where I can. |
Hi @shermand100 Yes it'd be possible (and desirable) to maintain a browser version along with a desktop version. For the connection issue, it might be because the web UI connects to atomic-swap/ui/src/utils/rpcApi.ts Line 17 in 13b7653
|
Started a new issue to keep my Web UI chat away from this Electrum conversation |
I'm not sure if the UI should be an Electron app, or a "browser UI" (opening http://localhost:PORT in a browser). Thinking about how to make the most user-friendly interface and setup:
The most frictionless way for a new user to start using the protocol would be to open a hosted (remote) web UI in the browser and start to swap without any install/setup. It's probably not possible right now because it's not safe for multiple users to share the same node as it knows your private keys (maybe we could serve a WASM version of the node along with the UI, and use a remote monero node for a no-install setup, but it's not ideal and the added complexity may not be worth it).
The next best thing would be for a new user to download/install the node and UI bundled in a single executable, similar to how the official monero wallet GUI can run a monero node. In this case, a desktop application (Electron app in our case) is much more standard than a browser UI, it would be much like bisq. However, an Electron app means that you can't integrate with a Metamask wallet, you either need to import your wallet via seed/private key or you need to fund a new wallet (I don't think it's a deal-breaker, but needs to be taken into account). It could also be a bundle while staying as a browser UI, the main con is that it's fairly unusual especially for less technical users.
Any thoughts or ideas?
The text was updated successfully, but these errors were encountered: