Skip to content

Commit a09c48f

Browse files
committed
fix test
1 parent 149b9ce commit a09c48f

File tree

1 file changed

+75
-23
lines changed

1 file changed

+75
-23
lines changed

tests/integration_tests_rust.rs

Lines changed: 75 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,46 +1134,98 @@ fn simple_bolt12_send_receive() {
11341134
fn static_invoice_server() {
11351135
let (bitcoind, electrsd) = setup_bitcoind_and_electrsd();
11361136
let chain_source = TestChainSource::Esplora(&electrsd);
1137-
let (node_a, node_b) = setup_two_nodes(&chain_source, false, true, false);
11381137

1139-
let address_a = node_a.onchain_payment().new_address().unwrap();
1140-
let premine_amount_sat = 5_000_000;
1138+
let mut config_sender = random_config(true);
1139+
config_sender.node_config.storage_dir_path = "/tmp/node_sender".into();
1140+
let node_sender = setup_node(&chain_source, config_sender, None);
1141+
1142+
let mut config_sender_lsp = random_config(true);
1143+
config_sender_lsp.node_config.storage_dir_path = "/tmp/node_sender_lsp".into();
1144+
let node_sender_lsp = setup_node(&chain_source, config_sender_lsp, None);
1145+
1146+
let mut config_receiver_lsp = random_config(true);
1147+
config_receiver_lsp.node_config.storage_dir_path = "/tmp/node_receiver_lsp".into();
1148+
let node_receiver_lsp = setup_node(&chain_source, config_receiver_lsp, None);
1149+
1150+
let mut config_receiver = random_config(true);
1151+
config_receiver.node_config.storage_dir_path = "/tmp/node_receiver".into();
1152+
let node_receiver = setup_node(&chain_source, config_receiver, None);
1153+
1154+
let address_sender = node_sender.onchain_payment().new_address().unwrap();
1155+
let address_sender_lsp = node_sender_lsp.onchain_payment().new_address().unwrap();
1156+
let address_receiver_lsp = node_receiver_lsp.onchain_payment().new_address().unwrap();
1157+
let address_receiver = node_receiver.onchain_payment().new_address().unwrap();
1158+
let premine_amount_sat = 4_000_000;
11411159
premine_and_distribute_funds(
11421160
&bitcoind.client,
11431161
&electrsd.client,
1144-
vec![address_a],
1162+
vec![address_sender, address_sender_lsp, address_receiver_lsp, address_receiver],
11451163
Amount::from_sat(premine_amount_sat),
11461164
);
11471165

1148-
node_a.sync_wallets().unwrap();
1149-
open_channel(&node_a, &node_b, 4_000_000, true, &electrsd);
1166+
node_sender.sync_wallets().unwrap();
1167+
node_sender_lsp.sync_wallets().unwrap();
1168+
node_receiver_lsp.sync_wallets().unwrap();
1169+
node_receiver.sync_wallets().unwrap();
11501170

1151-
generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
1171+
open_channel(&node_sender, &node_sender_lsp, 400_000, true, &electrsd);
1172+
open_channel(&node_sender_lsp, &node_receiver_lsp, 400_000, true, &electrsd);
1173+
open_channel(&node_receiver_lsp, &node_receiver, 400_000, true, &electrsd);
11521174

1153-
node_a.sync_wallets().unwrap();
1154-
node_b.sync_wallets().unwrap();
1175+
generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
11551176

1156-
expect_channel_ready_event!(node_a, node_b.node_id());
1157-
expect_channel_ready_event!(node_b, node_a.node_id());
1177+
node_sender.sync_wallets().unwrap();
1178+
node_sender_lsp.sync_wallets().unwrap();
1179+
node_receiver_lsp.sync_wallets().unwrap();
1180+
node_receiver.sync_wallets().unwrap();
1181+
1182+
expect_channel_ready_event!(node_sender, node_sender_lsp.node_id());
1183+
expect_channel_ready_event!(node_sender_lsp, node_sender.node_id());
1184+
expect_channel_ready_event!(node_sender_lsp, node_receiver_lsp.node_id());
1185+
expect_channel_ready_event!(node_receiver_lsp, node_sender_lsp.node_id());
1186+
expect_channel_ready_event!(node_receiver_lsp, node_receiver.node_id());
1187+
expect_channel_ready_event!(node_receiver, node_receiver_lsp.node_id());
1188+
1189+
let has_node_announcements = |node: &ldk_node::Node| {
1190+
node.network_graph()
1191+
.list_nodes()
1192+
.iter()
1193+
.filter(|n| {
1194+
node.network_graph().node(n).map_or(false, |info| info.announcement_info.is_some())
1195+
})
1196+
.count() >= 4
1197+
};
11581198

1159-
// Sleep until we broadcasted a node announcement.
1160-
while node_b.status().latest_node_announcement_broadcast_timestamp.is_none() {
1161-
std::thread::sleep(std::time::Duration::from_millis(10));
1199+
// Wait for everyone to see all channels and node announcements.
1200+
while node_sender.network_graph().list_channels().len() < 3
1201+
|| node_sender_lsp.network_graph().list_channels().len() < 3
1202+
|| node_receiver_lsp.network_graph().list_channels().len() < 3
1203+
|| node_receiver.network_graph().list_channels().len() < 3
1204+
|| !has_node_announcements(&node_sender)
1205+
|| !has_node_announcements(&node_sender_lsp)
1206+
|| !has_node_announcements(&node_receiver_lsp)
1207+
|| !has_node_announcements(&node_receiver)
1208+
{
1209+
std::thread::sleep(std::time::Duration::from_millis(100));
11621210
}
11631211

1164-
// Sleep one more sec to make sure the node announcement propagates.
1165-
std::thread::sleep(std::time::Duration::from_secs(1));
1166-
11671212
let recipient_id = vec![1, 2, 3];
1168-
let blinded_paths = node_a.blinded_paths_for_async_recipient(recipient_id, None).unwrap();
1169-
node_b.set_paths_to_static_invoice_server(blinded_paths).unwrap();
1213+
let blinded_paths =
1214+
node_receiver_lsp.blinded_paths_for_async_recipient(recipient_id, None).unwrap();
1215+
node_receiver.set_paths_to_static_invoice_server(blinded_paths).unwrap();
11701216

1171-
// Sleep to get the cache filled.
1172-
std::thread::sleep(std::time::Duration::from_secs(1));
1217+
let offer = loop {
1218+
if let Ok(offer) = node_receiver.bolt12_payment().get_async_receive_offer() {
1219+
break offer;
1220+
}
1221+
1222+
std::thread::sleep(std::time::Duration::from_millis(100));
1223+
};
11731224

1174-
let offer = node_b.bolt12_payment().get_async_receive_offer().unwrap();
1225+
let payment_id =
1226+
node_sender.bolt12_payment().send_using_amount(&offer, 5_000, None, None).unwrap();
11751227

1176-
println!("Offer: {}", offer);
1228+
expect_payment_successful_event!(node_sender, Some(payment_id), None);
11771229
}
11781230

11791231
#[test]

0 commit comments

Comments
 (0)