X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fevents%2Fmod.rs;fp=lightning%2Fsrc%2Fevents%2Fmod.rs;h=63762dc55d4a95b82e95c8660ae652809641a9c1;hb=23c70642b83e0207e8f0bfe7de2e20bcc878a60e;hp=24252e38ebaee6103c6e359d25062f0077a8103c;hpb=432f0e678edf54dfff1dbb8aa4e9d7bf7febf17e;p=rust-lightning diff --git a/lightning/src/events/mod.rs b/lightning/src/events/mod.rs index 24252e38..63762dc5 100644 --- a/lightning/src/events/mod.rs +++ b/lightning/src/events/mod.rs @@ -475,6 +475,9 @@ pub enum Event { /// /// [`ChannelManager::send_payment`]: crate::ln::channelmanager::ChannelManager::send_payment payment_hash: PaymentHash, + /// The reason the payment failed. This is only `None` for events generated or serialized + /// by versions prior to 0.0.115. + reason: Option, }, /// Indicates that a path for an outbound payment was successful. /// @@ -940,10 +943,11 @@ impl Writeable for Event { (4, *path, vec_type) }) }, - &Event::PaymentFailed { ref payment_id, ref payment_hash } => { + &Event::PaymentFailed { ref payment_id, ref payment_hash, ref reason } => { 15u8.write(writer)?; write_tlv_fields!(writer, { (0, payment_id, required), + (1, reason, option), (2, payment_hash, required), }) }, @@ -1245,13 +1249,16 @@ impl MaybeReadable for Event { let f = || { let mut payment_hash = PaymentHash([0; 32]); let mut payment_id = PaymentId([0; 32]); + let mut reason = None; read_tlv_fields!(reader, { (0, payment_id, required), + (1, reason, upgradable_option), (2, payment_hash, required), }); Ok(Some(Event::PaymentFailed { payment_id, payment_hash, + reason, })) }; f()