use ddk::util::ser::ContractPrefix;
use dlc_messages::Message;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum SquawkboxNotificationKind {
SendingMessage,
ReceivedMessage,
Error,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SquawkboxNotification {
pub kind: SquawkboxNotificationKind,
pub counterparty: String,
pub contract_id: String,
pub state: u8,
pub message: Option<String>,
}
pub fn contract_prefix(msg: &Message) -> u8 {
match msg {
Message::Offer(_) => ContractPrefix::Offered.into(),
Message::Accept(_) => ContractPrefix::Accepted.into(),
Message::Sign(_) => ContractPrefix::Signed.into(),
Message::OfferChannel(_) => ContractPrefix::Offered.into(),
Message::AcceptChannel(_) => ContractPrefix::Accepted.into(),
Message::SignChannel(_) => ContractPrefix::Signed.into(),
Message::CollaborativeCloseOffer(_) => ContractPrefix::Closed.into(),
_ => ContractPrefix::Rejected.into(),
}
}