Skip to content

Commit b9ba8fb

Browse files
committedJul 12, 2024
f
1 parent a839688 commit b9ba8fb

9 files changed

+311
-262
lines changed
 

‎src/builder.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1017,8 +1017,6 @@ fn build_with_store_internal(
10171017
let mut payjoin_receiver = None;
10181018
if let Some(pj_config) = payjoin_config {
10191019
payjoin_handler = Some(Arc::new(PayjoinHandler::new(
1020-
Arc::clone(&tx_broadcaster),
1021-
Arc::clone(&logger),
10221020
pj_config.payjoin_relay.clone(),
10231021
Arc::clone(&tx_sync),
10241022
Arc::clone(&event_queue),

‎src/event.rs

+3
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ pub enum PayjoinPaymentFailureReason {
188188
Timeout,
189189
TransactionFinalisationFailed,
190190
InvalidReceiverResponse,
191+
RequestFailed,
191192
}
192193

193194
impl Readable for PayjoinPaymentFailureReason {
@@ -196,6 +197,7 @@ impl Readable for PayjoinPaymentFailureReason {
196197
0 => Ok(Self::Timeout),
197198
1 => Ok(Self::TransactionFinalisationFailed),
198199
2 => Ok(Self::InvalidReceiverResponse),
200+
3 => Ok(Self::RequestFailed),
199201
_ => Err(DecodeError::InvalidValue),
200202
}
201203
}
@@ -207,6 +209,7 @@ impl Writeable for PayjoinPaymentFailureReason {
207209
Self::Timeout => 0u8.write(writer),
208210
Self::TransactionFinalisationFailed => 1u8.write(writer),
209211
Self::InvalidReceiverResponse => 2u8.write(writer),
212+
Self::RequestFailed => 3u8.write(writer),
210213
}
211214
}
212215
}

‎src/lib.rs

+18-3
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,10 @@ impl Node {
374374
let archive_cmon = Arc::clone(&self.chain_monitor);
375375
let sync_sweeper = Arc::clone(&self.output_sweeper);
376376
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+
};
377381
let sync_wallet_timestamp = Arc::clone(&self.latest_wallet_sync_timestamp);
378382
let sync_monitor_archival_height = Arc::clone(&self.latest_channel_monitor_archival_height);
379383
let mut stop_sync = self.stop_sender.subscribe();
@@ -393,11 +397,14 @@ impl Node {
393397
return;
394398
}
395399
_ = wallet_sync_interval.tick() => {
396-
let confirmables = vec![
400+
let mut confirmables = vec![
397401
&*sync_cman as &(dyn Confirm + Sync + Send),
398402
&*sync_cmon as &(dyn Confirm + Sync + Send),
399403
&*sync_sweeper as &(dyn Confirm + Sync + Send),
400404
];
405+
if let Some(sync_payjoin) = sync_payjoin.as_ref() {
406+
confirmables.push(sync_payjoin.as_ref() as &(dyn Confirm + Sync + Send));
407+
}
401408
let now = Instant::now();
402409
let timeout_fut = tokio::time::timeout(Duration::from_secs(LDK_WALLET_SYNC_TIMEOUT_SECS), tx_sync.sync(confirmables));
403410
match timeout_fut.await {
@@ -1114,9 +1121,11 @@ impl Node {
11141121
Arc::clone(&self.config),
11151122
Arc::clone(&self.logger),
11161123
Arc::clone(&self.wallet),
1124+
Arc::clone(&self.tx_broadcaster),
11171125
Arc::clone(&self.peer_store),
11181126
Arc::clone(&self.channel_manager),
11191127
Arc::clone(&self.connection_manager),
1128+
Arc::clone(&self.payment_store),
11201129
)
11211130
}
11221131

@@ -1132,14 +1141,16 @@ impl Node {
11321141
let payjoin_receiver = self.payjoin_receiver.as_ref();
11331142
Arc::new(PayjoinPayment::new(
11341143
Arc::clone(&self.runtime),
1135-
payjoin_sender.map(Arc::clone),
1144+
payjoin_handler.map(Arc::clone),
11361145
payjoin_receiver.map(Arc::clone),
11371146
Arc::clone(&self.config),
11381147
Arc::clone(&self.logger),
11391148
Arc::clone(&self.wallet),
1149+
Arc::clone(&self.tx_broadcaster),
11401150
Arc::clone(&self.peer_store),
11411151
Arc::clone(&self.channel_manager),
11421152
Arc::clone(&self.connection_manager),
1153+
Arc::clone(&self.payment_store),
11431154
))
11441155
}
11451156

@@ -1344,11 +1355,15 @@ impl Node {
13441355
let fee_estimator = Arc::clone(&self.fee_estimator);
13451356
let sync_sweeper = Arc::clone(&self.output_sweeper);
13461357
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![
13481360
&*sync_cman as &(dyn Confirm + Sync + Send),
13491361
&*sync_cmon as &(dyn Confirm + Sync + Send),
13501362
&*sync_sweeper as &(dyn Confirm + Sync + Send),
13511363
];
1364+
if let Some(sync_payjoin) = sync_payjoin {
1365+
confirmables.push(sync_payjoin.as_ref() as &(dyn Confirm + Sync + Send));
1366+
}
13521367
let sync_wallet_timestamp = Arc::clone(&self.latest_wallet_sync_timestamp);
13531368
let sync_fee_rate_update_timestamp =
13541369
Arc::clone(&self.latest_fee_rate_cache_update_timestamp);

0 commit comments

Comments
 (0)
Please sign in to comment.