mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-08-05 21:14:32 -04:00
Extract spend key as soon as possible
This commit is contained in:
parent
c095693a5f
commit
238f6a989d
1 changed files with 22 additions and 25 deletions
|
@ -67,8 +67,7 @@ pub enum AliceState {
|
||||||
tx_cancel: TxCancel,
|
tx_cancel: TxCancel,
|
||||||
},
|
},
|
||||||
BtcRefunded {
|
BtcRefunded {
|
||||||
tx_refund: TxRefund,
|
spend_key: monero::PrivateKey,
|
||||||
published_refund_tx: ::bitcoin::Transaction,
|
|
||||||
state3: State3,
|
state3: State3,
|
||||||
},
|
},
|
||||||
BtcPunishable {
|
BtcPunishable {
|
||||||
|
@ -244,8 +243,9 @@ pub async fn run_until(
|
||||||
tracing::info!("Cannot resume swap from BTC locked state, aborting");
|
tracing::info!("Cannot resume swap from BTC locked state, aborting");
|
||||||
|
|
||||||
// Alice did not lock Xmr yet
|
// Alice did not lock Xmr yet
|
||||||
swap(
|
run_until(
|
||||||
AliceState::SafelyAborted,
|
AliceState::SafelyAborted,
|
||||||
|
is_target_state,
|
||||||
event_loop_handle,
|
event_loop_handle,
|
||||||
bitcoin_wallet,
|
bitcoin_wallet,
|
||||||
monero_wallet,
|
monero_wallet,
|
||||||
|
@ -401,12 +401,16 @@ pub async fn run_until(
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
Some(published_refund_tx) => {
|
Some(published_refund_tx) => {
|
||||||
|
let spend_key = extract_monero_private_key(
|
||||||
|
published_refund_tx,
|
||||||
|
tx_refund,
|
||||||
|
state3.s_a,
|
||||||
|
state3.a.clone(),
|
||||||
|
state3.S_b_bitcoin,
|
||||||
|
)?;
|
||||||
|
|
||||||
run_until(
|
run_until(
|
||||||
AliceState::BtcRefunded {
|
AliceState::BtcRefunded { spend_key, state3 },
|
||||||
tx_refund,
|
|
||||||
published_refund_tx,
|
|
||||||
state3,
|
|
||||||
},
|
|
||||||
is_target_state,
|
is_target_state,
|
||||||
event_loop_handle,
|
event_loop_handle,
|
||||||
bitcoin_wallet.clone(),
|
bitcoin_wallet.clone(),
|
||||||
|
@ -417,18 +421,7 @@ pub async fn run_until(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AliceState::BtcRefunded {
|
AliceState::BtcRefunded { spend_key, state3 } => {
|
||||||
tx_refund,
|
|
||||||
published_refund_tx,
|
|
||||||
state3,
|
|
||||||
} => {
|
|
||||||
let spend_key = extract_monero_private_key(
|
|
||||||
published_refund_tx,
|
|
||||||
tx_refund,
|
|
||||||
state3.s_a,
|
|
||||||
state3.a.clone(),
|
|
||||||
state3.S_b_bitcoin,
|
|
||||||
)?;
|
|
||||||
let view_key = state3.v;
|
let view_key = state3.v;
|
||||||
|
|
||||||
monero_wallet
|
monero_wallet
|
||||||
|
@ -472,12 +465,16 @@ pub async fn run_until(
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
Either::Right((published_refund_tx, _)) => {
|
Either::Right((published_refund_tx, _)) => {
|
||||||
|
let spend_key = extract_monero_private_key(
|
||||||
|
published_refund_tx,
|
||||||
|
tx_refund,
|
||||||
|
state3.s_a,
|
||||||
|
state3.a.clone(),
|
||||||
|
state3.S_b_bitcoin,
|
||||||
|
)?;
|
||||||
|
|
||||||
run_until(
|
run_until(
|
||||||
AliceState::BtcRefunded {
|
AliceState::BtcRefunded { spend_key, state3 },
|
||||||
tx_refund,
|
|
||||||
published_refund_tx,
|
|
||||||
state3,
|
|
||||||
},
|
|
||||||
is_target_state,
|
is_target_state,
|
||||||
event_loop_handle,
|
event_loop_handle,
|
||||||
bitcoin_wallet.clone(),
|
bitcoin_wallet.clone(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue