Merge pull request #283 from ethcore/ark

Fixed neted empty list RLP encoding
This commit is contained in:
Gav Wood 2016-02-01 10:27:39 +01:00
commit 9ed8f14e45
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
self.encoder.bytes.push(0xc0u8);
self.note_appended(1);
self.finished_list = true;
},
_ => {
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);
}
#[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][..]);
}