@@ -9,6 +9,7 @@ use lightning::sign::EntropySource;
9
9
10
10
use bitcoin:: blockdata:: constants:: { genesis_block, ChainHash } ;
11
11
use bitcoin:: blockdata:: transaction:: Transaction ;
12
+ use bitcoin:: secp256k1:: SecretKey ;
12
13
use bitcoin:: Network ;
13
14
use lightning:: chain:: channelmonitor:: ANTI_REORG_DELAY ;
14
15
use lightning:: chain:: { chainmonitor, BestBlock , Confirm } ;
@@ -34,6 +35,8 @@ use lightning::util::persist::{
34
35
SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
35
36
} ;
36
37
use lightning:: util:: test_utils;
38
+ use lightning_liquidity:: lsps2:: client:: { LSPS2ClientConfig , LSPS2ClientHandler } ;
39
+ use lightning_liquidity:: lsps2:: service:: { LSPS2ServiceConfig , LSPS2ServiceHandler } ;
37
40
use lightning_liquidity:: { LiquidityClientConfig , LiquidityManager , LiquidityServiceConfig } ;
38
41
use lightning_persister:: fs_store:: FilesystemStore ;
39
42
@@ -487,7 +490,7 @@ pub(crate) fn create_liquidity_node(
487
490
}
488
491
}
489
492
490
- pub ( crate ) fn create_service_and_client_nodes (
493
+ fn create_service_and_client_nodes (
491
494
persist_dir : & str , service_config : LiquidityServiceConfig , client_config : LiquidityClientConfig ,
492
495
) -> ( Node , Node ) {
493
496
let persist_temp_path = env:: temp_dir ( ) . join ( persist_dir) ;
@@ -671,3 +674,53 @@ fn advance_chain(node: &mut Node, num_blocks: u32) {
671
674
}
672
675
}
673
676
}
677
+
678
+ pub ( crate ) fn setup_test_lsps2 ( ) -> (
679
+ & ' static LSPS2ClientHandler < Arc < KeysManager > > ,
680
+ & ' static LSPS2ServiceHandler < Arc < ChannelManager > > ,
681
+ bitcoin:: secp256k1:: PublicKey ,
682
+ bitcoin:: secp256k1:: PublicKey ,
683
+ & ' static Node ,
684
+ & ' static Node ,
685
+ [ u8 ; 32 ] ,
686
+ ) {
687
+ let promise_secret = [ 42 ; 32 ] ;
688
+ let signing_key = SecretKey :: from_slice ( & promise_secret) . unwrap ( ) ;
689
+ let lsps2_service_config = LSPS2ServiceConfig { promise_secret } ;
690
+ let service_config = LiquidityServiceConfig {
691
+ #[ cfg( lsps1_service) ]
692
+ lsps1_service_config : None ,
693
+ lsps2_service_config : Some ( lsps2_service_config) ,
694
+ advertise_service : true ,
695
+ } ;
696
+
697
+ let lsps2_client_config = LSPS2ClientConfig :: default ( ) ;
698
+ let client_config = LiquidityClientConfig {
699
+ lsps1_client_config : None ,
700
+ lsps2_client_config : Some ( lsps2_client_config) ,
701
+ } ;
702
+
703
+ let ( service_node, client_node) =
704
+ create_service_and_client_nodes ( "webhook_registration_flow" , service_config, client_config) ;
705
+
706
+ // Leak the nodes to extend their lifetime to 'static since this is test code
707
+ let service_node = Box :: leak ( Box :: new ( service_node) ) ;
708
+ let client_node = Box :: leak ( Box :: new ( client_node) ) ;
709
+
710
+ let client_handler = client_node. liquidity_manager . lsps2_client_handler ( ) . unwrap ( ) ;
711
+ let service_handler = service_node. liquidity_manager . lsps2_service_handler ( ) . unwrap ( ) ;
712
+
713
+ let secp = bitcoin:: secp256k1:: Secp256k1 :: new ( ) ;
714
+ let service_node_id = bitcoin:: secp256k1:: PublicKey :: from_secret_key ( & secp, & signing_key) ;
715
+ let client_node_id = client_node. channel_manager . get_our_node_id ( ) ;
716
+
717
+ (
718
+ client_handler,
719
+ service_handler,
720
+ service_node_id,
721
+ client_node_id,
722
+ service_node,
723
+ client_node,
724
+ promise_secret,
725
+ )
726
+ }
0 commit comments