mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-06-27 08:10:40 -04:00
35 lines
1,009 B
Rust
35 lines
1,009 B
Rust
use anyhow::Result;
|
|
use ecdsa_fun::{adaptor::EncryptedSignature, Signature};
|
|
use serde::{Deserialize, Serialize};
|
|
use std::convert::TryFrom;
|
|
|
|
use crate::{bitcoin, monero};
|
|
|
|
#[derive(Debug)]
|
|
pub enum Message {
|
|
Message0(Message0),
|
|
Message1(Message1),
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Message0 {
|
|
pub(crate) A: bitcoin::PublicKey,
|
|
pub(crate) S_a_monero: monero::PublicKey,
|
|
pub(crate) S_a_bitcoin: bitcoin::PublicKey,
|
|
pub(crate) dleq_proof_s_a: cross_curve_dleq::Proof,
|
|
pub(crate) v_a: monero::PrivateViewKey,
|
|
pub(crate) redeem_address: bitcoin::Address,
|
|
pub(crate) punish_address: bitcoin::Address,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Message1 {
|
|
pub(crate) tx_cancel_sig: Signature,
|
|
pub(crate) tx_refund_encsig: EncryptedSignature,
|
|
}
|
|
|
|
impl_try_from_parent_enum!(Message0, Message);
|
|
impl_try_from_parent_enum!(Message1, Message);
|
|
|
|
impl_from_child_enum!(Message0, Message);
|
|
impl_from_child_enum!(Message1, Message);
|