Skip to content

Commit ddf5c9d

Browse files
committed
Add trampoline packet field to OutboundOnionPayload::Receive.
1 parent 91c6588 commit ddf5c9d

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lightning/src/ln/msgs.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,7 @@ mod fuzzy_internal_msgs {
16701670
use crate::prelude::*;
16711671
use crate::ln::{PaymentPreimage, PaymentSecret};
16721672
use crate::ln::features::BlindedHopFeatures;
1673+
use crate::ln::msgs::OnionPacket;
16731674

16741675
// These types aren't intended to be pub, but are exposed for direct fuzzing (as we deserialize
16751676
// them from untrusted input):
@@ -1727,6 +1728,7 @@ mod fuzzy_internal_msgs {
17271728
custom_tlvs: Vec<(u64, Vec<u8>)>,
17281729
amt_msat: u64,
17291730
outgoing_cltv_value: u32,
1731+
trampoline_packet: Option<OnionPacket>
17301732
},
17311733
BlindedForward {
17321734
encrypted_tlvs: Vec<u8>,
@@ -2277,7 +2279,7 @@ impl Writeable for OutboundOnionPayload {
22772279
},
22782280
Self::Receive {
22792281
ref payment_data, ref payment_metadata, ref keysend_preimage, amt_msat,
2280-
outgoing_cltv_value, ref custom_tlvs,
2282+
outgoing_cltv_value, ref custom_tlvs, ref trampoline_packet
22812283
} => {
22822284
// We need to update [`ln::outbound_payment::RecipientOnionFields::with_custom_tlvs`]
22832285
// to reject any reserved types in the experimental range if new ones are ever
@@ -2289,6 +2291,7 @@ impl Writeable for OutboundOnionPayload {
22892291
(2, HighZeroBytesDroppedBigSize(*amt_msat), required),
22902292
(4, HighZeroBytesDroppedBigSize(*outgoing_cltv_value), required),
22912293
(8, payment_data, option),
2294+
(12, trampoline_packet, option),
22922295
(16, payment_metadata.as_ref().map(|m| WithoutLength(m)), option)
22932296
}, custom_tlvs.iter());
22942297
},
@@ -4002,6 +4005,7 @@ mod tests {
40024005
amt_msat: 0x0badf00d01020304,
40034006
outgoing_cltv_value: 0xffffffff,
40044007
custom_tlvs: vec![],
4008+
trampoline_packet: None
40054009
};
40064010
let encoded_value = outbound_msg.encode();
40074011
let target_value = <Vec<u8>>::from_hex("1002080badf00d010203040404ffffffff").unwrap();
@@ -4030,6 +4034,7 @@ mod tests {
40304034
amt_msat: 0x0badf00d01020304,
40314035
outgoing_cltv_value: 0xffffffff,
40324036
custom_tlvs: vec![],
4037+
trampoline_packet: None
40334038
};
40344039
let encoded_value = outbound_msg.encode();
40354040
let target_value = <Vec<u8>>::from_hex("3602080badf00d010203040404ffffffff082442424242424242424242424242424242424242424242424242424242424242421badca1f").unwrap();
@@ -4069,6 +4074,7 @@ mod tests {
40694074
custom_tlvs: bad_type_range_tlvs,
40704075
amt_msat: 0x0badf00d01020304,
40714076
outgoing_cltv_value: 0xffffffff,
4077+
trampoline_packet: None
40724078
};
40734079
let encoded_value = msg.encode();
40744080
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
@@ -4101,6 +4107,7 @@ mod tests {
41014107
custom_tlvs: expected_custom_tlvs.clone(),
41024108
amt_msat: 0x0badf00d01020304,
41034109
outgoing_cltv_value: 0xffffffff,
4110+
trampoline_packet: None
41044111
};
41054112
let encoded_value = msg.encode();
41064113
let target_value = <Vec<u8>>::from_hex("2e02080badf00d010203040404ffffffffff0000000146c6616b021234ff0000000146c6616f084242424242424242").unwrap();

lightning/src/ln/onion_utils.rs

+1
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ pub(super) fn build_onion_payloads(path: &Path, total_msat: u64, mut recipient_o
216216
custom_tlvs: recipient_onion.custom_tlvs.clone(),
217217
amt_msat: value_msat,
218218
outgoing_cltv_value: cltv,
219+
trampoline_packet: None
219220
});
220221
}
221222
} else {

0 commit comments

Comments
 (0)