Merge pull request #2120 from valentinewallace/2023-03-blinded-pathfinding
[rust-lightning] / lightning / src / onion_message / packet.rs
index 9322f9489bcd42d80f5dfc6161650dedd1f0f15b..1c3595c3712526191e0e5f1707dfa51d82ca7505 100644 (file)
@@ -203,7 +203,7 @@ impl<T: CustomOnionMessageContents> Writeable for (Payload<T>, [u8; 32]) {
 }
 
 // Uses the provided secret to simultaneously decode and decrypt the control TLVs and data TLV.
-impl<H: CustomOnionMessageHandler, L: Logger>
+impl<H: CustomOnionMessageHandler + ?Sized, L: Logger + ?Sized>
 ReadableArgs<(SharedSecret, &H, &L)> for Payload<<H as CustomOnionMessageHandler>::CustomMessage> {
        fn read<R: Read>(r: &mut R, args: (SharedSecret, &H, &L)) -> Result<Self, DecodeError> {
                let (encrypted_tlvs_ss, handler, logger) = args;
@@ -250,13 +250,12 @@ ReadableArgs<(SharedSecret, &H, &L)> for Payload<<H as CustomOnionMessageHandler
                                Ok(Payload::Forward(ForwardControlTlvs::Unblinded(tlvs)))
                        },
                        Some(ChaChaPolyReadAdapter { readable: ControlTlvs::Receive(tlvs)}) => {
-                               if message.is_none() { return Err(DecodeError::InvalidValue) }
                                Ok(Payload::Receive {
                                        control_tlvs: ReceiveControlTlvs::Unblinded(tlvs),
                                        reply_path,
-                                       message: message.unwrap(),
+                                       message: message.ok_or(DecodeError::InvalidValue)?,
                                })
-                       }
+                       },
                }
        }
 }