From 2d1f147d4067ebcc397d7ba3ec2b0838f383e764 Mon Sep 17 00:00:00 2001 From: Kasey White Date: Mon, 29 Aug 2022 14:03:07 -0400 Subject: [PATCH] remove extra dependencies and return result for data encode/decode --- Cargo.lock | 27 +++++++++++++++++++++++---- crates/cli/Cargo.toml | 1 - crates/uplc/Cargo.toml | 2 +- crates/uplc/src/lib.rs | 9 +++++---- crates/uplc/src/pretty.rs | 6 +++--- 5 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ce7f1f52..1662d8e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,6 @@ version = "0.0.10" dependencies = [ "anyhow", "clap", - "hex", "uplc", ] @@ -252,7 +251,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e575910763b21a0db7df5e142907fe944bff84d1dfc78e2ba92e7f3bdfd36b" dependencies = [ "half", - "minicbor-derive", + "minicbor-derive 0.11.0", +] + +[[package]] +name = "minicbor" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a20020e8e2d1881d8736f64011bb5ff99f1db9947ce3089706945c8915695cb" +dependencies = [ + "minicbor-derive 0.12.0", ] [[package]] @@ -266,6 +274,17 @@ dependencies = [ "syn", ] +[[package]] +name = "minicbor-derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8608fb1c805b5b6b3d5ab7bd95c40c396df622b64d77b2d621a5eae1eed050ee" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "num-traits" version = "0.2.15" @@ -287,7 +306,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dce0ea17341c1a0e43e2bb4a637740198dcb09826879ce3ac5ae1c6f4398a5d" dependencies = [ - "minicbor", + "minicbor 0.17.1", ] [[package]] @@ -627,7 +646,7 @@ dependencies = [ "cryptoxide", "flat-rs", "hex", - "minicbor", + "minicbor 0.18.0", "pallas-codec", "pallas-primitives", "peg", diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 37c4ca03..58e09c0a 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -13,5 +13,4 @@ authors = ["Lucas Rosa ", "Kasey White "] [dependencies] anyhow = "1.0.57" clap = { version = "3.1.14", features = ["derive"] } -hex = "0.4.3" uplc = { path = '../uplc', version = "0.0.10" } diff --git a/crates/uplc/Cargo.toml b/crates/uplc/Cargo.toml index f970f458..569388ee 100644 --- a/crates/uplc/Cargo.toml +++ b/crates/uplc/Cargo.toml @@ -16,7 +16,7 @@ exclude = ["test_data/*"] cryptoxide = "0.4.2" flat-rs = { path = "../flat", version = "0.0.10" } hex = "0.4.3" -minicbor = { version = "0.17.1", features = ["std"] } +minicbor = { version = "0.18.0", features = ["std"] } pallas-codec = "0.12.0" pallas-primitives = "0.12.0" peg = "0.8.0" diff --git a/crates/uplc/src/lib.rs b/crates/uplc/src/lib.rs index a1800b90..64ee0971 100644 --- a/crates/uplc/src/lib.rs +++ b/crates/uplc/src/lib.rs @@ -8,12 +8,13 @@ mod pretty; pub mod program_builder; pub use pallas_primitives::alonzo::PlutusData; +pub type Error = Box; use pallas_primitives::Fragment; -pub fn plutus_data(bytes: &[u8]) -> PlutusData { - PlutusData::decode_fragment(bytes).unwrap() +pub fn plutus_data(bytes: &[u8]) -> Result { + PlutusData::decode_fragment(bytes) } -pub fn plutus_data_to_bytes(data: &PlutusData) -> Vec { - PlutusData::encode_fragment(data).unwrap() +pub fn plutus_data_to_bytes(data: &PlutusData) -> Result, Error> { + PlutusData::encode_fragment(data) } diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index fd9afaae..a025cf55 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -227,9 +227,9 @@ impl Constant { .append((*right).to_doc_list()) .append(RcDoc::text(")")), - Constant::Data(data) => { - RcDoc::text("#").append(RcDoc::text(hex::encode(plutus_data_to_bytes(data)))) - } + Constant::Data(data) => RcDoc::text("#").append(RcDoc::text(hex::encode( + plutus_data_to_bytes(data).unwrap(), + ))), } } }