Skip to content

Commit 3c3e9bb

Browse files
committed
f - change reason to an option
1 parent b60dca5 commit 3c3e9bb

File tree

5 files changed

+19
-18
lines changed

5 files changed

+19
-18
lines changed

lightning/src/events/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,9 @@ pub enum Event {
463463
///
464464
/// [`ChannelManager::send_payment`]: crate::ln::channelmanager::ChannelManager::send_payment
465465
payment_hash: PaymentHash,
466-
/// The reason the payment failed.
467-
reason: PaymentFailureReason
466+
/// The reason the payment failed. This is only `None` for events generated or serialized
467+
/// by versions prior to 0.0.115.
468+
reason: Option<PaymentFailureReason>,
468469
},
469470
/// Indicates that a path for an outbound payment was successful.
470471
///
@@ -907,7 +908,7 @@ impl Writeable for Event {
907908
15u8.write(writer)?;
908909
write_tlv_fields!(writer, {
909910
(0, payment_id, required),
910-
(1, reason, required),
911+
(1, reason, option),
911912
(2, payment_hash, required),
912913
})
913914
},
@@ -1196,16 +1197,16 @@ impl MaybeReadable for Event {
11961197
let f = || {
11971198
let mut payment_hash = PaymentHash([0; 32]);
11981199
let mut payment_id = PaymentId([0; 32]);
1199-
let mut reason = UpgradableRequired(None);
1200+
let mut reason = None;
12001201
read_tlv_fields!(reader, {
12011202
(0, payment_id, required),
1202-
(1, reason, upgradable_required),
1203+
(1, reason, upgradable_option),
12031204
(2, payment_hash, required),
12041205
});
12051206
Ok(Some(Event::PaymentFailed {
12061207
payment_id,
12071208
payment_hash,
1208-
reason: _init_tlv_based_struct_field!(reason, upgradable_required),
1209+
reason,
12091210
}))
12101211
};
12111212
f()

lightning/src/ln/functional_test_utils.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1923,7 +1923,7 @@ pub fn expect_payment_failed_conditions_event<'a, 'b, 'c, 'd, 'e>(
19231923
Event::PaymentFailed { ref payment_hash, ref payment_id, ref reason } => {
19241924
assert_eq!(*payment_hash, expected_payment_hash, "unexpected second payment_hash");
19251925
assert_eq!(*payment_id, expected_payment_id);
1926-
assert_eq!(*reason, PaymentFailureReason::RecipientRejected);
1926+
assert_eq!(reason.unwrap(), PaymentFailureReason::RecipientRejected);
19271927
}
19281928
_ => panic!("Unexpected second event"),
19291929
}
@@ -2309,7 +2309,7 @@ pub fn pass_failed_payment_back<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expe
23092309
Event::PaymentFailed { ref payment_hash, ref payment_id, ref reason } => {
23102310
assert_eq!(*payment_hash, our_payment_hash, "unexpected second payment_hash");
23112311
assert_eq!(*payment_id, expected_payment_id);
2312-
assert_eq!(*reason, expected_fail_reason);
2312+
assert_eq!(reason.unwrap(), expected_fail_reason);
23132313
}
23142314
_ => panic!("Unexpected second event"),
23152315
}

lightning/src/ln/onion_route_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ fn run_onion_failure_test_with_fail_intercept<F1,F2,F3>(_name: &str, test_case:
215215
Event::PaymentFailed { payment_hash: ev_payment_hash, payment_id: ev_payment_id, reason: ref ev_reason } => {
216216
assert_eq!(*payment_hash, ev_payment_hash);
217217
assert_eq!(payment_id, ev_payment_id);
218-
assert_eq!(PaymentFailureReason::RecipientRejected, *ev_reason);
218+
assert_eq!(PaymentFailureReason::RecipientRejected, ev_reason.unwrap());
219219
}
220220
_ => panic!("Unexpected second event"),
221221
}

