Skip to content

Commit 979abf1

Browse files
Add tests for LSPS5 client and service. Also tests for checking the correctness of the signing logic
1 parent 514e4c3 commit 979abf1

File tree

4 files changed

+1437
-0
lines changed

4 files changed

+1437
-0
lines changed

lightning-liquidity/tests/common/mod.rs

+46
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#![allow(unused_imports)]
55
#![allow(unused_macros)]
66

7+
use bitcoin::secp256k1::SecretKey;
78
use lightning::chain::Filter;
89
use lightning::sign::EntropySource;
910

@@ -34,6 +35,8 @@ use lightning::util::persist::{
3435
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
3536
};
3637
use lightning::util::test_utils;
38+
use lightning_liquidity::lsps5::client::{LSPS5ClientConfig, LSPS5ClientHandler};
39+
use lightning_liquidity::lsps5::service::{LSPS5ServiceConfig, LSPS5ServiceHandler};
3740
use lightning_liquidity::{LiquidityClientConfig, LiquidityManager, LiquidityServiceConfig};
3841
use lightning_persister::fs_store::FilesystemStore;
3942

@@ -683,3 +686,46 @@ fn advance_chain(node: &mut Node, num_blocks: u32) {
683686
}
684687
}
685688
}
689+
690+
pub fn get_client_and_service() -> (
691+
&'static LSPS5ClientHandler<Arc<KeysManager>>,
692+
&'static LSPS5ServiceHandler,
693+
bitcoin::secp256k1::PublicKey,
694+
bitcoin::secp256k1::PublicKey,
695+
&'static Node,
696+
&'static Node,
697+
) {
698+
let signing_key = SecretKey::from_slice(&[42; 32]).unwrap();
699+
let mut lsps5_service_config = LSPS5ServiceConfig::default();
700+
lsps5_service_config.signing_key = signing_key;
701+
let service_config = LiquidityServiceConfig {
702+
#[cfg(lsps1_service)]
703+
lsps1_service_config: None,
704+
lsps2_service_config: None,
705+
lsps5_service_config: Some(lsps5_service_config),
706+
advertise_service: true,
707+
};
708+
709+
let lsps5_client_config = LSPS5ClientConfig::default();
710+
let client_config = LiquidityClientConfig {
711+
lsps1_client_config: None,
712+
lsps2_client_config: None,
713+
lsps5_client_config: Some(lsps5_client_config),
714+
};
715+
716+
let (service_node, client_node) =
717+
create_service_and_client_nodes("webhook_registration_flow", service_config, client_config);
718+
719+
// Leak the nodes to extend their lifetime to 'static since this is test code
720+
let service_node = Box::leak(Box::new(service_node));
721+
let client_node = Box::leak(Box::new(client_node));
722+
723+
let client_handler = client_node.liquidity_manager.lsps5_client_handler().unwrap();
724+
let service_handler = service_node.liquidity_manager.lsps5_service_handler().unwrap();
725+
726+
let secp = bitcoin::secp256k1::Secp256k1::new();
727+
let service_node_id = bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &signing_key);
728+
let client_node_id = client_node.channel_manager.get_our_node_id();
729+
730+
(client_handler, service_handler, service_node_id, client_node_id, service_node, client_node)
731+
}

lightning-liquidity/tests/lsps2_integration_tests.rs

+2
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,15 @@ fn invoice_generation_flow() {
8888
#[cfg(lsps1_service)]
8989
lsps1_service_config: None,
9090
lsps2_service_config: Some(lsps2_service_config),
91+
lsps5_service_config: None,
9192
advertise_service: true,
9293
};
9394

9495
let lsps2_client_config = LSPS2ClientConfig::default();
9596
let client_config = LiquidityClientConfig {
9697
lsps1_client_config: None,
9798
lsps2_client_config: Some(lsps2_client_config),
99+
lsps5_client_config: None,
98100
};
99101

100102
let (service_node, client_node) =

0 commit comments

Comments
 (0)