Skip to content

Commit 3a18f5a

Browse files
f remove reachable debug_assert
1 parent 85f97ec commit 3a18f5a

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

lightning/src/events/mod.rs

+10-13
Original file line numberDiff line numberDiff line change
@@ -181,36 +181,32 @@ impl PaymentPurpose {
181181
pub(crate) fn from_parts(
182182
payment_preimage: Option<PaymentPreimage>, payment_secret: PaymentSecret,
183183
payment_context: Option<PaymentContext>,
184-
) -> Self {
184+
) -> Result<Self, ()> {
185185
match payment_context {
186186
Some(PaymentContext::Unknown(_)) | None => {
187-
PaymentPurpose::Bolt11InvoicePayment {
187+
Ok(PaymentPurpose::Bolt11InvoicePayment {
188188
payment_preimage,
189189
payment_secret,
190-
}
190+
})
191191
},
192192
Some(PaymentContext::Bolt12Offer(context)) => {
193-
PaymentPurpose::Bolt12OfferPayment {
193+
Ok(PaymentPurpose::Bolt12OfferPayment {
194194
payment_preimage,
195195
payment_secret,
196196
payment_context: context,
197-
}
197+
})
198198
},
199199
Some(PaymentContext::Bolt12Refund(context)) => {
200-
PaymentPurpose::Bolt12RefundPayment {
200+
Ok(PaymentPurpose::Bolt12RefundPayment {
201201
payment_preimage,
202202
payment_secret,
203203
payment_context: context,
204-
}
204+
})
205205
},
206206
Some(PaymentContext::AsyncBolt12Offer(_context)) => {
207-
debug_assert!(false, "Receiving async payments is not yet supported");
208207
// This code will change to return Self::Bolt12OfferPayment when we add support for async
209208
// receive.
210-
PaymentPurpose::Bolt11InvoicePayment {
211-
payment_preimage,
212-
payment_secret,
213-
}
209+
Err(())
214210
},
215211
}
216212
}
@@ -1845,7 +1841,8 @@ impl MaybeReadable for Event {
18451841
(13, payment_id, option),
18461842
});
18471843
let purpose = match payment_secret {
1848-
Some(secret) => PaymentPurpose::from_parts(payment_preimage, secret, payment_context),
1844+
Some(secret) => PaymentPurpose::from_parts(payment_preimage, secret, payment_context)
1845+
.map_err(|()| msgs::DecodeError::InvalidValue)?,
18491846
None if payment_preimage.is_some() => PaymentPurpose::SpontaneousPayment(payment_preimage.unwrap()),
18501847
None => return Err(msgs::DecodeError::InvalidValue),
18511848
};

lightning/src/ln/channelmanager.rs

+7-2
Original file line numberDiff line numberDiff line change
@@ -6078,11 +6078,16 @@ where
60786078
match claimable_htlc.onion_payload {
60796079
OnionPayload::Invoice { .. } => {
60806080
let payment_data = payment_data.unwrap();
6081-
let purpose = events::PaymentPurpose::from_parts(
6081+
let purpose = match events::PaymentPurpose::from_parts(
60826082
payment_preimage,
60836083
payment_data.payment_secret,
60846084
payment_context,
6085-
);
6085+
) {
6086+
Ok(purpose) => purpose,
6087+
Err(()) => {
6088+
fail_htlc!(claimable_htlc, payment_hash);
6089+
},
6090+
};
60866091
check_total_value!(purpose);
60876092
},
60886093
OnionPayload::Spontaneous(preimage) => {

0 commit comments

Comments
 (0)