mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-09-19 04:14:42 -04:00
Init Alice behaviour with state0
Previously state0 had to be set after creating Alice's behaviour. With the event loop we no longer has access to the swarm so set_state0() has to be called indirectly through a channel. This means it is difficult to guarantee state0 is being set due to the asynchronous nature of channels. This was solved by initialising Alice with state0.
This commit is contained in:
parent
3d8866f1a0
commit
27d1334726
6 changed files with 114 additions and 133 deletions
|
@ -12,7 +12,7 @@ use tempfile::tempdir;
|
|||
use testcontainers::clients::Cli;
|
||||
use tracing_subscriber::util::SubscriberInitExt as _;
|
||||
use uuid::Uuid;
|
||||
use xmr_btc::{bitcoin, config::Config, cross_curve_dleq};
|
||||
use xmr_btc::{alice::State0, bitcoin, config::Config, cross_curve_dleq};
|
||||
|
||||
/// Run the following tests with RUST_MIN_STACK=10000000
|
||||
|
||||
|
@ -20,7 +20,7 @@ use xmr_btc::{bitcoin, config::Config, cross_curve_dleq};
|
|||
async fn happy_path() {
|
||||
use tracing_subscriber::util::SubscriberInitExt as _;
|
||||
let _guard = tracing_subscriber::fmt()
|
||||
.with_env_filter("swap=trace,xmr_btc=trace")
|
||||
.with_env_filter("swap=trace,xmr_btc=trace,monero_harness=info")
|
||||
.with_ansi(false)
|
||||
.set_default();
|
||||
|
||||
|
@ -249,22 +249,38 @@ async fn init_alice(
|
|||
xmr: xmr_to_swap,
|
||||
};
|
||||
|
||||
let alice_behaviour = alice::Behaviour::default();
|
||||
let alice_peer_id = alice_behaviour.peer_id();
|
||||
let alice_transport = build(alice_behaviour.identity()).unwrap();
|
||||
let rng = &mut OsRng;
|
||||
let alice_state = {
|
||||
let (alice_state, alice_behaviour) = {
|
||||
let rng = &mut OsRng;
|
||||
let a = bitcoin::SecretKey::new_random(rng);
|
||||
let s_a = cross_curve_dleq::Scalar::random(rng);
|
||||
let v_a = xmr_btc::monero::PrivateViewKey::new_random(rng);
|
||||
AliceState::Started {
|
||||
amounts,
|
||||
let redeem_address = alice_btc_wallet.as_ref().new_address().await.unwrap();
|
||||
let punish_address = redeem_address.clone();
|
||||
let state0 = State0::new(
|
||||
a,
|
||||
s_a,
|
||||
v_a,
|
||||
}
|
||||
amounts.btc,
|
||||
amounts.xmr,
|
||||
REFUND_TIMELOCK,
|
||||
PUNISH_TIMELOCK,
|
||||
redeem_address,
|
||||
punish_address,
|
||||
);
|
||||
|
||||
// let msg0 = AliceToBob::Message0(self.state.next_message(&mut OsRng));
|
||||
(
|
||||
AliceState::Started {
|
||||
amounts,
|
||||
state0: state0.clone(),
|
||||
},
|
||||
alice::Behaviour::new(state0),
|
||||
)
|
||||
};
|
||||
|
||||
let alice_peer_id = alice_behaviour.peer_id();
|
||||
let alice_transport = build(alice_behaviour.identity()).unwrap();
|
||||
|
||||
let (swarm_driver, handle) =
|
||||
alice::swarm_driver::SwarmDriver::new(alice_transport, alice_behaviour, listen).unwrap();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue