Commit graph

162 commits

Author SHA1 Message Date
Binarybaron
706aaf1fe7 fix(gui): simplify wallet seedphrase dialog open button 2025-10-05 23:02:58 +02:00
Binarybaron
65a46a4205 feat(gui): Remember acknowledged alerts and do not show them again 2025-10-05 22:51:20 +02:00
Binarybaron
0eda2f2fc9 amend: teeny tiny little change to address text field validation 2025-10-03 09:59:43 +02:00
Mohan
3912fd9584
feat(gui): Move refund/redeem policy into settings (#587)
* feat(gui): Move refund/redeem policy into settings

* automatically call buyXmr() when going on swap page

* add skeleton while buyXmr is loading

* remove unused TauriSwapProgressEvent::RequestingQuote

* improve init page with skeletons

* add icon to "Click to view offers" button

* add changelog entry

* add allowEmpty to BitcoinAddressText and MoneroAddressTextfield

* make onAddressValidityChange optional

* remove evan.md

* minor fixes
2025-10-03 09:57:16 +02:00
Mohan
7d019bfb30
feat(gui): Partially available global state (#593)
* feat(gui): Partially availiable global state

* move tauri command into own module

* move commands list into src-tauri/src/commands.rs

* cleanup swap/src/cli/api.rs

* add contextRequirement attribute to PromiseInvokeButton

* amend

* allow wallet operation on partially availiable context

* improvements

* fix some linter errors

* limit amount of logs to 5k

* keep behaviour from before

* make sure if swapId is null useActiveSwapLogs, return no logs

* remove unused variable

* create ContextStatusType enum
2025-10-02 21:28:12 +02:00
Binarybaron
3e86f40448 feat(gui): Clearly mark makers that have no available funds as having no available funds 2025-09-26 18:54:35 +02:00
Mohan
59f4f8e164
fix: PromiseInvokeButton chip button (#583)
* fix: PromiseInvokeButton chip button

* refactor
2025-09-26 17:07:05 +02:00
einliterflasche
adace17af3
Merge branch 'master' of https://github.com/UnstoppableSwap/core 2025-09-25 21:26:16 +02:00
binarybaron
9a44529fe1 feat(gui): deprecate and warn about makers running <3.0.0 2025-09-24 13:50:01 +02:00
einliterflasche
4905b2b068
fixes 2025-09-19 21:16:32 +02:00
Mohan
f2b23348d7
feat(monero-sys): Build system (#500)
* 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>
2025-08-27 16:45:59 +02:00
Binarybaron
5e8034312b feat(docs, cli, asb, gui): Add aswap.click and getxmr.st rendezvous points 2025-08-12 11:31:51 +02:00
Binarybaron
41f9b229cf nitpick(wallet): SeedPhraseModal close button style 2025-08-11 11:52:41 +02:00
Mohan
0a75ea6a19
feat(wallet): Export Monero seedphrase (#515)
* feat(wallet): Allow exporting Monero seed

* refactors, display restore height too
2025-08-11 11:51:19 +02:00
Binarybaron
660423f873 fix(gui): set node after context is ready 2025-08-11 10:58:57 +02:00
Mohan
7e6138570f
feat(gui): Change Monero node while running (#502)
* feat(gui): Change daemon during runtime

* feat(swap-controller): Add `monero-seed` RPC command

* nitpicks

* amend changelog
2025-08-11 10:34:40 +02:00
Mohan
9fa2363466
chore(rendezvous): add observer rendezvous point (#503)
* chore(rendezvous): list all default rendezvous points

* remove old discover_and_take.sh
2025-08-08 10:29:35 +02:00
Binarybaron
55ab1257c4 Update Donation address with GPG signature 2025-08-07 18:42:35 +02:00
Binarybaron
63c1234a40 fix(gui): Add white padding to QRCode 2025-08-07 16:32:58 +02:00
Mohan
97a4a31af9
feat: Orchestration & Controller (#492)
* fix: formatting in stress_test.rs

* refactor: move asb binary into swap-asb

* refactor(swap-asb): remove unused disable_timestamp argument

* fix(monero-sys): Include search path for aarch64-linux-gnu

* fix(swap): notpick formatting in swap.rs

* feat(swap-env): Split up config wizard, add default rendezvous points

* feat(swap-controller, swap-controller-api): Minimal maker shell with just a check-connection command

* fix(monero-rpc-pool): Use new axum route path syntax to prevent runtime panic

* feat(ci): Specify crate when building binaries; build asb-controller

* fix: Add swap-controller, swap-controller-api crates and their dependencies to Cargo.toml

* feat(Dockerfile): Build asb-controller; default to 1.87 rust toolchain

* feat(swap-orchestrator): Compose spec generator

* formatting: nitpicks

* fix: add swap-orchestrator auto generated files to gitginore

* refactoring(swap-orchestrator: Use Into<_> to derive asb::Network and electrs::Network from Bitcoin/Monero network, use defaults

* feat(swap-env): Change default bitcoin_confirmation_target to 1

* feat: Dockerfile for asb-controller, bitcoin-balance and monero-balance controller commands

* formatting: nitpicks

* changelog: default bitcoin finality confirmations change

* feat(ci): Build swap-orchestrator binary

* disable rpc server by default, split rpc-bind into rpc-bind-port and rpc-bind-host

* feat(swap-controller): Add monero-address command to print primary address of internal wallet

* chore: upgrade rustyline to 17.0.0

* changelog: Document CONTROLLER, ORCHESTRATOR and JSON-RPC server

* refactor: Change swap-orchestrator binary to just "orchestrator"

* refactor: let RpcServer::start(...) take port and host seperately

* default electrum servers in config wizard

* formatting

* feat(swap-orchestrator): README

* feat(swap-controller): Add Multiaddresses and ActiveConnections command

Signed-off-by: Binarybaron <binarybaron@protonmail.com>

* refactor(asb/event_loop.rs): Move quote logic and tower service into their own modules

* fix(swap): some unit tests

* feat(swap-controller): redumentary repl command auto complete

* formatting

* feat(swap-orchestrator): Burn Git commit hash into orchestrator binary

* feat(swap-orchestrator): burn git commit hash into binary when building from source

* feat(Dockerfiles): Build with --locked

* feat: derive ports for images from network combination

add some doc into the docker compose file

* small refactorings

* feat(swap-controller): Add get-swaps command

* feat: add more default electrum mainnet nodes

* feat: build asb-controller docker image in ci, move asb Dockerfile into swap-asb

* fix: do not allow pre-built docker images for now

* amend changelog

* remove default monero_daemon_url, default to None (Monero RPC pool)

* unify asb and orchestrator wizard for monero daemon url setup

---------

Signed-off-by: Binarybaron <binarybaron@protonmail.com>
2025-08-06 15:33:41 +02:00
Mohan
b0b8df8101
feat(monero-rpc-pool): TCP pool (#497)
* change monero-rpc-pool logs to trace

* feat(monero-rpc-pool): Cache TCP connections

* just fmt

* check if tx_lock was previously published

* move network into config struct, add stress-test bin

* small fixes

* amend

* use monero network type

* use monero netowkring type everywhere

* amend

* amend changelog

* use existing swap-serde types
2025-08-04 14:22:39 +02:00
Mohan
0936d6210e
fix(swap): Split approve-and-sign and publish-lock-tx into two states (#498)
* fix(swap): Split approve-and-sign and publish-lock-tx into two states

* fix: cannot get blockchain height

* add RetrievingMoneroBlockheight, RetrievingMoneroBlockheight tauri events

* propagate daemon blcok height fetch error, treat height 0 as error

* check if tx_lock was previously published
2025-08-04 11:46:57 +02:00
Binarybaron
2039212f0c feat(gui): Add swapanarchy.cfd, darkness.su and eigen.center rendezvous points 2025-08-03 20:48:08 +02:00
Mohan
d7031fdcfb
chore: Upgrade bdk to 2.0.0 (#494)
* chore: Upgrade bdk to 2.0.0

* bump

* fix some clippy stuff
2025-08-03 01:55:40 +02:00
Mohan
d21baa8350
refactor(monero-rpc-pool): ureq -> raw hyper (#487)
* refactor(monero-rpc-pool): ureq -> raw hyper

* whitelist "getblocks.bin", refactor config constructors, use arti-client, record lowerst seen block height, small style changes

* display effective bandwidth

* compact wallet overview page a bit

* record latencies correctly

* add setting for monero tor routing, add ssl support for hyper, lengthen window duration for bandwidth tracker

* remove unwrap

* refactor ui

* dont fail silently tor bootstrap

* some workarounds for buggy wallet2 stuff
2025-08-01 12:02:07 +02:00
Mohan
69ddd2486d
feat(gui): DFX.swiss integration (#451)
* feat(gui): Monero wallet

* progress

* refactor

* progress, dont delete wallet, re-fetch approvals and background periodically

* show transaction history correctly

* Enable fetching tx hashes

* Try add the wallet listener event callbacks, not working

* fix: Redeem XMR to internal main wallet, not temp wallet

* feat(monero-sys): Support signing messages

* feat(gui): DFX.swiss integration

* refactor: format, slight refactorings

* progress

* type safety

* refactoring of callback system

* make free floating functions generic

* refactor: Format files

* refactor(gui): Split wallet components and redesign balanceOverview component

* refactor(gui): Add action buttons and transaction section

* wrapper event listener

* progress, compiles

* works!

* WORKS! Event received on balance change

* refactor: format and slight refactorings and comments

* refactor(gui): Start with implementation of send dialog

- new number input
- new button variant and size

* add @tauri-apps/plugin-dialog

* feat(gui): Add permissions for file dialog

* fix(monero-harness): Compile issue

* feat(gui): Extract seed from Monero wallet and use for derivation, allow opening existing wallet file

* feat(gui): Always refresh the approval list from frontend when resolving

* fix(monero-rpc-pool): Implement Into<String> for ServerInfo

* fix(monero-sys): Use oneshot channel for all wallets

* feat(gui, monero-sys): Display recently opened wallets

* small refactors

* fix(gui): Enable background_sync, display temp "Loading..." if values are null

* feat(gui): Remove headers from pages, show selected navigation item

* feat(gui): Explicitly tell user if no swaps have been made yet

* feat(gui): send sync and history updates

* feat(gui): Fetch monero wallet details when context becomes availiable

* feat(gui): Display Monero primary address without modal

* feat(gui): Make "swap" button on wallet page take you to "/swap"

* feat(gui): Rework send modal, adjust number input, added send to field

* feat(gui): set block restore height, not working

* refactor(gui): Optimize number input and add support for switching between currency

* feat(gui): Display real fiat currency prices in send modal

* feat(gui): Add error message for too high send amount

* feat(gui): Modern UI for SeedSelectionDialog

* feat(gui): Wrap MoneroWalletActions

* wip

* refactoring approval callback

* feat(gui): Send Direction of Transaction in History to Frontend

* feat(gui): Let user approve transaction before publishing

* feat: Display 8 digits for Monero amounts by default

* feat(monero-sys): Store pending (non published) transactions in Mutex map inside wallet thread

This allows seperating signing and publishing transactions cleanly

* dprint fmt

* fix(gui): Refresh Monero wallet history C++ struct before serializing

* feat(monero-rpc-pool): Fail after three JSON-RPC errors

* feat(monero-sys): Add wrapper around verify_wallet_password

* feat(gui): Allow opening password-protected Wallets

* refactor: fmt, remove receive button

* fix(gui): Convert to XMR before converting into Fiat

* feat(gui): Add dialog for setting restore height

* feat(gui): block height can be changed, blocks when too low

* refactor(monero-sys): Remove old WalletListener code

* feat(gui): Continually ask for user to select wallet and enter password, if user rejects, offer to select different wallet

* refactor(swap): Extract "select Monero wallet" into own function

* refactor(tauri): Dont kill monero-wallet-rpc

* refactor(tauri): Avoid multiple concurrent Contexts starting

* refactor: Change "Cancel" to "Change wallet" on PasswordEntryDialog

* feat(gui): show curent block height, fix blockage

* Cargo.lock update

* refactor(monero-sys): Use match instead of is_err() and expect(...)

* refactor: better context for WalletHandle constructor method errors handling

* refactor(monero-sys): Common open_with<F>(path: String, daemon: Daemon, wallet_op: F) function

* feat: check empty password before requeston password for wallet

* feat: Remove "Checking for available remote nodes" from frontend

* feat(gui): Allow sweeping entire Monero balance

* feat(monero-rpc-pool): Keep alive TCP connections, do not record JSON-RPC errors as failure if >=3 nodes failed

If >=3 nodes failed we assume it was an actual issue on our side, not an issue with the node

* refactor(swap): Remove dead code

* add comment to WalletHandleListener::on_refreshed{...}

* feat(gui): show current block height in the field

* refactor: remove unused UserCancelledError;

* refactor: No Arc<Mutex<_>> for Pending TXs map

* refactor: remove redundant } catch (error) {

* feat: add our new crates to `OUR_CRATES` in tracing util

* fix(gui): Add math.ceil to piconero conversion to ensure integer

* fix(gui): Close menu when option is clicked

* review and improve/reduce uses of unsafe, also remove unique_ptr wrapper around TransactionHistory to avoid double free

* fix(gui): Use monero amount from units.tsx

* fix(gui): Use PromiseInvokeButton for simplification for approving of send transaction

* update comment, rename function

* refactor(gui): Fix alignment of amounts

* refactor(gui): Remove sending and refreshing states from wallet

* fix(cli, gui): use old seed flow on no tauri, fix minor issues in gui

* fix: use the new named function

* refactor(gui): Add skeletons for monero wallet when still loading

* fix

* get working

* feat(gui): Add tooltip to buy monero button

* refactor: Format files

* refactor(gui): Do not store logs in redux-persist

---------

Co-authored-by: Maksim Kirillov <maksim.kirillov@staticlabs.de>
Co-authored-by: b-enedict <benedict.seuss@gmail.com>
Co-authored-by: einliterflasche <einliterflasche@pm.me>
2025-07-28 11:00:33 +02:00
Mohan
65a3ebdbe2
refactor(gui): Do not store logs in redux-persist (#476)
* refactor(gui): Do not store logs in redux-persist

* amend fmt
2025-07-23 22:13:56 +02:00
Mohan
1ad4bcadf5
feat(gui): Rework transaction history ui (#470)
Co-authored-by: b-enedict <benedict.seuss@gmail.com>
2025-07-18 15:33:59 +02:00
Binarybaron
c1c45571f0 dprint fmt 2025-07-18 15:24:03 +02:00
Mohan
a7823d7489
feat(gui): Monero wallet (#442)
* feat(gui): Monero wallet

* progress

* refactor

* progress, dont delete wallet, re-fetch approvals and background periodically

* show transaction history correctly

* Enable fetching tx hashes

* Try add the wallet listener event callbacks, not working

* fix: Redeem XMR to internal main wallet, not temp wallet

* type safety

* refactoring of callback system

* make free floating functions generic

* refactor: Format files

* refactor(gui): Split wallet components and redesign balanceOverview component

* refactor(gui): Add action buttons and transaction section

* wrapper event listener

* progress, compiles

* works!

* WORKS! Event received on balance change

* refactor: format and slight refactorings and comments

* refactor(gui): Start with implementation of send dialog

- new number input
- new button variant and size

* add @tauri-apps/plugin-dialog

* feat(gui): Add permissions for file dialog

* fix(monero-harness): Compile issue

* feat(gui): Extract seed from Monero wallet and use for derivation, allow opening existing wallet file

* feat(gui): Always refresh the approval list from frontend when resolving

* fix(monero-rpc-pool): Implement Into<String> for ServerInfo

* fix(monero-sys): Use oneshot channel for all wallets

* feat(gui, monero-sys): Display recently opened wallets

* small refactors

* fix(gui): Enable background_sync, display temp "Loading..." if values are null

* feat(gui): Remove headers from pages, show selected navigation item

* feat(gui): Explicitly tell user if no swaps have been made yet

* feat(gui): send sync and history updates

* feat(gui): Fetch monero wallet details when context becomes availiable

* feat(gui): Display Monero primary address without modal

* feat(gui): Make "swap" button on wallet page take you to "/swap"

* feat(gui): Rework send modal, adjust number input, added send to field

* feat(gui): set block restore height, not working

* refactor(gui): Optimize number input and add support for switching between currency

* feat(gui): Display real fiat currency prices in send modal

* feat(gui): Add error message for too high send amount

* feat(gui): Modern UI for SeedSelectionDialog

* feat(gui): Wrap MoneroWalletActions

* wip

* refactoring approval callback

* feat(gui): Send Direction of Transaction in History to Frontend

* feat(gui): Let user approve transaction before publishing

* feat: Display 8 digits for Monero amounts by default

* feat(monero-sys): Store pending (non published) transactions in Mutex map inside wallet thread

This allows seperating signing and publishing transactions cleanly

* dprint fmt

* fix(gui): Refresh Monero wallet history C++ struct before serializing

* feat(monero-rpc-pool): Fail after three JSON-RPC errors

* feat(monero-sys): Add wrapper around verify_wallet_password

* feat(gui): Allow opening password-protected Wallets

* refactor: fmt, remove receive button

* fix(gui): Convert to XMR before converting into Fiat

* feat(gui): Add dialog for setting restore height

* feat(gui): block height can be changed, blocks when too low

* refactor(monero-sys): Remove old WalletListener code

* feat(gui): Continually ask for user to select wallet and enter password, if user rejects, offer to select different wallet

* refactor(swap): Extract "select Monero wallet" into own function

* refactor(tauri): Dont kill monero-wallet-rpc

* refactor(tauri): Avoid multiple concurrent Contexts starting

* refactor: Change "Cancel" to "Change wallet" on PasswordEntryDialog

* feat(gui): show curent block height, fix blockage

* Cargo.lock update

* refactor(monero-sys): Use match instead of is_err() and expect(...)

* refactor: better context for WalletHandle constructor method errors handling

* refactor(monero-sys): Common open_with<F>(path: String, daemon: Daemon, wallet_op: F) function

* feat: check empty password before requeston password for wallet

* feat: Remove "Checking for available remote nodes" from frontend

* feat(gui): Allow sweeping entire Monero balance

* feat(monero-rpc-pool): Keep alive TCP connections, do not record JSON-RPC errors as failure if >=3 nodes failed

If >=3 nodes failed we assume it was an actual issue on our side, not an issue with the node

* refactor(swap): Remove dead code

* add comment to WalletHandleListener::on_refreshed{...}

* feat(gui): show current block height in the field

* refactor: remove unused UserCancelledError;

* refactor: No Arc<Mutex<_>> for Pending TXs map

* refactor: remove redundant } catch (error) {

* feat: add our new crates to `OUR_CRATES` in tracing util

* fix(gui): Add math.ceil to piconero conversion to ensure integer

* fix(gui): Close menu when option is clicked

* review and improve/reduce uses of unsafe, also remove unique_ptr wrapper around TransactionHistory to avoid double free

* fix(gui): Use monero amount from units.tsx

* fix(gui): Use PromiseInvokeButton for simplification for approving of send transaction

* update comment, rename function

* refactor(gui): Fix alignment of amounts

* refactor(gui): Remove sending and refreshing states from wallet

* fix(cli, gui): use old seed flow on no tauri, fix minor issues in gui

* fix: use the new named function

* refactor(gui): Add skeletons for monero wallet when still loading

* refactor(gui): Remove isLoading from wallet slice

* feat(gui): Add success dialog after send transaction was approved

* fix(gui): Floor piconero amount in sendMoneroTransaction

* feat(gui): Allow view on explorer button on send success modal

* feat(backend): save the wallet state on events

* fix(structure): move throttle into its own crate

* fix(log): remove spammy logs

* fix(logs): log folder in confid

* remove "sync progress: " log

* small refactors

* save wallet at most every 60s

* remove useless logs

* underscore unused variables

* feat(gui): Add timestamp of the tx

* feat(gui): Add the legacy wallet init option

* legac ybutton

* Fix(gui, asb): reverse the log config
remove log in bridge.h
cleanup

* use none for .store(..)

* display dot for running swap

---------

Co-authored-by: Maksim Kirillov <maksim.kirillov@staticlabs.de>
Co-authored-by: b-enedict <benedict.seuss@gmail.com>
Co-authored-by: einliterflasche <einliterflasche@pm.me>
2025-07-18 15:08:36 +02:00
Mohan
e3e1ff5f17
rebranding: eigenwallet (#461)
* rebranding: Change github/UnstoppableSwap to github/eigenwallet

* rebranding: change Unstoppable -> eigenwallet in a bunch of places

* rebranding: change tauri icon
2025-07-17 16:31:29 +02:00
Binarybaron
c970dcdd4e rebranding: Change github/UnstoppableSwap to github/eigenwallet 2025-07-16 15:58:27 +02:00
Binarybaron
b8204d5352 feat(gui): Hide redeem to internal address for now 2025-07-09 09:48:00 +02:00
Mohan
7b67dce140
feat(gui): Redeem to internal Monero wallet (#448)
* fmt

* remove old stuff

* refactor
2025-07-04 15:50:23 +02:00
Binarybaron
293ff2cdf3 fix(gui): "Approval not found or already handled" 2025-07-04 13:40:54 +02:00
Mohan
210cc04ced
feat(gui, cli): Request quotes concurrently at all sellers (#429)
* feat(gui): Implement base structure for new swap ux

- refactored file structure to match common projecte structure
- implement step get bitcoin

* feat(gui): Implement basic multi step modal

* feat(gui): Add outline of add choose maker and offer step

* feat(gui): Add receive address selector

* refactor(gui): format code

* feat(gui): Make Swap Overveiw interactive

* feat(gui): Add action to swap amount selector to quickly go to deposit bitcoin step

* progress

* feat(gui, cli): Request quotes concurrently at all sellers

* refresh offers occasionally, display progress

* progress

* feat(gui, cli): Request quotes concurrently at all sellers

* refresh offers occasionally, display progress

* progress, works again

* allow closing dialog without warning if no funds have been locked

* progress

* feat(gui): Rewrite Swap Components to have flow directly on swap page

* feat: log monero_rpc_pool only at >= INFO level

* remove full_url, add migration to change scheme of node.monerodevs.org to http

* feat: send known_quotes with WaitingForBitcoinDeposit Tauri progress event (even if our balance is too low)

* lock swap lock later

* refactor(monero-rpc-pool): Pass around tuple of (scheme, host, port) as nodes

* refactor(gui): Remove modal for swap and adjust few pages for swap process

- Moved files from swap modal to page directory
- Use new layouts for init page
- Use new layout for depositBTC Step
- Use new layout for Offer Page

* allow cancel before lock

* remove unused code

* dynamic layout, chips for amounts

* feat(gui): Add breakpoints

* remove continue button, add select button on each maker box

* add GetCurrentSwapArgs tauri command to only suspend swap if one is actually running

* feat(gui): Show all known quotes and disable the ones that aren't available

* fix get_current_swap, kill tasks when buy_xmr is cancelled

* cleanup: remove CleanupGuard

* feat(gui): Add cancel button on every page

* refactor(gui): Fix merge issues

* refactor(gui): Unify Cancel Button insertion by using a swap base page

* refactor(gui): Unify Cancel Button insertion by using a swap base page

* refactor(gui): Remove deeply nested relative paths

* refactor(gui): Made BaseSwapPage obsolete by moving Cancel Button to SwapStatePage

* refactor(gui): Adjust condition for showing SwapSuspendAlert

* fix(gui): Fetch previous monero redeem addresses repeatedly

* refactor(gui): Remove QR Code from deposit and choose maker page

* refactor(gui): Don't display dialog on History page

* fix(gui): If no swap was running "suspend_current_swap" will still return success now, less logic in the CancelButton

* get offer select working

* refactor: dont display cancel button on set redeem address page

* feat: add pagination to offers

* refactor

* emit partial events for list_sellers

* refactor: remove torSlice

* refactor: use sync (non tokio) mutex for approvals

* throttle getSwapInfo calls

* feat: add debug page back, add info in suspend dialog about what will happen

* refactor: format files

* refactor(gui): Remove sortMakers method and replace with method that sorts approvals

* refactor(gui): Refactor swap page structure

* fix(gui): Add breakpoints to swapSetupInflightPage

* feat(gui): Add flag for outdated makers

* refactor(gui): Reduce fetch rate for maker quotes

* fix(gui): Debug Window size

* no unwrap

---------

Co-authored-by: b-enedict <benedict.seuss@gmail.com>
2025-07-02 16:21:36 +02:00
Mohan
7606982de3
feat: Recover from / write down seed (#439)
* vendor: seed crate from monero-serai

* refactor: make approval type generic over respone from frontend

* progress

* Raphaels Progress

* feat(gui): seed import flow skeleton

* fix(gui): Seed import in the development version

* fix(gui): specify the imported seed type

* remove initializeHandle, make tauri handle non optional in state, dont allow closing seed dialog

* feat(gui): check if seed is valid dynamically

* fix(gui): refine the dynamic seed validation

* push

* progress

* progress

* Fix pending trimeout

---------

Co-authored-by: Maksim Kirillov <artist@eduroam-141-23-183-184.wlan.tu-berlin.de>
Co-authored-by: Maksim Kirillov <artist@eduroam-141-23-189-144.wlan.tu-berlin.de>
Co-authored-by: Maksim Kirillov <maksim.kirillov@staticlabs.de>
2025-07-02 14:01:56 +02:00
Binarybaron
b8982b5ac2 dprint fmt 2025-06-30 16:47:20 +02:00
Mohan
9a04bd5682
feat(protocol, wallet): Reveal enc sig fast (#357)
* feat(asb, cli): Add safety margin to chosen Bitcoin fee for pre-signed transactions

* feat(gui): Add Context init overlay

* feat(protocol): Reveal enc sig fast (before full 10 confirmations)

* feat(wallet): Use mempool.space as a secondary fee estimation source

* log libp2p crates

* revert useless stuff

* remove unused elements in state machine

* remove redundant diff

* minimize diff

* dont make xmr_lock_tx_target_confirmations optional

* pass target conf in listener callback for monero txs

* refactor

* refactor

* nitpicks

* feat: add migration file for xmr field in state3, state4, state5 and state6

* revert .gitignore

* add monero_double_spend_safe_confirmations to env.rs

* change durations in  SwapStateStepper.tsx

* remove unused helper functions

* use env_config.monero_double_spend_safe_confirmations in state machine

* refactor

* Update src-gui/src/renderer/components/modal/swap/pages/in_progress/WaitingForXmrConfirmationsBeforeRedeemPage.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix label for retry op

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-30 16:42:53 +02:00
Binarybaron
b2c2c93d53 fix(gui): Display amounts correctly (as pool.percentage is between 0 and 1) 2025-06-26 11:20:25 +02:00
Mohan
e1edcf1998
fix(gui): "Address pool does sum up to 1" 2025-06-26 10:50:26 +02:00
Binarybaron
e73a418cd2 fix: assert that Monero address pool sums to one 2025-06-25 19:42:55 +02:00
Binarybaron
a48652328c fix(gui): Formatting of new approval dialog 2025-06-25 19:07:42 +02:00
Raphael
11b891f530
feat(gui): Voluntary donations (#418)
* poc: monero receive pool with multiple redeem addresses for bob with given ratios

* fix: use new monero_receive_pool arg for buy_xmr

* update sweep/sweep_multi to return TxReceipt instead of String containing txid

* fix test (generate 1 block before checking balance after transfer)

* add move distribute function to rust, add property tests

* use rust distribute

* update sqlx cache/tempdb

* sqlx fix

* feat: update ui to display the monero address pool

* fix: remove unused functions, set dispatcher for tracing in wallet threads, use new subtract_fee wallet2 functionality

* Add patch system

* add wallet2_api_allow_subtract_from_fee patch

* apply git patches

* split monero-sys patches into chunks

* refactor

* .sqlx needs to be commited, revert unbound issue

* display pool on XmrRedeemInMempoolPage.tsx page, commit .sqlx folder

* fmt

* refactor

* assert MoneroAddressPool is on correct network, differntiate between stagenet and mainnet donaiton address

* looks ok

* re-add retry logic, database errors, ...

* add test

* add tests

* fmt comments, changelog

---------

Co-authored-by: Binarybaron <binarybaron@protonmail.com>
2025-06-25 16:37:47 +02:00
Matroskine
cd4aa5201a
fix(gui): Monero regex issue, context initialize issue (#437)
Co-authored-by: Maksim Kirillov <artist@eduroam-141-23-183-184.wlan.tu-berlin.de>
2025-06-25 11:13:22 +02:00
Mohan
ec053404f7
refactor(workspace): extract logic into electrum-pool crate (#433)
* feat(workspace): add electrum-pool crate

* use patched monero crate, remove changelog entry for refactor

* fix deps

* fix
2025-06-23 15:53:43 +02:00
Mohan
b72925ca18
fix(monero-rpc-pool): Keep tasks alive, display retry rate last 200 ops (#423)
* fix(monero-rpc-pool): Keep background tasks alive, display retry rate last 200 ops

* refactors

* if moneor node is offline, use pool

* refactors
2025-06-19 23:08:50 +02:00
Binarybaron
2cc1d0e7e5 bump version: 2.3.0-beta 2025-06-19 02:05:08 +02:00
Mohan
ff5e1c02bc
feat(monero): Remote node load balancing (#420) 2025-06-19 01:35:34 +02:00
Mohan
2e6d324ab8
feat(monero-sys): Monero bindings (#303)
* feat(monero-sys): Initial commit. Regtest integration test. Wrapper around basic Wallet functions, depends on monero#9464

* refactor: remove unused monero-wallet crate

Removed the monero-wallet crate which was not being used anywhere in the codebase,
simplifying the project structure.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* change order of members in Cargo.toml

* fix monero submodule problem

* progress

* continue

* fix tests

* fix tests again

* introduce error handling

* update error message

* implement Wallet::sync

* add swap progress

* fix import path

* add check_tx_key, transfer, switch to anyhow

* add more functionality

* fix test -- todo: why is manager.connected() failing?

* update Cargo.lock

* cleanup api and tests, add wait_until_synced

* show lib tracing in test

* add wallet_dir to wallet manager, fix tests, start integration into swap

* add main/default wallet to WalletManager

* continue integration, add wait_for_confirmations

* feat(ci): Install Monero build dependencies

* feat(ci): extract monero build instructions into compose file, run monero-sys integration tests in ci.yml

* fix compile errors and monero-sys/tests

* satisfy clippy

* update git CI to checkout git submodules

* fix again: init submodules

* fix?

* fix(ci): increase max size of ccache to 10G

* fix(ci): Include manual build step for Monero before running cargo

* add armhf sources for apt

* add armhf before running apt update

* fix(monero-sys): MACOSX_DEPLOYMENT_TARGET=11.0

* remove armhf apt dpkg arch

* fix BlockHeight serialization breakage

* ci: make only binaries not tests

* fix: let tauri ignore changes to monero-sys/monero

* fix: don't implement Sync for monero-sys types, change close_wallet

* move mutex into Wallet

* close wallet on drop (test still failing)

* pipe monero logs to tracing

* do not emit c++ perf logs, add comments

* get test wallet_closing to pass

* fix(ci): increase swap file to allow fix issue where runners would run out of memory

* fix(ci): use make -j4 release everywhere

* fix: run ci on self hosted runner (more ram)

* start changing to dedicated wallet threads

* complete move to dedicated wallet threads

also improve various minor things.
tests not passing

* satisfy clippy

* add traces

* refactor monero-harness to use monero-sys

tests still fail because there is a connection is-
sue between the wallet and monerod.

* fix: wallet doesn't connect to monerod in harness

test still failing because the miner wallet doesn't
recognize its balance

* make minimal progress

* no progress

* fix(monero-sys): Build on x_api_add_new_functions_release, which has been rebased on release and includes criticial fixes

* feat(gui): Add a Introduction for new users (#287)

* feat(gui): add IntroductionModal component

* feat(gui): add interactivity to IntroductionModal

* feat(gui): create SlideTemplate component for IntroductionModal Slides

* feat(gui): add generic slides to IntroductionModal with images and content

* feat(gui): add Slide with SwapStatusAlert to IntroductionModal

* feat(gui): show the introduction only on the first app start

* feat(gui): make external links functional

* fix(gui): update github link to link to active repo

* feat(gui): replace old images with new mockups and update Slide05 content

* feat(gui): add CardSelectionGroup and CardSelectionOption components for improved card selection UI

* feat(gui): add FiatPricePreference slide to IntroductionModal

* feat(gui): save user preference regarding fiat prices

I set the initial store configuration for fetching fiat prices to false to avoid any calls to coingecko without user consent

* refactor(gui): remove old Slide05 component for improved codebase maintenance

* fix(gui): add UnstoppableSwap logo to FiatPricePreference slide

* refactor(gui): update image imports and improve slide content for introduction modal

* fix(gui): introduce ExternalLink component and update Slide05 to use it for external navigation

* fix(gui): replace webp images for introduction with svg mockups for improved quality

* fix(gui): change order of introduction slides, to asking for fiat price preference at the end

* refactor(gui): implement CardSelectionContext for managing card selection state

* refactor: texts in intro modakl

* fix(gui): update currency fetching SVG for improved design and clarity

* feat(gui): added changelog entry for introduction

---------

Co-authored-by: Binarybaron <binarybaron@protonmail.com>

* feat(swap): Upgrade monero-wallet-rpc to v0.18.4.0 (#314)

* Prepare release 1.0.0-rc.20 (#315)

Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>

* feat(ci): Limit ci.yml to one concurrent running job per git branch (#316)

* fix(ci): Set yarn network-timeout to 10 minutes to avoid spurious network failures (#317)

* feat(docs): Add darkness.su rendezvous point to docs

* fix(gui): Fetch alerts only once

* Prepare release 1.0.0-rc.21 (#318)

Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>

* upgrade(swap): Concurrent syncing, bdk upgrade, refactors (#180)

* upgrade sqlx to 0.8, add bdk_wallet and bdk_electrum

The new dependencies are part of the bdk upgrade and
include the improved wallet code.
They, too, depend on sqlite3.
However, they use a newer version than we currently use via sqlx.
This necessitated the sqlx upgrade.
This entailed trivial changes (use Pool directly instead of pool.acquire()).
We might have to fix the CI as well, I kept getting compile
errors from the macro until I ran swap/sqlx_dev_setup.sh.

* move old wallet code to extra module

* fix fee estimation for old client

* bump bitcoin crate, add new wallet constructor

* remove unused old Client, move code around for better readibility

* make Wallet generic over Persister (database) and move more code around for readibility

* add script history, start reimplementing client methods

* update some imports

* cargo fmt

* Add comments, fix fee estimation, address generation and status_of_script

* redo state update and wallet sync

* fix bitcoin address validation and more imports, use Amount everywhere

* fix tx cancel, lock, punish, redeem, refund

* fix bitcoin::Address de-/serialisation

* fix more address validation

* fix more address parsing and validation, also some more imports

* cargo fmt

* fix wallet initialization, start wallet migration

* fail test instead of ignoring it

* perform full scan on creation, load from db if it exists

* add more wallet info, fix wallet initialization

* fix: default to null in config

* migrate from old wallet if needed

* change something

* fix some tests

* temporarily patch bdk_wallet and bdk_electrum

* fix more tests

* fix missing rustls

* asb: only start tor client if register_hidden_service=true in the config

* fix: use p2wsh_signature_hash instead of p2wpkh_signature_hash

* fix some bitcoin address parsing and fee rate parsing

* dprint fmt

* add bitcoin-harness to this project and update to the new bitcoin version

* fix max_givible again

* create electrum client separately from wallet, clean up some code

* add comment

* ignore .env.development

* log config file path on ./asb config

* feat(monero-sys): Initial commit. Regtest integration test. Wrapper around basic Wallet functions, depends on monero#9464

* Revert "feat(monero-sys): Initial commit. Regtest integration test. Wrapper around basic Wallet functions, depends on monero#9464"

This reverts commit 14a5b4c348a109d2524657ffeba306422458ea44.

* upgrade to rust toolchain 1.81

* Use new bdk update for code from master

* fix

* remove

* fix: add empty .gitmodules file to fix Docker build

* fix: clean up submodule references

* fix: properly declare monero submodule with ignore flag

* fix(wallet, bdk): only reveal new address if absolutely necessary

* fix: private keys not loaded into bdk wallet

* refactor: sync wallet progress log

* dprint fmt

* refactor: move bitcoin-harness to outside repo

* refactor: remove redundant log message

* Display sync progress

* Remove redundant arg to  swap/tests/harness/mod.rs function

* fix: call rustls::crypto:💍:default_provider()

* dprint fmt

* refactor: remove debug code

* refactor: move old bdk wallet export to own function, clear log messages

* remove old migr for testnets (checksum mismatch), remove balance and stringified last revealed addresses from migration export

* use revalidate_network function, remove redundant drop

* Display progress of background tasks, TauriBackgroundProgressHandle struct

* fix: almost satisfy clippy

* fix: gen-bindings error

* feat: add BackgroundRefund background type

* feat: use builder pattern for constructing Bitcoin wallet

* dprint ftm

* sync electrum in seperate thread

* do not allow user to start sync while sync is in progress

* remove redundant log message

* display random buffer in AlertWithLinearProgress progress

* fix: use TauriContextStatusEvent.Available), dont show syncing wallet spinner if not syncing

* differentiate between TestWalletBuilder and WalletBuilder

* satisfy clippy

* remove custom BackgroundRefund event, move into background process architecture

* refactor

* dprint fmt

* progress: get unit tests compiling

* fix: bitcoin unit tests specify const values like sync_interval

* fix: get unit tests passing

* make clippy happy

* feat: display full sync progress, fix unit test import issues

* dprint fmt

* make clippy happy, use u32 for target_block and not usize

* always spawn tor for asb

* refactor: remove gen_background_progress_id and just use Uuid::new_v4()

* refactor(hooks.ts): clarify comment on useConservativeBitcoinSyncProgress

* fix typo

* refactor: do not let WalletBuilder take entire env struct

* dprint fmt

* refactor: remove default feature from workspace patch of bdk

* first try for concurrent syncing

* refactor: concurrent syncing

* fix(wallet.rs): Safely convert FeeRate from btc / kb to sats / kwu

* feat(wallet.rs): persist published Bitcoin transactions without requiring re-scan

This allows us to compute an updated Bitcoin balance without requiring a re-scan

* refactor(wallet.rs): use just 5 concurrent sync requests

* refactor: display snackbar error when Wallet refresh fails

* fix: add missing space

* dprint fmt

* refactor: fancy traits for the CumulativeProgress struct, allow limiting amount of callback calls

* make clippy happy

* dprint fmt

* refactor: clearly differntiate between SyncMutex and TokioMutex, use traits for converting to Arc<Mutex<_>>, move sync_ext into own moid

* fix: skip syncing if no spks in wallet

* fix: update bdk.sh to test migration from old wallet (pre 1.0.0 bdk) to new bdk

* fix: increase bitcoin_lock_confirmed_timeout in RegTest env to 5 minutes

* refactor: avoid usize where possible, create persistence only after full scan, transmit assumed_total for full scan to tauri, add some icons to progress displays

* make clippy happy

* fix(ci): change rust toolchain 1.81

* fix(cross compilation arm): use ring instead of aws-lc-rs

* fmt

* ignore failing rendezvous tests

* fix printing_status_change_doesnt_spam_on_same_status

* fix: given_bitcoin_address_network_mismatch_then_error test

* ignore list_sellers_should_report_all_registered_asbs_with_a_quote test

* feat: add tor icon

* refactor(wallet.rs): reorder struct by abstraction level

* refactor(bitcoin wallet): chunk size for syncing

* fix(integration tests): decrease sync interval to 3s

* fix(integration tests): parse_rpc_err method to take new bdk error, not old one

* add changelog entry

---------

Co-authored-by: Binarybaron <binarybaron@protonmail.com>
Co-authored-by: Mohan <86064887+binarybaron@users.noreply.github.com>

* amend: CHANGELOG.md

* Prepare release 1.1.0-rc.1 (#325)

Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>

* fix(ci): Extract gen-bindings-verbose from gen-bindings

* Prepare release 1.1.0-rc.2 (#326)

* amend: add comma after new package.json entry

* revert: delete rc.1, rc.2 releases

* Prepare release 1.1.0-rc.3 (#327)

Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>

* fix: Issues with 1.1.0-rc (#328)

* bump(rust): Toolchain to 1.82

* bump(tauri): Bump some Tauri peer-dependencies

* fix(gui): Prefer maker with known version, bump MIN_ASB_VERSION to 1.1.0-rc.3

* amend: CHANGELOG.md

* Prepare release 1.1.0 (#329)

* feat: log enviroment info (#332)

* Add justfile (#335)

* fix(swap): Add retry logic for Bitcoin wallet sync (#333)

* docs: add repo overview (#337)

* Prepare release 1.1.1 (#338)

Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>

* rebase

* add monero-sys to swap/Cargo.toml

* progress rebase

* rebase

* Fix integration test

* Fix tests then break them again

* fix monero integration test harness

Integration tests were failing because the wallet/
node couldn't keep up with the amount of blocks we
generated and took some time before it even reali-
zed it was out of sync.
That lead to unrecognized balances.

Fix: we wait 0.25 seconds between each new block.
This gives the wallet/node enough time to realize
it's out of sync.

* Fix errors - happy_path goes to btc is redeemed

* fix: couldn't create walllet from keys

By not using an empty password

* fix happy_path: refresh wallet before sweeping

* Handle missing Monero node (#348)

* Allow automatic Monero node selection

* amend

* remove unused bridge.h file

* fix(ci): Use ubuntu-latest instead of self hosted runner

* fix(Dockerfile): Use rust 1.82, install apt packages required for Monero compilation

* add docs

* use scan_transactions instead of syncing monero wallet

When redeeming the Monero we, instead of doing a full scan,
simpyl import the Monero lock transaction by it's id.
This avoids a full scan before redeeming and should speed up the process
siginficantly.

* uniform naming of monero lock_transfer_proof and migration

* breaking: re-send lock transfer proof in cooperative redeem response

* add retry logic to blockchain height fetching, adjust tracing output

* fix merge

* remove unused variables

* satisfy clippy

* fmt

* changes

* add seed export to ffi bindings

* remove ccache from ci, don't manually build Monero codebase

Since monero-sys is tightly integrated into the Cargo build system, the
build output of the Monero codebase is stored in the same target dire-
ctory as all other Rust build output and is thus cached by our existing
cache solution.

* really stop building Monero manually in CI

* print monero-cpp logs in test

* use default cargo caching action instead of rust-cache

This commit introduces the default github cache action because
rust-cache doesn't cache our own code, only our dependencies.

* don't install ccache in ci

* debug missing openssl

* update changelog

* ci: run on self hosted runnr

* fix forward_cpp_log panic

* write logs to stderr instead of stdout

This enables us to `println` something and users
can just `asb export-monero-wallet > wallet.txt`
after which `wallet.txt` will contain just the wallet
seed.

* Revert "ci: run on self hosted runnr"

This reverts commit 157dfa7dc5bac025a9fc0eefe996880230274928.

* feat: ci run on large (expensive!!!) github runners, only run on non-draft PRs and only do this until we find a way around this

* run on large windows runenrs

* add asb-testnet command

* add --trace to ExportMoneroWallet

* ci: agressive caching (delegate to cargo instead of doing by hand)

* fix: pin dtolnay/rust-toolchain to @v1

* switch to actions-rust-lang/setup-rust-toolchain@v1

* fix: dont manually call cache for cargo dirs, let this be done by actions-rust-lang/setup-rust-toolchain instead

* disbale -D warnings in CI

* don't refresh wallet before getting balance

* ci: agressive caching to s3

* Change creation height to restore height in export-monero-wallet output

* update changelog

* concrete example in changelog

* add docker ignore

* limit monero build to just one core

* dont .dockerignore the .git folder because we need it for sub directories

* copy .git

* dont copy .git

* Dockerfile: run git submodule sync before updating

* only include -mmacosx-version-min=11.0 on mac os

* add retry convenience function

* improve error messages in monero-sys

* remove transfer proof from state6, retry redeem_xmr and refund_xmr

* install libabsl-dev on ubuntu ci

* fix(monero-sys): Disable BUILD_TESTS, TREZOR_DEBUG, USE_DEVICE_TREZOR, HIDAPI_FOUND, GTEST_HAS_ABSL CMake flags

* alice: store transfer proof in more states, only use latest state for coop redeem

* BUILD_SHARED_LIBS OFF

* install libasl in docker

* dont link against absl google

* print multiaddr when confirming new address

* dont build device_trezor, dont link hidapi and usb-1.0

* use MONERO_WALLET_CRYPTO_LIBRARY to cn

* fix trezor shit

* link against stub trezor impl

* still include trezor in build (stub implementation)

* remove DEVICE_TREZOR_READY

* fmt

* dont include ledger and trezor support

* ci: dont fail fast

* feat(monero-sys): Link boost statically

* feat(monero-sys): Link OpenSSL (ssl and crypto libraries) statically

* breaking: remove monero.wallet_rpc_url in asb config, take monero.daemon_url instead

* fix MoneroDaemon::is_available

* add test case for special paths

* fix simple test (was failing because tx fee wasn't considered

* add ffi sanitization test commands to justfile. todo: run these in CI

* add dep on futures crate for testing

* improve comments

* just fmt

* remove ThreadSanatizer as it doesn't work well with c++ bindings

* update mem test command to use nightly cargo

* fix(bob): Only warn if .expired_timelock(..) check fails in BtcLocked state

* Resolve merge conflicts and add missing imports - Merged workflow configuration changes, CHANGELOG.md, tracing_util.rs, tauri_bindings.rs, network swap_setup alice.rs - Added missing imports for monero::Amount, url::Url, Duration, wallet types - Some API changes in monero wallet still need to be addressed

* fix merge conflicts

* dprint fmt, remove unused progress bars

* link unbound statically (works on mac)

* link protobuf dynamically (works on mac)

* install libnghttp2-dev in linux for building, add justfile command for installing brew deps

* install libevent-dev and libexpat1-dev on linux

* Dockerfile: install libnghttp2-dev, libevent-dev, libexpat1-dev and build in debug mode

* set CMAKE_DISABLE_FIND_PACKAGE_HIDAPI

* if ci: -j1, else -j4 for monero-sys

* println!("cargo:rustc-link-search=native=/usr/lib/x86_64-linux-gnu");

* print full libp2p network errors

* add migrate steps for wallet files to changelog

* fix dockerfiel to use ubuntu24

* fix build ubuntu

* fix(monero-sys): opt-level = 2

* opt-level = 0

* version: bump to 2.1.0-beta

* include monero_cpp in tracing

* bump version to 2.1.0-beta.2

* fmt

* fix  merge conflict in vscode.settings

* use uint64_t instead o fu_int64_t

* dynamically detect mac os brew prefix folder

* fmt

* add todo

* remove unused coce

* update docs for monero-wallet-rpc removal

* Revert "dynamically detect mac os brew prefix folder"

This reverts commit b55cbe3e115a3f98935815b7d37cb975c8f1a012.

* update comment/test

* try fix monero harness test

* catch exceptions in c++ ffi calls, for some methods calls .expect() on the rust side now

* force debug monero-sys mode

* Reapply "dynamically detect mac os brew prefix folder"

This reverts commit 0b340417525c085d213e6b6c1310410cd29dcc91.

* fix tests

* update synchronized() method

* don't force refresh before sweep

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: einliterflasche <einliterflasche@pm.me>
Co-authored-by: b-enedict <92430555+b-enedict@users.noreply.github.com>
Co-authored-by: unstoppableswap-botty <binarybaron_bot@proton.me>
Co-authored-by: UnstoppableSwap Botty <help@unstoppableswap.net>
Co-authored-by: Raphael <81313171+Einliterflasche@users.noreply.github.com>
Co-authored-by: root <root@vmd145754.contaboserver.net>
2025-06-17 10:55:50 +02:00