Skip to content

Commit edc4688

Browse files
Pass supported_protocols to LSPS0 instead of empty vec
1 parent 18eb30b commit edc4688

File tree

2 files changed

+70
-1
lines changed

2 files changed

+70
-1
lines changed

lightning-liquidity/src/manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ where {
235235
);
236236

237237
let lsps0_service_handler = if service_config.is_some() {
238-
Some(LSPS0ServiceHandler::new(vec![], Arc::clone(&pending_messages)))
238+
Some(LSPS0ServiceHandler::new(supported_protocols, Arc::clone(&pending_messages)))
239239
} else {
240240
None
241241
};
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#![cfg(all(test, feature = "std"))]
2+
3+
mod common;
4+
5+
use common::{create_service_and_client_nodes, get_lsps_message};
6+
7+
use lightning_liquidity::events::LiquidityEvent;
8+
use lightning_liquidity::lsps0::event::LSPS0ClientEvent;
9+
use lightning_liquidity::lsps2::client::LSPS2ClientConfig;
10+
use lightning_liquidity::lsps2::service::LSPS2ServiceConfig;
11+
use lightning_liquidity::{LiquidityClientConfig, LiquidityServiceConfig};
12+
13+
use lightning::ln::peer_handler::CustomMessageHandler;
14+
15+
#[test]
16+
fn list_protocols_integration_test() {
17+
let promise_secret = [42; 32];
18+
let lsps2_service_config = LSPS2ServiceConfig { promise_secret };
19+
let service_config = LiquidityServiceConfig {
20+
#[cfg(lsps1_service)]
21+
lsps1_service_config: None,
22+
lsps2_service_config: Some(lsps2_service_config),
23+
advertise_service: true,
24+
};
25+
26+
let lsps2_client_config = LSPS2ClientConfig::default();
27+
let client_config = LiquidityClientConfig {
28+
lsps1_client_config: None,
29+
lsps2_client_config: Some(lsps2_client_config),
30+
};
31+
32+
let (service_node, client_node) = create_service_and_client_nodes(
33+
"list_protocols_integration_test",
34+
service_config,
35+
client_config,
36+
);
37+
38+
let service_node_id = service_node.channel_manager.get_our_node_id();
39+
40+
let client_handler = client_node.liquidity_manager.lsps0_client_handler();
41+
let client_node_id = client_node.channel_manager.get_our_node_id();
42+
43+
let _ = client_handler.list_protocols(&service_node_id);
44+
let list_protocols_request = get_lsps_message!(client_node, service_node_id);
45+
46+
service_node
47+
.liquidity_manager
48+
.handle_custom_message(list_protocols_request, client_node_id)
49+
.unwrap();
50+
51+
let list_protocols_response = get_lsps_message!(service_node, client_node_id);
52+
53+
client_node
54+
.liquidity_manager
55+
.handle_custom_message(list_protocols_response, client_node_id)
56+
.unwrap();
57+
58+
let list_protocols_event = client_node.liquidity_manager.next_event().unwrap();
59+
match list_protocols_event {
60+
LiquidityEvent::LSPS0Client(LSPS0ClientEvent::ListProtocolsResponse {
61+
counterparty_node_id,
62+
protocols,
63+
}) => {
64+
assert_eq!(counterparty_node_id, client_node_id);
65+
assert_eq!(protocols, vec![2]);
66+
},
67+
_ => panic!("Unexpected event"),
68+
}
69+
}

0 commit comments

Comments
 (0)