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 , NodeSigner } ;
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 ;
@@ -19,6 +19,7 @@ use lightning::ln::msgs::{BaseMessageHandler, ChannelMessageHandler, Init};
19
19
use lightning:: ln:: peer_handler:: {
20
20
IgnoringMessageHandler , MessageHandler , PeerManager , SocketDescriptor ,
21
21
} ;
22
+ use lightning:: sign:: { EntropySource , NodeSigner } ;
22
23
23
24
use lightning:: onion_message:: messenger:: DefaultMessageRouter ;
24
25
use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
@@ -34,10 +35,13 @@ 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
40
43
use std:: collections:: { HashMap , VecDeque } ;
44
+ use std:: ops:: Deref ;
41
45
use std:: path:: PathBuf ;
42
46
use std:: sync:: atomic:: AtomicBool ;
43
47
use std:: sync:: mpsc:: SyncSender ;
@@ -128,14 +132,21 @@ pub(crate) struct Node {
128
132
Arc < KeysManager > ,
129
133
Arc < ChannelManager > ,
130
134
Arc < dyn Filter + Send + Sync > ,
135
+ Arc < dyn TimeProvider + Send + Sync > ,
131
136
> ,
132
137
> ,
133
138
Arc < KeysManager > ,
134
139
Arc < ChainMonitor > ,
135
140
> ,
136
141
> ,
137
- pub ( crate ) liquidity_manager :
138
- Arc < LiquidityManager < Arc < KeysManager > , Arc < ChannelManager > , Arc < dyn Filter + Send + Sync > > > ,
142
+ pub ( crate ) liquidity_manager : Arc <
143
+ LiquidityManager <
144
+ Arc < KeysManager > ,
145
+ Arc < ChannelManager > ,
146
+ Arc < dyn Filter + Send + Sync > ,
147
+ Arc < dyn TimeProvider + Send + Sync > ,
148
+ > ,
149
+ > ,
139
150
pub ( crate ) chain_monitor : Arc < ChainMonitor > ,
140
151
pub ( crate ) kv_store : Arc < FilesystemStore > ,
141
152
pub ( crate ) tx_broadcaster : Arc < test_utils:: TestBroadcaster > ,
@@ -403,6 +414,7 @@ fn get_full_filepath(filepath: String, filename: String) -> String {
403
414
pub ( crate ) fn create_liquidity_node (
404
415
i : usize , persist_dir : & str , network : Network , service_config : Option < LiquidityServiceConfig > ,
405
416
client_config : Option < LiquidityClientConfig > ,
417
+ time_provider : Arc < dyn TimeProvider + Send + Sync > ,
406
418
) -> Node {
407
419
let tx_broadcaster = Arc :: new ( test_utils:: TestBroadcaster :: new ( network) ) ;
408
420
let fee_estimator = Arc :: new ( test_utils:: TestFeeEstimator :: new ( 253 ) ) ;
@@ -455,16 +467,16 @@ pub(crate) fn create_liquidity_node(
455
467
Some ( Arc :: clone ( & chain_source) ) ,
456
468
Arc :: clone ( & logger) ,
457
469
) ) ;
458
-
459
- let liquidity_manager = Arc :: new ( LiquidityManager :: new (
470
+ let liquidity_manager = Arc :: new ( LiquidityManager :: new_with_custom_time_provider (
460
471
Arc :: clone ( & keys_manager) ,
461
472
Arc :: clone ( & channel_manager) ,
462
473
None :: < Arc < dyn Filter + Send + Sync > > ,
463
- Some ( chain_params) ,
474
+ Some ( chain_params. clone ( ) ) ,
464
475
service_config,
465
476
client_config,
466
- None ,
477
+ time_provider ,
467
478
) ) ;
479
+
468
480
let msg_handler = MessageHandler {
469
481
chan_handler : Arc :: new ( test_utils:: TestChannelMessageHandler :: new (
470
482
ChainHash :: using_genesis_block ( Network :: Testnet ) ,
@@ -494,14 +506,29 @@ pub(crate) fn create_liquidity_node(
494
506
}
495
507
496
508
pub ( crate ) fn create_service_and_client_nodes (
497
- persist_dir : & str , service_config : LiquidityServiceConfig , client_config : LiquidityClientConfig ,
509
+ persist_dir : & str , service_config : LiquidityServiceConfig ,
510
+ client_config : LiquidityClientConfig , time_provider : Arc < dyn TimeProvider + Send + Sync > ,
498
511
) -> ( Node , Node ) {
499
512
let persist_temp_path = env:: temp_dir ( ) . join ( persist_dir) ;
500
513
let persist_dir = persist_temp_path. to_string_lossy ( ) . to_string ( ) ;
501
514
let network = Network :: Bitcoin ;
502
515
503
- let service_node = create_liquidity_node ( 1 , & persist_dir, network, Some ( service_config) , None ) ;
504
- let client_node = create_liquidity_node ( 2 , & persist_dir, network, None , Some ( client_config) ) ;
516
+ let service_node = create_liquidity_node (
517
+ 1 ,
518
+ & persist_dir,
519
+ network,
520
+ Some ( service_config) ,
521
+ None ,
522
+ Arc :: clone ( & time_provider) ,
523
+ ) ;
524
+ let client_node = create_liquidity_node (
525
+ 2 ,
526
+ & persist_dir,
527
+ network,
528
+ None ,
529
+ Some ( client_config) ,
530
+ Arc :: clone ( & time_provider) ,
531
+ ) ;
505
532
506
533
service_node
507
534
. channel_manager
0 commit comments