|
|
|
@ -152,7 +152,6 @@ impl State0 {
|
|
|
|
|
S_a_monero: msg.S_a_monero,
|
|
|
|
|
S_a_bitcoin: msg.S_a_bitcoin,
|
|
|
|
|
v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
@ -173,8 +172,6 @@ pub struct State1 {
|
|
|
|
|
S_a_monero: monero::PublicKey,
|
|
|
|
|
S_a_bitcoin: bitcoin::PublicKey,
|
|
|
|
|
v: monero::PrivateViewKey,
|
|
|
|
|
#[serde(with = "::bitcoin::util::amount::serde::as_sat")]
|
|
|
|
|
btc: bitcoin::Amount,
|
|
|
|
|
xmr: monero::Amount,
|
|
|
|
|
cancel_timelock: CancelTimelock,
|
|
|
|
|
punish_timelock: PunishTimelock,
|
|
|
|
@ -211,7 +208,6 @@ impl State1 {
|
|
|
|
|
S_a_monero: self.S_a_monero,
|
|
|
|
|
S_a_bitcoin: self.S_a_bitcoin,
|
|
|
|
|
v: self.v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
@ -234,8 +230,6 @@ pub struct State2 {
|
|
|
|
|
S_a_monero: monero::PublicKey,
|
|
|
|
|
S_a_bitcoin: bitcoin::PublicKey,
|
|
|
|
|
v: monero::PrivateViewKey,
|
|
|
|
|
#[serde(with = "::bitcoin::util::amount::serde::as_sat")]
|
|
|
|
|
btc: bitcoin::Amount,
|
|
|
|
|
xmr: monero::Amount,
|
|
|
|
|
cancel_timelock: CancelTimelock,
|
|
|
|
|
punish_timelock: PunishTimelock,
|
|
|
|
@ -280,13 +274,11 @@ impl State2 {
|
|
|
|
|
S_a_monero: self.S_a_monero,
|
|
|
|
|
S_a_bitcoin: self.S_a_bitcoin,
|
|
|
|
|
v: self.v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
|
refund_address: self.refund_address,
|
|
|
|
|
redeem_address: self.redeem_address,
|
|
|
|
|
punish_address: self.punish_address,
|
|
|
|
|
tx_lock: self.tx_lock,
|
|
|
|
|
tx_cancel_sig_a: self.tx_cancel_sig_a,
|
|
|
|
|
tx_refund_encsig: self.tx_refund_encsig,
|
|
|
|
@ -303,14 +295,11 @@ pub struct State3 {
|
|
|
|
|
S_a_monero: monero::PublicKey,
|
|
|
|
|
S_a_bitcoin: bitcoin::PublicKey,
|
|
|
|
|
v: monero::PrivateViewKey,
|
|
|
|
|
#[serde(with = "::bitcoin::util::amount::serde::as_sat")]
|
|
|
|
|
btc: bitcoin::Amount,
|
|
|
|
|
xmr: monero::Amount,
|
|
|
|
|
cancel_timelock: CancelTimelock,
|
|
|
|
|
punish_timelock: PunishTimelock,
|
|
|
|
|
refund_address: bitcoin::Address,
|
|
|
|
|
redeem_address: bitcoin::Address,
|
|
|
|
|
punish_address: bitcoin::Address,
|
|
|
|
|
tx_lock: bitcoin::TxLock,
|
|
|
|
|
tx_cancel_sig_a: Signature,
|
|
|
|
|
tx_refund_encsig: bitcoin::EncryptedSignature,
|
|
|
|
@ -346,16 +335,12 @@ impl State3 {
|
|
|
|
|
A: self.A,
|
|
|
|
|
b: self.b,
|
|
|
|
|
s_b: self.s_b,
|
|
|
|
|
S_a_monero: self.S_a_monero,
|
|
|
|
|
S_a_bitcoin: self.S_a_bitcoin,
|
|
|
|
|
v: self.v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
|
refund_address: self.refund_address,
|
|
|
|
|
redeem_address: self.redeem_address,
|
|
|
|
|
punish_address: self.punish_address,
|
|
|
|
|
tx_lock: self.tx_lock,
|
|
|
|
|
tx_cancel_sig_a: self.tx_cancel_sig_a,
|
|
|
|
|
tx_refund_encsig: self.tx_refund_encsig,
|
|
|
|
@ -380,16 +365,12 @@ impl State3 {
|
|
|
|
|
A: self.A,
|
|
|
|
|
b: self.b.clone(),
|
|
|
|
|
s_b: self.s_b,
|
|
|
|
|
S_a_monero: self.S_a_monero,
|
|
|
|
|
S_a_bitcoin: self.S_a_bitcoin,
|
|
|
|
|
v: self.v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
|
refund_address: self.refund_address.clone(),
|
|
|
|
|
redeem_address: self.redeem_address.clone(),
|
|
|
|
|
punish_address: self.punish_address.clone(),
|
|
|
|
|
tx_lock: self.tx_lock.clone(),
|
|
|
|
|
tx_cancel_sig_a: self.tx_cancel_sig_a.clone(),
|
|
|
|
|
tx_refund_encsig: self.tx_refund_encsig.clone(),
|
|
|
|
@ -420,17 +401,12 @@ pub struct State4 {
|
|
|
|
|
A: bitcoin::PublicKey,
|
|
|
|
|
b: bitcoin::SecretKey,
|
|
|
|
|
s_b: cross_curve_dleq::Scalar,
|
|
|
|
|
S_a_monero: monero::PublicKey,
|
|
|
|
|
S_a_bitcoin: bitcoin::PublicKey,
|
|
|
|
|
v: monero::PrivateViewKey,
|
|
|
|
|
#[serde(with = "::bitcoin::util::amount::serde::as_sat")]
|
|
|
|
|
btc: bitcoin::Amount,
|
|
|
|
|
xmr: monero::Amount,
|
|
|
|
|
cancel_timelock: CancelTimelock,
|
|
|
|
|
punish_timelock: PunishTimelock,
|
|
|
|
|
refund_address: bitcoin::Address,
|
|
|
|
|
redeem_address: bitcoin::Address,
|
|
|
|
|
punish_address: bitcoin::Address,
|
|
|
|
|
tx_lock: bitcoin::TxLock,
|
|
|
|
|
tx_cancel_sig_a: Signature,
|
|
|
|
|
tx_refund_encsig: bitcoin::EncryptedSignature,
|
|
|
|
@ -514,23 +490,10 @@ impl State4 {
|
|
|
|
|
let s_a = monero::private_key_from_secp256k1_scalar(s_a.into());
|
|
|
|
|
|
|
|
|
|
Ok(State5 {
|
|
|
|
|
A: self.A,
|
|
|
|
|
b: self.b.clone(),
|
|
|
|
|
s_a,
|
|
|
|
|
s_b: self.s_b,
|
|
|
|
|
S_a_monero: self.S_a_monero,
|
|
|
|
|
S_a_bitcoin: self.S_a_bitcoin,
|
|
|
|
|
v: self.v,
|
|
|
|
|
btc: self.btc,
|
|
|
|
|
xmr: self.xmr,
|
|
|
|
|
cancel_timelock: self.cancel_timelock,
|
|
|
|
|
punish_timelock: self.punish_timelock,
|
|
|
|
|
refund_address: self.refund_address.clone(),
|
|
|
|
|
redeem_address: self.redeem_address.clone(),
|
|
|
|
|
punish_address: self.punish_address.clone(),
|
|
|
|
|
tx_lock: self.tx_lock.clone(),
|
|
|
|
|
tx_refund_encsig: self.tx_refund_encsig.clone(),
|
|
|
|
|
tx_cancel_sig: self.tx_cancel_sig_a.clone(),
|
|
|
|
|
monero_wallet_restore_blockheight: self.monero_wallet_restore_blockheight,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
@ -602,25 +565,11 @@ impl State4 {
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
|
|
|
|
pub struct State5 {
|
|
|
|
|
A: bitcoin::PublicKey,
|
|
|
|
|
b: bitcoin::SecretKey,
|
|
|
|
|
#[serde(with = "monero_private_key")]
|
|
|
|
|
s_a: monero::PrivateKey,
|
|
|
|
|
s_b: cross_curve_dleq::Scalar,
|
|
|
|
|
S_a_monero: monero::PublicKey,
|
|
|
|
|
S_a_bitcoin: bitcoin::PublicKey,
|
|
|
|
|
v: monero::PrivateViewKey,
|
|
|
|
|
#[serde(with = "::bitcoin::util::amount::serde::as_sat")]
|
|
|
|
|
btc: bitcoin::Amount,
|
|
|
|
|
xmr: monero::Amount,
|
|
|
|
|
cancel_timelock: CancelTimelock,
|
|
|
|
|
punish_timelock: PunishTimelock,
|
|
|
|
|
refund_address: bitcoin::Address,
|
|
|
|
|
redeem_address: bitcoin::Address,
|
|
|
|
|
punish_address: bitcoin::Address,
|
|
|
|
|
tx_lock: bitcoin::TxLock,
|
|
|
|
|
tx_refund_encsig: bitcoin::EncryptedSignature,
|
|
|
|
|
tx_cancel_sig: Signature,
|
|
|
|
|
monero_wallet_restore_blockheight: u32,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|