From 47596f032455752686194e35ffc46263755c009f Mon Sep 17 00:00:00 2001 From: microproofs Date: Wed, 27 Sep 2023 16:24:16 -0400 Subject: [PATCH] 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 --- crates/aiken-lang/src/gen_uplc.rs | 120 +++++---- crates/aiken-lang/src/gen_uplc/air.rs | 8 - crates/aiken-lang/src/gen_uplc/tree.rs | 123 +++------ .../aiken-project/src/blueprint/validator.rs | 24 +- crates/aiken-project/src/tests/gen_uplc.rs | 235 +++--------------- crates/uplc/src/builder.rs | 36 --- examples/acceptance_tests/036/aiken.lock | 2 +- examples/acceptance_tests/036/plutus.json | 8 +- examples/acceptance_tests/054/aiken.lock | 2 +- examples/acceptance_tests/055/aiken.lock | 2 +- examples/acceptance_tests/061/aiken.lock | 2 +- examples/acceptance_tests/063/aiken.lock | 2 +- examples/acceptance_tests/067/aiken.lock | 2 +- examples/acceptance_tests/068/aiken.lock | 2 +- examples/acceptance_tests/071/aiken.lock | 2 +- examples/acceptance_tests/071/plutus.json | 4 +- examples/acceptance_tests/072/aiken.lock | 2 +- examples/acceptance_tests/074/aiken.lock | 2 +- examples/acceptance_tests/077/aiken.lock | 2 +- examples/acceptance_tests/077/plutus.json | 4 +- examples/acceptance_tests/079/plutus.json | 8 +- examples/acceptance_tests/082/aiken.lock | 2 +- examples/acceptance_tests/083/aiken.lock | 2 +- examples/acceptance_tests/084/aiken.lock | 2 +- examples/acceptance_tests/085/aiken.lock | 2 +- examples/acceptance_tests/086/aiken.lock | 2 +- examples/acceptance_tests/086/plutus.json | 4 +- examples/acceptance_tests/087/aiken.lock | 2 +- examples/acceptance_tests/088/aiken.lock | 2 +- examples/acceptance_tests/089/aiken.lock | 2 +- 30 files changed, 191 insertions(+), 421 deletions(-) diff --git a/crates/aiken-lang/src/gen_uplc.rs b/crates/aiken-lang/src/gen_uplc.rs index f2fa669f..fec7b212 100644 --- a/crates/aiken-lang/src/gen_uplc.rs +++ b/crates/aiken-lang/src/gen_uplc.rs @@ -10,7 +10,7 @@ use indexmap::{IndexMap, IndexSet}; use itertools::Itertools; use uplc::{ 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, machine::cost_model::ExBudget, optimize::aiken_optimize_and_intern, @@ -22,7 +22,7 @@ use crate::{ AssignmentKind, BinOp, Pattern, Span, TypedArg, TypedClause, TypedDataType, TypedFunction, TypedPattern, TypedValidator, UnOp, }, - builtins::{bool, data, int, void}, + builtins::{bool, data, int, list, void}, expr::TypedExpr, gen_uplc::builder::{ 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) -> Program { if self.needs_field_access { - term = term - .constr_get_field() - .constr_fields_exposer() - .constr_index_exposer(); + term = term.constr_fields_exposer().constr_index_exposer(); } // 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) { self.build(record) } 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(), ), - TypedExpr::TupleIndex { index, tuple, .. } => { - AirTree::tuple_index(*index, tuple.tipo(), self.build(tuple)) + TypedExpr::TupleIndex { + 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()), @@ -3876,10 +3934,7 @@ impl<'a> CodeGenerator<'a> { ) { let mut term = self.uplc_code_gen(air_vec.clone()); - term = term - .constr_get_field() - .constr_fields_exposer() - .constr_index_exposer(); + term = term.constr_fields_exposer().constr_index_exposer(); let mut program: Program = Program { version: (1, 0, 0), @@ -4660,18 +4715,6 @@ impl<'a> CodeGenerator<'a> { 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 { indices, check_last_item, @@ -4931,33 +4974,6 @@ impl<'a> CodeGenerator<'a> { 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 { tipo, names, diff --git a/crates/aiken-lang/src/gen_uplc/air.rs b/crates/aiken-lang/src/gen_uplc/air.rs index d70cc1be..bda81734 100644 --- a/crates/aiken-lang/src/gen_uplc/air.rs +++ b/crates/aiken-lang/src/gen_uplc/air.rs @@ -147,10 +147,6 @@ pub enum Air { tipo: Rc, }, // Field Access - RecordAccess { - record_index: u64, - tipo: Rc, - }, FieldsExpose { indices: Vec<(usize, String, Rc)>, check_last_item: bool, @@ -173,10 +169,6 @@ pub enum Air { tipo: Rc, check_last_item: bool, }, - TupleIndex { - tipo: Rc, - tuple_index: usize, - }, // Misc. ErrorTerm { tipo: Rc, diff --git a/crates/aiken-lang/src/gen_uplc/tree.rs b/crates/aiken-lang/src/gen_uplc/tree.rs index 3273a971..e39fcc49 100644 --- a/crates/aiken-lang/src/gen_uplc/tree.rs +++ b/crates/aiken-lang/src/gen_uplc/tree.rs @@ -315,18 +315,6 @@ pub enum AirExpression { record: Box, args: Vec, }, - // Field Access - RecordAccess { - field_index: u64, - tipo: Rc, - record: Box, - }, - // Tuple Access - TupleIndex { - tipo: Rc, - tuple_index: usize, - tuple: Box, - }, // Misc. ErrorTerm { tipo: Rc, @@ -684,12 +672,33 @@ impl AirTree { args, }) } - pub fn record_access(field_index: u64, tipo: Rc, record: AirTree) -> AirTree { - AirTree::Expression(AirExpression::RecordAccess { - field_index, - tipo, - record: record.into(), - }) + pub fn index_access(function_name: String, tipo: Rc, list_of_fields: AirTree) -> AirTree { + AirTree::cast_from_data( + AirTree::call( + AirTree::var( + 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( @@ -754,12 +763,19 @@ impl AirTree { hoisted_over: None, } } - pub fn tuple_index(tuple_index: usize, tipo: Rc, tuple: AirTree) -> AirTree { - AirTree::Expression(AirExpression::TupleIndex { - tipo, - tuple_index, - tuple: tuple.into(), - }) + pub fn pair_index(index: usize, tipo: Rc, tuple: AirTree) -> AirTree { + AirTree::cast_from_data( + AirTree::builtin( + if index == 0 { + DefaultFunction::FstPair + } else { + DefaultFunction::SndPair + }, + data(), + vec![tuple], + ), + tipo.clone(), + ) } pub fn error(tipo: Rc) -> AirTree { AirTree::Expression(AirExpression::ErrorTerm { tipo }) @@ -1241,28 +1257,6 @@ impl AirTree { 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 } => { air_vec.push(Air::ErrorTerm { tipo: tipo.clone() }) } @@ -1300,8 +1294,6 @@ impl AirTree { | AirExpression::If { tipo, .. } | AirExpression::Constr { tipo, .. } | AirExpression::RecordUpdate { tipo, .. } - | AirExpression::RecordAccess { tipo, .. } - | AirExpression::TupleIndex { tipo, .. } | AirExpression::ErrorTerm { tipo } | AirExpression::Trace { tipo, .. } => tipo.clone(), AirExpression::Void => void(), @@ -1351,9 +1343,7 @@ impl AirTree { | AirExpression::CastFromData { tipo, .. } | AirExpression::CastToData { tipo, .. } | AirExpression::If { tipo, .. } - | AirExpression::RecordAccess { tipo, .. } | AirExpression::Constr { tipo, .. } - | AirExpression::TupleIndex { tipo, .. } | AirExpression::ErrorTerm { tipo } | AirExpression::Trace { tipo, .. } => vec![tipo], 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, .. } => { msg.do_traverse_tree_with( tree_path, @@ -2170,21 +2142,6 @@ impl AirTree { 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, .. } => { if *index == 0 { msg.as_mut().do_find_air_tree_node(tree_path_iter) diff --git a/crates/aiken-project/src/blueprint/validator.rs b/crates/aiken-project/src/blueprint/validator.rs index 0caf55a8..aad82bd2 100644 --- a/crates/aiken-project/src/blueprint/validator.rs +++ b/crates/aiken-project/src/blueprint/validator.rs @@ -455,8 +455,8 @@ mod tests { "$ref": "#/definitions/test_module~1Input" } }, - "compiledCode": "59029101000032323232323232323232322223232533300a4a22930b19299980519b874800000454ccc038c020010526153300b4911d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300a3370e90010008a99980718040020a4c2a6601692011d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300a3370e90020008a99980718040020a4c2a6601692011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300b4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630080033253330093370e900000089919191919192999809980a8010991924c646600200200a44a66602c00229309919801801980c801191bae00130170013253330103370e900000089919299980b180c0010a4c2a660269201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602c002601c00c2a660229212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00515330104901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602600260260046eb0c044004c044008c03c004c01c01054cc0292412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300700333001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11", - "hash": "401a6c4bac4f3554a9bbe260aa12d2eec8c97bf903d23cd6ad426d1e", + "compiledCode": "59026a010000323232323232323232222323253330084a22930b19299980419b874800000454ccc030c01801052615330094911d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90010008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90020008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e737472001615330094912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630060033253330073370e90000008991919191919299980898098010991924c646600200200a44a66602800229309919801801980b801191bae001301500132533300e3370e900000089919299980a180b0010a4c2a660229201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a6028002601800c2a6601e9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300c005153300e4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602200260220046eb0c03c004c03c008c034004c01401054cc0212412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163005003230063754002460086ea80055cd2b9c5573aaae7955cfaba15745", + "hash": "fabdc2d41f23663983001520513a703bcaf015e33947764c4f65c2c8", "definitions": { "ByteArray": { "dataType": "bytes" @@ -636,8 +636,8 @@ mod tests { "$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int" } }, - "compiledCode": "59020a0100003232323232323232323232223253330084a22930b19299980419b87480000044c8c94ccc038c040008526153300b4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601c002600c0062a66601066e1d200200113232533300e3010002132498c94ccc02ccdc3a400000226464a66602260260042930a99807249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602200260120042a66601666e1d20020011533300f3009002149854cc03124011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163009001153300b4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300e001300600315330094912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300600233001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11", - "hash": "8439b07179746c195c7631777b49e48c2931887547e3258f5f4a59f0", + "compiledCode": "5901e3010000323232323232323232223253330064a22930b19299980319b87480000044c8c94ccc030c03800852615330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601800260080062a66600c66e1d200200113232533300c300e002132498c94ccc024cdc3a400000226464a66601e60220042930a99806249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300700115330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300c001300400315330074912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163004002230063754002460086ea80055cd2b9c5573aaae7955cfaba15745", + "hash": "b32c4cd46fa64739cddbd05cc35fef9bfc702b4c8ad8ac332a4e699c", "definitions": { "ByteArray": { "dataType": "bytes" @@ -720,8 +720,8 @@ mod tests { "$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int" } }, - "compiledCode": "590106010000323232323232323232223253330064a22930b19299980319b87480000044c8c94ccc030c0380084c926323300100100222533300e00114984c8cc00c00cc044008c8c8dd698078011bae300d001300f0011533009491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163756601800260126ea800c54cc01d2412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300737540046600200290001111199980299b8700100300a2333300500533700008900118060008010012b9a5738aae7555cf2ab9f5742ae89", - "hash": "683885e262c8857f80788a1626c1a327267d85cb49e08382288933b2", + "compiledCode": "58e001000032323232323232223253330044a22930b19299980219b87480000044c8c94ccc028c0300084c926323300100100222533300c00114984c8cc00c00cc03c008c8c8dd698068011bae300b001300d0011533007491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001637566014002600e6ea800c54cc0152412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630053754004ae695ce2ab9d5573caae7d5d0aba201", + "hash": "1caa2519f38c63dfc5e3a457d1a06e57848628f5a2495b04afb64cba", "definitions": { "ByteArray": { "dataType": "bytes" @@ -835,8 +835,8 @@ mod tests { "$ref": "#/definitions/Int" } }, - "compiledCode": "58e1010000323232323232323232222323253330084a22930b1bad0033253330073370e900000089919299980698078010a4c2a660149201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300d001300a37540082a660109212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300837540066600200290001111199980299b8700100300a2333300500533700008900118060008010012b9a5738aae7555cf2ab9f5742ae89", - "hash": "4adc0e010fd62343583ca163c1b82e2085fcb221fafd68955685bb2e", + "compiledCode": "58bb01000032323232323232222323253330064a22930b1bad0033253330053370e900000089919299980598068010a4c2a660109201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300b001300837540082a6600c9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630063754006ae695ce2ab9d5573caae7d5d0aba201", + "hash": "05403d61b79f0933dc3608c4ed3385f44c37cd2088b513265a2ce306", "definitions": { "Data": { "title": "Data", @@ -890,8 +890,8 @@ mod tests { "$ref": "#/definitions/test_module~1Expr" } }, - "compiledCode": "5901c701000032323232323232323232223253330074a22930b19918008009119299980499b87480000044c8c94ccc03cc044008526153300c4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e00260100042a66601266e1d20020011323232325333011301300213232498cc020020008cc01c01c00c54cc0392401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002300f0013008002153330093370e9002000899191919299980898098010991924c660100100046600e00e0062a6601c9201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002300f0013008002153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300a37540020046600200290001111199980319b8700100300b233330050053370000890011806800801001118029baa0015734ae7155ceaab9e5573eae855d101", - "hash": "e3d30c1599b2c29686f1053f6596f85116ee65556d1c2bcd4e354fcc", + "compiledCode": "5901a00100003232323232323232223253330054a22930b19918008009119299980399b87480000044c8c94ccc034c03c008526153300a4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601a002600c0042a66600e66e1d2002001132323232533300f301100213232498cc020020008cc01c01c00c54cc0312401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d0013006002153330073370e9002000899191919299980798088010991924c660100100046600e00e0062a660189201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d001300600215330084912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300837540020044600a6ea80055cd2b9c5573aaae7955cfaba157441", + "hash": "1a61e3a68ae6223fc9a78ce530942f29bfe6421a160edaa59ded5589", "definitions": { "Int": { "dataType": "integer" @@ -981,8 +981,8 @@ mod tests { "$ref": "#/definitions/test_module~1LinkedList$Int" } }, - "compiledCode": "590358010000323232323232323232323222232323232533300c4a22930b180100299919119299980719b87480000044c8c94ccc050c0580084c92630050011533011491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163014001300c0021533300e3370e9001000899191919299980b180c00109924c6464646600200200444a66603400229309919801801980e801191807000980d8009bac3016002375c60280022a660269201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163232337606030004603000260300026eb0c058004c058008dd6980a00098060010a99807a4812b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300c00130010012232533300d3370e9000000899191919299980a980b80109924c6600e00e0022a660249201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301500130150023370e900118081baa3013001300b0021533300d3370e90010008a99980898058010a4c2a6601c9211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300e4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300b00100530010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a66020921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630130013013002375a602200260120042a66601666e1d20020011533300f3009002149854cc03124011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300900133001001480008888cccc01ccdc38008018061199980280299b8000448008c0380040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae855d11", - "hash": "2250642962915ebe2fc08ad9cd0377f2a4b8c281d94f8bae6782fd63", + "compiledCode": "59033101000032323232323232323222232323232533300a4a22930b180100299919119299980619b87480000044c8c94ccc048c0500084c9263005001153300f491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163012001300a0021533300c3370e9001000899191919299980a180b00109924c6464646600200200444a66603000229309919801801980d801191807000980c8009bac3014002375c60240022a660229201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016323233760602c004602c002602c0026eb0c050004c050008dd6980900098050010a99806a4812b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300a00130010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a660209201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301300130130023370e900118071baa301100130090021533300b3370e90010008a99980798048010a4c2a660189211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630090010053001001223253330093370e90000008991919192999808980980109924c6600e00e0022a6601c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163007001230063754002460086ea80055cd2b9c5573aaae7955cfaba15745", + "hash": "1c89cc785bcdfb17a78bc9eb211ed79959c7488396525d7a485936ee", "definitions": { "Bool": { "title": "Bool", diff --git a/crates/aiken-project/src/tests/gen_uplc.rs b/crates/aiken-project/src/tests/gen_uplc.rs index f5fd79f8..3a87a4ce 100644 --- a/crates/aiken-project/src/tests/gen_uplc.rs +++ b/crates/aiken-project/src/tests/gen_uplc.rs @@ -3,7 +3,7 @@ use pretty_assertions::assert_eq; use aiken_lang::ast::{Definition, Function, TypedFunction, TypedValidator}; use uplc::{ 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, optimize, }; @@ -1037,8 +1037,7 @@ fn acceptance_test_10_map_none() { ) .apply(Term::Constant( Constant::Data(Data::constr(1, vec![])).into(), - )) - .constr_get_field(), + )), false, ); } @@ -1120,8 +1119,7 @@ fn acceptance_test_10_map_some() { ) .apply(Term::Constant( Constant::Data(Data::constr(0, vec![Data::integer(2.into())])).into(), - )) - .constr_get_field(), + )), false, ); } @@ -1621,38 +1619,6 @@ fn acceptance_test_18_or_else() { Term::snd_pair() .apply(Term::unconstr_data().apply(Term::var("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, ); @@ -1723,38 +1689,6 @@ fn acceptance_test_19_map_none_wrap_int() { Term::snd_pair() .apply(Term::unconstr_data().apply(Term::var("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, ); @@ -1826,38 +1760,6 @@ fn acceptance_test_19_map_wrap_void() { Term::snd_pair() .apply(Term::unconstr_data().apply(Term::var("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, ); @@ -1934,8 +1836,7 @@ fn acceptance_test_20_map_some() { .apply(Term::Constant( Constant::Data(Data::constr(0, vec![Data::integer(15.into())])).into(), )) - .constr_fields_exposer() - .constr_get_field(), + .constr_fields_exposer(), false, ); } @@ -2054,7 +1955,6 @@ fn acceptance_test_22_filter_map() { ), ) .apply(Term::list_data().apply(Term::empty_list())) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -2280,7 +2180,6 @@ fn acceptance_test_24_map2() { )) .into(), )) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -2887,11 +2786,12 @@ fn when_tuple_deconstruction() { Term::equals_integer() .apply( Term::un_i_data().apply( - Term::var(CONSTR_GET_FIELD) + Term::head_list() + .apply(Term::var("__fields")) + .lambda("__fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("a")), - ) - .apply(Term::integer(0.into())), + ), ), ) .apply(Term::var("x")) @@ -3065,38 +2965,6 @@ fn when_tuple_deconstruction() { .lambda("ctx") .lambda("red") .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) .apply( Term::snd_pair() @@ -3359,38 +3227,6 @@ fn generic_validator_type_test() { ) .lambda("_ctx") .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) .apply( Term::snd_pair() @@ -3526,12 +3362,18 @@ fn record_update_output_2_vals() { .apply( Term::mk_cons() .apply( - Term::var(CONSTR_GET_FIELD) + Term::head_list() + .apply( + Term::tail_list().apply( + Term::tail_list() + .apply(Term::var("__fields")), + ), + ) + .lambda("__fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("prev_output")), - ) - .apply(Term::integer(2.into())), + ), ) .apply(Term::var("tail_index_3")), ), @@ -3560,7 +3402,6 @@ fn record_update_output_2_vals() { Data::constr(1, vec![]), ], ))) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -3624,12 +3465,18 @@ fn record_update_output_1_val() { .apply( Term::mk_cons() .apply( - Term::var(CONSTR_GET_FIELD) + Term::head_list() + .apply( + Term::tail_list().apply( + Term::tail_list() + .apply(Term::var("__fields")), + ), + ) + .lambda("__fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("prev_output")), - ) - .apply(Term::integer(2.into())), + ), ) .apply(Term::var("tail_index_3")), ), @@ -3657,7 +3504,6 @@ fn record_update_output_1_val() { Data::constr(1, vec![]), ], ))) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -3756,7 +3602,6 @@ fn record_update_output_first_last_val() { Data::constr(1, vec![]), ], ))) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -3823,7 +3668,6 @@ fn list_fields_unwrap() { Term::bool(true), Term::bool(true).if_else(Term::bool(false), Term::bool(true)), ) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -3930,12 +3774,13 @@ fn foldl_type_mismatch() { .delayed_if_else( Term::equals_data() .apply( - Term::var(CONSTR_GET_FIELD) + Term::head_list() + .apply(Term::var("__fields")) + .lambda("__fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("o")), - ) - .apply(Term::integer(0.into())), + ), ) .apply(Term::var("addr1")) .delayed_if_else( @@ -3997,7 +3842,6 @@ fn foldl_type_mismatch() { Data::constr(1, vec![]), ], ))) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -5066,7 +4910,6 @@ fn list_clause_with_assign2() { vec![Data::integer(1.into())], )]))) .constr_fields_exposer() - .constr_get_field() .constr_index_exposer(), false, ); @@ -5131,9 +4974,10 @@ fn opaque_value_in_datum() { .lambda("val") .apply( Term::unmap_data().apply( - Term::var(CONSTR_GET_FIELD) - .apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))) - .apply(Term::integer(1.into())), + Term::head_list() + .apply(Term::tail_list().apply(Term::var("__fields"))) + .lambda("__fields") + .apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))), ), ) .delayed_if_else(Term::unit(), Term::Error) @@ -5227,7 +5071,6 @@ fn opaque_value_in_datum() { .lambda("ctx") .lambda("red") .lambda("dat") - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -5300,9 +5143,10 @@ fn opaque_value_in_test() { .lambda("val") .apply( Term::unmap_data().apply( - Term::var(CONSTR_GET_FIELD) - .apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))) - .apply(Term::integer(1.into())), + Term::head_list() + .apply(Term::tail_list().apply(Term::var("__fields"))) + .lambda("__fields") + .apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))), ), ) .lambda("dat") @@ -5330,7 +5174,6 @@ fn opaque_value_in_test() { )])) .into(), )])) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, @@ -5361,7 +5204,6 @@ fn expect_none() { .apply(Term::Constant( Constant::Data(Data::constr(1, vec![])).into(), )) - .constr_get_field() .constr_index_exposer() .constr_fields_exposer(), false, @@ -5584,7 +5426,6 @@ fn tuple_2_match() { Term::bool(true), Term::bool(true).if_else(Term::bool(false), Term::bool(true)), ) - .constr_get_field() .constr_fields_exposer() .constr_index_exposer(), false, diff --git a/crates/uplc/src/builder.rs b/crates/uplc/src/builder.rs index 59a7c60e..43bbd173 100644 --- a/crates/uplc/src/builder.rs +++ b/crates/uplc/src/builder.rs @@ -6,7 +6,6 @@ use pallas_primitives::alonzo::PlutusData; pub const CONSTR_FIELDS_EXPOSER: &str = "__constr_fields_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"; impl Term { @@ -343,39 +342,4 @@ impl Term { .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), - ) - } } diff --git a/examples/acceptance_tests/036/aiken.lock b/examples/acceptance_tests/036/aiken.lock index 1d9e0a50..fb768318 100644 --- a/examples/acceptance_tests/036/aiken.lock +++ b/examples/acceptance_tests/036/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/036/plutus.json b/examples/acceptance_tests/036/plutus.json index d0ff07dc..4ade177f 100644 --- a/examples/acceptance_tests/036/plutus.json +++ b/examples/acceptance_tests/036/plutus.json @@ -21,8 +21,8 @@ } } ], - "compiledCode": "58bd010000323232323232323232322225333007323253330093370e9000000899251300800214a060126ea8004cc88c8cc00400400c894ccc038004530103d87a800013232533300d300500213374a90001980880125eb804cc010010004c048008c040004dd6198021803198021803000a40009000119baf330053007001480000105261633001001480008888cccc018cdc38008018059199980280299b8000448008c0340040080088c010dd5000ab9a5573aaae7955cfaba05742ae89", - "hash": "6fb52a7202693c79ade162f62fdceb489aea252470415159a72393ca" + "compiledCode": "589301000032323232323232322225333005323253330073370e9000000899251300600214a0600e6ea8004c8cc88c8cc00400400c894ccc034004530103d87a800013232533300c300500213374a90001980800125eb804cc010010004c044008c03c004dd61800980298009802801119baf300230060010052300b0011498588c010dd5000ab9a5573aaae7955cfaba05742ae89", + "hash": "c61366901c3ce71f6b34beda5ce1a90f6f7a73e83362821a142cc406" }, { "title": "spend.spend", @@ -38,8 +38,8 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "59010f01000032323232323232323232222533300732323300100100222533300d00114a026464a66601864646466601e00294128a9998088008a5114a06464a66601e66e1d200200114bd6f7b6300991bab3015001300e002300f3754002646600200200444a666024002298103d87a800013232323253330133371e9110500000000000000213374a90001980b9ba60014bd700998030030019bab3014003375c6024004602c00460280026eaccc024c02c009200214a22660080080026022004601e0026eb0cc010c018cc010c0180052000480105261633001001480008888cccc018cdc38008018059199980280299b8000448008c0340040080088c010dd5000ab9a5573aaae7955cfaba05742ae89", - "hash": "9664feff1ec29e5337417b0f81643a666e02387f4ef4df628d2319da" + "compiledCode": "58ee0100003232323232323232222533300532323300100100222533300b00114a026464a66601464646466601a00294128a9998078008a5114a06464a66601a66e1d200200114bd6f7b6300991bab3013001300c002300d3754002646600200200444a666020002298103d87a800013232323253330113371e9110500000000000000213374a90001980a9ba60014bd700998030030019bab3012003375c6020004602800460240026eacc8c040c044004c024008528899802002000980780118068009bac32300b300c300c001300432300b00130040011498588c010dd5000ab9a5573aaae7955cfaba05742ae881", + "hash": "c0b973c5ab4aca21277e722b046317e59fd1876451cb06f3cf936675" } ], "definitions": { diff --git a/examples/acceptance_tests/054/aiken.lock b/examples/acceptance_tests/054/aiken.lock index d8ae26e1..3d0e1bbc 100644 --- a/examples/acceptance_tests/054/aiken.lock +++ b/examples/acceptance_tests/054/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/055/aiken.lock b/examples/acceptance_tests/055/aiken.lock index 6090205e..0c31f73d 100644 --- a/examples/acceptance_tests/055/aiken.lock +++ b/examples/acceptance_tests/055/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/061/aiken.lock b/examples/acceptance_tests/061/aiken.lock index 5006b73b..484d22d1 100644 --- a/examples/acceptance_tests/061/aiken.lock +++ b/examples/acceptance_tests/061/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/063/aiken.lock b/examples/acceptance_tests/063/aiken.lock index 243666e6..c072963c 100644 --- a/examples/acceptance_tests/063/aiken.lock +++ b/examples/acceptance_tests/063/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/067/aiken.lock b/examples/acceptance_tests/067/aiken.lock index c6053a42..51c896c7 100644 --- a/examples/acceptance_tests/067/aiken.lock +++ b/examples/acceptance_tests/067/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/068/aiken.lock b/examples/acceptance_tests/068/aiken.lock index ffa6e39d..eef70b10 100644 --- a/examples/acceptance_tests/068/aiken.lock +++ b/examples/acceptance_tests/068/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/071/aiken.lock b/examples/acceptance_tests/071/aiken.lock index 13b07ee2..6d745687 100644 --- a/examples/acceptance_tests/071/aiken.lock +++ b/examples/acceptance_tests/071/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/071/plutus.json b/examples/acceptance_tests/071/plutus.json index f2b02fc8..2cf788d0 100644 --- a/examples/acceptance_tests/071/plutus.json +++ b/examples/acceptance_tests/071/plutus.json @@ -19,8 +19,8 @@ "$ref": "#/definitions/spend~1PoolRedeemer" } }, - "compiledCode": "5903560100003232323232323232323232222323232533300b3232533300d3370e9000000899251300b00213232323253330113370e9001002899191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c66016028008603e002602e0022c66012022002601491101ff00301b001301300214a060260026601e60220189001180b8009807803099191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c66016028008603e002602e0022c660120220026014910101ff00301b001301300214a060260026601e60220189001180b800980780311198021bac3300e30103300e301000248001200023375e6601e60226601e602200290012400000444660066eb0cc034c03ccc034c03c0092000480108cdd7998071808000a400000444646600200200644a66602a002298103d87a8000132325333014300500213374a90001980c00125eb804cc010010004c064008c05c0048cdd2a40006602466e95200233012375200297ae0330124c103d87a80004bd701805800998039804802a40002930b19299980599b87480000044c8c94ccc040c04c0084c92632533300e3370e9000000899192999809980b0010a4c2c6eb4c050004c03000854ccc038cdc3a400400226464a666026602c0042649319299980899b87480000044c8c8c8c94ccc060c06c0084c926300d00316375a60320026032004602e002601e0042c601e0022c602800260180042a66601c66e1d20040011323253330133016002132498c94ccc044cdc3a4000002264646464a66603060360042649318068018b1bad301900130190023017001300f00216300f001163014001300c00216300c001163011001300900516300900432533300a3370e900000089919191919192999809980b00109924c601000a2c6eb4c050004c050008dd698090009809001180800098040028b1804002119299980519b87480000044c8c8c8c94ccc044c05000852616375c602400260240046eb8c040004c02000858c020004cc0040052000222233330073370e0020060184666600a00a66e000112002300e001002002230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441", - "hash": "643ecd1a1abdd7fddc4e2f556a70212ecd053a24d474ea6de173b65c" + "compiledCode": "5903260100003232323232323232322223232325333009323232533300c3370e9000000899251300a0021323232323253330113370e9001003099191919299980a99b87480080044c8c8c8c94ccc064cdc3a400060300022646464a66603866e1d2000301b001132324a2604400260340022c6601602c008603e002602e0022c66014026002601691101ff00301b001301300214a060260026008602201c602e002601e00e264646464a66602a66e1d200200113232323253330193370e9000180c0008991919299980e19b8748000c06c0044c8c9289811000980d0008b1980580b002180f800980b8008b198050098009805a44101ff00301b001301300214a060260026008602201c602e002601e00e446600a6eb0c024c040c024c0400088cdd798051808980218088008011180a980b00091198019bac32301630173017001300e3007300e00223375e6010601e00200444646600200200644a6660280022980103d87a8000132325333013300500213374a90001980b80125eb804cc010010004c060008c0580048cdd2a40006602266e95200233011375200297ae0330114c103d87a80004bd70180500098009804003118078008a4c2c64a66601266e1d200000113232533300e3011002132498c94ccc030cdc3a400000226464a66602260280042930b1bad3012001300a0021533300c3370e9001000899192999808980a00109924c64a66601e66e1d200000113232323253330163019002132498c03400c58dd6980b800980b801180a80098068010b18068008b180900098050010a99980619b87480100044c8c94ccc044c0500084c92632533300f3370e9000000899191919299980b180c80109924c601a0062c6eb4c05c004c05c008c054004c03400858c03400458c048004c02800858c02800458c03c004c01c01458c01c010c94ccc020cdc3a40000022646464646464a66602260280042649318040028b1bad30120013012002375a60200026020004601c002600c00a2c600c008464a66601066e1d2000001132323232533300f3012002149858dd7180800098080011bae300e0013006002163006001230053754002460066ea80055cd2ab9d5573caae7d5d02ba15745", + "hash": "2e10899564da25a5df93da626395b94ce71baa9ca3d6419d23838462" } ], "definitions": { diff --git a/examples/acceptance_tests/072/aiken.lock b/examples/acceptance_tests/072/aiken.lock index 26df71d9..db86e548 100644 --- a/examples/acceptance_tests/072/aiken.lock +++ b/examples/acceptance_tests/072/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/074/aiken.lock b/examples/acceptance_tests/074/aiken.lock index 377170c4..b316dde0 100644 --- a/examples/acceptance_tests/074/aiken.lock +++ b/examples/acceptance_tests/074/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/077/aiken.lock b/examples/acceptance_tests/077/aiken.lock index 07dcef71..0c48760a 100644 --- a/examples/acceptance_tests/077/aiken.lock +++ b/examples/acceptance_tests/077/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/077/plutus.json b/examples/acceptance_tests/077/plutus.json index 47fe222b..21c35c78 100644 --- a/examples/acceptance_tests/077/plutus.json +++ b/examples/acceptance_tests/077/plutus.json @@ -27,8 +27,8 @@ } } ], - "compiledCode": "5901f4010000323232323232323232323223222232533300b32323232533300f3370e9000180700089919191919191919191919299980e98100010991919299980e99b874800000454ccc074c8cc004004030894ccc08800452809919299981099baf3301d301f00248000068528899802002000981300118120008a99980e99b87002480084cdc780180b8a501616301b014375a603a0046eb8c06c00458c078004c8c8c94ccc06ccdc3a4004002297adef6c601323756604200260320046032002646600200200444a66603c0022980103d87a8000132323232533301f3371e01e004266e95200033023374c00297ae0133006006003375660400066eb8c078008c088008c080004c8cc004004008894ccc07400452f5bded8c0264646464a66603c66e3d221000021003133022337606ea4008dd3000998030030019bab301f003375c603a0046042004603e0026eacc070004c070004c06c004c068004c064008dd6180b80098078029bae3015001300d001163013001301300230110013009002149858c94ccc02ccdc3a40000022a66601c60120062930b0a99980599b874800800454ccc038c02400c52616163009002375c0026600200290001111199980399b8700100300c233330050053370000890011807000801001118029baa001230033754002ae6955ceaab9e5573eae815d0aba201", - "hash": "d9923c678f323fa0aa77a78dedc323df6686c54ba9ceb8a1baef639f" + "compiledCode": "5901cc01000032323232323232323223222232533300932323232533300d3370e9000180600089919191919191919191919299980d980f0010991919299980d99b874800000454ccc06cc8cc004004030894ccc08000452809919299980f99baf323025001301d00201a14a2266008008002604800460440022a66603666e1c009200213371e00602e29405858c064050dd6980d8011bae301900116301c00132323253330193370e90010008a5eb7bdb1804c8dd5980f800980b801180b800991980080080111299980e0008a6103d87a8000132323232533301d3371e01e004266e95200033021374c00297ae01330060060033756603c0066eb8c070008c080008c078004c8cc004004008894ccc06c00452f5bded8c0264646464a66603866e3d221000021003133020337606ea4008dd3000998030030019bab301d003375c6036004603e004603a0026eacc068004c068004c064004c060004c05c008dd6180a80098068029bae3013001300b0011630110013011002300f0013007002149858c94ccc024cdc3a40000022a666018600e0062930b0a99980499b874800800454ccc030c01c00c52616163007002375c0024600a6ea80048c00cdd5000ab9a5573aaae7955cfaba05742ae881", + "hash": "34024ee2cd32404d6ae0357a7065662b2fef2b4ac5a3b4978c659886" } ], "definitions": { diff --git a/examples/acceptance_tests/079/plutus.json b/examples/acceptance_tests/079/plutus.json index 566066d6..584bd5cc 100644 --- a/examples/acceptance_tests/079/plutus.json +++ b/examples/acceptance_tests/079/plutus.json @@ -19,8 +19,8 @@ "$ref": "#/definitions/RedeemerWrapper$Int" } }, - "compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800020014815052616375a0066eb4010c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881", - "hash": "0c6e650e5630aedbe4ff5a2a9a441611e2766e28d5ca09e10b90ed64" + "compiledCode": "5852010000323232322253330033370e900018021baa00113253330043370e002902a0a4c2c6eb40084c88c8c94ccc01ccdc399b800020014815052616375a0066eb4010c018c014dd5000ab9a5573aaae795d09", + "hash": "62ff3d6f616ed3df935a8bc94c071204a1558a66b1c3f1ff78d58743" }, { "title": "foo.mint", @@ -30,8 +30,8 @@ "$ref": "#/definitions/Int" } }, - "compiledCode": "587c010000323232323232322253330053370e900018031baa00113253330063370e002902a0a4c2c6eb40084c88c8c94ccc024cdc399b800020014815052616375a0066eb4010c020c01cdd500099800800a40004444666600a66e1c00400c0208cccc014014cdc0002240046014002004004ae6955ceaab9e5742ae881", - "hash": "0c6e650e5630aedbe4ff5a2a9a441611e2766e28d5ca09e10b90ed64" + "compiledCode": "5852010000323232322253330033370e900018021baa00113253330043370e002902a0a4c2c6eb40084c88c8c94ccc01ccdc399b800020014815052616375a0066eb4010c018c014dd5000ab9a5573aaae795d09", + "hash": "62ff3d6f616ed3df935a8bc94c071204a1558a66b1c3f1ff78d58743" } ], "definitions": { diff --git a/examples/acceptance_tests/082/aiken.lock b/examples/acceptance_tests/082/aiken.lock index 83cd4be3..5e15b6b7 100644 --- a/examples/acceptance_tests/082/aiken.lock +++ b/examples/acceptance_tests/082/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/083/aiken.lock b/examples/acceptance_tests/083/aiken.lock index 5dc0e0d0..dc13bc69 100644 --- a/examples/acceptance_tests/083/aiken.lock +++ b/examples/acceptance_tests/083/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/084/aiken.lock b/examples/acceptance_tests/084/aiken.lock index 03a68ab2..e9df8088 100644 --- a/examples/acceptance_tests/084/aiken.lock +++ b/examples/acceptance_tests/084/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/085/aiken.lock b/examples/acceptance_tests/085/aiken.lock index 4d19d44b..8c326417 100644 --- a/examples/acceptance_tests/085/aiken.lock +++ b/examples/acceptance_tests/085/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/086/aiken.lock b/examples/acceptance_tests/086/aiken.lock index 3c064027..20fa3797 100644 --- a/examples/acceptance_tests/086/aiken.lock +++ b/examples/acceptance_tests/086/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/086/plutus.json b/examples/acceptance_tests/086/plutus.json index 415663f0..c9db1fe5 100644 --- a/examples/acceptance_tests/086/plutus.json +++ b/examples/acceptance_tests/086/plutus.json @@ -19,8 +19,8 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "5901fd01000032323232323232323232222533300832323232533300c3370e9000000899251300a00214a06014002601c002600e008664464a66601666e1d20000011323253330103012002132498c94ccc038cdc3a400000226464a666026602a0042649319299980899b87480000044c8c94ccc058c0600084c9263253330143370e9000000899191919299980d980e8010991924c64a66603466e1d200000113232533301f3021002132498c94ccc074cdc3a400000226464a666044604800426493180b8008b1811000980d8010a99980e99b87480080044c8c8c8c8c8c94ccc098c0a000852616375a604c002604c0046eb4c090004c090008dd69811000980d8010b180d8008b180f800980c0018a99980d19b874800800454ccc074c06000c52616163018002301000316301b001301b00230190013012002163012001163016001300f00216300f001163013001300c0021533300e3370e90010008a99980898060010a4c2c2c60180022c602000260120042c6012002464a66601466e1d200000113232533300f3011002149858dd7180780098040010a99980519b87480080044c8c94ccc03cc04400852616375c601e00260100042c60100020062930b19800800a40004444666600e66e1c00400c02c8cccc014014cdc000224004601a0020040044600a6ea80048c00cdd5000ab9a5573aaae7955cfaba15745", - "hash": "6a76fed919611638154fbaf78bd7a37f98b77e42eebc615f2d2d0f32" + "compiledCode": "5901d70100003232323232323232222533300632323232533300a3370e9000000899251300800214a060100026018002600a008664464a66601266e1d200000113232533300e3010002132498c94ccc030cdc3a400000226464a66602260260042649319299980799b87480000044c8c94ccc050c0580084c9263253330123370e9000000899191919299980c980d8010991924c64a66603066e1d200000113232533301d301f002132498c94ccc06ccdc3a400000226464a666040604400426493180b8008b1810000980c8010a99980d99b87480080044c8c8c8c8c8c94ccc090c09800852616375a604800260480046eb4c088004c088008dd69810000980c8010b180c8008b180e800980b0018a99980c19b874800800454ccc06cc05800c526161630160023010003163019001301900230170013010002163010001163014001300d00216300d001163011001300a0021533300c3370e90010008a99980798050010a4c2c2c60140022c601c002600e0042c600e002464a66601066e1d200000113232533300d300f002149858dd7180680098030010a99980419b87480080044c8c94ccc034c03c00852616375c601a002600c0042c600c0020062930b118029baa001230033754002ae6955ceaab9e5573eae855d101", + "hash": "7e7ecf9b781a569346cec35b2eca37fe4557bf490db774201a1fd59e" } ], "definitions": { diff --git a/examples/acceptance_tests/087/aiken.lock b/examples/acceptance_tests/087/aiken.lock index 4cfa047f..5fd869ef 100644 --- a/examples/acceptance_tests/087/aiken.lock +++ b/examples/acceptance_tests/087/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/088/aiken.lock b/examples/acceptance_tests/088/aiken.lock index cc6d90e9..dccefc61 100644 --- a/examples/acceptance_tests/088/aiken.lock +++ b/examples/acceptance_tests/088/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"] diff --git a/examples/acceptance_tests/089/aiken.lock b/examples/acceptance_tests/089/aiken.lock index 21fa8e72..8d0e72e9 100644 --- a/examples/acceptance_tests/089/aiken.lock +++ b/examples/acceptance_tests/089/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [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"]