@@ -1832,15 +1832,36 @@ where
1832
1832
trampoline_shared_secret,
1833
1833
) ,
1834
1834
} ) ,
1835
- Ok ( ( _, None ) ) => Err ( OnionDecodeErr :: Malformed {
1835
+ Ok ( ( msgs:: InboundTrampolinePayload :: BlindedForward ( _) , None ) ) => {
1836
+ Err ( OnionDecodeErr :: Malformed {
1837
+ err_msg : "Non-final Trampoline onion data provided to us as last hop" ,
1838
+ err_code : INVALID_ONION_BLINDING ,
1839
+ trampoline_onion_blinding : true ,
1840
+ } )
1841
+ } ,
1842
+ Ok ( ( msgs:: InboundTrampolinePayload :: BlindedReceive ( _) , Some ( _) ) ) => {
1843
+ Err ( OnionDecodeErr :: Malformed {
1844
+ err_msg :
1845
+ "Final Trampoline onion data provided to us as intermediate hop" ,
1846
+ err_code : INVALID_ONION_BLINDING ,
1847
+ trampoline_onion_blinding : true ,
1848
+ } )
1849
+ } ,
1850
+ Ok ( ( _, None ) ) => Err ( OnionDecodeErr :: Relay {
1836
1851
err_msg : "Non-final Trampoline onion data provided to us as last hop" ,
1837
- err_code : INVALID_ONION_BLINDING ,
1838
- trampoline_onion_blinding : true ,
1852
+ err_code : 0x4000 | 22 ,
1853
+ shared_secret,
1854
+ trampoline_shared_secret : Some ( SharedSecret :: from_bytes (
1855
+ trampoline_shared_secret,
1856
+ ) ) ,
1839
1857
} ) ,
1840
- Ok ( ( _, Some ( _) ) ) => Err ( OnionDecodeErr :: Malformed {
1858
+ Ok ( ( _, Some ( _) ) ) => Err ( OnionDecodeErr :: Relay {
1841
1859
err_msg : "Final Trampoline onion data provided to us as intermediate hop" ,
1842
- err_code : INVALID_ONION_BLINDING ,
1843
- trampoline_onion_blinding : true ,
1860
+ err_code : 0x4000 | 22 ,
1861
+ shared_secret,
1862
+ trampoline_shared_secret : Some ( SharedSecret :: from_bytes (
1863
+ trampoline_shared_secret,
1864
+ ) ) ,
1844
1865
} ) ,
1845
1866
Err ( e) => Err ( e) ,
1846
1867
}
0 commit comments