@@ -42,7 +42,7 @@ use crate::io_extras::read_to_end;
4242
4343use crate :: util:: events:: { MessageSendEventsProvider , OnionMessageProvider } ;
4444use crate :: util:: logger;
45- use crate :: util:: ser:: { BigSize , LengthReadable , Readable , ReadableArgs , Writeable , Writer , FixedLengthReader , HighZeroBytesDroppedBigSize , Hostname } ;
45+ use crate :: util:: ser:: { LengthReadable , Readable , ReadableArgs , Writeable , Writer , FixedLengthReader , HighZeroBytesDroppedBigSize , Hostname } ;
4646
4747use crate :: ln:: { PaymentPreimage , PaymentHash , PaymentSecret } ;
4848
@@ -1477,29 +1477,20 @@ impl Writeable for OnionHopData {
14771477
14781478impl Readable for OnionHopData {
14791479 fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
1480- let b: BigSize = Readable :: read ( r) ?;
1481- const LEGACY_ONION_HOP_FLAG : u64 = 0 ;
1482- if b. 0 == LEGACY_ONION_HOP_FLAG {
1483- // Support for Legacy onion payload format has been removed as of LDK 0.XX,
1484- // due to being deprecated in BOLT4.
1485- return Err ( DecodeError :: InvalidValue ) ;
1486- }
1487-
1488- let mut rd = FixedLengthReader :: new ( r, b. 0 ) ;
14891480 let mut amt = HighZeroBytesDroppedBigSize ( 0u64 ) ;
14901481 let mut cltv_value = HighZeroBytesDroppedBigSize ( 0u32 ) ;
14911482 let mut short_id: Option < u64 > = None ;
14921483 let mut payment_data: Option < FinalOnionHopData > = None ;
14931484 let mut keysend_preimage: Option < PaymentPreimage > = None ;
1494- decode_tlv_stream ! ( & mut rd , {
1485+ read_tlv_fields ! ( r , {
14951486 ( 2 , amt, required) ,
14961487 ( 4 , cltv_value, required) ,
14971488 ( 6 , short_id, option) ,
14981489 ( 8 , payment_data, option) ,
14991490 // See https://github.com/lightning/blips/blob/master/blip-0003.md
15001491 ( 5482373484 , keysend_preimage, option)
15011492 } ) ;
1502- rd . eat_remaining ( ) . map_err ( |_| DecodeError :: ShortRead ) ? ;
1493+
15031494 let format = if let Some ( short_channel_id) = short_id {
15041495 if payment_data. is_some ( ) { return Err ( DecodeError :: InvalidValue ) ; }
15051496 OnionHopDataFormat :: NonFinalNode {
0 commit comments