3033 Commits

Author SHA1 Message Date
binarybaron
a9b1d05af0 feat: release GUI version 0.7.0. This should be a preview release but isn't for testing purposes 2024-11-04 15:17:49 +01:00
Einliterflasche
bfc82c0534
refactor(docs): move source for doc pages here (#119)
* docs: move dev docs to dev-docs folder

* docs: move source for doc pages here

* docs: improve docs
2024-10-25 03:55:18 +02:00
binarybaron
5341587dfa
fix(ci): Add env variables for tauri signing to workflow 2024-10-23 19:29:46 +02:00
binarybaron
8437473a1b feat(gui): Bump version to 1.0.0-alpha.1 2024-10-23 17:18:39 +02:00
binarybaron
88e039935f
Update build-gui-preview-release-cb.yml 2024-10-22 15:24:05 +02:00
binarybaron
37d1f07c2d
release(gui): 1.0.0 alpha.1 (#125) 2024-10-22 13:22:46 +02:00
binarybaron
584cc41411
feat(gui): Display provider spread to user (#124) 2024-10-22 12:04:37 +02:00
binarybaron
1acb597a34
Update build-gui-preview-release-cb.yml 2024-10-22 12:00:24 +02:00
binarybaron
7ce3dc36dc
Update build-gui-preview-release-cb.yml 2024-10-21 23:58:07 +02:00
binarybaron
22fdb36981
Update build-gui-preview-release-cb.yml 2024-10-21 23:01:25 +02:00
binarybaron
4fd6d75b47
fix(ci): Update CloudNebula CN_APPLICATION to lower case 2024-10-17 15:04:46 +02:00
binarybaron
6c433041b7
feat(gui, tauri, ci): Auto updater (#105) 2024-10-17 14:56:04 +02:00
binarybaron
90584a211d
Revert "Prepare release 0.13.5 (#107)" (#121)
Reverts UnstoppableSwap/core#107 due to https://github.com/UnstoppableSwap/core/issues/95
2024-10-16 23:55:26 +02:00
Einliterflasche
c91adb3ac8
feat(tauri): Allow export of wallet descriptors (#118) 2024-10-15 14:22:35 +02:00
binarybaron
898c7a2450 fix(gui): Empty tx lock id text box on history page 2024-10-14 00:10:23 +02:00
binarybaron
15b43bf4a4
feat(gui): Button to open modal with QR code of Bitcoin address (#116) 2024-10-14 00:01:11 +02:00
binarybaron
2bffe40a37
Merge changes from legacy GUI, allow daemon logs to be attached to feedback (#115)
This PR applies all remaining changes from https://github.com/UnstoppableSwap/unstoppableswap-gui/pull/210


- Added checkbox option to attach daemon logs when submitting feedback
- Added "Outdated" chip with warning icon for providers running outdated asb versions
- Updated `BitcoinPunishedPage` to display different messages for BtcPunished and CooperativeRedeemRejected states (including reason for failed cooperative redeem)
- Added "Attempt recovery" button for swaps in BtcPunished state
- Modified `getBitcoinTxExplorerUrl` to use mempool.space instead of blockchair.com
- Added `useResumeableSwapsCountExcludingPunished` hook to count resumable swaps excluding punished ones, use it for the badge and alert
- Updated `sortProviderList` function to filter out incompatible providers before sorting
- Added `TauriSwapProgressEventExt` type to extract specific event types from TauriSwapProgressEvent
2024-10-13 18:04:47 +02:00
Einliterflasche
639f540876
feat(tauri): send tauri event on btc balance change (#113)
Closes #43. This PR creates a new event, which is emitted by the watcher daemon when the BTC balance changes. Then, on the guest side, we simply update the balance when this event is received.
2024-10-13 18:01:29 +02:00
binarybaron
ec86fa13cd
fix(tauri): Emit 'Initiated' progress event once swap lock is aquired (#112)
* fix(tauri): Emit 'Initiated' progress event once swap lock is aquired
2024-10-11 20:17:46 +06:00
binarybaron
83f831ccac
feat(gui, tauri): Accept --testnet flag, default to mainnet (#106)
This PR tackles #92 

- Add the `tauri-plugin-cli` (only on desktop)
- Check in the frontend if the `--testnet` flag is set. If it's set we pass `testnet=true` to the `initialize_context` command on invokation
- We add the `vite-plugin-top-level-await` to allow top level await in all browsers
- Remove the `bitcoin_confirmation_target` from settings for simplicity
2024-10-10 14:51:56 +02:00
unstoppableswap-botty
9e94dca7aa
Prepare release 0.13.5 (#107)
Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>
2024-10-09 18:53:11 +02:00
binarybaron
44be5de372
fix(ci): Upgrade rust toolchaint in draft-new-release action 2024-10-09 18:29:08 +02:00
binarybaron
119b8714ef fix(tauri): Let watcher sleep even if we fail to get current swaps 2024-10-09 16:46:29 +02:00
binarybaron
8f33fe5b41
feat(tauri, gui): Send event on changes to details, timelocks and tx_lock confirmations (#100)
- Send event when new swap state is inserated into database. The event only has the `swap_id` attached. The frontend then sends a request to the `get_swap_info` command to retrieve the updated version
- Send event when the Bitcoin lock transaction gets a new confirmation 
- A new `watcher` daemon runs contineously and sends an event when the timelock updated. The event has the the `swap_id` and the timelock attached
- Display logs on `ProcessExitedPage` (if swap was stopped prematurely)
- Rename `CliLogEmittedEvent` to `TauriLogEvent`
- Apply env_filter to tracing terminal writer to silence logging from other crates
- Add `.env.*` files in `src-gui` to `.gitingore`

Closes #93 and #12
2024-10-09 15:06:57 +02:00
binarybaron
e6dc7ddcef fix(gui): Lazy load tauri store 2024-10-08 20:55:55 +02:00
binarybaron
253e0b0cf6
feat(gui, tauri): Save settings in Tauri storage (#102)
- Implemented dual persistence strategy:
  - **User Settings**: Persisted across app restarts using `tauri-plugin-store`.
  - **Transient State**: Persisted across page reloads using `sessionStorage`.
- Added `settingsSlice` reducer for managing persistent user settings.
- Updated Redux store configuration to handle multiple persistence layers.
- Added a new Settings page in the GUI where users can specify custom Electrum RPC URLs for Bitcoin and Monero node URLs.
  - Users can input their preferred Electrum server (`ssl://host:port`) and Monero daemon (`http://host:port`).
  - Input fields include validation to ensure correct URL formats.
  - Settings persist across application restarts using Tauri's storage plugin.
  - A reset option is available to revert to default settings.
- Improved the Daemon Controller in the Help page:
  - Renamed `RpcControlBox` to `DaemonControlBox` for clarity.
  - Users can now start the daemon manually if it isn't running or has failed.
  - Added a "Restart GUI" button to apply new settings immediately.
  - Displayed the daemon's status within the controller.
- Upgraded Tauri and related plugins to stable version `2.0.0`:
  - Updated `tauri`, `tauri-build`, and `tauri-utils` to `2.0.0`.
  - Ensured compatibility with the latest stable release.
- Updated Tauri plugins to version `2.0.0`:
  - `tauri-plugin-clipboard-manager`
  - `tauri-plugin-shell`
  - Added new plugins:
    - `tauri-plugin-store` for settings persistence.
    - `tauri-plugin-process` to enable application relaunch.
- Deferred Context initialization until explicitly triggered from the frontend.
  - Moved Context setup from the `setup` function to a new `initialize_context` Tauri command.
  - Allows the application to start without immediately initializing the backend context.
  - Context initialization now considers user-provided settings for Electrum and Monero nodes.
- Introduced a `ValidatedTextField` component for form inputs with validation logic.
  - Provides immediate feedback on input validity.
  - Used in the Settings page for Electrum and Monero node URLs.
- If the user provides an override Monero remote daemon, we check if it reachable and on the correct network before starting the `monero-wallet-rpc`
- Changed `bitcoin_confirmation_target` type from `usize` to `u16`.
2024-10-08 12:57:01 +02:00
binarybaron
d4503a6e9c
docs: Add matrix room to README.md 2024-09-27 13:08:46 +02:00
Einliterflasche
7b79ad6abe
feat(cli+tauri): Send logs from host to guest (#90)
* feat(tauri): send logs from cli to tauri

---------

Co-authored-by: binarybaron <binarybaron@unstoppableswap.net>
Co-authored-by: binarybaron <86064887+binarybaron@users.noreply.github.com>
2024-09-26 17:09:46 +06:00
binarybaron
21608ce4f7
feat(gui): Specify stub testnet provider via VITE_TESTNET_STUB_PROVIDER_ADDRESS environment variable (#99) 2024-09-25 20:16:38 +02:00
binarybaron
97510a8619
refactor(gui): Swap state stepper to use Tauri events (#77)
Previously we used the data we fetched via the rpc (`GetSwapInfo` call, saved in redux in `rpc.swapInfos`) to decide what to display in the state stepper to the user. The state stepper is displayed at the bottom of the `SwapDialog`.

However, we are moving away from our depedence on periodic rpc calls and towards relying more and more on the events we receive from the Host (from Tauri). Our goal is to rely solely on the Tauri events for everything displayed about the currently running swap.

This PR includes the following changes:
- refactor the `SwapStateStepper` such that it relies only on the Tauri events
- emit two new Tauri events (`EncryptedSignatureSent`, `CancelTimelockExpired`) in the state machine
- correctly emit `BtcRefunded` Tauri event after Bitcoin refund transaction is published
- differentiate between `"Waiting for them to redeem the Bitcoin"` and `"Revealing encrypted signature to the other party"` on the `SwapStatePage` (content displayed in the center of the `SwapDialog`)
2024-09-23 03:31:24 +06:00
binarybaron
f91255ff76
feat(cli): Add span with swap_id to all logs caused by swap (#96)
* feat(cli): Add span with swap_id to all logs caused by swap
2024-09-23 00:56:25 +06:00
binarybaron
1dd35b3ae5
fix(ci): Disable Tauri feature for tests (#91)
We omit the --all-features for the tests run in the CI. There are no features in any of our crates besides tauri so this doesn't disable any features that might be required.
2024-09-19 18:10:33 +02:00
binarybaron
167e031172
feat(gui): Allow discovery of sellers via connecting to rendezvous point (#83)
We,
- add a new list_sellers Tauri IPC command
- we rename the Seller struct to AliceAddress to name clash
2024-09-19 00:40:51 +02:00
binarybaron
beccd23280
fix(cli): Remove malicious node.moneroworld remote node (#85)
The moneroworld node has been confirmed to have been operated by Chainalysis, a company specialising in blockchain surveillance. They are collecting the ip addresses of anyone who connects to the node.

See https://www.digilol.net/blog/chainanalysis-malicious-xmr.html
2024-09-18 22:48:30 +02:00
Einliterflasche
9d1151c3d3
feat(cli, gui, tauri): Emit events on Monero transaction confirmation update and redeem transaction publication (#57)
We now,
- emit a Tauri event when the Monero lock transaction receives a new confirmation
- emit a Tauri event with a list of transaction hashes once we have published the Monero redeem transaction 
- gui: display the confirmations and txids

This PR closes #12.
2024-09-18 17:53:13 +02:00
binarybaron
a1fd147850
ci(tauri): Run tauri action for building x86 binaries for darwin (#80) 2024-09-17 17:43:21 +02:00
binarybaron
5bb33fe35d
fix(asb): Allow history command to be run while asb is running (#82)
This applies the following PRs from upstream to our fork:
* fix(asb): Allow history command to be run while asb is running (#1724)
* Allow history command to be executed while asb is running by opening database in read-only mode (#1722)

---------

Co-authored-by: einliterflasche <einliterflasche@pm.me>
Co-authored-by: Einliterflasche <81313171+Einliterflasche@users.noreply.github.com>
2024-09-17 17:32:21 +02:00
binarybaron
34c97c59d9
ci(tauri): Sign darwin releases (#79) 2024-09-17 00:09:19 +02:00
binarybaron
e4ec084c2b
chore: change capitilization in gui preview release build action 2024-09-10 21:37:48 +02:00
binarybaron
143f813524
ci: explicitly publish to ghcr.io docker registry 2024-09-09 23:46:56 +02:00
binarybaron
0847ac3c2e
fix(Dockerfile): Update image to 1.79 rust and build from /swap directory 2024-09-09 22:40:27 +02:00
binarybaron
0a122d57d3
chore(swap): Disable cargo tauri integration feature by default (#74) 2024-09-09 22:08:50 +02:00
binarybaron
6a3a0a5458
Merge pull request #73 from UnstoppableSwap/gui/allow-logs-of-swap-button
feat(gui): Display logs of specific swap on press of button on history page
2024-09-09 21:49:45 +02:00
binarybaron
b95b178dd8
refactor(gui): Make WithdrawDialog logic explicit 2024-09-09 21:47:52 +02:00
binarybaron
453c842d37
fix(gui): Padding between input fields and alerts on InitPage 2024-09-09 21:47:20 +02:00
binarybaron
5e87be8a8b
feat(gui): Dedicated react component for truncating swap ids, peer ids, ... 2024-09-09 21:46:48 +02:00
binarybaron
c486ca5de9
feat(gui): Display logs of specific swap on press of button on history page 2024-09-09 21:31:54 +02:00
binarybaron
bd1a3db898
fix: Format cooperative redeem reject using thiserror (#1716) (#71) 2024-09-09 20:43:31 +02:00
binarybaron
063f9dbf9b
feat(gui, swap): allow change-address to be omitted and default to internal wallet (#68)
This PR:
- allows --change-address to be omitted and default to internal wallet address (https://github.com/comit-network/xmr-btc-swap/pull/1709). This is a change that is merged from upstream into our fork
- adds the necessary components for the tauri integration and the ui components to allow toggling between internal vs external refund address

Co-authored-by: binarybaron <86064887+binarybaron@users.noreply.github.com>
Co-authored-by: Einliterflasche <81313171+Einliterflasche@users.noreply.github.com>
Co-authored-by: Byron Hambly <byron@hambly.dev>
2024-09-09 19:47:15 +02:00
binarybaron
91482f1e16
ci: Publish docker images to ghcr.io instead of docker hub 2024-09-09 13:23:06 +02:00