@@ -1766,6 +1766,13 @@ mod fuzzy_internal_msgs {
1766
1766
amt_to_forward : u64 ,
1767
1767
outgoing_cltv_value : u32 ,
1768
1768
} ,
1769
+ #[ allow( unused) ]
1770
+ TrampolineEntrypoint {
1771
+ amt_to_forward : u64 ,
1772
+ outgoing_cltv_value : u32 ,
1773
+ multipath_trampoline_data : Option < FinalOnionHopData > ,
1774
+ trampoline_packet : TrampolineOnionPacket ,
1775
+ } ,
1769
1776
Receive {
1770
1777
payment_data : Option < FinalOnionHopData > ,
1771
1778
payment_metadata : Option < Vec < u8 > > ,
@@ -2848,6 +2855,7 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2848
2855
let mut payment_metadata: Option < WithoutLength < Vec < u8 > > > = None ;
2849
2856
let mut total_msat = None ;
2850
2857
let mut keysend_preimage: Option < PaymentPreimage > = None ;
2858
+ let mut trampoline_onion_packet: Option < TrampolineOnionPacket > = None ;
2851
2859
let mut custom_tlvs = Vec :: new ( ) ;
2852
2860
2853
2861
let tlv_len = BigSize :: read ( r) ?;
@@ -2861,6 +2869,7 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2861
2869
( 12 , intro_node_blinding_point, option) ,
2862
2870
( 16 , payment_metadata, option) ,
2863
2871
( 18 , total_msat, ( option, encoding: ( u64 , HighZeroBytesDroppedBigSize ) ) ) ,
2872
+ ( 20 , trampoline_onion_packet, option) ,
2864
2873
// See https://github.com/lightning/blips/blob/master/blip-0003.md
2865
2874
( 5482373484 , keysend_preimage, option)
2866
2875
} , |msg_type: u64 , msg_reader: & mut FixedLengthReader <_>| -> Result <bool , DecodeError > {
@@ -2937,6 +2946,16 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2937
2946
amt_to_forward : amt. ok_or ( DecodeError :: InvalidValue ) ?,
2938
2947
outgoing_cltv_value : cltv_value. ok_or ( DecodeError :: InvalidValue ) ?,
2939
2948
} )
2949
+ } else if let Some ( trampoline_onion_packet) = trampoline_onion_packet {
2950
+ if payment_metadata. is_some ( ) || encrypted_tlvs_opt. is_some ( ) ||
2951
+ total_msat. is_some ( )
2952
+ { return Err ( DecodeError :: InvalidValue ) }
2953
+ Ok ( Self :: TrampolineEntrypoint {
2954
+ amt_to_forward : amt. ok_or ( DecodeError :: InvalidValue ) ?,
2955
+ outgoing_cltv_value : cltv_value. ok_or ( DecodeError :: InvalidValue ) ?,
2956
+ multipath_trampoline_data : payment_data,
2957
+ trampoline_packet : trampoline_onion_packet,
2958
+ } )
2940
2959
} else {
2941
2960
if encrypted_tlvs_opt. is_some ( ) || total_msat. is_some ( ) {
2942
2961
return Err ( DecodeError :: InvalidValue )
0 commit comments