@@ -8517,6 +8517,8 @@ where
8517
8517
return Err(Bolt12SemanticError::MissingSigningPubkey);
8518
8518
}
8519
8519
8520
+ self.pending_outbound_payments.awaiting_invoice_flag.store(true, Ordering::SeqCst);
8521
+
8520
8522
Ok(())
8521
8523
}
8522
8524
@@ -10787,6 +10789,7 @@ where
10787
10789
let pending_inbound_payments = self.pending_inbound_payments.lock().unwrap();
10788
10790
let claimable_payments = self.claimable_payments.lock().unwrap();
10789
10791
let pending_outbound_payments = self.pending_outbound_payments.pending_outbound_payments.lock().unwrap();
10792
+ let awaiting_invoice_flag_opt = Some(self.pending_outbound_payments.awaiting_invoice_flag.load(Ordering::SeqCst));
10790
10793
10791
10794
let mut htlc_purposes: Vec<&events::PaymentPurpose> = Vec::new();
10792
10795
let mut htlc_onion_fields: Vec<&_> = Vec::new();
@@ -10934,6 +10937,7 @@ where
10934
10937
(11, self.probing_cookie_secret, required),
10935
10938
(13, htlc_onion_fields, optional_vec),
10936
10939
(14, decode_update_add_htlcs_opt, option),
10940
+ (15, awaiting_invoice_flag_opt, option),
10937
10941
});
10938
10942
10939
10943
Ok(())
@@ -11383,6 +11387,7 @@ where
11383
11387
// pending_outbound_payments_no_retry is for compatibility with 0.0.101 clients.
11384
11388
let mut pending_outbound_payments_no_retry: Option<HashMap<PaymentId, HashSet<[u8; 32]>>> = None;
11385
11389
let mut pending_outbound_payments = None;
11390
+ let mut awaiting_invoice_flag = None;
11386
11391
let mut pending_intercepted_htlcs: Option<HashMap<InterceptId, PendingAddHTLCInfo>> = Some(new_hash_map());
11387
11392
let mut received_network_pubkey: Option<PublicKey> = None;
11388
11393
let mut fake_scid_rand_bytes: Option<[u8; 32]> = None;
@@ -11408,6 +11413,7 @@ where
11408
11413
(11, probing_cookie_secret, option),
11409
11414
(13, claimable_htlc_onion_fields, optional_vec),
11410
11415
(14, decode_update_add_htlcs, option),
11416
+ (15, awaiting_invoice_flag, option),
11411
11417
});
11412
11418
let mut decode_update_add_htlcs = decode_update_add_htlcs.unwrap_or_else(|| new_hash_map());
11413
11419
if fake_scid_rand_bytes.is_none() {
@@ -11437,6 +11443,7 @@ where
11437
11443
}
11438
11444
let pending_outbounds = OutboundPayments {
11439
11445
pending_outbound_payments: Mutex::new(pending_outbound_payments.unwrap()),
11446
+ awaiting_invoice_flag: AtomicBool::new(awaiting_invoice_flag.unwrap_or(false)),
11440
11447
retry_lock: Mutex::new(())
11441
11448
};
11442
11449
0 commit comments