From 2abeba17f9278ccaa39da30f3772a327ab5f725a Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 1 Dec 2020 10:41:10 +1100 Subject: [PATCH] Save state0 in the swarm to process message0 --- swap/src/alice/execution.rs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/swap/src/alice/execution.rs b/swap/src/alice/execution.rs index 3c74d4d9..c1c83db4 100644 --- a/swap/src/alice/execution.rs +++ b/swap/src/alice/execution.rs @@ -71,6 +71,24 @@ pub async fn negotiate( // TODO: get an ack from libp2p2 swarm.send_amounts(channel, amounts); + let redeem_address = bitcoin_wallet.as_ref().new_address().await?; + let punish_address = redeem_address.clone(); + + let state0 = State0::new( + a, + s_a, + v_a, + amounts.btc, + amounts.xmr, + REFUND_TIMELOCK, + PUNISH_TIMELOCK, + redeem_address, + punish_address, + ); + + // TODO(Franck): Understand why this is needed. + swarm.set_state0(state0.clone()); + let event = timeout(*BOB_TIME_TO_ACT, swarm.next()) .await .context("Failed to receive message 0 from Bob")?; @@ -81,21 +99,6 @@ pub async fn negotiate( let SwapAmounts { btc, xmr } = amounts; - let redeem_address = bitcoin_wallet.as_ref().new_address().await?; - let punish_address = redeem_address.clone(); - - let state0 = State0::new( - a, - s_a, - v_a, - btc, - xmr, - REFUND_TIMELOCK, - PUNISH_TIMELOCK, - redeem_address, - punish_address, - ); - let state1 = state0.receive(message0)?; let event = timeout(*BOB_TIME_TO_ACT, swarm.next())