@@ -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) ?;
@@ -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) ?;
@@ -3653,8 +3653,8 @@ impl Writeable for ErrorMessage {
36533653 }
36543654}
36553655
3656- impl Readable for ErrorMessage {
3657- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3656+ impl LengthReadable for ErrorMessage {
3657+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
36583658 Ok ( Self {
36593659 channel_id : Readable :: read ( r) ?,
36603660 data : {
@@ -3680,8 +3680,8 @@ impl Writeable for WarningMessage {
36803680 }
36813681}
36823682
3683- impl Readable for WarningMessage {
3684- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3683+ impl LengthReadable for WarningMessage {
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 : {
@@ -3787,8 +3787,8 @@ impl_writeable!(NodeAnnouncement, {
37873787 contents
37883788} ) ;
37893789
3790- impl Readable for QueryShortChannelIds {
3791- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3790+ impl LengthReadable for QueryShortChannelIds {
3791+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
37923792 let chain_hash: ChainHash = Readable :: read ( r) ?;
37933793
37943794 let encoding_len: u16 = Readable :: read ( r) ?;
@@ -3863,8 +3863,8 @@ impl_writeable_msg!(QueryChannelRange, {
38633863 number_of_blocks
38643864} , { } ) ;
38653865
3866- impl Readable for ReplyChannelRange {
3867- fn read < R : Read > ( r : & mut R ) -> Result < Self , DecodeError > {
3866+ impl LengthReadable for ReplyChannelRange {
3867+ fn read_from_fixed_length_buffer < R : LengthLimitedRead > ( r : & mut R ) -> Result < Self , DecodeError > {
38683868 let chain_hash: ChainHash = Readable :: read ( r) ?;
38693869 let first_blocknum: u32 = Readable :: read ( r) ?;
38703870 let number_of_blocks: u32 = Readable :: read ( r) ?;
@@ -5445,7 +5445,7 @@ mod tests {
54455445 let encoded_value = reply_channel_range. encode ( ) ;
54465446 assert_eq ! ( encoded_value, target_value) ;
54475447
5448- reply_channel_range = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) . unwrap ( ) ;
5448+ reply_channel_range = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) . unwrap ( ) ;
54495449 assert_eq ! ( reply_channel_range. chain_hash, expected_chain_hash) ;
54505450 assert_eq ! ( reply_channel_range. first_blocknum, 756230 ) ;
54515451 assert_eq ! ( reply_channel_range. number_of_blocks, 1500 ) ;
@@ -5455,7 +5455,7 @@ mod tests {
54555455 assert_eq ! ( reply_channel_range. short_channel_ids[ 2 ] , 0x000000000045a6c4 ) ;
54565456 } else {
54575457 target_value. append ( & mut <Vec < u8 > >:: from_hex ( "001601789c636000833e08659309a65878be010010a9023a" ) . unwrap ( ) ) ;
5458- let result: Result < msgs:: ReplyChannelRange , msgs:: DecodeError > = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) ;
5458+ let result: Result < msgs:: ReplyChannelRange , msgs:: DecodeError > = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) ;
54595459 assert ! ( result. is_err( ) , "Expected decode failure with unsupported zlib encoding" ) ;
54605460 }
54615461 }
@@ -5479,14 +5479,14 @@ mod tests {
54795479 let encoded_value = query_short_channel_ids. encode ( ) ;
54805480 assert_eq ! ( encoded_value, target_value) ;
54815481
5482- query_short_channel_ids = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) . unwrap ( ) ;
5482+ query_short_channel_ids = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) . unwrap ( ) ;
54835483 assert_eq ! ( query_short_channel_ids. chain_hash, expected_chain_hash) ;
54845484 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 0 ] , 0x000000000000008e ) ;
54855485 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 1 ] , 0x0000000000003c69 ) ;
54865486 assert_eq ! ( query_short_channel_ids. short_channel_ids[ 2 ] , 0x000000000045a6c4 ) ;
54875487 } else {
54885488 target_value. append ( & mut <Vec < u8 > >:: from_hex ( "001601789c636000833e08659309a65878be010010a9023a" ) . unwrap ( ) ) ;
5489- let result: Result < msgs:: QueryShortChannelIds , msgs:: DecodeError > = Readable :: read ( & mut Cursor :: new ( & target_value[ ..] ) ) ;
5489+ let result: Result < msgs:: QueryShortChannelIds , msgs:: DecodeError > = LengthReadable :: read_from_fixed_length_buffer ( & mut & target_value[ ..] ) ;
54905490 assert ! ( result. is_err( ) , "Expected decode failure with unsupported zlib encoding" ) ;
54915491 }
54925492 }
0 commit comments