fix: redeemer could be missing
This commit is contained in:
parent
00b8a39236
commit
90d75d4a13
|
@ -30,7 +30,8 @@ pub struct Validator {
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub datum: Option<Parameter>,
|
pub datum: Option<Parameter>,
|
||||||
|
|
||||||
pub redeemer: Parameter,
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub redeemer: Option<Parameter>,
|
||||||
|
|
||||||
#[serde(skip_serializing_if = "Vec::is_empty")]
|
#[serde(skip_serializing_if = "Vec::is_empty")]
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
@ -92,7 +93,8 @@ impl Validator {
|
||||||
plutus_version: &PlutusVersion,
|
plutus_version: &PlutusVersion,
|
||||||
) -> Result<Validator, Error> {
|
) -> Result<Validator, Error> {
|
||||||
let mut args = func.arguments.iter().rev();
|
let mut args = func.arguments.iter().rev();
|
||||||
let (_, redeemer, datum) = (args.next(), args.next().unwrap(), args.next());
|
|
||||||
|
let (_, _, redeemer, datum) = (args.next(), args.next(), args.next(), args.next());
|
||||||
|
|
||||||
let mut definitions = Definitions::new();
|
let mut definitions = Definitions::new();
|
||||||
|
|
||||||
|
@ -142,7 +144,9 @@ impl Validator {
|
||||||
schema,
|
schema,
|
||||||
});
|
});
|
||||||
|
|
||||||
let redeemer = Annotated::from_type(
|
let redeemer = redeemer
|
||||||
|
.map(|redeemer| {
|
||||||
|
Annotated::from_type(
|
||||||
modules.into(),
|
modules.into(),
|
||||||
tipo_or_annotation(module, redeemer),
|
tipo_or_annotation(module, redeemer),
|
||||||
&mut definitions,
|
&mut definitions,
|
||||||
|
@ -155,10 +159,12 @@ impl Validator {
|
||||||
module.code.clone(),
|
module.code.clone(),
|
||||||
),
|
),
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
.transpose()?
|
||||||
.map(|schema| Parameter {
|
.map(|schema| Parameter {
|
||||||
title: Some(redeemer.arg_name.get_label()),
|
title: redeemer.map(|redeemer| redeemer.arg_name.get_label()),
|
||||||
schema,
|
schema,
|
||||||
})?;
|
});
|
||||||
|
|
||||||
Ok(Validator {
|
Ok(Validator {
|
||||||
title: format!("{}.{}_{}", &module.name, &def.name, &func.name),
|
title: format!("{}.{}_{}", &module.name, &def.name, &func.name),
|
||||||
|
@ -494,7 +500,7 @@ mod tests {
|
||||||
assert_validator!(
|
assert_validator!(
|
||||||
r#"
|
r#"
|
||||||
validator generics {
|
validator generics {
|
||||||
spend(redeemer: a, ctx: Void) {
|
mint(redeemer: a, policy_id: ByteArray, ctx: Void) {
|
||||||
True
|
True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -569,7 +575,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
validator opaque_singleton_multi_variants {
|
validator opaque_singleton_multi_variants {
|
||||||
spend(redeemer: Rational, ctx: Void) {
|
spend(redeemer: Rational, oref: Data, ctx: Void) {
|
||||||
True
|
True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue