@@ -1768,6 +1768,19 @@ mod fuzzy_internal_msgs {
1768
1768
outgoing_cltv_value : u32 ,
1769
1769
/// The node id to which the trampoline node must find a route
1770
1770
outgoing_node_id : PublicKey ,
1771
+ } ,
1772
+ BlindedForward {
1773
+ encrypted_tlvs : Vec < u8 > ,
1774
+ intro_node_blinding_point : Option < PublicKey > ,
1775
+ } ,
1776
+ BlindedReceive {
1777
+ sender_intended_htlc_amt_msat : u64 ,
1778
+ total_msat : u64 ,
1779
+ cltv_expiry_height : u32 ,
1780
+ encrypted_tlvs : Vec < u8 > ,
1781
+ intro_node_blinding_point : Option < PublicKey > , // Set if the introduction node of the blinded path is the final node
1782
+ keysend_preimage : Option < PaymentPreimage > ,
1783
+ custom_tlvs : Vec < ( u64 , Vec < u8 > ) > ,
1771
1784
}
1772
1785
}
1773
1786
@@ -2673,7 +2686,31 @@ impl Writeable for OutboundTrampolinePayload {
2673
2686
( 4 , HighZeroBytesDroppedBigSize ( * outgoing_cltv_value) , required) ,
2674
2687
( 14 , outgoing_node_id, required)
2675
2688
} ) ;
2676
- }
2689
+ } ,
2690
+ Self :: BlindedForward { encrypted_tlvs, intro_node_blinding_point } => {
2691
+ _encode_varint_length_prefixed_tlv ! ( w, {
2692
+ ( 10 , * encrypted_tlvs, required_vec) ,
2693
+ ( 12 , intro_node_blinding_point, option)
2694
+ } ) ;
2695
+ } ,
2696
+ Self :: BlindedReceive {
2697
+ sender_intended_htlc_amt_msat, total_msat, cltv_expiry_height, encrypted_tlvs,
2698
+ intro_node_blinding_point, keysend_preimage, ref custom_tlvs,
2699
+ } => {
2700
+ // We need to update [`ln::outbound_payment::RecipientOnionFields::with_custom_tlvs`]
2701
+ // to reject any reserved types in the experimental range if new ones are ever
2702
+ // standardized.
2703
+ let keysend_tlv = keysend_preimage. map ( |preimage| ( 5482373484 , preimage. encode ( ) ) ) ;
2704
+ let mut custom_tlvs: Vec < & ( u64 , Vec < u8 > ) > = custom_tlvs. iter ( ) . chain ( keysend_tlv. iter ( ) ) . collect ( ) ;
2705
+ custom_tlvs. sort_unstable_by_key ( |( typ, _) | * typ) ;
2706
+ _encode_varint_length_prefixed_tlv ! ( w, {
2707
+ ( 2 , HighZeroBytesDroppedBigSize ( * sender_intended_htlc_amt_msat) , required) ,
2708
+ ( 4 , HighZeroBytesDroppedBigSize ( * cltv_expiry_height) , required) ,
2709
+ ( 10 , * encrypted_tlvs, required_vec) ,
2710
+ ( 12 , intro_node_blinding_point, option) ,
2711
+ ( 18 , HighZeroBytesDroppedBigSize ( * total_msat) , required)
2712
+ } , custom_tlvs. iter( ) ) ;
2713
+ } ,
2677
2714
}
2678
2715
Ok ( ( ) )
2679
2716
}
0 commit comments