* feat: use contrib/depends to build dependencies
* fix: bump min iOS sdk to 13
* fix: macos targets
* fix: show make output during build
fix: mingw linking issues
* chore: address AI review
* check target only once, stream make output to stdout, init ios project
* check whether patch is already applied before trying again
* copy contrib/depends to target dir and build dependencies there
* fix: use proper triplet for ios-sim
* fix(dprint): ignore monero_c, monero and monero-seed folders
* fix(swap): Missing import
* fix(ci): Add gperf as a required dependency for Linux
* add notes for unsafe usage to CLAUDE.md
* add clean command to justfile
* fix: minimumSystemVersion to 11.0 because tauri doesn't default behavior is wild
* update crunchy dependency to fix linux->windows cross compilation issue
* fix last commit
* link c++ std lib and libgcc statically on windows
* embed WebView2 Bootstrapper
* disable ccache on ios, update tauri deps, set minimumSystemVersion to 13.0
* fix
* fix: build env leaking into contrib/depends
* fix: version '-sim' in target triple 'arm64-apple-ios13.0-simulator-sim' is invalid
* get it working on ios
* Upgrade to nightly Rust toolchain for unstable features
- Change from Rust 1.85 to nightly to support yamux unstable features
- This resolves the unsigned_is_multiple_of compilation error
* fix
* WINDOWS WORKS
* Cargo.lock update
* android progress
* progress on gcc build script
* remove windows binary dependencies from git, running just prepare-windows-build will re-create them
* check for .dll's in src-tauri/build.rs and give hint how to build them
* document new build requirement
* add verification to gcc build script and error message when building windows from os other than linux
* fix windows build
* add just command for building windows ss
* fix script: remove sudo, copy dlls when finished
* move path setup to its own function
* fix
* try and fix ci
* extract setup to single action
* clean up ci
* add actions/checkout everywhere
* fix missing input prefix
* fix missing autoconf
* fix add build deps to env
* fix add build deps to env
* add deps for cross building windows
* fix action call
* only bundle dll's on windows
* use ubuntu-latest, install yarn, don't use swap
* add build dependencies, remove no longer existing docker test
* add aclocal to macos setup
* include macos build depends
* change platform -> host for setup-build-environment, use matrix for building binaries for all platforms
* fix: prepare build env for docker for ubuntu, don't get host value from matrix
* manually install rust target
* include openssl on ubuntu for sqlx
* build cargo cache once before building individual tests
* only manually install target if provided
* fix: don't need special syntax for variables in if condition
* fix libssl problem by upgrading sqlx cli
* fix: specify host for prepare_docker_tests
* a lot of fixes
---------
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: einliterflasche <einliterflasche@pm.me>
Co-authored-by: binarybaron <you@example.com>
Co-authored-by: Raphael <81313171+Einliterflasche@users.noreply.github.com>
* task(gui): update to mui v5
* task(gui): use sx prop instead of system props
* task(gui): update to mui v6 and replace makeStyles with sx prop
* task(gui): update to mui v7
* task(gui): update react
* fix(gui): fix import
* task(gui): adjust theme and few components to fix migration introduced styling errors
* fix(gui): animation issues with text field animations
* fix(gui): remove 'darker' theme and make 'dark' theme the default
- with the new update 'dark' theme is already quite dark and therefore a 'darker' theme not necessary
- the default theme is set to 'dark' now in settings initialization
* feat(tooling): Upgrade dprint to 0.50.0, eslint config, prettier, justfile commands
- Upgrade dprint to 0.50.0
- Use sane default eslint config (fairly permissive)
- `dprint fmt` now runs prettier for the `src-gui` folder
- Added `check_gui_eslint`, `check_gui_tsc` and `check_gui` commands
* refactor: fix a few eslint errors
* dprint fmt
* fix tsc complains
* nitpick: small spacing issue
---------
Co-authored-by: Binarybaron <binarybaron@protonmail.com>
Co-authored-by: Mohan <86064887+binarybaron@users.noreply.github.com>
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
- 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`.
This PR
- removes `tauriModel.ts` from git and instead
- generates `tauriModel.ts` everytime `vite` starts or `vite` detects a change in `swap/src/`
To do that I have introduced the `gen-bindings` and `check-bindings` commands as well as improved documentation. Following this PR, the Typescript bindings to our Tauri commands will be automatically re-generated upon the instant a source file is changed!
This closes#49