Skip to content
Merged
Show file tree
Hide file tree
Changes from 218 commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
14a5b4c
feat(monero-sys): Initial commit. Regtest integration test. Wrapper a…
binarybaron Apr 26, 2025
a443185
refactor: remove unused monero-wallet crate
binarybaron Apr 26, 2025
6a09151
change order of members in Cargo.toml
binarybaron Apr 26, 2025
f0ff358
fix monero submodule problem
Einliterflasche Apr 27, 2025
509f37b
progress
Einliterflasche Apr 28, 2025
72c42bf
continue
Einliterflasche Apr 28, 2025
dc6f9a7
fix tests
Einliterflasche Apr 28, 2025
2fe8212
fix tests again
Einliterflasche Apr 28, 2025
046e471
introduce error handling
Einliterflasche Apr 28, 2025
ec469f5
update error message
Einliterflasche Apr 29, 2025
73e34cc
implement Wallet::sync
Einliterflasche Apr 29, 2025
30f4cf6
add swap progress
Einliterflasche Apr 29, 2025
f4cf682
fix import path
Einliterflasche Apr 30, 2025
cb73aef
add check_tx_key, transfer, switch to anyhow
Einliterflasche Apr 30, 2025
4462dcc
add more functionality
Einliterflasche May 1, 2025
d44b954
fix test -- todo: why is manager.connected() failing?
Einliterflasche May 1, 2025
739fcaf
update Cargo.lock
Einliterflasche May 1, 2025
cbc4b1d
cleanup api and tests, add wait_until_synced
Einliterflasche May 2, 2025
51bdb36
show lib tracing in test
Einliterflasche May 2, 2025
6e5c4bc
add wallet_dir to wallet manager, fix tests, start integration into swap
Einliterflasche May 5, 2025
4137c46
add main/default wallet to WalletManager
Einliterflasche May 5, 2025
bbcc20e
continue integration, add wait_for_confirmations
Einliterflasche May 6, 2025
8af38c6
feat(ci): Install Monero build dependencies
binarybaron May 6, 2025
b857fad
Merge branch 'master' into feat/monero-sys
binarybaron May 6, 2025
618c30b
feat(ci): extract monero build instructions into compose file, run mo…
binarybaron May 6, 2025
54c9841
fix compile errors and monero-sys/tests
Einliterflasche May 8, 2025
9cfeddd
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 8, 2025
3b8f853
satisfy clippy
Einliterflasche May 8, 2025
d2182ec
update git CI to checkout git submodules
Einliterflasche May 8, 2025
0cf1cb5
fix again: init submodules
Einliterflasche May 8, 2025
500ed7d
fix?
Einliterflasche May 8, 2025
fc4780e
fix(ci): increase max size of ccache to 10G
binarybaron May 8, 2025
0d6891a
fix(ci): Include manual build step for Monero before running cargo
binarybaron May 8, 2025
20c6332
add armhf sources for apt
binarybaron May 8, 2025
4bb04e7
add armhf before running apt update
binarybaron May 8, 2025
328e950
fix(monero-sys): MACOSX_DEPLOYMENT_TARGET=11.0
binarybaron May 9, 2025
325fa24
remove armhf apt dpkg arch
binarybaron May 9, 2025
417ac5e
fix BlockHeight serialization breakage
Einliterflasche May 9, 2025
82c5534
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 9, 2025
279cc23
ci: make only binaries not tests
Einliterflasche May 9, 2025
e1d5bda
fix: let tauri ignore changes to monero-sys/monero
Einliterflasche May 9, 2025
7b4407f
fix: don't implement Sync for monero-sys types, change close_wallet
Einliterflasche May 9, 2025
85de768
move mutex into Wallet
Einliterflasche May 12, 2025
6ad20f2
close wallet on drop (test still failing)
Einliterflasche May 12, 2025
fd86704
pipe monero logs to tracing
Einliterflasche May 12, 2025
4543f5d
do not emit c++ perf logs, add comments
Einliterflasche May 13, 2025
27e3eb5
get test wallet_closing to pass
Einliterflasche May 13, 2025
f59b41e
fix(ci): increase swap file to allow fix issue where runners would ru…
binarybaron May 13, 2025
388047e
fix(ci): use make -j4 release everywhere
binarybaron May 13, 2025
d5369c4
fix: run ci on self hosted runner (more ram)
binarybaron May 15, 2025
5aca77c
start changing to dedicated wallet threads
Einliterflasche May 16, 2025
bdbd515
complete move to dedicated wallet threads
Einliterflasche May 18, 2025
abaca52
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 18, 2025
f04a9a7
satisfy clippy
Einliterflasche May 18, 2025
2d69018
add traces
Einliterflasche May 18, 2025
37b4a15
refactor monero-harness to use monero-sys
Einliterflasche May 20, 2025
0368589
fix: wallet doesn't connect to monerod in harness
Einliterflasche May 20, 2025
ed430fe
make minimal progress
Einliterflasche May 20, 2025
90eafeb
no progress
Einliterflasche May 20, 2025
a07fc64
fix(monero-sys): Build on x_api_add_new_functions_release, which has …
binarybaron May 21, 2025
ede9d14
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 21, 2025
feb5a9c
feat(gui): Add a Introduction for new users (#287)
b-enedict May 7, 2025
1effd69
feat(swap): Upgrade monero-wallet-rpc to v0.18.4.0 (#314)
binarybaron May 14, 2025
9aead88
Prepare release 1.0.0-rc.20 (#315)
unstoppableswap-botty May 14, 2025
bccc8ba
feat(ci): Limit ci.yml to one concurrent running job per git branch (…
binarybaron May 14, 2025
51da0bf
fix(ci): Set yarn network-timeout to 10 minutes to avoid spurious net…
binarybaron May 14, 2025
7873a45
feat(docs): Add darkness.su rendezvous point to docs
binarybaron May 15, 2025
8925bc8
fix(gui): Fetch alerts only once
binarybaron May 15, 2025
3774da7
Prepare release 1.0.0-rc.21 (#318)
unstoppableswap-botty May 15, 2025
f44b00c
upgrade(swap): Concurrent syncing, bdk upgrade, refactors (#180)
Einliterflasche May 18, 2025
db752c2
amend: CHANGELOG.md
binarybaron May 18, 2025
b8bca3a
Prepare release 1.1.0-rc.1 (#325)
unstoppableswap-botty May 18, 2025
a4c5f9a
fix(ci): Extract gen-bindings-verbose from gen-bindings
binarybaron May 18, 2025
541b847
Prepare release 1.1.0-rc.2 (#326)
unstoppableswap-botty May 18, 2025
92963be
amend: add comma after new package.json entry
binarybaron May 18, 2025
ccabe17
revert: delete rc.1, rc.2 releases
binarybaron May 18, 2025
528670e
Prepare release 1.1.0-rc.3 (#327)
unstoppableswap-botty May 18, 2025
3b1ceab
fix: Issues with 1.1.0-rc (#328)
binarybaron May 19, 2025
ef167bf
Prepare release 1.1.0 (#329)
unstoppableswap-botty May 19, 2025
b49a5aa
feat: log enviroment info (#332)
Einliterflasche May 20, 2025
9413847
Add justfile (#335)
Einliterflasche May 20, 2025
b40290e
fix(swap): Add retry logic for Bitcoin wallet sync (#333)
binarybaron May 20, 2025
250d93c
docs: add repo overview (#337)
binarybaron May 20, 2025
3d7e945
Prepare release 1.1.1 (#338)
unstoppableswap-botty May 20, 2025
eb6d0ac
rebase
binarybaron May 21, 2025
104bb13
add monero-sys to swap/Cargo.toml
binarybaron May 21, 2025
60c6709
progress rebase
binarybaron May 21, 2025
4f40a1b
rebase
binarybaron May 21, 2025
28c3fd1
Fix integration test
Einliterflasche May 21, 2025
7426cf1
Fix tests then break them again
Einliterflasche May 21, 2025
a4d79b3
fix monero integration test harness
Einliterflasche May 22, 2025
3bcb38a
Fix errors - happy_path goes to btc is redeemed
Einliterflasche May 22, 2025
918a34b
fix: couldn't create walllet from keys
Einliterflasche May 22, 2025
de57a6a
fix happy_path: refresh wallet before sweeping
Einliterflasche May 22, 2025
bd90bdc
Handle missing Monero node (#348)
binarybaron May 22, 2025
c9f6b72
remove unused bridge.h file
binarybaron May 22, 2025
f33c9fe
Merge branch 'master' into feat/monero-sys
binarybaron May 23, 2025
fe45315
Merge branch 'master' into feat/monero-sys
binarybaron May 23, 2025
18d82b6
fix(ci): Use ubuntu-latest instead of self hosted runner
binarybaron May 23, 2025
c3c6cfe
fix(Dockerfile): Use rust 1.82, install apt packages required for Mon…
binarybaron May 23, 2025
540856d
add docs
Einliterflasche May 26, 2025
c62211d
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 26, 2025
0233883
use scan_transactions instead of syncing monero wallet
Einliterflasche May 26, 2025
1ae7b23
uniform naming of monero lock_transfer_proof and migration
Einliterflasche May 27, 2025
23552cd
breaking: re-send lock transfer proof in cooperative redeem response
Einliterflasche May 27, 2025
7de007e
add retry logic to blockchain height fetching, adjust tracing output
Einliterflasche May 27, 2025
66ea570
Merge branch 'master' into feat/monero-sys
Einliterflasche May 27, 2025
54f05cb
fix merge
Einliterflasche May 27, 2025
5be0938
remove unused variables
Einliterflasche May 27, 2025
051c715
satisfy clippy
Einliterflasche May 27, 2025
8b6798d
fmt
Einliterflasche May 27, 2025
fb759cc
changes
Einliterflasche May 27, 2025
1ed29b0
Merge branch 'master' into feat/monero-sys
binarybaron May 27, 2025
967c2f0
add seed export to ffi bindings
Einliterflasche May 28, 2025
e9ab3ac
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 28, 2025
a274677
remove ccache from ci, don't manually build Monero codebase
Einliterflasche May 28, 2025
5f604ab
really stop building Monero manually in CI
Einliterflasche May 28, 2025
73bff30
print monero-cpp logs in test
Einliterflasche May 28, 2025
649b9d0
use default cargo caching action instead of rust-cache
Einliterflasche May 28, 2025
dd0c4c6
don't install ccache in ci
Einliterflasche May 28, 2025
c259cab
debug missing openssl
Einliterflasche May 28, 2025
769c847
Merge branch 'master' into feat/monero-sys
binarybaron May 28, 2025
bc2851c
update changelog
Einliterflasche May 30, 2025
157dfa7
ci: run on self hosted runnr
binarybaron May 30, 2025
6abcf7b
fix forward_cpp_log panic
Einliterflasche May 31, 2025
a6b2c2b
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche May 31, 2025
fae4183
write logs to stderr instead of stdout
Einliterflasche May 31, 2025
53776ab
Merge branch 'master' into feat/monero-sys
binarybaron Jun 1, 2025
fc43b6e
Revert "ci: run on self hosted runnr"
binarybaron Jun 1, 2025
635b37e
feat: ci run on large (expensive!!!) github runners, only run on non-…
binarybaron Jun 1, 2025
c0b309f
run on large windows runenrs
binarybaron Jun 1, 2025
66e1519
add asb-testnet command
binarybaron May 31, 2025
2c86c96
add --trace to ExportMoneroWallet
binarybaron May 31, 2025
e1f71f3
ci: agressive caching (delegate to cargo instead of doing by hand)
binarybaron Jun 1, 2025
8cccb7f
fix: pin dtolnay/rust-toolchain to @v1
binarybaron Jun 1, 2025
a9565f6
switch to actions-rust-lang/setup-rust-toolchain@v1
binarybaron Jun 1, 2025
92b0eb7
fix: dont manually call cache for cargo dirs, let this be done by act…
binarybaron Jun 1, 2025
cb2d410
disbale -D warnings in CI
binarybaron Jun 1, 2025
5f5ab97
don't refresh wallet before getting balance
Einliterflasche Jun 2, 2025
0a65a1d
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 2, 2025
b84450c
ci: agressive caching to s3
binarybaron Jun 2, 2025
619a5ef
Change creation height to restore height in export-monero-wallet output
Einliterflasche Jun 2, 2025
77607ec
update changelog
Einliterflasche Jun 2, 2025
9fa8f56
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 2, 2025
37201c6
concrete example in changelog
Einliterflasche Jun 2, 2025
6d89f37
add docker ignore
binarybaron Jun 2, 2025
6faf404
limit monero build to just one core
binarybaron Jun 2, 2025
aaf2c4d
dont .dockerignore the .git folder because we need it for sub directo…
binarybaron Jun 2, 2025
b643bd9
copy .git
binarybaron Jun 2, 2025
21d153d
dont copy .git
binarybaron Jun 2, 2025
e185634
Dockerfile: run git submodule sync before updating
binarybaron Jun 2, 2025
bb75abc
only include -mmacosx-version-min=11.0 on mac os
binarybaron Jun 2, 2025
9c10b1d
add retry convenience function
Einliterflasche Jun 3, 2025
31fa460
improve error messages in monero-sys
Einliterflasche Jun 3, 2025
4223038
remove transfer proof from state6, retry redeem_xmr and refund_xmr
Einliterflasche Jun 3, 2025
895d897
install libabsl-dev on ubuntu ci
binarybaron Jun 3, 2025
0bffc3b
fix(monero-sys): Disable BUILD_TESTS, TREZOR_DEBUG, USE_DEVICE_TREZOR…
binarybaron Jun 3, 2025
434cafe
alice: store transfer proof in more states, only use latest state for…
Einliterflasche Jun 3, 2025
0d6d197
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 3, 2025
9c909d6
BUILD_SHARED_LIBS OFF
binarybaron Jun 3, 2025
11c6b8c
install libasl in docker
binarybaron Jun 3, 2025
41b536b
dont link against absl google
binarybaron Jun 3, 2025
2f8b5da
print multiaddr when confirming new address
Einliterflasche Jun 3, 2025
bcc1038
dont build device_trezor, dont link hidapi and usb-1.0
binarybaron Jun 3, 2025
d9684fe
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 3, 2025
7ed922c
use MONERO_WALLET_CRYPTO_LIBRARY to cn
binarybaron Jun 3, 2025
566ba0c
fix trezor shit
binarybaron Jun 3, 2025
852e9cf
link against stub trezor impl
binarybaron Jun 3, 2025
6bb92a5
still include trezor in build (stub implementation)
binarybaron Jun 3, 2025
319fec5
remove DEVICE_TREZOR_READY
binarybaron Jun 3, 2025
3508566
fmt
binarybaron Jun 3, 2025
e4dda9f
dont include ledger and trezor support
binarybaron Jun 4, 2025
d051781
ci: dont fail fast
binarybaron Jun 4, 2025
b7f583f
feat(monero-sys): Link boost statically
binarybaron Jun 4, 2025
8598591
feat(monero-sys): Link OpenSSL (ssl and crypto libraries) statically
binarybaron Jun 4, 2025
e56a14f
breaking: remove monero.wallet_rpc_url in asb config, take monero.dae…
Einliterflasche Jun 6, 2025
ccd64da
fix MoneroDaemon::is_available
Einliterflasche Jun 6, 2025
44843f3
add test case for special paths
Einliterflasche Jun 10, 2025
a7f68da
fix simple test (was failing because tx fee wasn't considered
Einliterflasche Jun 10, 2025
7e633e2
add ffi sanitization test commands to justfile. todo: run these in CI
Einliterflasche Jun 10, 2025
1cf9a2c
add dep on futures crate for testing
Einliterflasche Jun 10, 2025
166ad04
improve comments
Einliterflasche Jun 10, 2025
7f1cee9
just fmt
Einliterflasche Jun 10, 2025
7c1f7f8
remove ThreadSanatizer as it doesn't work well with c++ bindings
Einliterflasche Jun 10, 2025
cf03b11
update mem test command to use nightly cargo
Einliterflasche Jun 10, 2025
43d1a08
fix(bob): Only warn if .expired_timelock(..) check fails in BtcLocked…
binarybaron Jun 11, 2025
02ee72f
Merge branch 'master' into feat/monero-sys
binarybaron Jun 12, 2025
aad3241
Resolve merge conflicts and add missing imports - Merged workflow con…
binarybaron Jun 12, 2025
79b8184
fix merge conflicts
binarybaron Jun 12, 2025
aeae4f3
dprint fmt, remove unused progress bars
binarybaron Jun 12, 2025
b0330f7
link unbound statically (works on mac)
Einliterflasche Jun 12, 2025
7850fc1
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 12, 2025
85e81ed
link protobuf dynamically (works on mac)
Einliterflasche Jun 12, 2025
7c4dda4
install libnghttp2-dev in linux for building, add justfile command fo…
binarybaron Jun 13, 2025
0eadff5
install libevent-dev and libexpat1-dev on linux
binarybaron Jun 13, 2025
6d3e88e
Dockerfile: install libnghttp2-dev, libevent-dev, libexpat1-dev and b…
binarybaron Jun 13, 2025
1ead6d8
set CMAKE_DISABLE_FIND_PACKAGE_HIDAPI
binarybaron Jun 13, 2025
99ea456
if ci: -j1, else -j4 for monero-sys
binarybaron Jun 13, 2025
8021a41
Merge branch 'master' into feat/monero-sys
binarybaron Jun 15, 2025
6647b83
Merge branch 'master' into feat/monero-sys
binarybaron Jun 15, 2025
c07c6b0
println!("cargo:rustc-link-search=native=/usr/lib/x86_64-linux-gnu");
binarybaron Jun 15, 2025
57ddb6f
print full libp2p network errors
binarybaron Jun 15, 2025
2fad37c
add migrate steps for wallet files to changelog
binarybaron Jun 15, 2025
3e14924
fix dockerfiel to use ubuntu24
binarybaron Jun 15, 2025
4acd1da
fix build ubuntu
Jun 16, 2025
666a4fd
fix(monero-sys): opt-level = 2
binarybaron Jun 16, 2025
3de5a88
opt-level = 0
binarybaron Jun 16, 2025
0baacca
version: bump to 2.1.0-beta
binarybaron Jun 16, 2025
2ab21b6
include monero_cpp in tracing
binarybaron Jun 16, 2025
806166d
bump version to 2.1.0-beta.2
binarybaron Jun 16, 2025
2e9cca9
fmt
binarybaron Jun 17, 2025
f4c3c6b
fix merge conflict in vscode.settings
binarybaron Jun 17, 2025
592d77f
use uint64_t instead o fu_int64_t
binarybaron Jun 17, 2025
b55cbe3
dynamically detect mac os brew prefix folder
binarybaron Jun 17, 2025
5dece72
fmt
binarybaron Jun 17, 2025
c3b9676
add todo
binarybaron Jun 17, 2025
bd3877f
remove unused coce
binarybaron Jun 17, 2025
64f8eb1
update docs for monero-wallet-rpc removal
binarybaron Jun 17, 2025
0b34041
Revert "dynamically detect mac os brew prefix folder"
binarybaron Jun 17, 2025
5869fda
update comment/test
Einliterflasche Jun 17, 2025
81f7d93
try fix monero harness test
Einliterflasche Jun 17, 2025
c2aa1ff
catch exceptions in c++ ffi calls, for some methods calls .expect() o…
Einliterflasche Jun 17, 2025
4251a88
force debug monero-sys mode
binarybaron Jun 17, 2025
dba7204
Reapply "dynamically detect mac os brew prefix folder"
binarybaron Jun 17, 2025
269389a
fix tests
binarybaron Jun 17, 2025
d93c4b2
update synchronized() method
Einliterflasche Jun 17, 2025
c7de938
Merge branch 'feat/monero-sys' of https://github.com/UnstoppableSwap/…
Einliterflasche Jun 17, 2025
acdab29
don't force refresh before sweep
Einliterflasche Jun 17, 2025
3f8a758
Revert "don't force refresh before sweep"
Einliterflasche Jun 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Cross-compilation support for armv7
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

# windows defaults to smaller stack sizes which isn't enough
# Windows defaults to smaller stack sizes which isn't enough due to
# our ginormous call stacks
[target.'cfg(windows)']
rustflags = ["-C", "link-args=/STACK:8388608"]
38 changes: 38 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Rust build artifacts
target/

# IDE files
.vscode/
.DS_Store

# Cache directories
.cargo/registry/
.cargo/git/

# Documentation build
docs/_build/

# Node modules if any
node_modules/

# Development scripts
dev_scripts/
dev-docs/

# Tauri development files
src-tauri/target/

# GUI development files
src-gui/node_modules/
src-gui/dist/
src-gui/.next/

# Log files
*.log

# Temporary files
*.tmp
*.temp

# OS files
Thumbs.db
42 changes: 42 additions & 0 deletions .github/actions/set-monero-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Set Monero Environment Variables'
description: 'Sets common environment variables for Monero dependencies across workflows'
runs:
using: "composite"
steps:
- name: Set environment variables
shell: bash
run: |

# GUI-specific Ubuntu dependencies
echo "DEPS_GUI_UBUNTU_SPECIFIC=libgtk-3-dev libappindicator3-dev librsvg2-dev libwebkit2gtk-4.1-0=2.44.0-2 libwebkit2gtk-4.1-dev=2.44.0-2 libjavascriptcoregtk-4.1-0=2.44.0-2 libjavascriptcoregtk-4.1-dev=2.44.0-2 gir1.2-javascriptcoregtk-4.1=2.44.0-2 gir1.2-webkit2-4.1=2.44.0-2" >> $GITHUB_ENV

# Tauri Linux dependencies
echo "DEPS_TAURI_LINUX=libwebkit2gtk-4.1-dev curl wget file libxdo-dev libayatana-appindicator3-dev librsvg2-dev" >> $GITHUB_ENV

# Linux dependencies
echo "DEPS_MONERO_LINUX=libabsl-dev libnghttp2-dev libevent-dev libexpat1-dev build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler git" >> $GITHUB_ENV

# macOS dependencies
echo "DEPS_MONERO_MACOS=cmake boost openssl zmq libpgm miniupnpc expat libunwind-headers protobuf" >> $GITHUB_ENV

# Windows MSYS2 dependencies
echo 'DEPS_MONERO_WINDOWS_MSYS2=mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git' >> $GITHUB_ENV

Comment on lines +9 to +24
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Strip trailing spaces – YAML-lint is failing

Multiple lines (9-24) contain trailing spaces which break the repository’s YAML-lint gate.
Fix by removing the trailing blanks:

-        
+        # (blank line kept – no trailing spaces)
@@
-echo "DEPS_GUI_UBUNTU_SPECIFIC=libgtk-3-dev libappindicator3-dev librsvg2-dev libwebkit2gtk-4.1-0=2.44.0-2 libwebkit2gtk-4.1-dev=2.44.0-2 libjavascriptcoregtk-4.1-0=2.44.0-2 libjavascriptcoregtk-4.1-dev=2.44.0-2 gir1.2-javascriptcoregtk-4.1=2.44.0-2 gir1.2-webkit2-4.1=2.44.0-2" >> $GITHUB_ENV 
+echo "DEPS_GUI_UBUNTU_SPECIFIC=libgtk-3-dev libappindicator3-dev librsvg2-dev libwebkit2gtk-4.1-0=2.44.0-2 libwebkit2gtk-4.1-dev=2.44.0-2 libjavascriptcoregtk-4.1-0=2.44.0-2 libjavascriptcoregtk-4.1-dev=2.44.0-2 gir1.2-javascriptcoregtk-4.1=2.44.0-2 gir1.2-webkit2-4.1=2.44.0-2" >> $GITHUB_ENV

Apply the same change on lines 15, 18, 21, 24 and ensure a newline is present at EOF.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 9-9: trailing spaces

(trailing-spaces)


[error] 12-12: trailing spaces

(trailing-spaces)


[error] 15-15: trailing spaces

(trailing-spaces)


[error] 18-18: trailing spaces

(trailing-spaces)


[error] 21-21: trailing spaces

(trailing-spaces)


[error] 24-24: trailing spaces

(trailing-spaces)

🤖 Prompt for AI Agents
In .github/actions/set-monero-env/action.yml between lines 9 and 24, remove all
trailing spaces at the end of each line, specifically on lines 15, 18, 21, and
24, to fix YAML-lint errors. Also, ensure there is a newline character at the
end of the file to comply with formatting standards.

# APT configuration for better reliability
echo 'APT_SET_CONF_COMMAND<<EOF
sudo tee -a /etc/apt/apt.conf.d/80-custom << APTEOF
Acquire::Retries "3";
Acquire::http::Timeout "120";
Acquire::ftp::Timeout "120";
APTEOF
EOF' >> $GITHUB_ENV

- name: Set platform identifiers
shell: bash
run: |
# Platform identifiers used in various workflows
echo "UBUNTU=ubuntu-24.04" >> $GITHUB_ENV
echo "UBUNTU_PLATFORM_ID=ubuntu-24.04" >> $GITHUB_ENV
echo "MACOS_INTEL=macos-13" >> $GITHUB_ENV
echo "WINDOWS=windows-latest" >> $GITHUB_ENV
echo "WINDOWS_PLATFORM_ID=windows-latest" >> $GITHUB_ENV
78 changes: 57 additions & 21 deletions .github/workflows/build-gui-release-binaries-cb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,28 @@ env:
MACOS_INTEL: "macos-13"
WINDOWS: "windows-latest"
CN_APPLICATION: "unstoppableswap/unstoppableswap-gui-rs"
DEPS_MONERO_LINUX: 'build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler git'
DEPS_GUI_UBUNTU_SPECIFIC: 'libgtk-3-dev libappindicator3-dev librsvg2-dev libwebkit2gtk-4.1-0=2.44.0-2 libwebkit2gtk-4.1-dev=2.44.0-2 libjavascriptcoregtk-4.1-0=2.44.0-2 libjavascriptcoregtk-4.1-dev=2.44.0-2 gir1.2-javascriptcoregtk-4.1=2.44.0-2 gir1.2-webkit2-4.1=2.44.0-2'
DEPS_MONERO_MACOS: 'cmake boost hidapi openssl zmq libpgm miniupnpc expat libunwind-headers protobuf'
DEPS_MONERO_WINDOWS_MSYS2: >-
mingw-w64-x86_64-toolchain
make
mingw-w64-x86_64-cmake
mingw-w64-x86_64-boost
mingw-w64-x86_64-openssl
mingw-w64-x86_64-zeromq
mingw-w64-x86_64-libsodium
mingw-w64-x86_64-hidapi
mingw-w64-x86_64-protobuf-c
mingw-w64-x86_64-libusb
mingw-w64-x86_64-unbound
git
APT_SET_CONF_COMMAND: |
sudo tee -a /etc/apt/apt.conf.d/80-custom << EOF
Acquire::Retries "3";
Acquire::http::Timeout "120";
Acquire::ftp::Timeout "120";
EOF

jobs:
draft-cb-release:
Expand All @@ -20,6 +42,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Create Draft Release
uses: crabnebula-dev/cloud-release@v0
with:
Expand All @@ -43,40 +66,46 @@ jobs:
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'

- uses: Swatinem/[email protected]

- name: Install Rust Stable
uses: dtolnay/[email protected]
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}

- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-24.04' # This must match the platform value defined above.
- name: Configure apt for retries (ubuntu only)
if: matrix.platform == env.UBUNTU
run: ${{ env.APT_SET_CONF_COMMAND }}

- name: Install dependencies (ubuntu only)
if: matrix.platform == env.UBUNTU # This must match the platform value defined above.
run: |
sudo apt update;
sudo apt install -y \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libappindicator3-dev \
librsvg2-dev;

sudo apt install -y \
libwebkit2gtk-4.1-0=2.44.0-2 \
libwebkit2gtk-4.1-dev=2.44.0-2 \
libjavascriptcoregtk-4.1-0=2.44.0-2 \
libjavascriptcoregtk-4.1-dev=2.44.0-2 \
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
gir1.2-webkit2-4.1=2.44.0-2;
sudo apt install -y ${{ env.DEPS_MONERO_LINUX }} ${{ env.DEPS_GUI_UBUNTU_SPECIFIC }} git

Comment on lines +82 to +91
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Repeat of unquoted apt install

Apply the quoting pattern here as well to silence shellcheck and avoid word-splitting edge-cases.

🤖 Prompt for AI Agents
In .github/workflows/build-gui-release-binaries-cb.yml around lines 82 to 91,
the apt install command uses unquoted environment variables which can cause
word-splitting issues and trigger shellcheck warnings. To fix this, wrap the
environment variables ${{ env.DEPS_MONERO_LINUX }} and ${{
env.DEPS_GUI_UBUNTU_SPECIFIC }} in double quotes within the apt install command
to ensure proper handling of spaces and special characters.

- name: Install Monero build dependencies (macOS)
if: startsWith(matrix.platform, 'macos')
run: |
brew update
brew install ${{ env.DEPS_MONERO_MACOS }} git
brew reinstall --build-from-source unbound expat
brew install protobuf@21

- name: Install Monero build dependencies (Windows)
if: matrix.platform == env.WINDOWS
uses: msys2/setup-msys2@v2
with:
update: true
install: ${{ env.DEPS_MONERO_WINDOWS_MSYS2 }} git

- name: Clone submodules
run: git submodule update --init --recursive

- name: Work around spurious network errors in curl 8.0
shell: bash
Expand Down Expand Up @@ -128,6 +157,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actionhippie/swap-space@v1
with:
size: 15G

- name: Publish Release
uses: crabnebula-dev/cloud-release@v0
with:
Expand Down
61 changes: 41 additions & 20 deletions .github/workflows/build-gui-release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,41 +28,62 @@ jobs:
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up environment variables
uses: ./.github/actions/set-monero-env

- uses: actionhippie/swap-space@v1
if: matrix.platform == env.UBUNTU_PLATFORM_ID
with:
size: 15G

- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*

- uses: Swatinem/[email protected]

- name: install Rust stable
uses: dtolnay/[email protected]
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}

- name: Configure apt for retries (ubuntu only)
if: matrix.platform == env.UBUNTU_PLATFORM_ID
run: ${{ env.APT_SET_CONF_COMMAND }}

Comment on lines +53 to +56
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Unquoted multi-line env expansion triggers SC2086

run: ${{ env.APT_SET_CONF_COMMAND }} is expanded without quotes; any spaces/newlines in the value are subject to word-splitting. Wrap it:

-run: ${{ env.APT_SET_CONF_COMMAND }}
+run: |
+  bash -c "${{ env.APT_SET_CONF_COMMAND }}"

This silences shellcheck and avoids surprising parsing.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Configure apt for retries (ubuntu only)
if: matrix.platform == env.UBUNTU_PLATFORM_ID
run: ${{ env.APT_SET_CONF_COMMAND }}
- name: Configure apt for retries (ubuntu only)
if: matrix.platform == env.UBUNTU_PLATFORM_ID
run: |
bash -c "${{ env.APT_SET_CONF_COMMAND }}"
🤖 Prompt for AI Agents
In .github/workflows/build-gui-release-binaries.yml around lines 53 to 56, the
run command uses an unquoted multi-line environment variable expansion which can
cause word splitting and parsing issues. Fix this by wrapping the entire
expression ${{ env.APT_SET_CONF_COMMAND }} in quotes to ensure it is treated as
a single string and prevent shellcheck SC2086 warnings.

- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-24.04' # This must match the platform value defined above.
if: matrix.platform == env.UBUNTU_PLATFORM_ID # This must match the platform value defined above.
run: |
sudo apt update;
sudo apt install -y \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libappindicator3-dev \
librsvg2-dev;

sudo apt install -y \
libwebkit2gtk-4.1-0=2.44.0-2 \
libwebkit2gtk-4.1-dev=2.44.0-2 \
libjavascriptcoregtk-4.1-0=2.44.0-2 \
libjavascriptcoregtk-4.1-dev=2.44.0-2 \
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
gir1.2-webkit2-4.1=2.44.0-2;
sudo apt install -y ${{ env.DEPS_MONERO_LINUX }} ${{ env.DEPS_GUI_UBUNTU_SPECIFIC }} git

Comment on lines 60 to +62
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Quote aggregated package lists to avoid globbing

Same SC2086 issue for apt install:

-sudo apt install -y ${{ env.DEPS_MONERO_LINUX }} ${{ env.DEPS_GUI_UBUNTU_SPECIFIC }} git
+sudo apt install -y "${{ env.DEPS_MONERO_LINUX }}" "${{ env.DEPS_GUI_UBUNTU_SPECIFIC }}" git
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
sudo apt update;
sudo apt install -y \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libappindicator3-dev \
librsvg2-dev;
sudo apt install -y \
libwebkit2gtk-4.1-0=2.44.0-2 \
libwebkit2gtk-4.1-dev=2.44.0-2 \
libjavascriptcoregtk-4.1-0=2.44.0-2 \
libjavascriptcoregtk-4.1-dev=2.44.0-2 \
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
gir1.2-webkit2-4.1=2.44.0-2;
sudo apt install -y ${{ env.DEPS_MONERO_LINUX }} ${{ env.DEPS_GUI_UBUNTU_SPECIFIC }} git
sudo apt update;
sudo apt install -y "${{ env.DEPS_MONERO_LINUX }}" "${{ env.DEPS_GUI_UBUNTU_SPECIFIC }}" git
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 62-62: trailing spaces

(trailing-spaces)

🤖 Prompt for AI Agents
In .github/workflows/build-gui-release-binaries.yml around lines 60 to 62, the
apt install command uses unquoted environment variables which can cause word
splitting and globbing issues. To fix this, quote the variables ${{
env.DEPS_MONERO_LINUX }} and ${{ env.DEPS_GUI_UBUNTU_SPECIFIC }} in the apt
install command to ensure they are treated as single arguments and prevent
unintended shell expansions.

- name: Get OpenSSL location
if: matrix.platform == env.UBUNTU_PLATFORM_ID
run: |
which openssl
openssl version
echo "OPENSSL_PATH=$(which openssl)" >> $GITHUB_ENV

- name: Install Monero build dependencies (macOS)
if: startsWith(matrix.platform, 'macos')
run: |
brew update
brew install ${{ env.DEPS_MONERO_MACOS }} git
brew reinstall --build-from-source unbound expat
brew install protobuf@21

- name: Install Monero build dependencies (Windows)
if: matrix.platform == env.WINDOWS_PLATFORM_ID
uses: msys2/setup-msys2@v2
with:
update: true
install: ${{ env.DEPS_MONERO_WINDOWS_MSYS2 }} git

- name: Clone submodules
run: git submodule update --init --recursive

- name: work around spurious network errors in curl 8.0
shell: bash
Expand Down
Loading