Skip to content

Commit 1eb368c

Browse files
f pass payment hash rather than expect'ing it
1 parent 6160de0 commit 1eb368c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

lightning/src/ln/outbound_payment.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -664,11 +664,11 @@ impl OutboundPayments {
664664
}
665665

666666
macro_rules! abandon_with_entry {
667-
($payment_id: expr, $payment: expr, $pending_events: expr) => {
667+
($payment_id: expr, $payment_hash: expr, $payment: expr, $pending_events: expr) => {
668668
if $payment.get_mut().mark_abandoned().is_ok() && $payment.get().remaining_parts() == 0 {
669669
$pending_events.lock().unwrap().push(events::Event::PaymentFailed {
670670
payment_id: $payment_id,
671-
payment_hash: $payment.get().payment_hash().expect("PendingOutboundPayments::RetriesExceeded always has a payment hash set"),
671+
payment_hash: $payment_hash,
672672
});
673673
$payment.remove();
674674
}
@@ -678,14 +678,15 @@ impl OutboundPayments {
678678
let mut outbounds = self.pending_outbound_payments.lock().unwrap();
679679
match outbounds.entry(payment_id) {
680680
hash_map::Entry::Occupied(mut payment) => {
681-
let res = match payment.get_mut() {
681+
let res = match payment.get() {
682682
PendingOutboundPayment::Retryable {
683683
total_msat, payment_hash, keysend_preimage, payment_secret, pending_amt_msat, ..
684684
} => {
685685
let retry_amt_msat: u64 = route.paths.iter().map(|path| path.last().unwrap().fee_msat).sum();
686686
if retry_amt_msat + *pending_amt_msat > *total_msat * (100 + RETRY_OVERFLOW_PERCENTAGE) / 100 {
687687
log_error!(logger, "retry_amt_msat of {} will put pending_amt_msat (currently: {}) more than 10% over total_payment_amt_msat of {}", retry_amt_msat, pending_amt_msat, total_msat);
688-
abandon_with_entry!(payment_id, payment, pending_events);
688+
let payment_hash = *payment_hash;
689+
abandon_with_entry!(payment_id, payment_hash, payment, pending_events);
689690
return
690691
}
691692
(*total_msat, *payment_hash, *payment_secret, *keysend_preimage)
@@ -705,7 +706,7 @@ impl OutboundPayments {
705706
};
706707
if !payment.get().is_retryable_now() {
707708
log_error!(logger, "Retries exhausted for payment id {}", log_bytes!(payment_id.0));
708-
abandon_with_entry!(payment_id, payment, pending_events);
709+
abandon_with_entry!(payment_id, res.1, payment, pending_events);
709710
return
710711
}
711712
payment.get_mut().increment_attempts();

0 commit comments

Comments
 (0)