From 11cea9ba69b84fd7765320bf96a85674fb53e83b Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Thu, 10 Dec 2020 14:59:09 +1100 Subject: [PATCH] Remove passing alice peer id The usage of the peer id is incorrect as we do not even check it when dialing. For now, we can ignore it. We can then re-introduce it and use it properly at a later stage. --- swap/src/bin/swap.rs | 3 +-- swap/src/bob/execution.rs | 20 ++++++++++--------- swap/src/bob/swap.rs | 6 ++---- swap/tests/e2e.rs | 42 ++++++++++++--------------------------- 4 files changed, 27 insertions(+), 44 deletions(-) diff --git a/swap/src/bin/swap.rs b/swap/src/bin/swap.rs index f8da52e4..45414bb0 100644 --- a/swap/src/bin/swap.rs +++ b/swap/src/bin/swap.rs @@ -130,7 +130,7 @@ async fn main() -> Result<()> { } Options::BuyXmr { alice_addr, - alice_peer_id, + alice_peer_id: _, bitcoind_url, bitcoin_wallet_name, monero_wallet_rpc_url, @@ -182,7 +182,6 @@ async fn main() -> Result<()> { let bob_state = BobState::Started { state0, amounts, - peer_id: alice_peer_id, addr: alice_addr, }; diff --git a/swap/src/bob/execution.rs b/swap/src/bob/execution.rs index 486a3e0a..5f4b09a3 100644 --- a/swap/src/bob/execution.rs +++ b/swap/src/bob/execution.rs @@ -1,6 +1,6 @@ use crate::{bob::event_loop::EventLoopHandle, SwapAmounts}; use anyhow::Result; -use libp2p::core::Multiaddr; +use libp2p::{core::Multiaddr, PeerId}; use rand::{CryptoRng, RngCore}; use std::sync::Arc; use xmr_btc::bob::State2; @@ -12,32 +12,34 @@ pub async fn negotiate( addr: Multiaddr, mut rng: R, bitcoin_wallet: Arc, -) -> Result +) -> Result<(State2, PeerId)> where R: RngCore + CryptoRng + Send, { tracing::trace!("Starting negotiate"); swarm.dial_alice(addr).await?; - let alice = swarm.recv_conn_established().await?; - - swarm.request_amounts(alice.clone(), amounts.btc).await?; + let alice_peer_id = swarm.recv_conn_established().await?; swarm - .send_message0(alice.clone(), state0.next_message(&mut rng)) + .request_amounts(alice_peer_id.clone(), amounts.btc) + .await?; + + swarm + .send_message0(alice_peer_id.clone(), state0.next_message(&mut rng)) .await?; let msg0 = swarm.recv_message0().await?; let state1 = state0.receive(bitcoin_wallet.as_ref(), msg0).await?; swarm - .send_message1(alice.clone(), state1.next_message()) + .send_message1(alice_peer_id.clone(), state1.next_message()) .await?; let msg1 = swarm.recv_message1().await?; let state2 = state1.receive(msg1)?; swarm - .send_message2(alice.clone(), state2.next_message()) + .send_message2(alice_peer_id.clone(), state2.next_message()) .await?; - Ok(state2) + Ok((state2, alice_peer_id)) } diff --git a/swap/src/bob/swap.rs b/swap/src/bob/swap.rs index b37fec75..7368bb6c 100644 --- a/swap/src/bob/swap.rs +++ b/swap/src/bob/swap.rs @@ -21,7 +21,6 @@ pub enum BobState { Started { state0: bob::State0, amounts: SwapAmounts, - peer_id: PeerId, addr: Multiaddr, }, Negotiated(bob::State2, PeerId), @@ -121,10 +120,9 @@ where BobState::Started { state0, amounts, - peer_id, addr, } => { - let state2 = negotiate( + let (state2, alice_peer_id) = negotiate( state0, amounts, &mut event_loop_handle, @@ -134,7 +132,7 @@ where ) .await?; run_until( - BobState::Negotiated(state2, peer_id), + BobState::Negotiated(state2, alice_peer_id), is_target_state, event_loop_handle, db, diff --git a/swap/tests/e2e.rs b/swap/tests/e2e.rs index b53f7645..7fc281ef 100644 --- a/swap/tests/e2e.rs +++ b/swap/tests/e2e.rs @@ -1,6 +1,6 @@ use bitcoin_harness::Bitcoind; use futures::future::try_join; -use libp2p::{Multiaddr, PeerId}; +use libp2p::Multiaddr; use monero_harness::Monero; use rand::rngs::OsRng; use std::sync::Arc; @@ -52,7 +52,6 @@ async fn happy_path() { alice_swarm_handle, alice_btc_wallet, alice_xmr_wallet, - alice_peer_id, ) = init_alice( &bitcoind, &monero, @@ -68,7 +67,6 @@ async fn happy_path() { let (bob_state, bob_swarm_driver, bob_swarm_handle, bob_btc_wallet, bob_xmr_wallet, bob_db) = init_bob( alice_multiaddr, - alice_peer_id, &bitcoind, &monero, btc_to_swap, @@ -151,29 +149,22 @@ async fn alice_punishes_if_bob_never_acts_after_fund() { let config = Config::regtest(); - let ( - alice_state, - mut alice_swarm, - alice_swarm_handle, - alice_btc_wallet, - alice_xmr_wallet, - alice_peer_id, - ) = init_alice( - &bitcoind, - &monero, - btc_to_swap, - alice_btc_starting_balance, - xmr_to_swap, - alice_xmr_starting_balance, - alice_multiaddr.clone(), - config, - ) - .await; + let (alice_state, mut alice_swarm, alice_swarm_handle, alice_btc_wallet, alice_xmr_wallet) = + init_alice( + &bitcoind, + &monero, + btc_to_swap, + alice_btc_starting_balance, + xmr_to_swap, + alice_xmr_starting_balance, + alice_multiaddr.clone(), + config, + ) + .await; let (bob_state, bob_swarm_driver, bob_swarm_handle, bob_btc_wallet, bob_xmr_wallet, bob_db) = init_bob( alice_multiaddr, - alice_peer_id, &bitcoind, &monero, btc_to_swap, @@ -276,7 +267,6 @@ async fn both_refund() { alice_swarm_handle, alice_btc_wallet, alice_xmr_wallet, - alice_peer_id, ) = init_alice( &bitcoind, &monero, @@ -292,7 +282,6 @@ async fn both_refund() { let (bob_state, bob_swarm_driver, bob_swarm_handle, bob_btc_wallet, bob_xmr_wallet, bob_db) = init_bob( alice_multiaddr, - alice_peer_id, &bitcoind, &monero, btc_to_swap, @@ -398,7 +387,6 @@ async fn init_alice( alice::event_loop::EventLoopHandle, Arc, Arc, - PeerId, ) { monero .init(vec![("alice", xmr_starting_balance.as_piconero())]) @@ -448,7 +436,6 @@ async fn init_alice( ) }; - let alice_peer_id = alice_behaviour.peer_id(); let alice_transport = build(alice_behaviour.identity()).unwrap(); let (swarm_driver, handle) = @@ -460,14 +447,12 @@ async fn init_alice( handle, alice_btc_wallet, alice_xmr_wallet, - alice_peer_id, ) } #[allow(clippy::too_many_arguments)] async fn init_bob( alice_multiaddr: Multiaddr, - alice_peer_id: PeerId, bitcoind: &Bitcoind<'_>, monero: &Monero, btc_to_swap: bitcoin::Amount, @@ -525,7 +510,6 @@ async fn init_bob( let bob_state = BobState::Started { state0, amounts, - peer_id: alice_peer_id, addr: alice_multiaddr, };