diff --git a/crates/aiken-project/src/blueprint/mod.rs b/crates/aiken-project/src/blueprint/mod.rs index 7652e7bd..a420d6a1 100644 --- a/crates/aiken-project/src/blueprint/mod.rs +++ b/crates/aiken-project/src/blueprint/mod.rs @@ -10,7 +10,7 @@ use std::fmt::{self, Debug, Display}; use validator::{Purpose, Validator}; #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] -pub struct Blueprint { +pub struct Blueprint { pub preamble: Preamble, pub validators: Vec>, } @@ -55,7 +55,7 @@ impl Blueprint { impl Blueprint where - T: Clone, + T: Clone + Default, { pub fn lookup( &self, diff --git a/crates/aiken-project/src/blueprint/schema.rs b/crates/aiken-project/src/blueprint/schema.rs index f598199b..df96b9a5 100644 --- a/crates/aiken-project/src/blueprint/schema.rs +++ b/crates/aiken-project/src/blueprint/schema.rs @@ -302,6 +302,12 @@ impl Data { } } +impl Default for Schema { + fn default() -> Self { + Schema::Unit + } +} + impl Display for Schema { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let s = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?; diff --git a/crates/aiken-project/src/blueprint/validator.rs b/crates/aiken-project/src/blueprint/validator.rs index ea13ce18..84e86645 100644 --- a/crates/aiken-project/src/blueprint/validator.rs +++ b/crates/aiken-project/src/blueprint/validator.rs @@ -22,6 +22,7 @@ pub struct Validator { pub datum: Option>, pub redeemer: Annotated, #[serde(skip_serializing_if = "Vec::is_empty")] + #[serde(default)] pub parameters: Vec>, #[serde(flatten)] pub program: Program,