@@ -2412,8 +2412,8 @@ impl Writeable for AcceptChannel {
24122412 }
24132413}
24142414
2415- impl Readable for AcceptChannel {
2416- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
2415+ impl LengthReadable for AcceptChannel {
2416+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
24172417 let temporary_channel_id: ChannelId = Readable :: read ( r) ?;
24182418 let dust_limit_satoshis: u64 = Readable :: read ( r) ?;
24192419 let max_htlc_value_in_flight_msat: u64 = Readable :: read ( r) ?;
@@ -2497,8 +2497,8 @@ impl Writeable for AcceptChannelV2 {
24972497 }
24982498}
24992499
2500- impl Readable for AcceptChannelV2 {
2501- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
2500+ impl LengthReadable for AcceptChannelV2 {
2501+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
25022502 let temporary_channel_id: ChannelId = Readable :: read ( r) ?;
25032503 let funding_satoshis: u64 = Readable :: read ( r) ?;
25042504 let dust_limit_satoshis: u64 = Readable :: read ( r) ?;
@@ -2760,8 +2760,8 @@ impl Writeable for Init {
27602760 }
27612761}
27622762
2763- impl Readable for Init {
2764- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
2763+ impl LengthReadable for Init {
2764+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
27652765 let global_features: InitFeatures = Readable :: read ( r) ?;
27662766 let features: InitFeatures = Readable :: read ( r) ?;
27672767 let mut remote_network_address: Option < SocketAddress > = None ;
@@ -2806,8 +2806,8 @@ impl Writeable for OpenChannel {
28062806 }
28072807}
28082808
2809- impl Readable for OpenChannel {
2810- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
2809+ impl LengthReadable for OpenChannel {
2810+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
28112811 let chain_hash: ChainHash = Readable :: read ( r) ?;
28122812 let temporary_channel_id: ChannelId = Readable :: read ( r) ?;
28132813 let funding_satoshis: u64 = Readable :: read ( r) ?;
@@ -2890,8 +2890,8 @@ impl Writeable for OpenChannelV2 {
28902890 }
28912891}
28922892
2893- impl Readable for OpenChannelV2 {
2894- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
2893+ impl LengthReadable for OpenChannelV2 {
2894+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
28952895 let chain_hash: ChainHash = Readable :: read ( r) ?;
28962896 let temporary_channel_id: ChannelId = Readable :: read ( r) ?;
28972897 let funding_feerate_sat_per_1000_weight: u32 = Readable :: read ( r) ?;
@@ -3052,8 +3052,8 @@ impl_writeable_msg!(UpdateAddHTLC, {
30523052 ( 65537 , skimmed_fee_msat, option)
30533053} ) ;
30543054
3055- impl Readable for OnionMessage {
3056- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3055+ impl LengthReadable for OnionMessage {
3056+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
30573057 let blinding_point: PublicKey = Readable :: read ( r) ?;
30583058 let len: u16 = Readable :: read ( r) ?;
30593059 let mut packet_reader = FixedLengthReader :: new ( r, len as u64 ) ;
@@ -3526,8 +3526,8 @@ impl Writeable for Ping {
35263526 }
35273527}
35283528
3529- impl Readable for Ping {
3530- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3529+ impl LengthReadable for Ping {
3530+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
35313531 Ok ( Ping {
35323532 ponglen : Readable :: read ( r) ?,
35333533 byteslen : {
@@ -3546,8 +3546,8 @@ impl Writeable for Pong {
35463546 }
35473547}
35483548
3549- impl Readable for Pong {
3550- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3549+ impl LengthReadable for Pong {
3550+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
35513551 Ok ( Pong {
35523552 byteslen : {
35533553 let byteslen = Readable :: read ( r) ?;
@@ -3680,8 +3680,8 @@ impl Writeable for ErrorMessage {
36803680 }
36813681}
36823682
3683- impl Readable for ErrorMessage {
3684- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3683+ impl LengthReadable for ErrorMessage {
3684+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
36853685 Ok ( Self {
36863686 channel_id : Readable :: read ( r) ?,
36873687 data : {
@@ -3707,8 +3707,8 @@ impl Writeable for WarningMessage {
37073707 }
37083708}
37093709
3710- impl Readable for WarningMessage {
3711- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3710+ impl LengthReadable for WarningMessage {
3711+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
37123712 Ok ( Self {
37133713 channel_id : Readable :: read ( r) ?,
37143714 data : {
@@ -3826,8 +3826,8 @@ impl LengthReadable for NodeAnnouncement {
38263826 }
38273827}
38283828
3829- impl Readable for QueryShortChannelIds {
3830- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3829+ impl LengthReadable for QueryShortChannelIds {
3830+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
38313831 let chain_hash: ChainHash = Readable :: read ( r) ?;
38323832
38333833 let encoding_len: u16 = Readable :: read ( r) ?;
@@ -3902,8 +3902,8 @@ impl_writeable_msg!(QueryChannelRange, {
39023902 number_of_blocks
39033903} , { } ) ;
39043904
3905- impl Readable for ReplyChannelRange {
3906- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3905+ impl LengthReadable for ReplyChannelRange {
3906+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
39073907 let chain_hash: ChainHash = Readable :: read ( r) ?;
39083908 let first_blocknum: u32 = Readable :: read ( r) ?;
39093909 let number_of_blocks: u32 = Readable :: read ( r) ?;
@@ -5484,7 +5484,7 @@ mod tests {
54845484 let encoded_value = reply_channel_range. encode ( ) ;
54855485 assert_eq ! ( encoded_value, target_value) ;
54865486
5487- reply_channel_range = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) . unwrap ( ) ;
5487+ reply_channel_range = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) . unwrap ( ) ;
54885488 assert_eq ! ( reply_channel_range. chain_hash, expected_chain_hash) ;
54895489 assert_eq ! ( reply_channel_range. first_blocknum, 756230 ) ;
54905490 assert_eq ! ( reply_channel_range. number_of_blocks, 1500 ) ;
@@ -5494,7 +5494,7 @@ mod tests {
54945494 assert_eq ! ( reply_channel_range. short_channel_ids[ 2 ] , 0x000000000045a6c4 ) ;
54955495 } else {
54965496 target_value. append ( & mut <Vec < u8 > >:: from_hex ( "001601789c636000833e08659309a65878be010010a9023a" ) . unwrap ( ) ) ;
5497- let result: Result < msgs:: ReplyChannelRange , msgs:: DecodeError > = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) ;
5497+ let result: Result < msgs:: ReplyChannelRange , msgs:: DecodeError > = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) ;
54985498 assert ! ( result. is_err( ) , "Expected decode failure with unsupported zlib encoding" ) ;
54995499 }
55005500 }
@@ -5518,14 +5518,14 @@ mod tests {
55185518 let encoded_value = query_short_channel_ids. encode ( ) ;
55195519 assert_eq ! ( encoded_value, target_value) ;
55205520
5521- query_short_channel_ids = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) . unwrap ( ) ;
5521+ query_short_channel_ids = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) . unwrap ( ) ;
55225522 assert_eq ! ( query_short_channel_ids. chain_hash, expected_chain_hash) ;
55235523 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 0 ] , 0x000000000000008e ) ;
55245524 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 1 ] , 0x0000000000003c69 ) ;
55255525 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 2 ] , 0x000000000045a6c4 ) ;
55265526 } else {
55275527 target_value. append ( & mut <Vec < u8 > >:: from_hex ( "001601789c636000833e08659309a65878be010010a9023a" ) . unwrap ( ) ) ;
5528- let result: Result < msgs:: QueryShortChannelIds , msgs:: DecodeError > = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) ;
5528+ let result: Result < msgs:: QueryShortChannelIds , msgs:: DecodeError > = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) ;
55295529 assert ! ( result. is_err( ) , "Expected decode failure with unsupported zlib encoding" ) ;
55305530 }
55315531 }
0 commit comments