1
- #![ cfg( test) ]
1
+ #![ cfg( all ( test, feature = "time" ) ) ]
2
2
// TODO: remove these flags and unused code once we know what we'll need.
3
3
#![ allow( dead_code) ]
4
4
#![ allow( unused_imports) ]
5
5
#![ allow( unused_macros) ]
6
6
7
- use lightning:: chain:: Filter ;
8
- use lightning:: sign:: EntropySource ;
9
-
10
7
use bitcoin:: blockdata:: constants:: { genesis_block, ChainHash } ;
11
8
use bitcoin:: blockdata:: transaction:: Transaction ;
9
+ use bitcoin:: secp256k1:: SecretKey ;
12
10
use bitcoin:: Network ;
11
+
13
12
use lightning:: chain:: channelmonitor:: ANTI_REORG_DELAY ;
13
+ use lightning:: chain:: Filter ;
14
14
use lightning:: chain:: { chainmonitor, BestBlock , Confirm } ;
15
15
use lightning:: ln:: channelmanager;
16
16
use lightning:: ln:: channelmanager:: ChainParameters ;
@@ -24,6 +24,7 @@ use lightning::onion_message::messenger::DefaultMessageRouter;
24
24
use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
25
25
use lightning:: routing:: router:: { CandidateRouteHop , DefaultRouter , Path } ;
26
26
use lightning:: routing:: scoring:: { ChannelUsage , ScoreLookUp , ScoreUpdate } ;
27
+ use lightning:: sign:: EntropySource ;
27
28
use lightning:: sign:: { InMemorySigner , KeysManager } ;
28
29
use lightning:: util:: config:: UserConfig ;
29
30
use lightning:: util:: persist:: {
@@ -34,6 +35,8 @@ use lightning::util::persist::{
34
35
SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
35
36
} ;
36
37
use lightning:: util:: test_utils;
38
+
39
+ use lightning_liquidity:: lsps5:: service:: TimeProvider ;
37
40
use lightning_liquidity:: { LiquidityClientConfig , LiquidityManager , LiquidityServiceConfig } ;
38
41
use lightning_persister:: fs_store:: FilesystemStore ;
39
42
@@ -67,7 +70,7 @@ type LockingWrapper<T> = lightning::routing::scoring::MultiThreadedLockableScore
67
70
#[ cfg( not( c_bindings) ) ]
68
71
type LockingWrapper < T > = std:: sync:: Mutex < T > ;
69
72
70
- type ChannelManager = channelmanager:: ChannelManager <
73
+ pub ( crate ) type ChannelManager = channelmanager:: ChannelManager <
71
74
Arc < ChainMonitor > ,
72
75
Arc < test_utils:: TestBroadcaster > ,
73
76
Arc < KeysManager > ,
@@ -400,7 +403,7 @@ fn get_full_filepath(filepath: String, filename: String) -> String {
400
403
401
404
pub ( crate ) fn create_liquidity_node (
402
405
i : usize , persist_dir : & str , network : Network , service_config : Option < LiquidityServiceConfig > ,
403
- client_config : Option < LiquidityClientConfig > ,
406
+ client_config : Option < LiquidityClientConfig > , time_provider : Option < Arc < dyn TimeProvider > > ,
404
407
) -> Node {
405
408
let tx_broadcaster = Arc :: new ( test_utils:: TestBroadcaster :: new ( network) ) ;
406
409
let fee_estimator = Arc :: new ( test_utils:: TestFeeEstimator :: new ( 253 ) ) ;
@@ -451,16 +454,27 @@ pub(crate) fn create_liquidity_node(
451
454
Some ( chain_source. clone ( ) ) ,
452
455
logger. clone ( ) ,
453
456
) ) ;
457
+ let liquidity_manager = Arc :: new ( if let Some ( tp) = time_provider. clone ( ) {
458
+ LiquidityManager :: new_with_custom_time_provider (
459
+ keys_manager. clone ( ) ,
460
+ channel_manager. clone ( ) ,
461
+ None :: < Arc < dyn Filter + Send + Sync > > ,
462
+ Some ( chain_params. clone ( ) ) ,
463
+ service_config,
464
+ client_config,
465
+ tp,
466
+ )
467
+ } else {
468
+ LiquidityManager :: new (
469
+ keys_manager. clone ( ) ,
470
+ channel_manager. clone ( ) ,
471
+ None ,
472
+ Some ( chain_params) ,
473
+ service_config,
474
+ client_config,
475
+ )
476
+ } ) ;
454
477
455
- let liquidity_manager = Arc :: new ( LiquidityManager :: new (
456
- Arc :: clone ( & keys_manager) ,
457
- Arc :: clone ( & channel_manager) ,
458
- None :: < Arc < dyn Filter + Send + Sync > > ,
459
- Some ( chain_params) ,
460
- service_config,
461
- client_config,
462
- None ,
463
- ) ) ;
464
478
let msg_handler = MessageHandler {
465
479
chan_handler : Arc :: new ( test_utils:: TestChannelMessageHandler :: new (
466
480
ChainHash :: using_genesis_block ( Network :: Testnet ) ,
@@ -489,14 +503,23 @@ pub(crate) fn create_liquidity_node(
489
503
}
490
504
491
505
pub ( crate ) fn create_service_and_client_nodes (
492
- persist_dir : & str , service_config : LiquidityServiceConfig , client_config : LiquidityClientConfig ,
506
+ persist_dir : & str , service_config : LiquidityServiceConfig ,
507
+ client_config : LiquidityClientConfig , time_provider : Option < Arc < dyn TimeProvider > > ,
493
508
) -> ( Node , Node ) {
494
509
let persist_temp_path = env:: temp_dir ( ) . join ( persist_dir) ;
495
510
let persist_dir = persist_temp_path. to_string_lossy ( ) . to_string ( ) ;
496
511
let network = Network :: Bitcoin ;
497
512
498
- let service_node = create_liquidity_node ( 1 , & persist_dir, network, Some ( service_config) , None ) ;
499
- let client_node = create_liquidity_node ( 2 , & persist_dir, network, None , Some ( client_config) ) ;
513
+ let service_node = create_liquidity_node (
514
+ 1 ,
515
+ & persist_dir,
516
+ network,
517
+ Some ( service_config) ,
518
+ None ,
519
+ time_provider. clone ( ) ,
520
+ ) ;
521
+ let client_node =
522
+ create_liquidity_node ( 2 , & persist_dir, network, None , Some ( client_config) , time_provider) ;
500
523
501
524
service_node
502
525
. channel_manager
0 commit comments