Update to parity-scale-codec (#3232)

* WIP: update codec

* WIP

* compiling

* WIP

* rename parity-scale-codec to codec

* WIP

* fix

* remove old comments

* use published crates

* fix expected error msg

* bump version

* fmt and fix

* remove old comment

* fix wrong decoding impl

* implement encode like for structures

* undo removal of old pending changes

* trailingzeroinput

* Apply suggestions from code review

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* update codec

* fmt

* version is 1.0.0

* show more error

* fmt
This commit is contained in:
thiolliere
2019-08-06 19:36:23 +02:00
committed by Bastian Köcher
parent a0d442333f
commit 4ed67e03a4
211 changed files with 867 additions and 682 deletions
@@ -17,7 +17,7 @@
//! Transaction validity interface.
use rstd::prelude::*;
use crate::codec::{Encode, Decode};
use crate::codec::{Encode, Decode, Error};
use crate::traits::DispatchError;
/// Priority for a transaction. Additive. Higher is better.
@@ -113,9 +113,9 @@ impl ValidTransaction {
}
impl Decode for TransactionValidity {
fn decode<I: crate::codec::Input>(value: &mut I) -> Option<Self> {
fn decode<I: crate::codec::Input>(value: &mut I) -> Result<Self, Error> {
match value.read_byte()? {
0 => Some(TransactionValidity::Invalid(i8::decode(value)?)),
0 => Ok(TransactionValidity::Invalid(i8::decode(value)?)),
1 => {
let priority = TransactionPriority::decode(value)?;
let requires = Vec::decode(value)?;
@@ -123,12 +123,12 @@ impl Decode for TransactionValidity {
let longevity = TransactionLongevity::decode(value)?;
let propagate = bool::decode(value).unwrap_or(true);
Some(TransactionValidity::Valid(ValidTransaction {
Ok(TransactionValidity::Valid(ValidTransaction {
priority, requires, provides, longevity, propagate,
}))
},
2 => Some(TransactionValidity::Unknown(i8::decode(value)?)),
_ => None,
2 => Ok(TransactionValidity::Unknown(i8::decode(value)?)),
_ => Err("Invalid transaction validity variant".into()),
}
}
}
@@ -143,7 +143,7 @@ mod tests {
1, 5, 0, 0, 0, 0, 0, 0, 0, 4, 16, 1, 2, 3, 4, 4, 12, 4, 5, 6, 42, 0, 0, 0, 0, 0, 0, 0
];
assert_eq!(TransactionValidity::decode(&mut &*old_encoding), Some(TransactionValidity::Valid(ValidTransaction {
assert_eq!(TransactionValidity::decode(&mut &*old_encoding), Ok(TransactionValidity::Valid(ValidTransaction {
priority: 5,
requires: vec![vec![1, 2, 3, 4]],
provides: vec![vec![4, 5, 6]],
@@ -169,6 +169,6 @@ mod tests {
);
// decode back
assert_eq!(TransactionValidity::decode(&mut &*encoded), Some(v));
assert_eq!(TransactionValidity::decode(&mut &*encoded), Ok(v));
}
}