Add title to blueprint's validators

And use it to prefix UPLC artifacts' names.
This commit is contained in:
KtorZ
2023-01-27 10:56:08 +01:00
parent f8970ecb9e
commit 59ffc6434f
3 changed files with 8 additions and 2 deletions

View File

@@ -33,6 +33,7 @@ impl Blueprint {
let (_, redeemer, datum) = (args.next(), args.next().unwrap(), args.next());
validators.push(Validator {
title: validator.name.clone(),
description: None,
purpose,
datum: datum

View File

@@ -10,6 +10,7 @@ use uplc::ast::{NamedDeBruijn, Program};
#[derive(Debug, PartialEq, Clone)]
pub struct Validator {
pub title: String,
pub purpose: Purpose,
pub description: Option<String>,
pub datum: Option<Schema>,
@@ -22,6 +23,7 @@ impl Serialize for Validator {
let cbor = self.program.to_cbor().unwrap();
let source_code = hex::encode(&cbor);
let mut s = serializer.serialize_struct("Validator", 5)?;
s.serialize_field("title", &self.title)?;
s.serialize_field("purpose", &self.purpose)?;
let hash = cardano::PlutusV2Script(cbor.into()).compute_hash();
s.serialize_field("hash", &hash)?;
@@ -92,6 +94,7 @@ mod test {
.try_into()
.unwrap();
let validator = Validator {
title: "foo".to_string(),
description: Some("Lorem ipsum".to_string()),
purpose: Purpose::Spend,
datum: None,
@@ -104,6 +107,7 @@ mod test {
assert_eq!(
serde_json::to_value(&validator).unwrap(),
json!({
"title": "foo",
"description": "Lorem ipsum",
"purpose": "spend",
"redeemer": {