@@ -538,7 +538,7 @@ pub enum PaymentFailureReason {
538
538
InvoiceRequestRejected ,
539
539
}
540
540
541
- impl_writeable_tlv_based_enum ! ( PaymentFailureReason ,
541
+ impl_writeable_tlv_based_enum_upgradable ! ( PaymentFailureReason ,
542
542
( 0 , RecipientRejected ) => { } ,
543
543
( 1 , UnknownRequiredFeatures ) => { } ,
544
544
( 2 , UserAbandoned ) => { } ,
@@ -878,8 +878,9 @@ pub enum Event {
878
878
/// [`Offer`]: crate::offers::offer::Offer
879
879
payment_hash : Option < PaymentHash > ,
880
880
/// The reason the payment failed. This is only `None` for events generated or serialized
881
- /// by versions prior to 0.0.115 or when deserializing an `Event::InvoiceRequestFailed`,
882
- /// which was removed in 0.0.124.
881
+ /// by versions prior to 0.0.115, when deserializing an `Event::InvoiceRequestFailed` (which
882
+ /// was removed in 0.0.124), or when downgrading to 0.0.124 or later with a reason that was
883
+ /// added after.
883
884
reason : Option < PaymentFailureReason > ,
884
885
} ,
885
886
/// Indicates that a path for an outbound payment was successful.
@@ -1940,7 +1941,7 @@ impl MaybeReadable for Event {
1940
1941
Ok ( Some ( Event :: PaymentFailed {
1941
1942
payment_id,
1942
1943
payment_hash,
1943
- reason,
1944
+ reason : _init_tlv_based_struct_field ! ( reason , upgradable_option ) ,
1944
1945
} ) )
1945
1946
} ;
1946
1947
f ( )
0 commit comments