diff --git a/crates/uplc/src/builtins.rs b/crates/uplc/src/builtins.rs index 2801eb4b..d11d7292 100644 --- a/crates/uplc/src/builtins.rs +++ b/crates/uplc/src/builtins.rs @@ -187,7 +187,10 @@ impl TryFrom for DefaultFunction { v if v == DefaultFunction::MkPairData as u8 => Ok(DefaultFunction::MkPairData), v if v == DefaultFunction::MkNilData as u8 => Ok(DefaultFunction::MkNilData), v if v == DefaultFunction::MkNilPairData as u8 => Ok(DefaultFunction::MkNilPairData), - _ => Err(de::Error::Message("Default Function not found".to_string())), + _ => Err(de::Error::Message(format!( + "Default Function not found - {}", + v + ))), } } } diff --git a/crates/uplc/src/flat.rs b/crates/uplc/src/flat.rs index 8e7ada8a..38a34343 100644 --- a/crates/uplc/src/flat.rs +++ b/crates/uplc/src/flat.rs @@ -37,6 +37,10 @@ where Ok(hex) } + + pub fn from_flat(bytes: &'b [u8]) -> Result { + Self::unflat(bytes) + } } impl<'b, T> Encode for Program diff --git a/crates/uplc/src/parser.rs b/crates/uplc/src/parser.rs index 5f3ca86f..3f71202e 100644 --- a/crates/uplc/src/parser.rs +++ b/crates/uplc/src/parser.rs @@ -65,7 +65,7 @@ where Input::Error: ParseError, { let prog = string("program").with(skip_many1(space())).with( - (version(), skip_many1(space()), term().skip(spaces())) + (version(), skip_many1(space()), term()) .map(|(version, _, term)| Program { version, term }), ); @@ -100,16 +100,19 @@ where Input: Stream, Input::Error: ParseError, { - opaque!(no_partial(choice(( - attempt(var()), - attempt(delay()), - attempt(lambda()), - attempt(apply()), - attempt(constant()), - attempt(force()), - attempt(error()), - attempt(builtin()), - )))) + opaque!(no_partial( + choice(( + attempt(var()), + attempt(delay()), + attempt(lambda()), + attempt(apply()), + attempt(constant()), + attempt(force()), + attempt(error()), + attempt(builtin()), + )) + .skip(spaces()) + )) } fn var() -> impl Parser, Output = Term>