Refund if Alice takes too long to prove that Monero has been locked

This commit is contained in:
Lucas Soriano del Pino 2020-10-16 10:54:12 +11:00
parent 176b2195e3
commit c1f6adc8ed

View File

@ -151,7 +151,16 @@ where
futures::pin_mut!(poll_until_btc_has_expired);
// the source of this could be the database, this layer doesn't care
let transfer_proof = network.receive_transfer_proof().await;
let transfer_proof = match select(
network.receive_transfer_proof(),
poll_until_btc_has_expired.clone(),
)
.await
{
Either::Left((proof, _)) => proof,
Either::Right(_) => return Err(SwapFailed::TimelockReached),
};
let S_b_monero = monero::PublicKey::from_private_key(&monero::PrivateKey::from_scalar(
s_b.into_ed25519(),