From 1057d115d1d40f33d994a82ff70a1d2e87d8212e Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Tue, 23 Mar 2021 17:26:13 +1100 Subject: [PATCH] Re-order bob::event_loop based on importance --- swap/src/protocol/bob/event_loop.rs | 170 ++++++++++++++-------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/swap/src/protocol/bob/event_loop.rs b/swap/src/protocol/bob/event_loop.rs index 9f55bf2a..97e49701 100644 --- a/swap/src/protocol/bob/event_loop.rs +++ b/swap/src/protocol/bob/event_loop.rs @@ -11,91 +11,6 @@ use std::sync::Arc; use tokio::sync::mpsc::{Receiver, Sender}; use tracing::{debug, error}; -#[derive(Debug)] -pub struct Channels { - sender: Sender, - receiver: Receiver, -} - -impl Channels { - pub fn new() -> Channels { - let (sender, receiver) = tokio::sync::mpsc::channel(100); - Channels { sender, receiver } - } -} - -impl Default for Channels { - fn default() -> Self { - Self::new() - } -} - -#[derive(Debug)] -pub struct EventLoopHandle { - start_execution_setup: Sender, - done_execution_setup: Receiver>, - recv_transfer_proof: Receiver, - send_encrypted_signature: Sender, - request_spot_price: Sender, - recv_spot_price: Receiver, - request_quote: Sender<()>, - recv_quote: Receiver, -} - -impl EventLoopHandle { - pub async fn execution_setup(&mut self, state0: State0) -> Result { - let _ = self.start_execution_setup.send(state0).await?; - - self.done_execution_setup - .recv() - .await - .ok_or_else(|| anyhow!("Failed to setup execution with Alice"))? - } - - pub async fn recv_transfer_proof(&mut self) -> Result { - self.recv_transfer_proof - .recv() - .await - .ok_or_else(|| anyhow!("Failed to receive transfer proof from Alice")) - } - - pub async fn request_spot_price(&mut self, btc: bitcoin::Amount) -> Result { - let _ = self - .request_spot_price - .send(spot_price::Request { btc }) - .await?; - - let response = self - .recv_spot_price - .recv() - .await - .ok_or_else(|| anyhow!("Failed to receive spot price from Alice"))?; - - Ok(response.xmr) - } - - pub async fn request_quote(&mut self) -> Result { - let _ = self.request_quote.send(()).await?; - - let quote = self - .recv_quote - .recv() - .await - .ok_or_else(|| anyhow!("Failed to receive quote from Alice"))?; - - Ok(quote) - } - - pub async fn send_encrypted_signature( - &mut self, - tx_redeem_encsig: EncryptedSignature, - ) -> Result<()> { - self.send_encrypted_signature.send(tx_redeem_encsig).await?; - - Ok(()) - } -} - #[allow(missing_debug_implementations)] pub struct EventLoop { swarm: libp2p::Swarm, @@ -250,3 +165,88 @@ impl EventLoop { } } } + +#[derive(Debug)] +pub struct EventLoopHandle { + start_execution_setup: Sender, + done_execution_setup: Receiver>, + recv_transfer_proof: Receiver, + send_encrypted_signature: Sender, + request_spot_price: Sender, + recv_spot_price: Receiver, + request_quote: Sender<()>, + recv_quote: Receiver, +} + +impl EventLoopHandle { + pub async fn execution_setup(&mut self, state0: State0) -> Result { + let _ = self.start_execution_setup.send(state0).await?; + + self.done_execution_setup + .recv() + .await + .ok_or_else(|| anyhow!("Failed to setup execution with Alice"))? + } + + pub async fn recv_transfer_proof(&mut self) -> Result { + self.recv_transfer_proof + .recv() + .await + .ok_or_else(|| anyhow!("Failed to receive transfer proof from Alice")) + } + + pub async fn request_spot_price(&mut self, btc: bitcoin::Amount) -> Result { + let _ = self + .request_spot_price + .send(spot_price::Request { btc }) + .await?; + + let response = self + .recv_spot_price + .recv() + .await + .ok_or_else(|| anyhow!("Failed to receive spot price from Alice"))?; + + Ok(response.xmr) + } + + pub async fn request_quote(&mut self) -> Result { + let _ = self.request_quote.send(()).await?; + + let quote = self + .recv_quote + .recv() + .await + .ok_or_else(|| anyhow!("Failed to receive quote from Alice"))?; + + Ok(quote) + } + + pub async fn send_encrypted_signature( + &mut self, + tx_redeem_encsig: EncryptedSignature, + ) -> Result<()> { + self.send_encrypted_signature.send(tx_redeem_encsig).await?; + + Ok(()) + } +} + +#[derive(Debug)] +struct Channels { + sender: Sender, + receiver: Receiver, +} + +impl Channels { + fn new() -> Channels { + let (sender, receiver) = tokio::sync::mpsc::channel(100); + Channels { sender, receiver } + } +} + +impl Default for Channels { + fn default() -> Self { + Self::new() + } +}