Commit graph

7 commits

Author SHA1 Message Date
Mohan
801ce8fd9d
feat(taker): Improve maker discovery (#692)
* mvp

* only redial if DisconnectedAndNotDialing

* progress

* progress

* progress

* some progress

* progress

* extract common logic into behaviour_util::ConnectionTracker

* extract common logic into BackoffTracker helper struct

* add comment in quote::background behaviour

* BackoffTracker rename get_backoff to get(...)

* cleanup, fix some things that got lost during rebase

* properly propagate quote::background ToSwarm events

* actually persist event loop, add quotes and rendezvous::discovery to cli behaviour

* some progress, cleanup, comments

* progress

* redial all peers that we dont know dont support quote, use quotes_cached behaviour in example, add remove_peer(...) to redial behaviour, don't redial discovered rendezvous peers

* remove old todo

* quotes_cached.rs: cache last connected endpoint

* rename: add_peer_address -> queue_peer_address

* extract p2p defaults into swap-p2p/defaults.rs

* split rendezvous.rs into two sub-modules

* remove unused bob::BackgroundQuoteReceived

* replace usage of list_sellers with event loop

* prune: remove list_sellers command

* use backoff helper in swap-p2p/src/protocols/quotes.rs

* refactor rendezvous::register behaviour, getting some unit tests working again

* add all peer addresses to the swarm on init

* less agressive redials

* extract magic backoff numbers

* proof of concept: drill tracing span into event loop through channels

* add BackoffTracker::increment, re-schedule register when we lose connection to rendezvous point

* fetch identify version and propagate into UI

* forbid private/local/loopback ip addresses to be shared/accepted through Identify

* remove legacy list_sellers code

* ensure uuids are unique for alice during swap_setup

* formatting and nitpicks

* fix: allow multiple swap setup requests over the same connection handler

* small cleanups

* fix: protocols/quotes.rs unit tests

* revert: listen on 0.0.0.0 for asb p2p

* propagate handle_pending_inbound_connection and handle_pending_outbound_connection to identify patch source

* replace loop with repeated return Poll::Ready in discovery.rs

* format

* MultiAddrVecExt trait, emit rendezvous addresses to rendezvous-node swarm

* fix: strictly disallow concurrent swap setup requests for the same swap on the same connection

* fix tests etc

* remove slop from futures_util.rs

* address some comments

* behaviour_util.rs: track inflight dials, add tests, return Some(peer_id) if internal state was changed

* replace boring-avatars with jidenticon

* feat: add peer discovery status dialog

* remove buy-xmr cli command, remove "sellers" arg for BuyXmrArgs, add changelog

* disable body overscroll

* add changelog for jidenticon

* increase quote fetch interval to 45s

* fix rendezvous::register_and_discover_together test
2025-12-01 18:03:13 +01:00
jstark2a
8fe2c2ad7e
feat(asb): add peer-id command to asb-controller (#754)
* add peer-id command to controller

* add peer-id command to changelog

* nitpick: add some more context to peer id command

---------

Co-authored-by: Binarybaron <binarybaron@protonmail.com>
2025-11-19 20:42:10 +01:00
Mohan
1026a51c98
feat(asb): Add registration-status controller cmd (#671)
* feat(asb): Add registration-status controller cmd

* fmt

* add changelog entry

* condense

* remove redundant attributes

* rename

* add comment
2025-11-02 23:13:28 +01:00
Mohan
4ae47e57f9
refactor: swap-core / swap-machine (#530)
* progress

* fix thread safety

* move monero types from swap into swap_core

* just fmt

* move non test code above test code

* revert removed tracing in bitcoin-wallet/src/primitives.rs

* Use existing private_key_from_secp256k1_scalar

* remove unused monero chose code

* fix some clippy warnings due to imports

* move state machine types into the new `swap-machine` crate

* remove monero_c orphan submodule

* rm bdk_test and sqlx_test from ci

* move proptest.rs into swap-proptest

* increase stack size to 12mb

* properly increase stack size

* fix merge conflict in ci.yml

* don't increase stack size on mac

* fix infinite recursion

* fix integration tests

* fix some compile errors

* fix compilation errors

* rustfmt

* ignore unstaged patches we applied to monero submodule when running git status

* fix some test compilation errors

* use BitcoinWallet trait instead of concrete type everywhere

* add just test command to run integration tests

* remove test_utils features from bdk in swap-core

---------

Co-authored-by: einliterflasche <einliterflasche@pm.me>
Co-authored-by: binarybaron <binarybaron@mail.mail>
2025-10-10 16:29:00 +02:00
Binarybaron
ee71024466 feat(controller, orchestratror): Add bitcoin-seed command 2025-08-15 20:15:45 +02:00
Mohan
6861f38f16
feat(swap-controller): Add monero-seed RPC command (#511) 2025-08-11 09:48:23 +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