@@ -1775,6 +1775,13 @@ mod fuzzy_internal_msgs {
1775
1775
amt_to_forward : u64 ,
1776
1776
outgoing_cltv_value : u32 ,
1777
1777
} ,
1778
+ #[ allow( unused) ]
1779
+ TrampolineEntrypoint {
1780
+ amt_to_forward : u64 ,
1781
+ outgoing_cltv_value : u32 ,
1782
+ multipath_trampoline_data : Option < FinalOnionHopData > ,
1783
+ trampoline_packet : TrampolineOnionPacket ,
1784
+ } ,
1778
1785
Receive {
1779
1786
payment_data : Option < FinalOnionHopData > ,
1780
1787
payment_metadata : Option < Vec < u8 > > ,
@@ -2858,6 +2865,7 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2858
2865
let mut payment_metadata: Option < WithoutLength < Vec < u8 > > > = None ;
2859
2866
let mut total_msat = None ;
2860
2867
let mut keysend_preimage: Option < PaymentPreimage > = None ;
2868
+ let mut trampoline_onion_packet: Option < TrampolineOnionPacket > = None ;
2861
2869
let mut invoice_request: Option < InvoiceRequest > = None ;
2862
2870
let mut custom_tlvs = Vec :: new ( ) ;
2863
2871
@@ -2872,6 +2880,7 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2872
2880
( 12 , intro_node_blinding_point, option) ,
2873
2881
( 16 , payment_metadata, option) ,
2874
2882
( 18 , total_msat, ( option, encoding: ( u64 , HighZeroBytesDroppedBigSize ) ) ) ,
2883
+ ( 20 , trampoline_onion_packet, option) ,
2875
2884
( 77_777 , invoice_request, option) ,
2876
2885
// See https://github.com/lightning/blips/blob/master/blip-0003.md
2877
2886
( 5482373484 , keysend_preimage, option)
@@ -2950,6 +2959,16 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload wh
2950
2959
amt_to_forward : amt. ok_or ( DecodeError :: InvalidValue ) ?,
2951
2960
outgoing_cltv_value : cltv_value. ok_or ( DecodeError :: InvalidValue ) ?,
2952
2961
} )
2962
+ } else if let Some ( trampoline_onion_packet) = trampoline_onion_packet {
2963
+ if payment_metadata. is_some ( ) || encrypted_tlvs_opt. is_some ( ) ||
2964
+ total_msat. is_some ( )
2965
+ { return Err ( DecodeError :: InvalidValue ) }
2966
+ Ok ( Self :: TrampolineEntrypoint {
2967
+ amt_to_forward : amt. ok_or ( DecodeError :: InvalidValue ) ?,
2968
+ outgoing_cltv_value : cltv_value. ok_or ( DecodeError :: InvalidValue ) ?,
2969
+ multipath_trampoline_data : payment_data,
2970
+ trampoline_packet : trampoline_onion_packet,
2971
+ } )
2953
2972
} else {
2954
2973
if encrypted_tlvs_opt. is_some ( ) || total_msat. is_some ( ) || invoice_request. is_some ( ) {
2955
2974
return Err ( DecodeError :: InvalidValue )
0 commit comments