@@ -181,36 +181,32 @@ impl PaymentPurpose {
181
181
pub ( crate ) fn from_parts (
182
182
payment_preimage : Option < PaymentPreimage > , payment_secret : PaymentSecret ,
183
183
payment_context : Option < PaymentContext > ,
184
- ) -> Self {
184
+ ) -> Result < Self , ( ) > {
185
185
match payment_context {
186
186
Some ( PaymentContext :: Unknown ( _) ) | None => {
187
- PaymentPurpose :: Bolt11InvoicePayment {
187
+ Ok ( PaymentPurpose :: Bolt11InvoicePayment {
188
188
payment_preimage,
189
189
payment_secret,
190
- }
190
+ } )
191
191
} ,
192
192
Some ( PaymentContext :: Bolt12Offer ( context) ) => {
193
- PaymentPurpose :: Bolt12OfferPayment {
193
+ Ok ( PaymentPurpose :: Bolt12OfferPayment {
194
194
payment_preimage,
195
195
payment_secret,
196
196
payment_context : context,
197
- }
197
+ } )
198
198
} ,
199
199
Some ( PaymentContext :: Bolt12Refund ( context) ) => {
200
- PaymentPurpose :: Bolt12RefundPayment {
200
+ Ok ( PaymentPurpose :: Bolt12RefundPayment {
201
201
payment_preimage,
202
202
payment_secret,
203
203
payment_context : context,
204
- }
204
+ } )
205
205
} ,
206
206
Some ( PaymentContext :: AsyncBolt12Offer ( _context) ) => {
207
- debug_assert ! ( false , "Receiving async payments is not yet supported" ) ;
208
207
// This code will change to return Self::Bolt12OfferPayment when we add support for async
209
208
// receive.
210
- PaymentPurpose :: Bolt11InvoicePayment {
211
- payment_preimage,
212
- payment_secret,
213
- }
209
+ Err ( ( ) )
214
210
} ,
215
211
}
216
212
}
@@ -1845,7 +1841,8 @@ impl MaybeReadable for Event {
1845
1841
( 13 , payment_id, option) ,
1846
1842
} ) ;
1847
1843
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 ) ?,
1849
1846
None if payment_preimage. is_some ( ) => PaymentPurpose :: SpontaneousPayment ( payment_preimage. unwrap ( ) ) ,
1850
1847
None => return Err ( msgs:: DecodeError :: InvalidValue ) ,
1851
1848
} ;
0 commit comments