X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fevents%2Fmod.rs;h=4d8b8cee94b32c906784dfdd1b79ad282c75acb2;hb=818dbdf7ab34a91a511b48f05b06d902dd5251d1;hp=b5f682e1fb597eb0a923f214daace1ffba1e91a2;hpb=64c26c8a793f35c55076a2188912e92106900bab;p=rust-lightning diff --git a/lightning/src/events/mod.rs b/lightning/src/events/mod.rs index b5f682e1f..4d8b8cee9 100644 --- a/lightning/src/events/mod.rs +++ b/lightning/src/events/mod.rs @@ -20,7 +20,7 @@ pub mod bump_transaction; #[cfg(anchors)] pub use bump_transaction::BumpTransactionEvent; -use crate::chain::keysinterface::SpendableOutputDescriptor; +use crate::sign::SpendableOutputDescriptor; use crate::ln::channelmanager::{InterceptId, PaymentId, RecipientOnionFields}; use crate::ln::channel::FUNDING_CONF_DEADLINE_BLOCKS; use crate::ln::features::ChannelTypeFeatures; @@ -30,7 +30,7 @@ use crate::routing::gossip::NetworkUpdate; use crate::util::errors::APIError; use crate::util::ser::{BigSize, FixedLengthReader, Writeable, Writer, MaybeReadable, Readable, RequiredWrapper, UpgradableRequired, WithoutLength}; use crate::util::string::UntrustedString; -use crate::routing::router::{Path, RouteHop, RouteParameters}; +use crate::routing::router::{BlindedTail, Path, RouteHop, RouteParameters}; use bitcoin::{PackedLockTime, Transaction, OutPoint}; #[cfg(anchors)] @@ -129,7 +129,7 @@ pub enum ClosureReason { /// Be careful about printing the peer_msg, a well-crafted message could exploit /// a security vulnerability in the terminal emulator or the logging subsystem. /// To be safe, use `Display` on `UntrustedString` - /// + /// /// [`UntrustedString`]: crate::util::string::UntrustedString peer_msg: UntrustedString, }, @@ -377,7 +377,7 @@ pub enum Event { /// This field will always be filled in when the event was generated by LDK versions /// 0.0.113 and above. /// - /// [phantom nodes]: crate::chain::keysinterface::PhantomKeysManager + /// [phantom nodes]: crate::sign::PhantomKeysManager receiver_node_id: Option, /// The hash for which the preimage should be handed to the ChannelManager. Note that LDK will /// not stop you from registering duplicate payment hashes for inbound payments. @@ -425,7 +425,7 @@ pub enum Event { /// This field will always be filled in when the event was generated by LDK versions /// 0.0.113 and above. /// - /// [phantom nodes]: crate::chain::keysinterface::PhantomKeysManager + /// [phantom nodes]: crate::sign::PhantomKeysManager receiver_node_id: Option, /// The payment hash of the claimed payment. Note that LDK will not stop you from /// registering duplicate payment hashes for inbound payments. @@ -884,6 +884,7 @@ impl Writeable for Event { (1, None::, option), // network_update in LDK versions prior to 0.0.114 (2, payment_failed_permanently, required), (3, false, required), // all_paths_failed in LDK versions prior to 0.0.114 + (4, path.blinded_tail, option), (5, path.hops, vec_type), (7, short_channel_id, option), (9, None::, option), // retry in LDK versions prior to 0.0.115 @@ -953,6 +954,7 @@ impl Writeable for Event { (0, payment_id, required), (2, payment_hash, option), (4, path.hops, vec_type), + (6, path.blinded_tail, option), }) }, &Event::PaymentFailed { ref payment_id, ref payment_hash, ref reason } => { @@ -983,6 +985,7 @@ impl Writeable for Event { (0, payment_id, required), (2, payment_hash, required), (4, path.hops, vec_type), + (6, path.blinded_tail, option), }) }, &Event::ProbeFailed { ref payment_id, ref payment_hash, ref path, ref short_channel_id } => { @@ -992,6 +995,7 @@ impl Writeable for Event { (2, payment_hash, required), (4, path.hops, vec_type), (6, short_channel_id, option), + (8, path.blinded_tail, option), }) }, &Event::HTLCHandlingFailed { ref prev_channel_id, ref failed_next_destination } => { @@ -1122,6 +1126,7 @@ impl MaybeReadable for Event { let mut payment_hash = PaymentHash([0; 32]); let mut payment_failed_permanently = false; let mut network_update = None; + let mut blinded_tail: Option = None; let mut path: Option> = Some(vec![]); let mut short_channel_id = None; let mut payment_id = None; @@ -1130,6 +1135,7 @@ impl MaybeReadable for Event { (0, payment_hash, required), (1, network_update, upgradable_option), (2, payment_failed_permanently, required), + (4, blinded_tail, option), (5, path, vec_type), (7, short_channel_id, option), (11, payment_id, option), @@ -1141,7 +1147,7 @@ impl MaybeReadable for Event { payment_hash, payment_failed_permanently, failure, - path: Path { hops: path.unwrap(), blinded_tail: None }, + path: Path { hops: path.unwrap(), blinded_tail }, short_channel_id, #[cfg(test)] error_code, @@ -1244,18 +1250,16 @@ impl MaybeReadable for Event { }, 13u8 => { let f = || { - let mut payment_id = PaymentId([0; 32]); - let mut payment_hash = None; - let mut path: Option> = Some(vec![]); - read_tlv_fields!(reader, { + _init_and_read_tlv_fields!(reader, { (0, payment_id, required), (2, payment_hash, option), (4, path, vec_type), + (6, blinded_tail, option), }); Ok(Some(Event::PaymentPathSuccessful { - payment_id, + payment_id: payment_id.0.unwrap(), payment_hash, - path: Path { hops: path.unwrap(), blinded_tail: None }, + path: Path { hops: path.unwrap(), blinded_tail }, })) }; f() @@ -1305,38 +1309,33 @@ impl MaybeReadable for Event { }, 21u8 => { let f = || { - let mut payment_id = PaymentId([0; 32]); - let mut payment_hash = PaymentHash([0; 32]); - let mut path: Option> = Some(vec![]); - read_tlv_fields!(reader, { + _init_and_read_tlv_fields!(reader, { (0, payment_id, required), (2, payment_hash, required), (4, path, vec_type), + (6, blinded_tail, option), }); Ok(Some(Event::ProbeSuccessful { - payment_id, - payment_hash, - path: Path { hops: path.unwrap(), blinded_tail: None }, + payment_id: payment_id.0.unwrap(), + payment_hash: payment_hash.0.unwrap(), + path: Path { hops: path.unwrap(), blinded_tail }, })) }; f() }, 23u8 => { let f = || { - let mut payment_id = PaymentId([0; 32]); - let mut payment_hash = PaymentHash([0; 32]); - let mut path: Option> = Some(vec![]); - let mut short_channel_id = None; - read_tlv_fields!(reader, { + _init_and_read_tlv_fields!(reader, { (0, payment_id, required), (2, payment_hash, required), (4, path, vec_type), (6, short_channel_id, option), + (8, blinded_tail, option), }); Ok(Some(Event::ProbeFailed { - payment_id, - payment_hash, - path: Path { hops: path.unwrap(), blinded_tail: None }, + payment_id: payment_id.0.unwrap(), + payment_hash: payment_hash.0.unwrap(), + path: Path { hops: path.unwrap(), blinded_tail }, short_channel_id, })) };