|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
use anyhow::{anyhow, bail, Context, Result};
|
|
|
|
|
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
|
|
|
|
use std::path::Path;
|
|
|
|
|
use std::{fmt::Display, path::Path};
|
|
|
|
|
use uuid::Uuid;
|
|
|
|
|
use xmr_btc::{alice, bob, monero, serde::monero_private_key};
|
|
|
|
|
|
|
|
|
@ -53,6 +53,42 @@ impl From<Bob> for Swap {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Display for Swap {
|
|
|
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
match self {
|
|
|
|
|
Swap::Alice(alice) => Display::fmt(alice, f),
|
|
|
|
|
Swap::Bob(bob) => Display::fmt(bob, f),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Display for Alice {
|
|
|
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
match self {
|
|
|
|
|
Alice::Handshaken(_) => f.write_str("Handshake complete"),
|
|
|
|
|
Alice::BtcLocked(_) => f.write_str("Bitcoin locked"),
|
|
|
|
|
Alice::XmrLocked(_) => f.write_str("Monero locked"),
|
|
|
|
|
Alice::BtcRedeemable { .. } => f.write_str("Bitcoin redeemable"),
|
|
|
|
|
Alice::BtcPunishable(_) => f.write_str("Bitcoin punishable"),
|
|
|
|
|
Alice::BtcRefunded { .. } => f.write_str("Monero refundable"),
|
|
|
|
|
Alice::SwapComplete => f.write_str("Swap complete"),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Display for Bob {
|
|
|
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
match self {
|
|
|
|
|
Bob::Handshaken(_) => f.write_str("Handshake complete"),
|
|
|
|
|
Bob::BtcLocked(_) | Bob::XmrLocked(_) | Bob::BtcRefundable(_) => {
|
|
|
|
|
f.write_str("Bitcoin refundable")
|
|
|
|
|
}
|
|
|
|
|
Bob::BtcRedeemed(_) => f.write_str("Monero redeemable"),
|
|
|
|
|
Bob::SwapComplete => f.write_str("Swap complete"),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct Database(sled::Db);
|
|
|
|
|
|
|
|
|
|
impl Database {
|
|
|
|
|