X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Fonion_utils.rs;h=ebea1334a8489bc81000b0df1e272ad4557fab73;hb=6d1bd8bc988429a1c26e6fa0030735f9e844d022;hp=a97621045370366069bdb5e9b2a3d4ebb68dffff;hpb=b54817397d62817d806d2ac266617ef30709d1d3;p=rust-lightning diff --git a/lightning/src/ln/onion_utils.rs b/lightning/src/ln/onion_utils.rs index a9762104..ebea1334 100644 --- a/lightning/src/ln/onion_utils.rs +++ b/lightning/src/ln/onion_utils.rs @@ -1,4 +1,4 @@ -use ln::channelmanager::{PaymentHash, HTLCSource}; +use ln::channelmanager::{PaymentHash, PaymentSecret, HTLCSource}; use ln::msgs; use ln::router::{Route,RouteHop}; use util::byte_utils; @@ -108,7 +108,7 @@ pub(super) fn construct_onion_keys(secp_ctx: &Secp256k1 Result<(Vec, u64, u32), APIError> { +pub(super) fn build_onion_payloads(route: &Route, payment_secret_option: &Option, starting_htlc_offset: u32) -> Result<(Vec, u64, u32), APIError> { let mut cur_value_msat = 0u64; let mut cur_cltv = starting_htlc_offset; let mut last_short_channel_id = 0; @@ -124,7 +124,12 @@ pub(super) fn build_onion_payloads(route: &Route, starting_htlc_offset: u32) -> format: if hop.node_features.supports_variable_length_onion() { if idx == 0 { msgs::OnionHopDataFormat::FinalNode { - payment_data: None, + payment_data: if let &Some(ref payment_secret) = payment_secret_option { + Some(msgs::FinalOnionHopData { + payment_secret: payment_secret.clone(), + total_msat: hop.fee_msat, + }) + } else { None }, } } else { msgs::OnionHopDataFormat::NonFinalNode {