Fixed neted empty list encoding

This commit is contained in:
arkpar 2016-02-01 01:06:21 +01:00
parent d082f3c11a
commit 0076df8475
2 changed files with 9 additions and 0 deletions

View File

@ -59,6 +59,7 @@ impl Stream for RlpStream {
// we may finish, if the appended list len is equal 0 // we may finish, if the appended list len is equal 0
self.encoder.bytes.push(0xc0u8); self.encoder.bytes.push(0xc0u8);
self.note_appended(1); self.note_appended(1);
self.finished_list = true;
}, },
_ => { _ => {
let position = self.encoder.bytes.len(); let position = self.encoder.bytes.len();

View File

@ -405,3 +405,11 @@ fn test_rlp_2bytes_data_length_check()
assert_eq!(Err(DecoderError::RlpInconsistentLengthAndData), as_val); assert_eq!(Err(DecoderError::RlpInconsistentLengthAndData), as_val);
} }
#[test]
fn test_rlp_nested_empty_list_encode() {
let mut stream = RlpStream::new_list(2);
stream.append(&(Vec::new() as Vec<u32>));
stream.append(&40u32);
assert_eq!(stream.drain()[..], [0xc2u8, 0xc0u8, 40u8][..]);
}