lightning/src/ln/outbound_payment.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ impl OutboundPayments {
550550
pending_events.lock().unwrap().push(events::Event::PaymentFailed {
551551
payment_id: *pmt_id,
552552
payment_hash: pmt.payment_hash().expect("PendingOutboundPayments::Retryable always has a payment hash set"),
553-
reason: events::PaymentFailureReason::ExhaustedRetryAttempts
553+
reason: Some(events::PaymentFailureReason::ExhaustedRetryAttempts),
554554
});
555555
retain = false;
556556
}
@@ -667,7 +667,7 @@ impl OutboundPayments {
667667
pending_events.lock().unwrap().push(events::Event::PaymentFailed {
668668
payment_id,
669669
payment_hash,
670-
reason: $reason,
670+
reason: Some($reason),
671671
});
672672
$payment.remove();
673673
}
@@ -1178,7 +1178,7 @@ impl OutboundPayments {
11781178
full_failure_ev = Some(events::Event::PaymentFailed {
11791179
payment_id: *payment_id,
11801180
payment_hash: payment.get().payment_hash().expect("PendingOutboundPayments::RetriesExceeded always has a payment hash set"),
1181-
reason: PaymentFailureReason::RecipientRejected
1181+
reason: Some(PaymentFailureReason::RecipientRejected),
11821182
});
11831183
}
11841184
payment.remove();
@@ -1245,7 +1245,7 @@ impl OutboundPayments {
12451245
pending_events.lock().unwrap().push(events::Event::PaymentFailed {
12461246
payment_id,
12471247
payment_hash: payment.get().payment_hash().expect("PendingOutboundPayments::RetriesExceeded always has a payment hash set"),
1248-
reason,
1248+
reason: Some(reason),
12491249
});
12501250
payment.remove();
12511251
}
@@ -1366,7 +1366,7 @@ mod tests {
13661366
let events = pending_events.lock().unwrap();
13671367
assert_eq!(events.len(), 1);
13681368
if let Event::PaymentFailed { ref reason, .. } = events[0] {
1369-
assert_eq!(*reason, PaymentFailureReason::PaymentExpired);
1369+
assert_eq!(reason.unwrap(), PaymentFailureReason::PaymentExpired);
13701370
} else { panic!("Unexpected event"); }
13711371
} else {
13721372
let err = outbound_payments.send_payment(

lightning/src/ln/payment_tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,7 +1705,7 @@ fn do_automatic_retries(test: AutoRetry) {
17051705
Event::PaymentFailed { payment_hash: ref ev_payment_hash, payment_id: ref ev_payment_id, reason: ref ev_reason } => {
17061706
assert_eq!(payment_hash, *ev_payment_hash);
17071707
assert_eq!(PaymentId(payment_hash.0), *ev_payment_id);
1708-
assert_eq!(PaymentFailureReason::ExhaustedRetryAttempts, *ev_reason);
1708+
assert_eq!(PaymentFailureReason::ExhaustedRetryAttempts, ev_reason.unwrap());
17091709
},
17101710
_ => panic!("Unexpected event"),
17111711
}
@@ -1741,7 +1741,7 @@ fn do_automatic_retries(test: AutoRetry) {
17411741
Event::PaymentFailed { payment_hash: ref ev_payment_hash, payment_id: ref ev_payment_id, reason: ref ev_reason } => {
17421742
assert_eq!(payment_hash, *ev_payment_hash);
17431743
assert_eq!(PaymentId(payment_hash.0), *ev_payment_id);
1744-
assert_eq!(PaymentFailureReason::ExhaustedRetryAttempts, *ev_reason);
1744+
assert_eq!(PaymentFailureReason::ExhaustedRetryAttempts, ev_reason.unwrap());
17451745
},
17461746
_ => panic!("Unexpected event"),
17471747
}
@@ -1761,7 +1761,7 @@ fn do_automatic_retries(test: AutoRetry) {
17611761
Event::PaymentFailed { payment_hash: ref ev_payment_hash, payment_id: ref ev_payment_id, reason: ref ev_reason } => {
17621762
assert_eq!(payment_hash, *ev_payment_hash);
17631763
assert_eq!(PaymentId(payment_hash.0), *ev_payment_id);
1764-
assert_eq!(PaymentFailureReason::FailedRoutingRetry, *ev_reason);
1764+
assert_eq!(PaymentFailureReason::FailedRoutingRetry, ev_reason.unwrap());
17651765
},
17661766
_ => panic!("Unexpected event"),
17671767
}
@@ -2438,7 +2438,7 @@ fn no_extra_retries_on_back_to_back_fail() {
24382438
Event::PaymentFailed { payment_hash: ref ev_payment_hash, payment_id: ref ev_payment_id, reason: ref ev_reason } => {
24392439
assert_eq!(payment_hash, *ev_payment_hash);
24402440
assert_eq!(PaymentId(payment_hash.0), *ev_payment_id);
2441-
assert_eq!(PaymentFailureReason::RecipientRejected, *ev_reason);
2441+
assert_eq!(PaymentFailureReason::RecipientRejected, ev_reason.unwrap());
24422442
},
24432443
_ => panic!("Unexpected event"),
24442444
}

0 commit comments

Comments
 (0)