@@ -374,6 +374,10 @@ impl Node {
374
374
let archive_cmon = Arc :: clone ( & self . chain_monitor ) ;
375
375
let sync_sweeper = Arc :: clone ( & self . output_sweeper ) ;
376
376
let sync_logger = Arc :: clone ( & self . logger ) ;
377
+ let sync_payjoin = match & self . payjoin_handler {
378
+ Some ( pjh) => Some ( Arc :: clone ( pjh) ) ,
379
+ None => None ,
380
+ } ;
377
381
let sync_wallet_timestamp = Arc :: clone ( & self . latest_wallet_sync_timestamp ) ;
378
382
let sync_monitor_archival_height = Arc :: clone ( & self . latest_channel_monitor_archival_height ) ;
379
383
let mut stop_sync = self . stop_sender . subscribe ( ) ;
@@ -393,11 +397,14 @@ impl Node {
393
397
return ;
394
398
}
395
399
_ = wallet_sync_interval. tick( ) => {
396
- let confirmables = vec![
400
+ let mut confirmables = vec![
397
401
& * sync_cman as & ( dyn Confirm + Sync + Send ) ,
398
402
& * sync_cmon as & ( dyn Confirm + Sync + Send ) ,
399
403
& * sync_sweeper as & ( dyn Confirm + Sync + Send ) ,
400
404
] ;
405
+ if let Some ( sync_payjoin) = sync_payjoin. as_ref( ) {
406
+ confirmables. push( sync_payjoin. as_ref( ) as & ( dyn Confirm + Sync + Send ) ) ;
407
+ }
401
408
let now = Instant :: now( ) ;
402
409
let timeout_fut = tokio:: time:: timeout( Duration :: from_secs( LDK_WALLET_SYNC_TIMEOUT_SECS ) , tx_sync. sync( confirmables) ) ;
403
410
match timeout_fut. await {
@@ -1114,9 +1121,11 @@ impl Node {
1114
1121
Arc :: clone ( & self . config ) ,
1115
1122
Arc :: clone ( & self . logger ) ,
1116
1123
Arc :: clone ( & self . wallet ) ,
1124
+ Arc :: clone ( & self . tx_broadcaster ) ,
1117
1125
Arc :: clone ( & self . peer_store ) ,
1118
1126
Arc :: clone ( & self . channel_manager ) ,
1119
1127
Arc :: clone ( & self . connection_manager ) ,
1128
+ Arc :: clone ( & self . payment_store ) ,
1120
1129
)
1121
1130
}
1122
1131
@@ -1132,14 +1141,16 @@ impl Node {
1132
1141
let payjoin_receiver = self . payjoin_receiver . as_ref ( ) ;
1133
1142
Arc :: new ( PayjoinPayment :: new (
1134
1143
Arc :: clone ( & self . runtime ) ,
1135
- payjoin_sender . map ( Arc :: clone) ,
1144
+ payjoin_handler . map ( Arc :: clone) ,
1136
1145
payjoin_receiver. map ( Arc :: clone) ,
1137
1146
Arc :: clone ( & self . config ) ,
1138
1147
Arc :: clone ( & self . logger ) ,
1139
1148
Arc :: clone ( & self . wallet ) ,
1149
+ Arc :: clone ( & self . tx_broadcaster ) ,
1140
1150
Arc :: clone ( & self . peer_store ) ,
1141
1151
Arc :: clone ( & self . channel_manager ) ,
1142
1152
Arc :: clone ( & self . connection_manager ) ,
1153
+ Arc :: clone ( & self . payment_store ) ,
1143
1154
) )
1144
1155
}
1145
1156
@@ -1344,11 +1355,15 @@ impl Node {
1344
1355
let fee_estimator = Arc :: clone ( & self . fee_estimator ) ;
1345
1356
let sync_sweeper = Arc :: clone ( & self . output_sweeper ) ;
1346
1357
let sync_logger = Arc :: clone ( & self . logger ) ;
1347
- let confirmables = vec ! [
1358
+ let sync_payjoin = & self . payjoin_handler . as_ref ( ) ;
1359
+ let mut confirmables = vec ! [
1348
1360
& * sync_cman as & ( dyn Confirm + Sync + Send ) ,
1349
1361
& * sync_cmon as & ( dyn Confirm + Sync + Send ) ,
1350
1362
& * sync_sweeper as & ( dyn Confirm + Sync + Send ) ,
1351
1363
] ;
1364
+ if let Some ( sync_payjoin) = sync_payjoin {
1365
+ confirmables. push ( sync_payjoin. as_ref ( ) as & ( dyn Confirm + Sync + Send ) ) ;
1366
+ }
1352
1367
let sync_wallet_timestamp = Arc :: clone ( & self . latest_wallet_sync_timestamp ) ;
1353
1368
let sync_fee_rate_update_timestamp =
1354
1369
Arc :: clone ( & self . latest_fee_rate_cache_update_timestamp ) ;
0 commit comments