Bubble up an event when Bob receives message 3 response

Before this patch Bob is not sending message 3. This is because we are not
polling Bob's swarm correctly. To fix it we can just mimic the other NB's and
bubble up an event when Bob receives message 3 response from Alice, this way we
can `await` upon this event which triggers polling, making Bob's swarm send the
message.
This commit is contained in:
Tobin C. Harding 2020-10-30 09:26:52 +11:00 committed by Lucas Soriano del Pino
parent a37f43a1ba
commit 4d4acde476
6 changed files with 49 additions and 16 deletions

View file

@ -78,10 +78,15 @@ pub async fn swap(
#[derive(Debug)]
struct UnexpectedMessage;
tracing::debug!("Receiving bitcoin redeem encsig");
(|| async {
let mut guard = self.swarm.lock().await;
let encsig = match guard.next().await {
OutEvent::Message3(msg) => msg.tx_redeem_encsig,
OutEvent::Message3(msg) => {
tracing::debug!("Got redeem encsig from Bob");
msg.tx_redeem_encsig
}
other => {
warn!("Expected Bob's Message3, got: {:?}", other);
return Err(backoff::Error::Transient(UnexpectedMessage));