Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions swap/src/asb/event_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,11 @@ where
unknown_swap_id = %swap_id,
from = %peer,
"Ignoring encrypted signature for unknown swap");

if let Ok(()) = self.swarm.disconnect_peer_id(peer) {
tracing::debug!(%peer, "Disconnected peer for malicious encrypted signature request")
}

continue;
}
};
Expand All @@ -352,6 +357,11 @@ where
expected_from = %swap_peer,
"Ignoring malicious encrypted signature which was not expected from this peer",
);

if let Ok(()) = self.swarm.disconnect_peer_id(peer) {
tracing::debug!(%peer, "Disconnected peer for malicious encrypted signature request")
}

continue;
}

Expand Down Expand Up @@ -809,6 +819,11 @@ where
},
)
.map_err(|_| anyhow!("Couldn't reject cooperative redeem request"))?;

if let Ok(()) = self.swarm.disconnect_peer_id(peer) {
tracing::debug!(%peer, "Disconnected peer for malicious cooperative Monero redeem request")
}

bail!("swap not found")
}
};
Expand All @@ -833,6 +848,11 @@ where
},
)
.map_err(|_| anyhow!("Failed to reject cooperative XMR redeem request"))?;

if let Ok(()) = self.swarm.disconnect_peer_id(peer) {
tracing::debug!(%peer, "Disconnected peer for malicious cooperative Monero redeem request")
}

bail!("malicious request (wrong peer)")
}

Expand Down Expand Up @@ -862,6 +882,11 @@ where
.map_err(|_| {
anyhow!("Failed to send rejection for cooperative Monero redeem request")
})?;

if let Ok(()) = self.swarm.disconnect_peer_id(peer) {
tracing::debug!(%peer, "Disconnected peer for malicious cooperative Monero redeem request")
}

bail!("swap in invalid state")
};

Expand Down Expand Up @@ -1576,12 +1601,12 @@ mod service {
mod quote {
use crate::monero::{Amount, AmountExt};
use anyhow::{Context, anyhow};
use bitcoin_wallet::BitcoinWallet;
use rust_decimal::Decimal;
use std::{
sync::Arc,
time::{Duration, Instant},
};
use bitcoin_wallet::BitcoinWallet;
use swap_feed::LatestRate;
use tokio::time::timeout;

Expand Down Expand Up @@ -1786,7 +1811,12 @@ mod quote {

backoff::future::retry_notify(
backoff,
|| async { wallet.health_check().await.map_err(backoff::Error::transient) },
|| async {
wallet
.health_check()
.await
.map_err(backoff::Error::transient)
},
|e, wait_time: Duration| {
tracing::warn!(
error = ?e,
Expand Down
Loading