fix: some function dependency tree path was not being updated in order
fix: revert to old implicit way of casting to data for now
This commit is contained in:
parent
a45ff692a6
commit
bfa4cc2efc
|
@ -39,9 +39,8 @@ use self::{
|
||||||
air::Air,
|
air::Air,
|
||||||
builder::{
|
builder::{
|
||||||
cast_validator_args, constants_ir, convert_type_to_data, extract_constant,
|
cast_validator_args, constants_ir, convert_type_to_data, extract_constant,
|
||||||
lookup_data_type_by_tipo, modify_self_calls, rearrange_list_clauses,
|
lookup_data_type_by_tipo, modify_self_calls, rearrange_list_clauses, AssignmentProperties,
|
||||||
remove_tuple_data_casts, AssignmentProperties, ClauseProperties, DataTypeKey,
|
ClauseProperties, DataTypeKey, FunctionAccessKey, UserFunction,
|
||||||
FunctionAccessKey, UserFunction,
|
|
||||||
},
|
},
|
||||||
tree::{AirExpression, AirTree, TreePath},
|
tree::{AirExpression, AirTree, TreePath},
|
||||||
};
|
};
|
||||||
|
@ -250,16 +249,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
tail,
|
tail,
|
||||||
..
|
..
|
||||||
} => AirTree::list(
|
} => AirTree::list(
|
||||||
elements
|
elements.iter().map(|elem| self.build(elem)).collect_vec(),
|
||||||
.iter()
|
|
||||||
.map(|elem| {
|
|
||||||
if tipo.is_map() {
|
|
||||||
self.build(elem)
|
|
||||||
} else {
|
|
||||||
AirTree::cast_to_data(self.build(elem), elem.tipo())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.collect_vec(),
|
|
||||||
tipo.clone(),
|
tipo.clone(),
|
||||||
tail.as_ref().map(|tail| self.build(tail)),
|
tail.as_ref().map(|tail| self.build(tail)),
|
||||||
),
|
),
|
||||||
|
@ -300,7 +290,14 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
let constr_args = args
|
let constr_args = args
|
||||||
.iter()
|
.iter()
|
||||||
.map(|arg| AirTree::cast_to_data(self.build(&arg.value), arg.value.tipo()))
|
.zip(constr_tipo.arg_types().unwrap())
|
||||||
|
.map(|(arg, tipo)| {
|
||||||
|
if tipo.is_data() {
|
||||||
|
AirTree::cast_to_data(self.build(&arg.value), arg.value.tipo())
|
||||||
|
} else {
|
||||||
|
self.build(&arg.value)
|
||||||
|
}
|
||||||
|
})
|
||||||
.collect_vec();
|
.collect_vec();
|
||||||
|
|
||||||
AirTree::create_constr(constr_index, constr_tipo.clone(), constr_args)
|
AirTree::create_constr(constr_index, constr_tipo.clone(), constr_args)
|
||||||
|
@ -604,10 +601,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
},
|
},
|
||||||
|
|
||||||
TypedExpr::Tuple { tipo, elems, .. } => AirTree::tuple(
|
TypedExpr::Tuple { tipo, elems, .. } => AirTree::tuple(
|
||||||
elems
|
elems.iter().map(|elem| self.build(elem)).collect_vec(),
|
||||||
.iter()
|
|
||||||
.map(|elem| AirTree::cast_to_data(self.build(elem), elem.tipo()))
|
|
||||||
.collect_vec(),
|
|
||||||
tipo.clone(),
|
tipo.clone(),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -2196,7 +2190,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
.find(|(defined_index, _nm)| defined_index == index)
|
.find(|(defined_index, _nm)| defined_index == index)
|
||||||
{
|
{
|
||||||
previous_defined_names.push((*index, prev_name.clone(), name.clone()));
|
previous_defined_names.push((*index, prev_name.clone(), name.clone()));
|
||||||
} else if name != "_" {
|
} else {
|
||||||
assert!(defined_indices.insert((*index, name.clone())));
|
assert!(defined_indices.insert((*index, name.clone())));
|
||||||
names_to_define.push((*index, name.clone()));
|
names_to_define.push((*index, name.clone()));
|
||||||
}
|
}
|
||||||
|
@ -2246,6 +2240,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
names.push(name);
|
names.push(name);
|
||||||
names
|
names
|
||||||
});
|
});
|
||||||
|
|
||||||
sequence.insert(
|
sequence.insert(
|
||||||
0,
|
0,
|
||||||
AirTree::tuple_access(
|
AirTree::tuple_access(
|
||||||
|
@ -2555,10 +2550,11 @@ impl<'a> CodeGenerator<'a> {
|
||||||
// First we need to sort functions by dependencies
|
// First we need to sort functions by dependencies
|
||||||
// here's also where we deal with mutual recursion
|
// here's also where we deal with mutual recursion
|
||||||
let mut sorted_function_vec = vec![];
|
let mut sorted_function_vec = vec![];
|
||||||
let mut validator_hoistable_mut = validator_hoistable.clone();
|
|
||||||
|
|
||||||
while let Some((generic_func, variant)) = validator_hoistable_mut.pop() {
|
let functions_to_hoist_cloned = functions_to_hoist.clone();
|
||||||
let function_variants = functions_to_hoist
|
|
||||||
|
while let Some((generic_func, variant)) = validator_hoistable.pop() {
|
||||||
|
let function_variants = functions_to_hoist_cloned
|
||||||
.get(&generic_func)
|
.get(&generic_func)
|
||||||
.unwrap_or_else(|| panic!("Missing Function Definition"));
|
.unwrap_or_else(|| panic!("Missing Function Definition"));
|
||||||
|
|
||||||
|
@ -2571,7 +2567,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
if !params.is_empty() {
|
if !params.is_empty() {
|
||||||
for (dep_generic_func, dep_variant) in deps.iter() {
|
for (dep_generic_func, dep_variant) in deps.iter() {
|
||||||
if !(dep_generic_func == &generic_func && dep_variant == &variant) {
|
if !(dep_generic_func == &generic_func && dep_variant == &variant) {
|
||||||
validator_hoistable_mut
|
validator_hoistable
|
||||||
.insert(0, (dep_generic_func.clone(), dep_variant.clone()));
|
.insert(0, (dep_generic_func.clone(), dep_variant.clone()));
|
||||||
let remove_index =
|
let remove_index =
|
||||||
sorted_function_vec
|
sorted_function_vec
|
||||||
|
@ -2585,6 +2581,24 @@ impl<'a> CodeGenerator<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix dependencies path to be updated to common ancestor
|
||||||
|
for (dep_key, dep_variant) in deps {
|
||||||
|
let (func_tree_path, _) = functions_to_hoist
|
||||||
|
.get(&generic_func)
|
||||||
|
.unwrap()
|
||||||
|
.get(&variant)
|
||||||
|
.unwrap()
|
||||||
|
.clone();
|
||||||
|
|
||||||
|
let (dep_path, _) = functions_to_hoist
|
||||||
|
.get_mut(dep_key)
|
||||||
|
.unwrap()
|
||||||
|
.get_mut(dep_variant)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
*dep_path = func_tree_path.common_ancestor(dep_path);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
todo!("Deal with Link later")
|
todo!("Deal with Link later")
|
||||||
}
|
}
|
||||||
|
@ -2593,22 +2607,6 @@ impl<'a> CodeGenerator<'a> {
|
||||||
}
|
}
|
||||||
sorted_function_vec.dedup();
|
sorted_function_vec.dedup();
|
||||||
|
|
||||||
// Fix dependencies path to be updated to common ancestor
|
|
||||||
for (_, variant_map) in functions_to_hoist.clone().iter() {
|
|
||||||
for (_, (path, function)) in variant_map {
|
|
||||||
if let UserFunction::Function { deps, .. } = function {
|
|
||||||
for (dep_key, dep_variant) in deps {
|
|
||||||
let (dep_path, _) = functions_to_hoist
|
|
||||||
.get_mut(dep_key)
|
|
||||||
.unwrap()
|
|
||||||
.get_mut(dep_variant)
|
|
||||||
.unwrap();
|
|
||||||
*dep_path = path.common_ancestor(dep_path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now we need to hoist the functions to the top of the validator
|
// Now we need to hoist the functions to the top of the validator
|
||||||
for (key, variant) in sorted_function_vec {
|
for (key, variant) in sorted_function_vec {
|
||||||
if hoisted_functions
|
if hoisted_functions
|
||||||
|
@ -3025,10 +3023,6 @@ impl<'a> CodeGenerator<'a> {
|
||||||
monomorphize(air_tree, &mono_types);
|
monomorphize(air_tree, &mono_types);
|
||||||
});
|
});
|
||||||
|
|
||||||
function_air_tree_body.traverse_tree_with(&mut |air_tree, _| {
|
|
||||||
remove_tuple_data_casts(air_tree);
|
|
||||||
});
|
|
||||||
|
|
||||||
func_variants.insert(
|
func_variants.insert(
|
||||||
variant,
|
variant,
|
||||||
(
|
(
|
||||||
|
@ -3055,10 +3049,6 @@ impl<'a> CodeGenerator<'a> {
|
||||||
monomorphize(air_tree, &mono_types);
|
monomorphize(air_tree, &mono_types);
|
||||||
});
|
});
|
||||||
|
|
||||||
function_air_tree_body.traverse_tree_with(&mut |air_tree, _| {
|
|
||||||
remove_tuple_data_casts(air_tree);
|
|
||||||
});
|
|
||||||
|
|
||||||
let mut function_variant_path = IndexMap::new();
|
let mut function_variant_path = IndexMap::new();
|
||||||
|
|
||||||
function_variant_path.insert(
|
function_variant_path.insert(
|
||||||
|
@ -3322,8 +3312,16 @@ impl<'a> CodeGenerator<'a> {
|
||||||
Term::empty_list()
|
Term::empty_list()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// move this down here since the constant list path doesn't need to do this
|
||||||
|
let list_element_type = tipo.get_inner_types()[0].clone();
|
||||||
|
|
||||||
for arg in args.into_iter().rev() {
|
for arg in args.into_iter().rev() {
|
||||||
term = Term::mk_cons().apply(arg).apply(term);
|
let list_item = if tipo.is_map() {
|
||||||
|
arg
|
||||||
|
} else {
|
||||||
|
builder::convert_type_to_data(arg, &list_element_type)
|
||||||
|
};
|
||||||
|
term = Term::mk_cons().apply(list_item).apply(term);
|
||||||
}
|
}
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4125,7 +4123,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
Air::Constr {
|
Air::Constr {
|
||||||
tag: constr_index,
|
tag: constr_index,
|
||||||
count,
|
count,
|
||||||
..
|
tipo,
|
||||||
} => {
|
} => {
|
||||||
let mut arg_vec = vec![];
|
let mut arg_vec = vec![];
|
||||||
|
|
||||||
|
@ -4135,8 +4133,13 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
let mut term = Term::empty_list();
|
let mut term = Term::empty_list();
|
||||||
|
|
||||||
for arg in arg_vec.iter().rev() {
|
for (index, arg) in arg_vec.iter().enumerate().rev() {
|
||||||
term = Term::mk_cons().apply(arg.clone()).apply(term);
|
term = Term::mk_cons()
|
||||||
|
.apply(builder::convert_type_to_data(
|
||||||
|
arg.clone(),
|
||||||
|
&tipo.arg_types().unwrap()[index],
|
||||||
|
))
|
||||||
|
.apply(term);
|
||||||
}
|
}
|
||||||
|
|
||||||
term = Term::constr_data()
|
term = Term::constr_data()
|
||||||
|
@ -4263,9 +4266,11 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
Air::Tuple { count, .. } => {
|
Air::Tuple { count, tipo } => {
|
||||||
let mut args = vec![];
|
let mut args = vec![];
|
||||||
|
|
||||||
|
let tuple_sub_types = tipo.get_inner_types();
|
||||||
|
|
||||||
for _ in 0..count {
|
for _ in 0..count {
|
||||||
let arg = arg_stack.pop().unwrap();
|
let arg = arg_stack.pop().unwrap();
|
||||||
args.push(arg);
|
args.push(arg);
|
||||||
|
@ -4300,14 +4305,22 @@ impl<'a> CodeGenerator<'a> {
|
||||||
}
|
}
|
||||||
} else if count == 2 {
|
} else if count == 2 {
|
||||||
let term = Term::mk_pair_data()
|
let term = Term::mk_pair_data()
|
||||||
.apply(args[0].clone())
|
.apply(builder::convert_type_to_data(
|
||||||
.apply(args[1].clone());
|
args[0].clone(),
|
||||||
|
&tuple_sub_types[0],
|
||||||
|
))
|
||||||
|
.apply(builder::convert_type_to_data(
|
||||||
|
args[1].clone(),
|
||||||
|
&tuple_sub_types[1],
|
||||||
|
));
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
} else {
|
} else {
|
||||||
let mut term = Term::empty_list();
|
let mut term = Term::empty_list();
|
||||||
for arg in args.into_iter().rev() {
|
for (arg, tipo) in args.into_iter().zip(tuple_sub_types.into_iter()).rev() {
|
||||||
term = Term::mk_cons().apply(arg).apply(term);
|
term = Term::mk_cons()
|
||||||
|
.apply(builder::convert_type_to_data(arg, &tipo))
|
||||||
|
.apply(term);
|
||||||
}
|
}
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4463,7 +4476,8 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
let list_id = self.id_gen.next();
|
let list_id = self.id_gen.next();
|
||||||
|
|
||||||
if names.len() == 2 {
|
if tipo.is_2_tuple() {
|
||||||
|
assert!(names.len() == 2);
|
||||||
term = term
|
term = term
|
||||||
.lambda(names[1].clone())
|
.lambda(names[1].clone())
|
||||||
.apply(builder::convert_data_to_type(
|
.apply(builder::convert_data_to_type(
|
||||||
|
@ -4502,15 +4516,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
} else if check_last_item {
|
} else if check_last_item {
|
||||||
let trace_term = if self.tracing {
|
unreachable!("HOW DID YOU DO THIS");
|
||||||
Term::Error.trace(Term::string("Expected no items for Tuple"))
|
|
||||||
} else {
|
|
||||||
Term::Error
|
|
||||||
};
|
|
||||||
|
|
||||||
term = value.delayed_choose_list(term, trace_term);
|
|
||||||
|
|
||||||
arg_stack.push(term);
|
|
||||||
} else {
|
} else {
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
|
|
@ -607,18 +607,6 @@ pub fn modify_self_calls(air_tree: &mut AirTree, func_key: &FunctionAccessKey, v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_tuple_data_casts(air_tree: &mut AirTree) {
|
|
||||||
if let AirTree::Expression(AirExpression::List { items, .. }) = air_tree {
|
|
||||||
for item in items {
|
|
||||||
if let AirTree::Expression(AirExpression::CastToData { value, tipo }) = item {
|
|
||||||
if tipo.is_2_tuple() {
|
|
||||||
*item = (**value).clone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn pattern_has_conditions(pattern: &TypedPattern) -> bool {
|
pub fn pattern_has_conditions(pattern: &TypedPattern) -> bool {
|
||||||
match pattern {
|
match pattern {
|
||||||
Pattern::Constructor {
|
Pattern::Constructor {
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
"$ref": "#/definitions/Data"
|
"$ref": "#/definitions/Data"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5901220100003232323232323232323222253330073233323001001222533300e00214a026464a66601a600600429444ccc01401400400cc04800cc0400080048ccc8c888c8c8c8ccc04000528251533301200114a22940c8c94ccc040cdc3a4004002297adef6c601323756602c002601e00460206ea8004cc010004008dd5998051806001240046002002444a66601e004298103d87a800013232323253330103371e00a002266e95200033014374c00497ae01333007007003005375c60200066eacc040008c04c00cc04400800522105000000000000375866008600c66008600c0029000240082930b19800800a40004444666600c66e1c00400c02c8cccc014014cdc000224004601a002004004460086ea80055cd2ab9d5573caae7d5d02ba15745",
|
"compiledCode": "5901220100003232323232323232323222253330073233323001001222533300e00214a026464a66601a600600429444ccc01401400400cc04800cc0400080048ccc8c888c8c8c8ccc04000528251533301200114a22940c8c94ccc040cdc3a4004002297adef6c601323756602c002601e00460206ea8004cc010004008dd5998051806001240046002002444a66601e004298103d87a800013232323253330103371e00a004266e95200033014374c00297ae01333007007003005375660220066eb8c03c008c04c00cc04400800522105000000000000375866008600c66008600c0029000240082930b19800800a40004444666600c66e1c00400c02c8cccc014014cdc000224004601a002004004460086ea80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
"hash": "99d8662f114a478bb298150ecb317874143f4a40507566aa6b644b61"
|
"hash": "c0e8a63e61227a8158b1ed00b7cd3011a468608e49fa41f856dccfa8"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"preamble": {
|
||||||
|
"title": "aiken-lang/acceptance_test_062",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"plutusVersion": "v2"
|
||||||
|
},
|
||||||
|
"validators": []
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"preamble": {
|
||||||
|
"title": "aiken-lang/acceptance_test_068",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"plutusVersion": "v2"
|
||||||
|
},
|
||||||
|
"validators": []
|
||||||
|
}
|
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/spend~1PoolRedeemer"
|
"$ref": "#/definitions/spend~1PoolRedeemer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "59035b0100003232323232323232323232222323232533300b3232323232323253330123370e90000008992513010007153330123370e9001000899191919299980b19b87480080044c8c8c8c8c8c8c9289810800980c99299980e19b8748000c06c004400458cc03405000cc07c004c05cc94ccc068cdc3a4000603200220022c66014024002601091101ff00301c001301400214a0602800266020602401a9001180c0009808003899191919299980b19b87480080044c8c8c8c8c8c8c9289810800980c99299980e19b8748000c06c004400458cc03405000cc07c004c05cc94ccc068cdc3a4000603200220022c660140240026010910101ff00301c001301400214a0602800266020602401a9001180c00098080039808003119ba548000cc054cdd2a40046602a6ea40052f5c06602a98103d87a80004bd7011198021bac3300d300f3300d300f00248001200423375e6601c6020002900000111198019bac3300c300e3300c300e00248001200023375e6601a601e6601a601e0029001240000046002002444a6660240042980103d87a8000132325333011300300213374a90001980a80125eb804ccc01401400400cc05800cc050008cc01cc0240092000149858c8018c94ccc02ccdc3a40000022646464646464a666028602e0042649318048028b1bad30150013015002375a602600260260046022002601200c2c601200a6400864a66601466e1d200000113232533300f3012002132498c94ccc034cdc3a400000226464a666024602a0042930b1bad3013001300b0021533300d3370e9001000899192999809180a80109924c64a66602066e1d20000011323232325333017301a002132498c03000c58dd6980c000980c001180b00098070010b18070008b180980098058010a99980699b87480100044c8c94ccc048c0540084c9263253330103370e9000000899191919299980b980d00109924c60180062c6eb4c060004c060008c058004c03800858c03800458c04c004c02c00858c02c00458c040004c02001058c02000c8c94ccc028cdc3a4000002264646464a66602260280042930b1bae30120013012002375c602000260100042c60100026600200290001111199980399b8700100300c233330050053370000890011807000801001118029baa001230033754002ae6955ceaab9e5573eae815d0aba21",
|
"compiledCode": "5903560100003232323232323232323232222323232533300b3232533300d3370e9000000899251300b0021323232323253330123370e9001003099191919299980b19b87480080044c8c8c8c94ccc068cdc3a400060320022646464a66603a66e1d2000301c001132324a2604600260360022c6601602a008604000260300022c66012024002601691101ff00301c001301400214a0602800266020602401a9001180c0009808003899191919299980b19b87480080044c8c8c8c94ccc068cdc3a400060320022646464a66603a66e1d2000301c001132324a2604600260360022c6601602a008604000260300022c660120240026016910101ff00301c001301400214a0602800266020602401a9001180c000980800391198021bac3300f30113300f301100248001200023375e66020602466020602400290012400000444660066eb0cc038c040cc038c0400092000480108cdd7998079808800a40000046002002444a6660280042980103d87a8000132325333013300300213374a90001980b80125eb804ccc01401400400cc06000cc0580088cdd2a40006602466e95200233012375200297ae0330124c103d87a80004bd701805800998039804802a40002930b19299980599b87480000044c8c94ccc040c04c0084c92632533300e3370e9000000899192999809980b0010a4c2c6eb4c050004c03000854ccc038cdc3a400400226464a666026602c0042649319299980899b87480000044c8c8c8c94ccc060c06c0084c926300d00316375a60320026032004602e002601e0042c601e0022c602800260180042a66601c66e1d20040011323253330133016002132498c94ccc044cdc3a4000002264646464a66603060360042649318068018b1bad301900130190023017001300f00216300f001163014001300c00216300c001163011001300900516300900432533300a3370e900000089919191919192999809980b00109924c601000a2c6eb4c050004c050008dd698090009809001180800098040028b1804002119299980519b87480000044c8c8c8c94ccc044c05000852616375c602400260240046eb8c040004c02000858c020004cc0040052000222233330073370e0020060184666600a00a66e000112002300e001002002230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441",
|
||||||
"hash": "0cacc32c28d8b9724b7ce935bdfade75a3807ab9a7cf4c4e95bbdad8"
|
"hash": "4279e81d1ecd2b9bcf9435bd73c7f09423bb0cd82a23169ca51ebe33"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compiledCode": "5901c2010000323232323232323232323223222232533300b323232323232323232323232323232533301d30200021323232533301d3370e90000008a99980e9999180080091129998118010a50132325333022300300214a2266600a00a002006604e006604a004016466ebccc068c07000520000171533301d3370e0049001099b8f00301714a02c2c60360246eb4c074008dd7180d8008b180f000999919111919299980f19b874800800452f5bded8c02646eacc090004c070008c070004cc00c008004c0040048894ccc0780085300103d87a8000132323232533301f3371e00a002266e95200033023374c00497ae01333007007003005375c603e0066eacc07c008c08800cc080008004020dd5980e000980e000980d800980d000980c8011bac3017001300f005375c602a002601aa66601e66e1d2000300e0011001163013001301300230110013009002149858c800cc94ccc02ccdc3a40000022a66601c60120062930b0a99980599b874800800454ccc038c02400c52616163009002375c0026600200290001111199980399b8700100300c233330050053370000890011807000801001118029baa001230033754002ae6955ceaab9e5573eae815d0aba21",
|
"compiledCode": "5901bf010000323232323232323232323223222232533300b32323232533300f3370e9000180700089919191919191919191919299980e98100010991919299980e99b874800000454ccc074ccc8c0040048894ccc08c00852809919299981118018010a5113330050050010033027003302500200b23375e660346038002900000b8a99980e99b87002480084cdc780180b8a501616301b014375a603a0046eb8c06c00458c078004ccc8c888c8c94ccc078cdc3a4004002297adef6c601323756604800260380046038002660060040026002002444a66603c0042980103d87a8000132323232533301f3371e00a004266e95200033023374c00297ae01333007007003005375660400066eb8c078008c08800cc080008004020dd5980e000980e000980d800980d000980c8011bac3017001300f005375c602a002601a0022c60260026026004602200260120042930b19299980599b874800000454ccc038c02400c526161533300b3370e90010008a99980718048018a4c2c2c60120046eb8004cc0040052000222233330073370e0020060184666600a00a66e000112002300e001002002230053754002460066ea80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
"hash": "e413cd6136ea78be9b974e540f4acd04ab1274353e63b430018433b7"
|
"hash": "6bc330a4edd7f9542d7e78b883166de880813545737b886a35a9dd2d"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/RedeemerWrapper$Int"
|
"$ref": "#/definitions/RedeemerWrapper$Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800010024815052616375a00a6eb4008c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881",
|
"compiledCode": "5881010000323232323232322253330053370e900018031baa00112323253330083370e002902a0a4c2c6eb400cdd680189911919299980499b8733700004002902a0a4c2c6eb400cdd6802180418039baa00133001001480008888cccc014cdc38008018041199980280299b8000448008c0280040080095cd2ab9d5573cae855d101",
|
||||||
"hash": "5d0d7bcb2b33e3918aaf30feaa04a42fb85c64bc0328d03e407c6241"
|
"hash": "b74766a43a503966cbeb3cea0d3365a01f700988d92e8098c7e6a83e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "foo.mint",
|
"title": "foo.mint",
|
||||||
|
@ -30,8 +30,8 @@
|
||||||
"$ref": "#/definitions/Int"
|
"$ref": "#/definitions/Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800010024815052616375a00a6eb4008c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881",
|
"compiledCode": "5881010000323232323232322253330053370e900018031baa00112323253330083370e002902a0a4c2c6eb400cdd680189911919299980499b8733700004002902a0a4c2c6eb400cdd6802180418039baa00133001001480008888cccc014cdc38008018041199980280299b8000448008c0280040080095cd2ab9d5573cae855d101",
|
||||||
"hash": "5d0d7bcb2b33e3918aaf30feaa04a42fb85c64bc0328d03e407c6241"
|
"hash": "b74766a43a503966cbeb3cea0d3365a01f700988d92e8098c7e6a83e"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name = 'aiken-lang/acceptance_test_062'
|
name = 'aiken-lang/acceptance_test_script_context'
|
||||||
version = '0.0.0'
|
version = '0.0.0'
|
||||||
description = ''
|
description = ''
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"preamble": {
|
"preamble": {
|
||||||
"title": "aiken-lang/acceptance_test_062",
|
"title": "aiken-lang/acceptance_test_script_context",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"plutusVersion": "v2"
|
"plutusVersion": "v2"
|
||||||
},
|
},
|
||||||
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/Void"
|
"$ref": "#/definitions/Void"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "59041701000032323232323232323232322223232533300a32300200132323232323233014333010323330113375e6601a601e002900b26126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a0944cc030c03802520004c0103d87a80004c0103d879800033014333010323253330123370e900100089919299980a19baf33010301200148001300126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013370e6eb4cc040c048005200248000528180c00098080010b1808000998061807004a4004980103d87a80004c0103d8798000330143330103232533301500116132533301600113232300c001330183330143375e66020602400290011ba6300548202a35ae41d30103d87a80004c0103d8798000330183330143375e660206024660206024002900024000980122d8799f581c11111111111111111111111111111111111111111111111111111111ff004c0103d87a80004c0103d879800033018333014323253330163370e9000000899250301400214a26028002660206024660206024002900024004980103d87a80004c0103d8798000330183330143375e6602060240029002260103d87980004c0103d87a80004c0103d8798000330183330143375e6602060240029003260103d87a80004c0103d87a80004c0103d87980004bd70180c0010b180c0009bac3300d300f00148010cc030c03802520004c0103d87a80004c0103d879800033014333010323375e6601a601e00290031ba6300248150cc030c03802520004c103d87a80004c0103d87980004bd701191999801a5eb7bdb18122010000100533330054bd6f7b630245000010043001001222225333015004133016337606ea400cdd300125eb7bdb1804c8c8c8c94ccc058cdd799802803800a60103d879800013301a337606ea401cdd30030040a99980b19b8f00700113301a337606ea401cdd300300189980d19bb037520026e98008ccccc02402400c01c018014dd7180b0019bab30160023019005301700422533300e33720004002298103d87980001533300e3371e0040022980103d87a800014c103d87b80003001001222225333012004133013337606ea400cdd400125eb7bdb1804c8c8c8c94ccc04ccdd799802803800a60103d8798000133017337606ea401cdd40030040a99980999b8f007001133017337606ea401cdd400300189980b99bb037520026ea0008ccccc02402400c01c018014dd718098019bad301300230160053014004149858c004004894ccc0340045288991929998060010998020020008a5030110023370e900118059baa300f00133001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c014dd5000918019baa0015734aae7555cf2ab9f5740ae855d101",
|
"compiledCode": "5904930100003232323232323232323232322225333008323232300200132323232323233015333010323330113375e6601a601e002900b26126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a0944cc030c03802520004c0103d87a80004c0103d879800033015333010323253330123370e900100089919299980a19baf33010301200148001300126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013370e6eb4cc040c048005200248000528180c80098080010a99809a491c73637269707420707572706f73652069736e277420275370656e6427001630100013300c300e00948009300103d87a80004c0103d87980003301533301032325333016001153301349011c756e6578706563746564206e756d626572206f66206f7574707574730016132533301700113232300c001330193330143375e66020602400290011ba6300548202a35ae41d300103d87a80004c0103d8798000330193330143375e660206024660206024002900024000980122d8799f581c11111111111111111111111111111111111111111111111111111111ff004c0103d87a80004c0103d879800033019333014323253330163370e9000000899250301400214a26028002660206024660206024002900024004980103d87a80004c0103d8798000330193330143375e6602060240029002260103d87980004c0103d87a80004c0103d8798000330193330143375e6602060240029003260103d87a80004c0103d87a80004c0103d87980004bd70180c8010a9980a2491c756e6578706563746564206e756d626572206f66206f7574707574730016301900137586601a601e0029002198061807004a4000980103d87a80004c0103d879800033015333010323375e6601a601e00290031ba6300248150cc030c03802520004c103d87a80004c0103d87980004bd701299980819b870014800052f5bded8c0264666600c97adef6c604890000100333330034bd6f7b6302450000100222533301033720004002298103d8798000153330103371e0040022980103d87a800014c103d87b80003001001222225333015004133016337606ea400cdd400125eb7bdb1804c8c8c8c94ccc054cdd799802803801260103d879800013301a337606ea401cdd40030040a99980a99b8f00700213301a337606ea401cdd400300189980d19bb037520046ea0004ccccc02402400c01c018014dd6980b8019bae3015002301900530170043001001222225333013004133014337606ea400cdd300125eb7bdb1804c8c8c8c94ccc04ccdd799802803801260103d8798000133018337606ea401cdd30030040a99980999b8f007002133018337606ea401cdd300300189980c19bb037520046e98004ccccc02402400c01c018014dd5980a8019bae301300230170053015004300100122533300e00114a226464a6660180042660080080022940c048008cdc3a400460186ea8c0400045261633001001480008888cccc01ccdc38008018069199980280299b8000448008c03c0040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae815d0aba201",
|
||||||
"hash": "abc04b93bf71fa38b33af79743dbfbbfd151a8a76b289f90e1f1ad92"
|
"hash": "d364259445292b780104219c2c90d80e5fdd3ea4c61973f6f0b458c0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "deploy.spend",
|
"title": "deploy.spend",
|
||||||
|
@ -36,8 +36,8 @@
|
||||||
"$ref": "#/definitions/Data"
|
"$ref": "#/definitions/Data"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5903100100003232323232323232323232322223232533300a3230020013300f33300a323375e00c0026601693260103d87980004c0103d87a80004c0103d87980003300f33300a332323232232323253330123375e98106d8799f182aff0000213370e600a00890020a503253330123370e900000089919299980c180d8010a4c2c6eb4c064004c04000858c040004c058004c034c94ccc040cdc3a4000601e00220022c646600a004002646e50004dd9a60106d8799f182aff0030010012253330120011480004c8cdc02400466006006002602a0026002002444a6660220042980103d87a800013232323253330113371e00a002266e952000330160024bd7009998038038018029bae301200330120023015003301300237566600c60106600c6010006900024028980103d87a80004c0103d87980003300f33300a32533300f001161325333010001161323232325333010323008001330153330103375e66018601c004900226126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d8798000330153330103375e66018601c0049003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd7009918040009980a99980819baf3300c300e3300c300e0014800120024c12ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d879800033015333010323253330123370e900200089925130100021630100013300c300e0014801130103d87a80004c0103d87980004bd700a5030150043014004163013001301200137586600c60106600c601000690002400898103d87a80004c0103d87980004bd700a4c2c600200244a66601c00229444c8c94ccc0300084cc010010004528180900119b8748008c030dd5180800099800800a40004444666600e66e1c00400c0348cccc014014cdc000224004601e0020040044600c6ea80048c010dd5000ab9a5736aae7555cf2ab9f5740ae855d11",
|
"compiledCode": "590430010000323232323232323232323232222533300832323230020013300f33300a3375e00a980103d87980004c0103d87a80004c0103d87980003300f33300a33232323223253330103370e900018078008991919299980999baf4c106d8799f182aff0000213370e600c00a90020a503253330133370e900000089919299980c980e0010a4c2a6602c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a603400260220042a660289212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630110013017001300e001153301149012a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001632330050020013237280026ecd300106d8799f182aff0030010012253330120011480004c8cdc02400466006006002602a0026002002444a6660220042980103d87a800013232323253330113371e00a004266e952000330160014bd70099980380380180298098019bae30110023015003301300237566600c60106600c6010006900024028980103d87a80004c0103d87980003300f33300a32533300f001153300c4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f75747075747300161325333010001153300d4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f757470757473001613232533300e3230060013301333300e3375e660146018004900226126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d87980003301333300e3375e6601460180049003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd7009918030009980999980719baf3300a300c3300a300c0014800120024c12ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d87980003301333300e323253330103370e9002000899251300e0021533011490115657870656374656420696e6c696e6520646174756d0016300e0013300a300c00148011300103d87a80004c0103d87980004bd700a5030130023012002301200137586600c60106600c6010006900024008980103d87a80004c0103d87980004bd7018008009129998070008a5113232533300c00213300400400114a0602400466e1d2002300c375460200022930b19800800a40004444666600e66e1c00400c0348cccc014014cdc000224004601e0020040044600c6ea80048c010dd5000ab9a5738aae7555cf2ab9f5740ae855d11",
|
||||||
"hash": "7430b07ebb41177b84d49ffed5e102eff7ffee61ad2b81c3f3ab3dbb"
|
"hash": "c4c081d7a44ce7abb8311b45f0b41c84c981e9ed11319d49316fa649"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "mint.mint",
|
"title": "mint.mint",
|
||||||
|
@ -47,8 +47,8 @@
|
||||||
"$ref": "#/definitions/Data"
|
"$ref": "#/definitions/Data"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "590363010000323232323232323232323222533300732332300100122533300d00114a226464a6660180042660080080022940c044008cdc3a400460166ea8c03c004004cc02cccc01ccc8c8c8c88c8c94ccc044c0500084c8c8cdc78018009bae3014001300c32533300f3370e9000180700088008b198051806001a40042c6eb8c048004c8c8c010004cc014005221003756660106014660106014002900024010600200244a66601c002297ae013232323301237520026600a00a0046eb8c038008c048008c040004c0040048894ccc03400852f5bded8c0264646464a66601c66e3c014004400c4cc048cdd81ba9001374c00466600e00e00600a6eb8c03800cdd5980700118088019807801000a6103d87a80004c0103d87980003300b333007333232323222323232323253330123370e90010008b0991919b87001483c850dd6980c0009808001180800099803000a44103666f6f003322323253330133370e90010008a5eb7bdb1804c8dd5980c80098088011808800998048010009bab3300b300d00348020004dd718098009805a99980699b8748000c030008400858c0040048894ccc03c0085300103d87a800013232323253330103371e00a002266e95200033014375000497ae01333007007003005375c60200066eb4c040008c04c00cc044008c0040048894ccc034008530103d87a8000132323232533300e3371e00a002266e95200033012374c00497ae01333007007003005375c601c0066eacc038008c04400cc03c008cc00cc01400520023300330050014800130103d87a80004c0103d87980003300b3330073332323232223232533300f3375e006002266e1cc8c018004dd5998059806998059806802240009009240042940c04c004c02cc94ccc038cdc3a4000601a00220022c66446600e0040026eaccc024c02ccc024c02c009200048048cc024c02c0092002300100122533300e0011480004c8cdc0240046600600600260220026002002444a66601a004298103d87a8000132323232533300e3375e00a002266e952000330120024bd7009998038038018029807001980700118088019807801000801260103d87a80004c0103d87980004bd700a4c2c6600200290001111199980399b8700100300c233330050053370000890011807000801001118029baa001230033754002ae6955ceaab9e5573eae815d0aba21",
|
"compiledCode": "59046a01000032323232323232323232323222533300732332300100122533300e00114a226464a6660180042660080080022940c048008cdc3a400460186ea8c040004004c8c8c8c8cc040ccc02ccc8c88c8c94ccc050c05c0084c94ccc044cdc3a400060200022646466e3c010004dd7180c00098078008a998092492a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300c300e0034800854cc0452401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602a002646464600a0026600e00291010030050013756660146018660146018002900024010600200244a666022002297ae01323232323301637520046600c00c0066eacc04c00cdd71808801180a8011809800802a60103d87a80004c0103d87980003301033300b33323232322253330113370e9000180800109919191919299980b19b874800800454cc05d24010f746f6b656e206e6f7420666f756e640016132323370e00290790a1bad301d0013014002301400133006001488103666f6f003322323253330173370e90010008a5eb7bdb1804c8dd5980f000980a801180a800998048010009918050009bab3300f301100348020004dd7180c00098078010a9980924812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163001001222533301400214c103d87a800013232323253330143371e00a004266e95200033019375000297ae01333007007003005375a602c0066eb8c050008c06000cc058008c0040048894ccc048008530103d87a800013232323253330123371e00a004266e95200033017374c00297ae01333007007003005375660280066eb8c048008c05800cc050008cc01cc02401520023300730090054800130103d87a80004c0103d87980003301033300b3332323232223253330123370e9000180880089919299980a19baf00400113370e64600e0026eaccc040c048cc040c048015200048049200214a0603200260200022a660269212a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001633223300700200137566601a601e6601a601e0049000240246601a601e004900118008009129998098008a400026466e0120023300300300130160013001001222533301200214c103d87a800013232323253330123375e00a004266e952000330170014bd700999803803801802980a0019809001180b001980a001002803260103d87a80004c0103d87980004bd70119801000a4410022330030020013001001222533300e00214bd6f7b630099191919299980719b8f0050021003133013337606ea4008dd30009998038038018029bab3010003375c601c004602400660200042930b19800800a40004444666600e66e1c00400c0348cccc014014cdc000224004601e0020040044600c6ea80048c010dd5000ab9a5738aae7555cf2ab9f5740ae855d11",
|
||||||
"hash": "af428f3f11ea2384e5105bc172b778576324039e95050066cb8a006f"
|
"hash": "8571dbfda074eb4da2b6ff731e2cb31cc1395a7d10632e29e943b137"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "withdrawals.spend",
|
"title": "withdrawals.spend",
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
"$ref": "#/definitions/Void"
|
"$ref": "#/definitions/Void"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5902670100003232323232323232323232222533300832332300100122533300e00114a226464a66601a0042660080080022940c048008cdc3a400460186ea8c040004004c8c8c8cc03cccc02cc8c94ccc034cdc3a40040022c2646466e1c0052054375a602600260160046016002660026eaccc01cc024cc01cc024011200048031300126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff004c0103d87a80004c0103d87980003300f33300b3232533300d3370e90010008b0991919b8700148070dd6980980098058011805800998009bab33007300933007300900448001200c4c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004c0103d87a80004c0103d87980003300f33300b3375e6e9ccc8c88c008004c004004894ccc04000452f5c02646464660280026600a00a0046020004602800460240026eaccc01cc024cc01cc024011200048030dd399807a6126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff003300f4c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004bd7026103d87a80004c0103d87980004bd701119801801000980080091129998070010a6103d87a8000132323232533300f3375e00a002266e95200033013375000497ae01333007007003005300f003375a601e004602400660200042930b19800800a40004444666600e66e1c00400c0308cccc014014cdc000224004601c0020040044600a6ea80048c00cdd5000ab9a5573aaae7955cfaba05742ae89",
|
"compiledCode": "5902b5010000323232323232323232323232222533300832332300100122533300f00114a226464a66601a0042660080080022940c04c008cdc3a4004601a6ea8c044004004c8c8c8cc040ccc02cc8c94ccc034cdc3a40040022a6601c92011c616c6963652773207769746864726177616c206e6f7420666f756e640016132323370e002902a1bad3014001300b002300b0013300137566600e60126600e601200890002401898126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff004c0103d87a80004c0103d87980003301033300b3232533300d3370e90010008a998072491a626f622773207769746864726177616c206e6f7420666f756e640016132323370e002900e1bad3014001300b002300b0013300137566600e60126600e601200890002401898126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004c0103d87a80004c0103d87980003301033300b3375e6e9ccc8c88c008004c004004894ccc04400452f5c02646464646602c0046600c00c0066eb4c04c00cc044008c054008c04c004dd59980398049980398048022400090061ba7330104c0126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff00330104c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004bd7026103d87a80004c0103d87980004bd701119801801000980080091129998078010a6103d87a8000132323232533300f3375e00a004266e95200033014375000297ae01333007007003005375a6022006601e004602600660220042930b19800800a40004444666600e66e1c00400c0348cccc014014cdc000224004601e0020040044600c6ea80048c010dd5000ab9a5738aae7555cf2ab9f5740ae855d11",
|
||||||
"hash": "5db9f7f98b689165b3ca293c48e3b1d482f90649641f294aa5a9fd7e"
|
"hash": "354397fdd3d68b6beaf20918a0272533b70521b50927d15fd8d4da48"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -17,8 +17,10 @@ validator {
|
||||||
fn assert_purpose(ctx) {
|
fn assert_purpose(ctx) {
|
||||||
expect [my_policy_id] =
|
expect [my_policy_id] =
|
||||||
ctx.transaction.mint
|
ctx.transaction.mint
|
||||||
|
|> value.from_minted_value
|
||||||
|> value.without_lovelace
|
|> value.without_lovelace
|
||||||
|> value.policies
|
|> value.policies
|
||||||
|
|
||||||
expect Mint(policy_id) = ctx.purpose
|
expect Mint(policy_id) = ctx.purpose
|
||||||
|
|
||||||
my_policy_id == policy_id
|
my_policy_id == policy_id
|
||||||
|
@ -26,7 +28,8 @@ fn assert_purpose(ctx) {
|
||||||
|
|
||||||
fn assert_mint(purpose, transaction) {
|
fn assert_mint(purpose, transaction) {
|
||||||
expect Mint(policy_id) = purpose
|
expect Mint(policy_id) = purpose
|
||||||
let tokens = value.tokens(transaction.mint, policy_id)
|
let tokens =
|
||||||
|
value.tokens(transaction.mint |> value.from_minted_value, policy_id)
|
||||||
|
|
||||||
when dict.get(tokens, #"666f6f") is {
|
when dict.get(tokens, #"666f6f") is {
|
||||||
None -> fail @"token not found"
|
None -> fail @"token not found"
|
||||||
|
|
Loading…
Reference in New Issue