added deserialisation error to machine

This commit is contained in:
alessandrokonrad 2022-09-27 14:33:49 +02:00 committed by Lucas
parent 94bfc2846c
commit f3b9d33f32
2 changed files with 7 additions and 5 deletions

View File

@ -44,4 +44,6 @@ pub enum Error {
UnexpectedEd25519PublicKeyLength(usize), UnexpectedEd25519PublicKeyLength(usize),
#[error("Ed25519S Signature should be 64 bytes but it was {0}")] #[error("Ed25519S Signature should be 64 bytes but it was {0}")]
UnexpectedEd25519SignatureLength(usize), UnexpectedEd25519SignatureLength(usize),
#[error("Failed to deserialise PlutusData:\n\n{0:#?}")]
DeserialisationError(Value),
} }

View File

@ -760,7 +760,7 @@ impl DefaultFunction {
)), )),
))) )))
} }
_ => unreachable!(), v => Err(Error::DeserialisationError(v.clone())),
}, },
DefaultFunction::UnMapData => match &args[0] { DefaultFunction::UnMapData => match &args[0] {
Value::Con(Constant::Data(PlutusData::Map(m))) => { Value::Con(Constant::Data(PlutusData::Map(m))) => {
@ -779,7 +779,7 @@ impl DefaultFunction {
.collect(), .collect(),
))) )))
} }
_ => unreachable!(), v => Err(Error::DeserialisationError(v.clone())),
}, },
DefaultFunction::UnListData => match &args[0] { DefaultFunction::UnListData => match &args[0] {
Value::Con(Constant::Data(PlutusData::Array(l))) => { Value::Con(Constant::Data(PlutusData::Array(l))) => {
@ -791,7 +791,7 @@ impl DefaultFunction {
.collect(), .collect(),
))) )))
} }
_ => unreachable!(), v => Err(Error::DeserialisationError(v.clone())),
}, },
DefaultFunction::UnIData => match &args[0] { DefaultFunction::UnIData => match &args[0] {
Value::Con(Constant::Data(PlutusData::BigInt(b))) => { Value::Con(Constant::Data(PlutusData::BigInt(b))) => {
@ -803,13 +803,13 @@ impl DefaultFunction {
unreachable!() unreachable!()
} }
} }
_ => unreachable!(), v => Err(Error::DeserialisationError(v.clone())),
}, },
DefaultFunction::UnBData => match &args[0] { DefaultFunction::UnBData => match &args[0] {
Value::Con(Constant::Data(PlutusData::BoundedBytes(b))) => { Value::Con(Constant::Data(PlutusData::BoundedBytes(b))) => {
Ok(Value::Con(Constant::ByteString(b.to_vec()))) Ok(Value::Con(Constant::ByteString(b.to_vec())))
} }
_ => unreachable!(), v => Err(Error::DeserialisationError(v.clone())),
}, },
DefaultFunction::EqualsData => match (&args[0], &args[1]) { DefaultFunction::EqualsData => match (&args[0], &args[1]) {
(Value::Con(Constant::Data(d1)), Value::Con(Constant::Data(d2))) => { (Value::Con(Constant::Data(d1)), Value::Con(Constant::Data(d2))) => {