Commit graph

3225 commits

Author SHA1 Message Date
Binarybaron
ccce33f8b0 fix(ci): Disable Linux armv7 and Windows builds, enable concurrency control 2025-07-15 14:44:01 +02:00
Binarybaron
b0dbacfdc7 refactor: Rename seed crate to monero-seed 2025-07-15 10:47:03 +02:00
Mohan
bc96586acf
refactor(workspace): swap-fs, swap-serde, swap-env crates (#459)
* refactor: Remove monero-wallet crate

* refactor: swap-fs, swap-env, swap-serde subcrates, move dependencies into workspace root

* remove unrelated diff

* remove uncommented code

* remove unncessary diff

* merge

* refactor: remove env.rs, fix clippy error
2025-07-14 22:05:43 +02:00
Mohan
e29dd4dcf2
feat(swap): Allow refunding manually Bitcoin even if we are in BobState::SwapSetupCompleted (#455) 2025-07-14 22:04:17 +02:00
Binarybaron
047fe73bc7 fix(swap): Compile error (context(...)) 2025-07-11 15:03:21 +02:00
Binarybaron
f98f195525 fix(asb): Only sync Bitcoin wallet if we use Bitcoin wallet for sending 2025-07-09 14:48:52 +02:00
Binarybaron
a8a7382cbf fix(moneror-rpc-pool): Reset database (nodes.db -> nodes_v2.db) 2025-07-09 10:13:58 +02:00
Binarybaron
bb396ad3b5 fix(monero-sys): sweep_multi argument type switch to non-option 2025-07-09 09:58:01 +02:00
Binarybaron
97d7996a64 feat: bump version to 2.4.3 2025-07-09 09:49:47 +02:00
Binarybaron
b8204d5352 feat(gui): Hide redeem to internal address for now 2025-07-09 09:48:00 +02:00
Mohan
56722a5780
feat(monero-sys): Sign message (#450) 2025-07-06 14:06:40 +02:00
Binarybaron
38332ab79f fix: Redeem XMR to internal main wallet, not temp wallet 2025-07-04 16:44:05 +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
Binarybaron
3ebaaad1fa bump: version 2.4.0 2025-07-02 20:49:45 +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
Mohan
cc4069ebad
refactor(monero-rpc-pool): Type safe SQL, simplify discovery (#443)
* refactor(monero-rpc-pool): Type safe SQL, default nodes, no monero.fail

* refactor

* refactor

* refactoring

* fmt

* add some randomness to node selection
2025-06-30 10:53:01 +02:00
Mohan
ef3c9139d1
fix(protocol): adjust Monero lock retry docs (#445) 2025-06-29 20:53:25 +02:00
Binarybaron
e2d7638ce1 feat(docs): flatpak 2025-06-27 22:10:33 +02:00
Binarybaron
1cdb1dba80 amend: flatpak release page 2025-06-27 21:43:46 +02:00
Binarybaron
d23082ffee feat(gui): Release flatpak file 2025-06-27 21:40:08 +02:00
Binarybaron
9c30ef4054 bump: version to 2.3.3 2025-06-26 11:21:09 +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
Binarybaron
d491452fb3 bump: version to 2.3.2 2025-06-26 10:53:07 +02:00
Mohan
e1edcf1998
fix(gui): "Address pool does sum up to 1" 2025-06-26 10:50:26 +02:00
Binarybaron
320110c36e fix(monero-sys): Allow opt-level to be max (linker opt issue) 2025-06-25 20:19:29 +02:00
Binarybaron
83db0785ee bump: version to 2.3.1 2025-06-25 20:01:11 +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
Mohan
1587f63232
fix(cli, gui): Use 0-1 for address pool (#440) 2025-06-25 18:13:44 +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
38f2ddec77
Update README.md 2025-06-25 09:28:52 +02:00
Binarybaron
a235a537c1 bump: release version 2.3.0-beta.2 2025-06-24 11:57:02 +02:00
Binarybaron
dc865a91f3 refactor: remove unused functions in swap/src/common/tracing_util.rs 2025-06-24 11:38:34 +02:00
Binarybaron
1c5acdc1c7 refactor(monero-rpc-pool): Pass around tuple of (scheme, host, port) as nodes 2025-06-24 11:36:56 +02:00
Binarybaron
dc21ab9cee remove full_url, add migration to change scheme of node.monerodevs.org to http 2025-06-24 10:18:29 +02:00
einliterflasche
8741ac7619
Merge branch 'master' of https://github.com/UnstoppableSwap/core 2025-06-24 09:48:09 +02:00
einliterflasche
752ded3534
add note to just to readme 2025-06-24 09:47:59 +02:00
Binarybaron
b4118eb49e fix: max 3 cores for docker build env 2025-06-24 00:29:45 +02:00
Binarybaron
26f8147812 feat: log monero_rpc_pool only at >= INFO level 2025-06-24 00:08:01 +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
Binarybaron
1d300ddcbc minimal rust version: 1.85, fix monero-rs expect(...) panic 2025-06-20 21:07:23 +02:00
Mohan
12fac99d80
feat(wallet): Cache fee estimations for up to 2 minutes (#411)
* feat(wallet): Cache fee estimations for up to 2 minutes

* remove complicated type alias

* fmt, changelog entry
2025-06-20 11:43:03 +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
3cb2d907f9 version: bump to 2.3.0-beta.1 2025-06-19 02:35:12 +02:00
Binarybaron
01fb542fae Dockerfile: only sync submodules if needed 2025-06-19 02:12:42 +02:00