* 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
* 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>
* 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>
* 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>