@@ -1735,6 +1735,7 @@ mod fuzzy_internal_msgs {
1735
1735
use crate :: blinded_path:: payment:: { PaymentConstraints , PaymentContext , PaymentRelay } ;
1736
1736
use crate :: ln:: types:: { PaymentPreimage , PaymentSecret } ;
1737
1737
use crate :: ln:: features:: BlindedHopFeatures ;
1738
+ use crate :: offers:: invoice_request:: InvoiceRequest ;
1738
1739
use super :: { FinalOnionHopData , TrampolineOnionPacket } ;
1739
1740
1740
1741
#[ allow( unused_imports) ]
@@ -1813,6 +1814,7 @@ mod fuzzy_internal_msgs {
1813
1814
intro_node_blinding_point : Option < PublicKey > , // Set if the introduction node of the blinded path is the final node
1814
1815
keysend_preimage : Option < PaymentPreimage > ,
1815
1816
custom_tlvs : & ' a Vec < ( u64 , Vec < u8 > ) > ,
1817
+ invoice_request : Option < & ' a InvoiceRequest > ,
1816
1818
}
1817
1819
}
1818
1820
@@ -2719,13 +2721,17 @@ impl<'a> Writeable for OutboundOnionPayload<'a> {
2719
2721
} ,
2720
2722
Self :: BlindedReceive {
2721
2723
sender_intended_htlc_amt_msat, total_msat, cltv_expiry_height, encrypted_tlvs,
2722
- intro_node_blinding_point, keysend_preimage, ref custom_tlvs,
2724
+ intro_node_blinding_point, keysend_preimage, ref invoice_request , ref custom_tlvs,
2723
2725
} => {
2724
2726
// We need to update [`ln::outbound_payment::RecipientOnionFields::with_custom_tlvs`]
2725
2727
// to reject any reserved types in the experimental range if new ones are ever
2726
2728
// standardized.
2729
+ let invoice_request_tlv = invoice_request. map ( |invreq| ( 77_777 , invreq. encode ( ) ) ) ;
2727
2730
let keysend_tlv = keysend_preimage. map ( |preimage| ( 5482373484 , preimage. encode ( ) ) ) ;
2728
- let mut custom_tlvs: Vec < & ( u64 , Vec < u8 > ) > = custom_tlvs. iter ( ) . chain ( keysend_tlv. iter ( ) ) . collect ( ) ;
2731
+ let mut custom_tlvs: Vec < & ( u64 , Vec < u8 > ) > = custom_tlvs. iter ( )
2732
+ . chain ( invoice_request_tlv. iter ( ) )
2733
+ . chain ( keysend_tlv. iter ( ) )
2734
+ . collect ( ) ;
2729
2735
custom_tlvs. sort_unstable_by_key ( |( typ, _) | * typ) ;
2730
2736
_encode_varint_length_prefixed_tlv ! ( w, {
2731
2737
( 2 , HighZeroBytesDroppedBigSize ( * sender_intended_htlc_amt_msat) , required) ,
0 commit comments