Pass PaymentContext through HTLC processing
[rust-lightning] / lightning / src / ln / onion_payment.rs
index aa8ee0ce9be6bfe3a46301c4cb5d9c57610f49c5..db8c4cd033708fd36413aaf4b8c30ec05e4075e8 100644 (file)
@@ -131,17 +131,18 @@ pub(super) fn create_recv_pending_htlc_info(
 ) -> Result<PendingHTLCInfo, InboundHTLCErr> {
        let (
                payment_data, keysend_preimage, custom_tlvs, onion_amt_msat, onion_cltv_expiry,
-               payment_metadata, requires_blinded_error
+               payment_metadata, payment_context, requires_blinded_error
        ) = match hop_data {
                msgs::InboundOnionPayload::Receive {
                        payment_data, keysend_preimage, custom_tlvs, sender_intended_htlc_amt_msat,
                        cltv_expiry_height, payment_metadata, ..
                } =>
                        (payment_data, keysend_preimage, custom_tlvs, sender_intended_htlc_amt_msat,
-                        cltv_expiry_height, payment_metadata, false),
+                        cltv_expiry_height, payment_metadata, None, false),
                msgs::InboundOnionPayload::BlindedReceive {
                        sender_intended_htlc_amt_msat, total_msat, cltv_expiry_height, payment_secret,
-                       intro_node_blinding_point, payment_constraints, keysend_preimage, custom_tlvs
+                       intro_node_blinding_point, payment_constraints, payment_context, keysend_preimage,
+                       custom_tlvs
                } => {
                        check_blinded_payment_constraints(
                                sender_intended_htlc_amt_msat, cltv_expiry, &payment_constraints
@@ -155,7 +156,7 @@ pub(super) fn create_recv_pending_htlc_info(
                                })?;
                        let payment_data = msgs::FinalOnionHopData { payment_secret, total_msat };
                        (Some(payment_data), keysend_preimage, custom_tlvs,
-                        sender_intended_htlc_amt_msat, cltv_expiry_height, None,
+                        sender_intended_htlc_amt_msat, cltv_expiry_height, None, Some(payment_context),
                         intro_node_blinding_point.is_none())
                }
                msgs::InboundOnionPayload::Forward { .. } => {
@@ -241,6 +242,7 @@ pub(super) fn create_recv_pending_htlc_info(
                PendingHTLCRouting::Receive {
                        payment_data: data,
                        payment_metadata,
+                       payment_context,
                        incoming_cltv_expiry: onion_cltv_expiry,
                        phantom_shared_secret,
                        custom_tlvs,