Skip to content

Commit 5a165b4

Browse files
Add tests for LSPS5 client and service. Also tests for checking the correctness of the signing logic
1 parent 698c1b0 commit 5a165b4

File tree

4 files changed

+1387
-0
lines changed

4 files changed

+1387
-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

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

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)