feat: Remove tuple_index and record_access in favor of faster more direct functions for
accessing an item in a tuple or a field in a record
This commit is contained in:
parent
1bcc9e8524
commit
47596f0324
|
@ -10,7 +10,7 @@ use indexmap::{IndexMap, IndexSet};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use uplc::{
|
use uplc::{
|
||||||
ast::{Constant as UplcConstant, Name, NamedDeBruijn, Program, Term, Type as UplcType},
|
ast::{Constant as UplcConstant, Name, NamedDeBruijn, Program, Term, Type as UplcType},
|
||||||
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_GET_FIELD, CONSTR_INDEX_EXPOSER, EXPECT_ON_LIST},
|
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER, EXPECT_ON_LIST},
|
||||||
builtins::DefaultFunction,
|
builtins::DefaultFunction,
|
||||||
machine::cost_model::ExBudget,
|
machine::cost_model::ExBudget,
|
||||||
optimize::aiken_optimize_and_intern,
|
optimize::aiken_optimize_and_intern,
|
||||||
|
@ -22,7 +22,7 @@ use crate::{
|
||||||
AssignmentKind, BinOp, Pattern, Span, TypedArg, TypedClause, TypedDataType, TypedFunction,
|
AssignmentKind, BinOp, Pattern, Span, TypedArg, TypedClause, TypedDataType, TypedFunction,
|
||||||
TypedPattern, TypedValidator, UnOp,
|
TypedPattern, TypedValidator, UnOp,
|
||||||
},
|
},
|
||||||
builtins::{bool, data, int, void},
|
builtins::{bool, data, int, list, void},
|
||||||
expr::TypedExpr,
|
expr::TypedExpr,
|
||||||
gen_uplc::builder::{
|
gen_uplc::builder::{
|
||||||
check_replaceable_opaque_type, convert_opaque_type, erase_opaque_type_operations,
|
check_replaceable_opaque_type, convert_opaque_type, erase_opaque_type_operations,
|
||||||
|
@ -187,10 +187,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
fn finalize(&mut self, mut term: Term<Name>) -> Program<Name> {
|
fn finalize(&mut self, mut term: Term<Name>) -> Program<Name> {
|
||||||
if self.needs_field_access {
|
if self.needs_field_access {
|
||||||
term = term
|
term = term.constr_fields_exposer().constr_index_exposer();
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
|
||||||
.constr_index_exposer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Once SOP is implemented, new version is 1.1.0
|
// TODO: Once SOP is implemented, new version is 1.1.0
|
||||||
|
@ -550,7 +547,38 @@ impl<'a> CodeGenerator<'a> {
|
||||||
if check_replaceable_opaque_type(&record.tipo(), &self.data_types) {
|
if check_replaceable_opaque_type(&record.tipo(), &self.data_types) {
|
||||||
self.build(record)
|
self.build(record)
|
||||||
} else {
|
} else {
|
||||||
AirTree::record_access(*index, tipo.clone(), self.build(record))
|
self.needs_field_access = true;
|
||||||
|
let function_name = format!("__access_index_{}", *index);
|
||||||
|
|
||||||
|
if self.code_gen_functions.get(&function_name).is_none() {
|
||||||
|
let mut body = AirTree::local_var("__fields", list(data()));
|
||||||
|
|
||||||
|
for _ in 0..*index {
|
||||||
|
body = AirTree::builtin(
|
||||||
|
DefaultFunction::TailList,
|
||||||
|
list(data()),
|
||||||
|
vec![body],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
body = AirTree::builtin(DefaultFunction::HeadList, data(), vec![body]);
|
||||||
|
|
||||||
|
self.code_gen_functions.insert(
|
||||||
|
function_name.clone(),
|
||||||
|
CodeGenFunction::Function {
|
||||||
|
body,
|
||||||
|
params: vec!["__fields".to_string()],
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let list_of_fields = AirTree::call(
|
||||||
|
AirTree::local_var(CONSTR_FIELDS_EXPOSER, void()),
|
||||||
|
list(data()),
|
||||||
|
vec![self.build(record)],
|
||||||
|
);
|
||||||
|
|
||||||
|
AirTree::index_access(function_name, tipo.clone(), list_of_fields)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -622,8 +650,38 @@ impl<'a> CodeGenerator<'a> {
|
||||||
tipo.clone(),
|
tipo.clone(),
|
||||||
),
|
),
|
||||||
|
|
||||||
TypedExpr::TupleIndex { index, tuple, .. } => {
|
TypedExpr::TupleIndex {
|
||||||
AirTree::tuple_index(*index, tuple.tipo(), self.build(tuple))
|
index, tuple, tipo, ..
|
||||||
|
} => {
|
||||||
|
if tuple.tipo().is_2_tuple() {
|
||||||
|
AirTree::pair_index(*index, tipo.clone(), self.build(tuple))
|
||||||
|
} else {
|
||||||
|
let function_name = format!("__access_index_{}", *index);
|
||||||
|
|
||||||
|
if self.code_gen_functions.get(&function_name).is_none() {
|
||||||
|
let mut body = AirTree::local_var("__fields", list(data()));
|
||||||
|
|
||||||
|
for _ in 0..*index {
|
||||||
|
body = AirTree::builtin(
|
||||||
|
DefaultFunction::TailList,
|
||||||
|
list(data()),
|
||||||
|
vec![body],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
body = AirTree::builtin(DefaultFunction::HeadList, data(), vec![body]);
|
||||||
|
|
||||||
|
self.code_gen_functions.insert(
|
||||||
|
function_name.clone(),
|
||||||
|
CodeGenFunction::Function {
|
||||||
|
body,
|
||||||
|
params: vec!["__fields".to_string()],
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
AirTree::index_access(function_name, tipo.clone(), self.build(tuple))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TypedExpr::ErrorTerm { tipo, .. } => AirTree::error(tipo.clone()),
|
TypedExpr::ErrorTerm { tipo, .. } => AirTree::error(tipo.clone()),
|
||||||
|
@ -3876,10 +3934,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
) {
|
) {
|
||||||
let mut term = self.uplc_code_gen(air_vec.clone());
|
let mut term = self.uplc_code_gen(air_vec.clone());
|
||||||
|
|
||||||
term = term
|
term = term.constr_fields_exposer().constr_index_exposer();
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
|
||||||
.constr_index_exposer();
|
|
||||||
|
|
||||||
let mut program: Program<Name> = Program {
|
let mut program: Program<Name> = Program {
|
||||||
version: (1, 0, 0),
|
version: (1, 0, 0),
|
||||||
|
@ -4660,18 +4715,6 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
Air::RecordAccess { record_index, tipo } => {
|
|
||||||
self.needs_field_access = true;
|
|
||||||
let constr = arg_stack.pop().unwrap();
|
|
||||||
|
|
||||||
let mut term = Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(constr))
|
|
||||||
.apply(Term::integer(record_index.into()));
|
|
||||||
|
|
||||||
term = builder::convert_data_to_type(term, &tipo);
|
|
||||||
|
|
||||||
arg_stack.push(term);
|
|
||||||
}
|
|
||||||
Air::FieldsExpose {
|
Air::FieldsExpose {
|
||||||
indices,
|
indices,
|
||||||
check_last_item,
|
check_last_item,
|
||||||
|
@ -4931,33 +4974,6 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
Air::TupleIndex { tipo, tuple_index } => {
|
|
||||||
let mut term = arg_stack.pop().unwrap();
|
|
||||||
|
|
||||||
if matches!(tipo.get_uplc_type(), UplcType::Pair(_, _)) {
|
|
||||||
if tuple_index == 0 {
|
|
||||||
term = builder::convert_data_to_type(
|
|
||||||
Term::fst_pair().apply(term),
|
|
||||||
&tipo.get_inner_types()[0],
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
term = builder::convert_data_to_type(
|
|
||||||
Term::snd_pair().apply(term),
|
|
||||||
&tipo.get_inner_types()[1],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
self.needs_field_access = true;
|
|
||||||
term = builder::convert_data_to_type(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(term)
|
|
||||||
.apply(Term::integer(tuple_index.into())),
|
|
||||||
&tipo.get_inner_types()[tuple_index],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
arg_stack.push(term);
|
|
||||||
}
|
|
||||||
Air::TupleAccessor {
|
Air::TupleAccessor {
|
||||||
tipo,
|
tipo,
|
||||||
names,
|
names,
|
||||||
|
|
|
@ -147,10 +147,6 @@ pub enum Air {
|
||||||
tipo: Rc<Type>,
|
tipo: Rc<Type>,
|
||||||
},
|
},
|
||||||
// Field Access
|
// Field Access
|
||||||
RecordAccess {
|
|
||||||
record_index: u64,
|
|
||||||
tipo: Rc<Type>,
|
|
||||||
},
|
|
||||||
FieldsExpose {
|
FieldsExpose {
|
||||||
indices: Vec<(usize, String, Rc<Type>)>,
|
indices: Vec<(usize, String, Rc<Type>)>,
|
||||||
check_last_item: bool,
|
check_last_item: bool,
|
||||||
|
@ -173,10 +169,6 @@ pub enum Air {
|
||||||
tipo: Rc<Type>,
|
tipo: Rc<Type>,
|
||||||
check_last_item: bool,
|
check_last_item: bool,
|
||||||
},
|
},
|
||||||
TupleIndex {
|
|
||||||
tipo: Rc<Type>,
|
|
||||||
tuple_index: usize,
|
|
||||||
},
|
|
||||||
// Misc.
|
// Misc.
|
||||||
ErrorTerm {
|
ErrorTerm {
|
||||||
tipo: Rc<Type>,
|
tipo: Rc<Type>,
|
||||||
|
|
|
@ -315,18 +315,6 @@ pub enum AirExpression {
|
||||||
record: Box<AirTree>,
|
record: Box<AirTree>,
|
||||||
args: Vec<AirTree>,
|
args: Vec<AirTree>,
|
||||||
},
|
},
|
||||||
// Field Access
|
|
||||||
RecordAccess {
|
|
||||||
field_index: u64,
|
|
||||||
tipo: Rc<Type>,
|
|
||||||
record: Box<AirTree>,
|
|
||||||
},
|
|
||||||
// Tuple Access
|
|
||||||
TupleIndex {
|
|
||||||
tipo: Rc<Type>,
|
|
||||||
tuple_index: usize,
|
|
||||||
tuple: Box<AirTree>,
|
|
||||||
},
|
|
||||||
// Misc.
|
// Misc.
|
||||||
ErrorTerm {
|
ErrorTerm {
|
||||||
tipo: Rc<Type>,
|
tipo: Rc<Type>,
|
||||||
|
@ -684,12 +672,33 @@ impl AirTree {
|
||||||
args,
|
args,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
pub fn record_access(field_index: u64, tipo: Rc<Type>, record: AirTree) -> AirTree {
|
pub fn index_access(function_name: String, tipo: Rc<Type>, list_of_fields: AirTree) -> AirTree {
|
||||||
AirTree::Expression(AirExpression::RecordAccess {
|
AirTree::cast_from_data(
|
||||||
field_index,
|
AirTree::call(
|
||||||
tipo,
|
AirTree::var(
|
||||||
record: record.into(),
|
ValueConstructor::public(
|
||||||
})
|
Type::Fn {
|
||||||
|
args: vec![list(data())],
|
||||||
|
ret: data(),
|
||||||
|
}
|
||||||
|
.into(),
|
||||||
|
ValueConstructorVariant::ModuleFn {
|
||||||
|
name: function_name.clone(),
|
||||||
|
field_map: None,
|
||||||
|
module: "".to_string(),
|
||||||
|
arity: 1,
|
||||||
|
location: Span::empty(),
|
||||||
|
builtin: None,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
function_name,
|
||||||
|
"",
|
||||||
|
),
|
||||||
|
data(),
|
||||||
|
vec![list_of_fields],
|
||||||
|
),
|
||||||
|
tipo.clone(),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fields_expose(
|
pub fn fields_expose(
|
||||||
|
@ -754,12 +763,19 @@ impl AirTree {
|
||||||
hoisted_over: None,
|
hoisted_over: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn tuple_index(tuple_index: usize, tipo: Rc<Type>, tuple: AirTree) -> AirTree {
|
pub fn pair_index(index: usize, tipo: Rc<Type>, tuple: AirTree) -> AirTree {
|
||||||
AirTree::Expression(AirExpression::TupleIndex {
|
AirTree::cast_from_data(
|
||||||
tipo,
|
AirTree::builtin(
|
||||||
tuple_index,
|
if index == 0 {
|
||||||
tuple: tuple.into(),
|
DefaultFunction::FstPair
|
||||||
})
|
} else {
|
||||||
|
DefaultFunction::SndPair
|
||||||
|
},
|
||||||
|
data(),
|
||||||
|
vec![tuple],
|
||||||
|
),
|
||||||
|
tipo.clone(),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
pub fn error(tipo: Rc<Type>) -> AirTree {
|
pub fn error(tipo: Rc<Type>) -> AirTree {
|
||||||
AirTree::Expression(AirExpression::ErrorTerm { tipo })
|
AirTree::Expression(AirExpression::ErrorTerm { tipo })
|
||||||
|
@ -1241,28 +1257,6 @@ impl AirTree {
|
||||||
arg.create_air_vec(air_vec);
|
arg.create_air_vec(air_vec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AirExpression::RecordAccess {
|
|
||||||
field_index,
|
|
||||||
tipo,
|
|
||||||
record,
|
|
||||||
} => {
|
|
||||||
air_vec.push(Air::RecordAccess {
|
|
||||||
record_index: *field_index,
|
|
||||||
tipo: tipo.clone(),
|
|
||||||
});
|
|
||||||
record.create_air_vec(air_vec);
|
|
||||||
}
|
|
||||||
AirExpression::TupleIndex {
|
|
||||||
tipo,
|
|
||||||
tuple_index,
|
|
||||||
tuple,
|
|
||||||
} => {
|
|
||||||
air_vec.push(Air::TupleIndex {
|
|
||||||
tipo: tipo.clone(),
|
|
||||||
tuple_index: *tuple_index,
|
|
||||||
});
|
|
||||||
tuple.create_air_vec(air_vec);
|
|
||||||
}
|
|
||||||
AirExpression::ErrorTerm { tipo } => {
|
AirExpression::ErrorTerm { tipo } => {
|
||||||
air_vec.push(Air::ErrorTerm { tipo: tipo.clone() })
|
air_vec.push(Air::ErrorTerm { tipo: tipo.clone() })
|
||||||
}
|
}
|
||||||
|
@ -1300,8 +1294,6 @@ impl AirTree {
|
||||||
| AirExpression::If { tipo, .. }
|
| AirExpression::If { tipo, .. }
|
||||||
| AirExpression::Constr { tipo, .. }
|
| AirExpression::Constr { tipo, .. }
|
||||||
| AirExpression::RecordUpdate { tipo, .. }
|
| AirExpression::RecordUpdate { tipo, .. }
|
||||||
| AirExpression::RecordAccess { tipo, .. }
|
|
||||||
| AirExpression::TupleIndex { tipo, .. }
|
|
||||||
| AirExpression::ErrorTerm { tipo }
|
| AirExpression::ErrorTerm { tipo }
|
||||||
| AirExpression::Trace { tipo, .. } => tipo.clone(),
|
| AirExpression::Trace { tipo, .. } => tipo.clone(),
|
||||||
AirExpression::Void => void(),
|
AirExpression::Void => void(),
|
||||||
|
@ -1351,9 +1343,7 @@ impl AirTree {
|
||||||
| AirExpression::CastFromData { tipo, .. }
|
| AirExpression::CastFromData { tipo, .. }
|
||||||
| AirExpression::CastToData { tipo, .. }
|
| AirExpression::CastToData { tipo, .. }
|
||||||
| AirExpression::If { tipo, .. }
|
| AirExpression::If { tipo, .. }
|
||||||
| AirExpression::RecordAccess { tipo, .. }
|
|
||||||
| AirExpression::Constr { tipo, .. }
|
| AirExpression::Constr { tipo, .. }
|
||||||
| AirExpression::TupleIndex { tipo, .. }
|
|
||||||
| AirExpression::ErrorTerm { tipo }
|
| AirExpression::ErrorTerm { tipo }
|
||||||
| AirExpression::Trace { tipo, .. } => vec![tipo],
|
| AirExpression::Trace { tipo, .. } => vec![tipo],
|
||||||
AirExpression::Var { constructor, .. } => {
|
AirExpression::Var { constructor, .. } => {
|
||||||
|
@ -1836,24 +1826,6 @@ impl AirTree {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AirExpression::RecordAccess { record, .. } => {
|
|
||||||
record.do_traverse_tree_with(
|
|
||||||
tree_path,
|
|
||||||
current_depth + 1,
|
|
||||||
index_count.next_number(),
|
|
||||||
with,
|
|
||||||
apply_with_func_last,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
AirExpression::TupleIndex { tuple, .. } => {
|
|
||||||
tuple.do_traverse_tree_with(
|
|
||||||
tree_path,
|
|
||||||
current_depth + 1,
|
|
||||||
index_count.next_number(),
|
|
||||||
with,
|
|
||||||
apply_with_func_last,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
AirExpression::Trace { msg, then, .. } => {
|
AirExpression::Trace { msg, then, .. } => {
|
||||||
msg.do_traverse_tree_with(
|
msg.do_traverse_tree_with(
|
||||||
tree_path,
|
tree_path,
|
||||||
|
@ -2170,21 +2142,6 @@ impl AirTree {
|
||||||
|
|
||||||
item.do_find_air_tree_node(tree_path_iter)
|
item.do_find_air_tree_node(tree_path_iter)
|
||||||
}
|
}
|
||||||
AirExpression::RecordAccess { record, .. } => {
|
|
||||||
if *index == 0 {
|
|
||||||
record.as_mut().do_find_air_tree_node(tree_path_iter)
|
|
||||||
} else {
|
|
||||||
panic!("Tree Path index outside tree children nodes")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
AirExpression::TupleIndex { tuple, .. } => {
|
|
||||||
if *index == 0 {
|
|
||||||
tuple.as_mut().do_find_air_tree_node(tree_path_iter)
|
|
||||||
} else {
|
|
||||||
panic!("Tree Path index outside tree children nodes")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AirExpression::Trace { msg, then, .. } => {
|
AirExpression::Trace { msg, then, .. } => {
|
||||||
if *index == 0 {
|
if *index == 0 {
|
||||||
msg.as_mut().do_find_air_tree_node(tree_path_iter)
|
msg.as_mut().do_find_air_tree_node(tree_path_iter)
|
||||||
|
|
|
@ -455,8 +455,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/test_module~1Input"
|
"$ref": "#/definitions/test_module~1Input"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "59029101000032323232323232323232322223232533300a4a22930b19299980519b874800000454ccc038c020010526153300b4911d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300a3370e90010008a99980718040020a4c2a6601692011d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300a3370e90020008a99980718040020a4c2a6601692011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300b4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630080033253330093370e900000089919191919192999809980a8010991924c646600200200a44a66602c00229309919801801980c801191bae00130170013253330103370e900000089919299980b180c0010a4c2a660269201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602c002601c00c2a660229212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00515330104901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602600260260046eb0c044004c044008c03c004c01c01054cc0292412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300700333001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11",
|
"compiledCode": "59026a010000323232323232323232222323253330084a22930b19299980419b874800000454ccc030c01801052615330094911d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90010008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90020008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e737472001615330094912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630060033253330073370e90000008991919191919299980898098010991924c646600200200a44a66602800229309919801801980b801191bae001301500132533300e3370e900000089919299980a180b0010a4c2a660229201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a6028002601800c2a6601e9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300c005153300e4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602200260220046eb0c03c004c03c008c034004c01401054cc0212412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163005003230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||||
"hash": "401a6c4bac4f3554a9bbe260aa12d2eec8c97bf903d23cd6ad426d1e",
|
"hash": "fabdc2d41f23663983001520513a703bcaf015e33947764c4f65c2c8",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"ByteArray": {
|
"ByteArray": {
|
||||||
"dataType": "bytes"
|
"dataType": "bytes"
|
||||||
|
@ -636,8 +636,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int"
|
"$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "59020a0100003232323232323232323232223253330084a22930b19299980419b87480000044c8c94ccc038c040008526153300b4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601c002600c0062a66601066e1d200200113232533300e3010002132498c94ccc02ccdc3a400000226464a66602260260042930a99807249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602200260120042a66601666e1d20020011533300f3009002149854cc03124011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163009001153300b4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300e001300600315330094912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300600233001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11",
|
"compiledCode": "5901e3010000323232323232323232223253330064a22930b19299980319b87480000044c8c94ccc030c03800852615330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601800260080062a66600c66e1d200200113232533300c300e002132498c94ccc024cdc3a400000226464a66601e60220042930a99806249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300700115330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300c001300400315330074912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163004002230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||||
"hash": "8439b07179746c195c7631777b49e48c2931887547e3258f5f4a59f0",
|
"hash": "b32c4cd46fa64739cddbd05cc35fef9bfc702b4c8ad8ac332a4e699c",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"ByteArray": {
|
"ByteArray": {
|
||||||
"dataType": "bytes"
|
"dataType": "bytes"
|
||||||
|
@ -720,8 +720,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int"
|
"$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "590106010000323232323232323232223253330064a22930b19299980319b87480000044c8c94ccc030c0380084c926323300100100222533300e00114984c8cc00c00cc044008c8c8dd698078011bae300d001300f0011533009491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163756601800260126ea800c54cc01d2412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300737540046600200290001111199980299b8700100300a2333300500533700008900118060008010012b9a5738aae7555cf2ab9f5742ae89",
|
"compiledCode": "58e001000032323232323232223253330044a22930b19299980219b87480000044c8c94ccc028c0300084c926323300100100222533300c00114984c8cc00c00cc03c008c8c8dd698068011bae300b001300d0011533007491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001637566014002600e6ea800c54cc0152412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630053754004ae695ce2ab9d5573caae7d5d0aba201",
|
||||||
"hash": "683885e262c8857f80788a1626c1a327267d85cb49e08382288933b2",
|
"hash": "1caa2519f38c63dfc5e3a457d1a06e57848628f5a2495b04afb64cba",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"ByteArray": {
|
"ByteArray": {
|
||||||
"dataType": "bytes"
|
"dataType": "bytes"
|
||||||
|
@ -835,8 +835,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/Int"
|
"$ref": "#/definitions/Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "58e1010000323232323232323232222323253330084a22930b1bad0033253330073370e900000089919299980698078010a4c2a660149201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300d001300a37540082a660109212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300837540066600200290001111199980299b8700100300a2333300500533700008900118060008010012b9a5738aae7555cf2ab9f5742ae89",
|
"compiledCode": "58bb01000032323232323232222323253330064a22930b1bad0033253330053370e900000089919299980598068010a4c2a660109201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300b001300837540082a6600c9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630063754006ae695ce2ab9d5573caae7d5d0aba201",
|
||||||
"hash": "4adc0e010fd62343583ca163c1b82e2085fcb221fafd68955685bb2e",
|
"hash": "05403d61b79f0933dc3608c4ed3385f44c37cd2088b513265a2ce306",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"Data": {
|
"Data": {
|
||||||
"title": "Data",
|
"title": "Data",
|
||||||
|
@ -890,8 +890,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/test_module~1Expr"
|
"$ref": "#/definitions/test_module~1Expr"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5901c701000032323232323232323232223253330074a22930b19918008009119299980499b87480000044c8c94ccc03cc044008526153300c4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e00260100042a66601266e1d20020011323232325333011301300213232498cc020020008cc01c01c00c54cc0392401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002300f0013008002153330093370e9002000899191919299980898098010991924c660100100046600e00e0062a6601c9201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002300f0013008002153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300a37540020046600200290001111199980319b8700100300b233330050053370000890011806800801001118029baa0015734ae7155ceaab9e5573eae855d101",
|
"compiledCode": "5901a00100003232323232323232223253330054a22930b19918008009119299980399b87480000044c8c94ccc034c03c008526153300a4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601a002600c0042a66600e66e1d2002001132323232533300f301100213232498cc020020008cc01c01c00c54cc0312401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d0013006002153330073370e9002000899191919299980798088010991924c660100100046600e00e0062a660189201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d001300600215330084912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300837540020044600a6ea80055cd2b9c5573aaae7955cfaba157441",
|
||||||
"hash": "e3d30c1599b2c29686f1053f6596f85116ee65556d1c2bcd4e354fcc",
|
"hash": "1a61e3a68ae6223fc9a78ce530942f29bfe6421a160edaa59ded5589",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"Int": {
|
"Int": {
|
||||||
"dataType": "integer"
|
"dataType": "integer"
|
||||||
|
@ -981,8 +981,8 @@ mod tests {
|
||||||
"$ref": "#/definitions/test_module~1LinkedList$Int"
|
"$ref": "#/definitions/test_module~1LinkedList$Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "590358010000323232323232323232323222232323232533300c4a22930b180100299919119299980719b87480000044c8c94ccc050c0580084c92630050011533011491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163014001300c0021533300e3370e9001000899191919299980b180c00109924c6464646600200200444a66603400229309919801801980e801191807000980d8009bac3016002375c60280022a660269201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163232337606030004603000260300026eb0c058004c058008dd6980a00098060010a99807a4812b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300c00130010012232533300d3370e9000000899191919299980a980b80109924c6600e00e0022a660249201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301500130150023370e900118081baa3013001300b0021533300d3370e90010008a99980898058010a4c2a6601c9211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300e4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300b00100530010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a66020921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630130013013002375a602200260120042a66601666e1d20020011533300f3009002149854cc03124011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300900133001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11",
|
"compiledCode": "59033101000032323232323232323222232323232533300a4a22930b180100299919119299980619b87480000044c8c94ccc048c0500084c9263005001153300f491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163012001300a0021533300c3370e9001000899191919299980a180b00109924c6464646600200200444a66603000229309919801801980d801191807000980c8009bac3014002375c60240022a660229201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016323233760602c004602c002602c0026eb0c050004c050008dd6980900098050010a99806a4812b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300a00130010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a660209201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301300130130023370e900118071baa301100130090021533300b3370e90010008a99980798048010a4c2a660189211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630090010053001001223253330093370e90000008991919192999808980980109924c6600e00e0022a6601c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163007001230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||||
"hash": "2250642962915ebe2fc08ad9cd0377f2a4b8c281d94f8bae6782fd63",
|
"hash": "1c89cc785bcdfb17a78bc9eb211ed79959c7488396525d7a485936ee",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"Bool": {
|
"Bool": {
|
||||||
"title": "Bool",
|
"title": "Bool",
|
||||||
|
|
|
@ -3,7 +3,7 @@ use pretty_assertions::assert_eq;
|
||||||
use aiken_lang::ast::{Definition, Function, TypedFunction, TypedValidator};
|
use aiken_lang::ast::{Definition, Function, TypedFunction, TypedValidator};
|
||||||
use uplc::{
|
use uplc::{
|
||||||
ast::{Constant, Data, DeBruijn, Name, Program, Term, Type},
|
ast::{Constant, Data, DeBruijn, Name, Program, Term, Type},
|
||||||
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_GET_FIELD, CONSTR_INDEX_EXPOSER},
|
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER},
|
||||||
machine::cost_model::ExBudget,
|
machine::cost_model::ExBudget,
|
||||||
optimize,
|
optimize,
|
||||||
};
|
};
|
||||||
|
@ -1037,8 +1037,7 @@ fn acceptance_test_10_map_none() {
|
||||||
)
|
)
|
||||||
.apply(Term::Constant(
|
.apply(Term::Constant(
|
||||||
Constant::Data(Data::constr(1, vec![])).into(),
|
Constant::Data(Data::constr(1, vec![])).into(),
|
||||||
))
|
)),
|
||||||
.constr_get_field(),
|
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1120,8 +1119,7 @@ fn acceptance_test_10_map_some() {
|
||||||
)
|
)
|
||||||
.apply(Term::Constant(
|
.apply(Term::Constant(
|
||||||
Constant::Data(Data::constr(0, vec![Data::integer(2.into())])).into(),
|
Constant::Data(Data::constr(0, vec![Data::integer(2.into())])).into(),
|
||||||
))
|
)),
|
||||||
.constr_get_field(),
|
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1621,38 +1619,6 @@ fn acceptance_test_18_or_else() {
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
.apply(Term::unconstr_data().apply(Term::var("x")))
|
.apply(Term::unconstr_data().apply(Term::var("x")))
|
||||||
.lambda("x"),
|
.lambda("x"),
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg".to_string()))
|
|
||||||
.apply(Term::var("__current_arg_number".to_string()))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -1723,38 +1689,6 @@ fn acceptance_test_19_map_none_wrap_int() {
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
.apply(Term::unconstr_data().apply(Term::var("x")))
|
.apply(Term::unconstr_data().apply(Term::var("x")))
|
||||||
.lambda("x"),
|
.lambda("x"),
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg".to_string()))
|
|
||||||
.apply(Term::var("__current_arg_number".to_string()))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -1826,38 +1760,6 @@ fn acceptance_test_19_map_wrap_void() {
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
.apply(Term::unconstr_data().apply(Term::var("x")))
|
.apply(Term::unconstr_data().apply(Term::var("x")))
|
||||||
.lambda("x"),
|
.lambda("x"),
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg".to_string()))
|
|
||||||
.apply(Term::var("__current_arg_number".to_string()))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -1934,8 +1836,7 @@ fn acceptance_test_20_map_some() {
|
||||||
.apply(Term::Constant(
|
.apply(Term::Constant(
|
||||||
Constant::Data(Data::constr(0, vec![Data::integer(15.into())])).into(),
|
Constant::Data(Data::constr(0, vec![Data::integer(15.into())])).into(),
|
||||||
))
|
))
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer(),
|
||||||
.constr_get_field(),
|
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2054,7 +1955,6 @@ fn acceptance_test_22_filter_map() {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.apply(Term::list_data().apply(Term::empty_list()))
|
.apply(Term::list_data().apply(Term::empty_list()))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -2280,7 +2180,6 @@ fn acceptance_test_24_map2() {
|
||||||
))
|
))
|
||||||
.into(),
|
.into(),
|
||||||
))
|
))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -2887,11 +2786,12 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(
|
.apply(
|
||||||
Term::un_i_data().apply(
|
Term::un_i_data().apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
|
.apply(Term::var("__fields"))
|
||||||
|
.lambda("__fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("a")),
|
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("a")),
|
||||||
)
|
),
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.apply(Term::var("x"))
|
.apply(Term::var("x"))
|
||||||
|
@ -3065,38 +2965,6 @@ fn when_tuple_deconstruction() {
|
||||||
.lambda("ctx")
|
.lambda("ctx")
|
||||||
.lambda("red")
|
.lambda("red")
|
||||||
.lambda("dat")
|
.lambda("dat")
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg".to_string()))
|
|
||||||
.apply(Term::var("__current_arg_number".to_string()))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_FIELDS_EXPOSER)
|
.lambda(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(
|
.apply(
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
|
@ -3359,38 +3227,6 @@ fn generic_validator_type_test() {
|
||||||
)
|
)
|
||||||
.lambda("_ctx")
|
.lambda("_ctx")
|
||||||
.lambda("r")
|
.lambda("r")
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg".to_string()))
|
|
||||||
.apply(Term::var("__current_arg_number".to_string()))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_FIELDS_EXPOSER)
|
.lambda(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(
|
.apply(
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
|
@ -3526,12 +3362,18 @@ fn record_update_output_2_vals() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
|
.apply(
|
||||||
|
Term::tail_list().apply(
|
||||||
|
Term::tail_list()
|
||||||
|
.apply(Term::var("__fields")),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.lambda("__fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("prev_output")),
|
.apply(Term::var("prev_output")),
|
||||||
)
|
),
|
||||||
.apply(Term::integer(2.into())),
|
|
||||||
)
|
)
|
||||||
.apply(Term::var("tail_index_3")),
|
.apply(Term::var("tail_index_3")),
|
||||||
),
|
),
|
||||||
|
@ -3560,7 +3402,6 @@ fn record_update_output_2_vals() {
|
||||||
Data::constr(1, vec![]),
|
Data::constr(1, vec![]),
|
||||||
],
|
],
|
||||||
)))
|
)))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -3624,12 +3465,18 @@ fn record_update_output_1_val() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
|
.apply(
|
||||||
|
Term::tail_list().apply(
|
||||||
|
Term::tail_list()
|
||||||
|
.apply(Term::var("__fields")),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.lambda("__fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("prev_output")),
|
.apply(Term::var("prev_output")),
|
||||||
)
|
),
|
||||||
.apply(Term::integer(2.into())),
|
|
||||||
)
|
)
|
||||||
.apply(Term::var("tail_index_3")),
|
.apply(Term::var("tail_index_3")),
|
||||||
),
|
),
|
||||||
|
@ -3657,7 +3504,6 @@ fn record_update_output_1_val() {
|
||||||
Data::constr(1, vec![]),
|
Data::constr(1, vec![]),
|
||||||
],
|
],
|
||||||
)))
|
)))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -3756,7 +3602,6 @@ fn record_update_output_first_last_val() {
|
||||||
Data::constr(1, vec![]),
|
Data::constr(1, vec![]),
|
||||||
],
|
],
|
||||||
)))
|
)))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -3823,7 +3668,6 @@ fn list_fields_unwrap() {
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
||||||
)
|
)
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -3930,12 +3774,13 @@ fn foldl_type_mismatch() {
|
||||||
.delayed_if_else(
|
.delayed_if_else(
|
||||||
Term::equals_data()
|
Term::equals_data()
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
|
.apply(Term::var("__fields"))
|
||||||
|
.lambda("__fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("o")),
|
.apply(Term::var("o")),
|
||||||
)
|
),
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
)
|
||||||
.apply(Term::var("addr1"))
|
.apply(Term::var("addr1"))
|
||||||
.delayed_if_else(
|
.delayed_if_else(
|
||||||
|
@ -3997,7 +3842,6 @@ fn foldl_type_mismatch() {
|
||||||
Data::constr(1, vec![]),
|
Data::constr(1, vec![]),
|
||||||
],
|
],
|
||||||
)))
|
)))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -5066,7 +4910,6 @@ fn list_clause_with_assign2() {
|
||||||
vec![Data::integer(1.into())],
|
vec![Data::integer(1.into())],
|
||||||
)])))
|
)])))
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_get_field()
|
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -5131,9 +4974,10 @@ fn opaque_value_in_datum() {
|
||||||
.lambda("val")
|
.lambda("val")
|
||||||
.apply(
|
.apply(
|
||||||
Term::unmap_data().apply(
|
Term::unmap_data().apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat")))
|
.apply(Term::tail_list().apply(Term::var("__fields")))
|
||||||
.apply(Term::integer(1.into())),
|
.lambda("__fields")
|
||||||
|
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.delayed_if_else(Term::unit(), Term::Error)
|
.delayed_if_else(Term::unit(), Term::Error)
|
||||||
|
@ -5227,7 +5071,6 @@ fn opaque_value_in_datum() {
|
||||||
.lambda("ctx")
|
.lambda("ctx")
|
||||||
.lambda("red")
|
.lambda("red")
|
||||||
.lambda("dat")
|
.lambda("dat")
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -5300,9 +5143,10 @@ fn opaque_value_in_test() {
|
||||||
.lambda("val")
|
.lambda("val")
|
||||||
.apply(
|
.apply(
|
||||||
Term::unmap_data().apply(
|
Term::unmap_data().apply(
|
||||||
Term::var(CONSTR_GET_FIELD)
|
Term::head_list()
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat")))
|
.apply(Term::tail_list().apply(Term::var("__fields")))
|
||||||
.apply(Term::integer(1.into())),
|
.lambda("__fields")
|
||||||
|
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.lambda("dat")
|
.lambda("dat")
|
||||||
|
@ -5330,7 +5174,6 @@ fn opaque_value_in_test() {
|
||||||
)]))
|
)]))
|
||||||
.into(),
|
.into(),
|
||||||
)]))
|
)]))
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -5361,7 +5204,6 @@ fn expect_none() {
|
||||||
.apply(Term::Constant(
|
.apply(Term::Constant(
|
||||||
Constant::Data(Data::constr(1, vec![])).into(),
|
Constant::Data(Data::constr(1, vec![])).into(),
|
||||||
))
|
))
|
||||||
.constr_get_field()
|
|
||||||
.constr_index_exposer()
|
.constr_index_exposer()
|
||||||
.constr_fields_exposer(),
|
.constr_fields_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -5584,7 +5426,6 @@ fn tuple_2_match() {
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
||||||
)
|
)
|
||||||
.constr_get_field()
|
|
||||||
.constr_fields_exposer()
|
.constr_fields_exposer()
|
||||||
.constr_index_exposer(),
|
.constr_index_exposer(),
|
||||||
false,
|
false,
|
||||||
|
|
|
@ -6,7 +6,6 @@ use pallas_primitives::alonzo::PlutusData;
|
||||||
|
|
||||||
pub const CONSTR_FIELDS_EXPOSER: &str = "__constr_fields_exposer";
|
pub const CONSTR_FIELDS_EXPOSER: &str = "__constr_fields_exposer";
|
||||||
pub const CONSTR_INDEX_EXPOSER: &str = "__constr_index_exposer";
|
pub const CONSTR_INDEX_EXPOSER: &str = "__constr_index_exposer";
|
||||||
pub const CONSTR_GET_FIELD: &str = "__constr_get_field";
|
|
||||||
pub const EXPECT_ON_LIST: &str = "__expect_on_list";
|
pub const EXPECT_ON_LIST: &str = "__expect_on_list";
|
||||||
|
|
||||||
impl<T> Term<T> {
|
impl<T> Term<T> {
|
||||||
|
@ -343,39 +342,4 @@ impl Term<Name> {
|
||||||
.lambda("__constr_var"),
|
.lambda("__constr_var"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn constr_get_field(self) -> Self {
|
|
||||||
self.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(Term::integer(0.into())),
|
|
||||||
)
|
|
||||||
.lambda(CONSTR_GET_FIELD)
|
|
||||||
.apply(
|
|
||||||
Term::equals_integer()
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.if_else(
|
|
||||||
Term::head_list(),
|
|
||||||
Term::var(CONSTR_GET_FIELD)
|
|
||||||
.apply(Term::var(CONSTR_GET_FIELD))
|
|
||||||
.apply(
|
|
||||||
Term::add_integer()
|
|
||||||
.apply(Term::var("__current_arg_number"))
|
|
||||||
.apply(Term::integer(1.into())),
|
|
||||||
)
|
|
||||||
.apply(
|
|
||||||
Term::tail_list().apply(Term::var("__current_list_of_constr_args")),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__wanted_arg"))
|
|
||||||
.lambda("__current_list_of_constr_args"),
|
|
||||||
)
|
|
||||||
.apply(Term::var("__list_of_constr_args"))
|
|
||||||
.lambda("__wanted_arg")
|
|
||||||
.lambda("__list_of_constr_args")
|
|
||||||
.lambda("__current_arg_number")
|
|
||||||
.lambda(CONSTR_GET_FIELD),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677318, nanos_since_epoch = 215908000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840496, nanos_since_epoch = 265204000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compiledCode": "58bd010000323232323232323232322225333007323253330093370e9000000899251300800214a060126ea8004cc88c8cc00400400c894ccc038004530103d87a800013232533300d300500213374a90001980880125eb804cc010010004c048008c040004dd6198021803198021803000a40009000119baf330053007001480000105261633001001480008888cccc018cdc38008018059199980280299b8000448008c0340040080088c010dd5000ab9a5573aaae7955cfaba05742ae89",
|
"compiledCode": "589301000032323232323232322225333005323253330073370e9000000899251300600214a0600e6ea8004c8cc88c8cc00400400c894ccc034004530103d87a800013232533300c300500213374a90001980800125eb804cc010010004c044008c03c004dd61800980298009802801119baf300230060010052300b0011498588c010dd5000ab9a5573aaae7955cfaba05742ae89",
|
||||||
"hash": "6fb52a7202693c79ade162f62fdceb489aea252470415159a72393ca"
|
"hash": "c61366901c3ce71f6b34beda5ce1a90f6f7a73e83362821a142cc406"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "spend.spend",
|
"title": "spend.spend",
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
"$ref": "#/definitions/Data"
|
"$ref": "#/definitions/Data"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "59010f01000032323232323232323232222533300732323300100100222533300d00114a026464a66601864646466601e00294128a9998088008a5114a06464a66601e66e1d200200114bd6f7b6300991bab3015001300e002300f3754002646600200200444a666024002298103d87a800013232323253330133371e9110500000000000000213374a90001980b9ba60014bd700998030030019bab3014003375c6024004602c00460280026eaccc024c02c009200214a22660080080026022004601e0026eb0cc010c018cc010c0180052000480105261633001001480008888cccc018cdc38008018059199980280299b8000448008c0340040080088c010dd5000ab9a5573aaae7955cfaba05742ae89",
|
"compiledCode": "58ee0100003232323232323232222533300532323300100100222533300b00114a026464a66601464646466601a00294128a9998078008a5114a06464a66601a66e1d200200114bd6f7b6300991bab3013001300c002300d3754002646600200200444a666020002298103d87a800013232323253330113371e9110500000000000000213374a90001980a9ba60014bd700998030030019bab3012003375c6020004602800460240026eacc8c040c044004c024008528899802002000980780118068009bac32300b300c300c001300432300b00130040011498588c010dd5000ab9a5573aaae7955cfaba05742ae881",
|
||||||
"hash": "9664feff1ec29e5337417b0f81643a666e02387f4ef4df628d2319da"
|
"hash": "c0b973c5ab4aca21277e722b046317e59fd1876451cb06f3cf936675"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677315, nanos_since_epoch = 284801000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840494, nanos_since_epoch = 72017000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677319, nanos_since_epoch = 110150000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840497, nanos_since_epoch = 295242000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677332, nanos_since_epoch = 434414000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840508, nanos_since_epoch = 349782000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677319, nanos_since_epoch = 71300000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840497, nanos_since_epoch = 309291000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677334, nanos_since_epoch = 523082000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840511, nanos_since_epoch = 307949000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677333, nanos_since_epoch = 543959000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840510, nanos_since_epoch = 456603000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677312, nanos_since_epoch = 307959000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840490, nanos_since_epoch = 68183000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/spend~1PoolRedeemer"
|
"$ref": "#/definitions/spend~1PoolRedeemer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5903560100003232323232323232323232222323232533300b3232533300d3370e9000000899251300b00213232323253330113370e9001002899191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c66016028008603e002602e0022c66012022002601491101ff00301b001301300214a060260026601e60220189001180b8009807803099191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c66016028008603e002602e0022c660120220026014910101ff00301b001301300214a060260026601e60220189001180b800980780311198021bac3300e30103300e301000248001200023375e6601e60226601e602200290012400000444660066eb0cc034c03ccc034c03c0092000480108cdd7998071808000a400000444646600200200644a66602a002298103d87a8000132325333014300500213374a90001980c00125eb804cc010010004c064008c05c0048cdd2a40006602466e95200233012375200297ae0330124c103d87a80004bd701805800998039804802a40002930b19299980599b87480000044c8c94ccc040c04c0084c92632533300e3370e9000000899192999809980b0010a4c2c6eb4c050004c03000854ccc038cdc3a400400226464a666026602c0042649319299980899b87480000044c8c8c8c94ccc060c06c0084c926300d00316375a60320026032004602e002601e0042c601e0022c602800260180042a66601c66e1d20040011323253330133016002132498c94ccc044cdc3a4000002264646464a66603060360042649318068018b1bad301900130190023017001300f00216300f001163014001300c00216300c001163011001300900516300900432533300a3370e900000089919191919192999809980b00109924c601000a2c6eb4c050004c050008dd698090009809001180800098040028b1804002119299980519b87480000044c8c8c8c94ccc044c05000852616375c602400260240046eb8c040004c02000858c020004cc0040052000222233330073370e0020060184666600a00a66e000112002300e001002002230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441",
|
"compiledCode": "5903260100003232323232323232322223232325333009323232533300c3370e9000000899251300a0021323232323253330113370e9001003099191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c6601602c008603e002602e0022c66014026002601691101ff00301b001301300214a060260026008602201c602e002601e00e264646464a66602a66e1d200200113232323253330193370e9000180c0008991919299980e19b8748000c06c0044c8c9289811000980d0008b1980580b002180f800980b8008b198050098009805a44101ff00301b001301300214a060260026008602201c602e002601e00e446600a6eb0c024c040c024c0400088cdd798051808980218088008011180a980b00091198019bac32301630173017001300e3007300e00223375e6010601e00200444646600200200644a6660280022980103d87a8000132325333013300500213374a90001980b80125eb804cc010010004c060008c0580048cdd2a40006602266e95200233011375200297ae0330114c103d87a80004bd70180500098009804003118078008a4c2c64a66601266e1d200000113232533300e3011002132498c94ccc030cdc3a400000226464a66602260280042930b1bad3012001300a0021533300c3370e9001000899192999808980a00109924c64a66601e66e1d200000113232323253330163019002132498c03400c58dd6980b800980b801180a80098068010b18068008b180900098050010a99980619b87480100044c8c94ccc044c0500084c92632533300f3370e9000000899191919299980b180c80109924c601a0062c6eb4c05c004c05c008c054004c03400858c03400458c048004c02800858c02800458c03c004c01c01458c01c010c94ccc020cdc3a40000022646464646464a66602260280042649318040028b1bad30120013012002375a60200026020004601c002600c00a2c600c008464a66601066e1d2000001132323232533300f3012002149858dd7180800098080011bae300e0013006002163006001230053754002460066ea80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
"hash": "643ecd1a1abdd7fddc4e2f556a70212ecd053a24d474ea6de173b65c"
|
"hash": "2e10899564da25a5df93da626395b94ce71baa9ca3d6419d23838462"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677326, nanos_since_epoch = 227348000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840504, nanos_since_epoch = 161718000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677324, nanos_since_epoch = 471629000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840501, nanos_since_epoch = 554952000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677311, nanos_since_epoch = 397711000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840489, nanos_since_epoch = 773267000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compiledCode": "5901f4010000323232323232323232323223222232533300b32323232533300f3370e9000180700089919191919191919191919299980e98100010991919299980e99b874800000454ccc074c8cc004004030894ccc08800452809919299981099baf3301d301f00248000068528899802002000981300118120008a99980e99b87002480084cdc780180b8a501616301b014375a603a0046eb8c06c00458c078004c8c8c94ccc06ccdc3a4004002297adef6c601323756604200260320046032002646600200200444a66603c0022980103d87a8000132323232533301f3371e01e004266e95200033023374c00297ae0133006006003375660400066eb8c078008c088008c080004c8cc004004008894ccc07400452f5bded8c0264646464a66603c66e3d221000021003133022337606ea4008dd3000998030030019bab301f003375c603a0046042004603e0026eacc070004c070004c06c004c068004c064008dd6180b80098078029bae3015001300d001163013001301300230110013009002149858c94ccc02ccdc3a40000022a66601c60120062930b0a99980599b874800800454ccc038c02400c52616163009002375c0026600200290001111199980399b8700100300c233330050053370000890011807000801001118029baa001230033754002ae6955ceaab9e5573eae815d0aba201",
|
"compiledCode": "5901cc01000032323232323232323223222232533300932323232533300d3370e9000180600089919191919191919191919299980d980f0010991919299980d99b874800000454ccc06cc8cc004004030894ccc08000452809919299980f99baf323025001301d00201a14a2266008008002604800460440022a66603666e1c009200213371e00602e29405858c064050dd6980d8011bae301900116301c00132323253330193370e90010008a5eb7bdb1804c8dd5980f800980b801180b800991980080080111299980e0008a6103d87a8000132323232533301d3371e01e004266e95200033021374c00297ae01330060060033756603c0066eb8c070008c080008c078004c8cc004004008894ccc06c00452f5bded8c0264646464a66603866e3d221000021003133020337606ea4008dd3000998030030019bab301d003375c6036004603e004603a0026eacc068004c068004c064004c060004c05c008dd6180a80098068029bae3013001300b0011630110013011002300f0013007002149858c94ccc024cdc3a40000022a666018600e0062930b0a99980499b874800800454ccc030c01c00c52616163007002375c0024600a6ea80048c00cdd5000ab9a5573aaae7955cfaba05742ae881",
|
||||||
"hash": "d9923c678f323fa0aa77a78dedc323df6686c54ba9ceb8a1baef639f"
|
"hash": "34024ee2cd32404d6ae0357a7065662b2fef2b4ac5a3b4978c659886"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/RedeemerWrapper$Int"
|
"$ref": "#/definitions/RedeemerWrapper$Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800020014815052616375a0066eb4010c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881",
|
"compiledCode": "5852010000323232322253330033370e900018021baa00113253330043370e002902a0a4c2c6eb40084c88c8c94ccc01ccdc399b800020014815052616375a0066eb4010c018c014dd5000ab9a5573aaae795d09",
|
||||||
"hash": "0c6e650e5630aedbe4ff5a2a9a441611e2766e28d5ca09e10b90ed64"
|
"hash": "62ff3d6f616ed3df935a8bc94c071204a1558a66b1c3f1ff78d58743"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "foo.mint",
|
"title": "foo.mint",
|
||||||
|
@ -30,8 +30,8 @@
|
||||||
"$ref": "#/definitions/Int"
|
"$ref": "#/definitions/Int"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800020014815052616375a0066eb4010c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881",
|
"compiledCode": "5852010000323232322253330033370e900018021baa00113253330043370e002902a0a4c2c6eb40084c88c8c94ccc01ccdc399b800020014815052616375a0066eb4010c018c014dd5000ab9a5573aaae795d09",
|
||||||
"hash": "0c6e650e5630aedbe4ff5a2a9a441611e2766e28d5ca09e10b90ed64"
|
"hash": "62ff3d6f616ed3df935a8bc94c071204a1558a66b1c3f1ff78d58743"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677312, nanos_since_epoch = 988170000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840491, nanos_since_epoch = 352045000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677311, nanos_since_epoch = 397762000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840489, nanos_since_epoch = 773332000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677311, nanos_since_epoch = 398456000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840489, nanos_since_epoch = 773293000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677312, nanos_since_epoch = 281240000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840490, nanos_since_epoch = 57347000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677327, nanos_since_epoch = 522535000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840504, nanos_since_epoch = 258871000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
"$ref": "#/definitions/Data"
|
"$ref": "#/definitions/Data"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compiledCode": "5901fd01000032323232323232323232222533300832323232533300c3370e9000000899251300a00214a06014002601c002600e008664464a66601666e1d20000011323253330103012002132498c94ccc038cdc3a400000226464a666026602a0042649319299980899b87480000044c8c94ccc058c0600084c9263253330143370e9000000899191919299980d980e8010991924c64a66603466e1d200000113232533301f3021002132498c94ccc074cdc3a400000226464a666044604800426493180b8008b1811000980d8010a99980e99b87480080044c8c8c8c8c8c94ccc098c0a000852616375a604c002604c0046eb4c090004c090008dd69811000980d8010b180d8008b180f800980c0018a99980d19b874800800454ccc074c06000c52616163018002301000316301b001301b00230190013012002163012001163016001300f00216300f001163013001300c0021533300e3370e90010008a99980898060010a4c2c2c60180022c602000260120042c6012002464a66601466e1d200000113232533300f3011002149858dd7180780098040010a99980519b87480080044c8c94ccc03cc04400852616375c601e00260100042c60100020062930b19800800a40004444666600e66e1c00400c02c8cccc014014cdc000224004601a0020040044600a6ea80048c00cdd5000ab9a5573aaae7955cfaba15745",
|
"compiledCode": "5901d70100003232323232323232222533300632323232533300a3370e9000000899251300800214a060100026018002600a008664464a66601266e1d200000113232533300e3010002132498c94ccc030cdc3a400000226464a66602260260042649319299980799b87480000044c8c94ccc050c0580084c9263253330123370e9000000899191919299980c980d8010991924c64a66603066e1d200000113232533301d301f002132498c94ccc06ccdc3a400000226464a666040604400426493180b8008b1810000980c8010a99980d99b87480080044c8c8c8c8c8c94ccc090c09800852616375a604800260480046eb4c088004c088008dd69810000980c8010b180c8008b180e800980b0018a99980c19b874800800454ccc06cc05800c526161630160023010003163019001301900230170013010002163010001163014001300d00216300d001163011001300a0021533300c3370e90010008a99980798050010a4c2c2c60140022c601c002600e0042c600e002464a66601066e1d200000113232533300d300f002149858dd7180680098030010a99980419b87480080044c8c94ccc034c03c00852616375c601a002600c0042c600c0020062930b118029baa001230033754002ae6955ceaab9e5573eae855d101",
|
||||||
"hash": "6a76fed919611638154fbaf78bd7a37f98b77e42eebc615f2d2d0f32"
|
"hash": "7e7ecf9b781a569346cec35b2eca37fe4557bf490db774201a1fd59e"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677324, nanos_since_epoch = 427027000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840500, nanos_since_epoch = 880736000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677327, nanos_since_epoch = 474167000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840504, nanos_since_epoch = 245807000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695677322, nanos_since_epoch = 534350000 }, "a5918f742d4589d2f5a91daf232eb03a2a0972a367ec0b016e9e8670e28c1b47"]
|
"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1695840500, nanos_since_epoch = 164711000 }, "b51eee18a909dea9f60ea6311a1667c36b89b1d6a33b19f12cde58311f150ad7"]
|
||||||
|
|
Loading…
Reference in New Issue