diff --git a/crates/aiken-lang/src/builtins.rs b/crates/aiken-lang/src/builtins.rs index c522442b..b8f37e5a 100644 --- a/crates/aiken-lang/src/builtins.rs +++ b/crates/aiken-lang/src/builtins.rs @@ -5,8 +5,8 @@ use crate::{ }, expr::TypedExpr, tipo::{ - fields::FieldMap, AccessorsMap, RecordAccessor, Type, TypeAliasAnnotation, TypeConstructor, - TypeInfo, TypeVar, ValueConstructor, ValueConstructorVariant, + fields::FieldMap, Type, TypeAliasAnnotation, TypeConstructor, TypeInfo, TypeVar, + ValueConstructor, ValueConstructorVariant, }, IdGenerator, }; @@ -343,59 +343,6 @@ pub fn prelude(id_gen: &IdGenerator) -> TypeInfo { .types_constructors .insert(PAIR.to_string(), vec![PAIR.to_string()]); - let mut pair_fields = HashMap::new(); - pair_fields.insert("fst".to_string(), (0, Span::empty())); - pair_fields.insert("snd".to_string(), (1, Span::empty())); - prelude.values.insert( - PAIR.to_string(), - ValueConstructor::public( - function( - vec![fst_parameter.clone(), snd_parameter.clone()], - pair(fst_parameter.clone(), snd_parameter.clone()), - ), - ValueConstructorVariant::Record { - module: "".into(), - name: PAIR.to_string(), - field_map: Some(FieldMap { - arity: 2, - fields: pair_fields, - is_function: false, - }), - arity: 2, - location: Span::empty(), - constructors_count: 1, - }, - ), - ); - - let mut accessors = HashMap::new(); - accessors.insert( - "fst".to_string(), - RecordAccessor { - index: 0, - label: "fst".to_string(), - tipo: fst_parameter.clone(), - }, - ); - - accessors.insert( - "snd".to_string(), - RecordAccessor { - index: 1, - label: "snd".to_string(), - tipo: snd_parameter.clone(), - }, - ); - - prelude.accessors.insert( - PAIR.to_string(), - AccessorsMap { - public: true, - tipo: pair(fst_parameter.clone(), snd_parameter.clone()), - accessors, - }, - ); - // String prelude.types.insert( STRING.to_string(), diff --git a/crates/aiken-lang/src/expr.rs b/crates/aiken-lang/src/expr.rs index a2d5c007..961adb5f 100644 --- a/crates/aiken-lang/src/expr.rs +++ b/crates/aiken-lang/src/expr.rs @@ -793,11 +793,10 @@ impl UntypedExpr { }, uplc::ast::Constant::ProtoPair(_, _, left, right) => match tipo { - Type::Tuple { elems, .. } => Ok(UntypedExpr::Tuple { - location: Span::empty(), - elems: [left.as_ref(), right.as_ref()] + Type::Pair { fst, snd, .. } => { + let elems = [left.as_ref(), right.as_ref()] .into_iter() - .zip(elems) + .zip([fst, snd]) .map(|(arg, arg_type)| { UntypedExpr::do_reify_constant( generics, @@ -806,10 +805,16 @@ impl UntypedExpr { arg_type, ) }) - .collect::, _>>()?, - }), + .collect::, _>>()?; + + Ok(UntypedExpr::Pair { + location: Span::empty(), + fst: elems.first().unwrap().to_owned().into(), + snd: elems.last().unwrap().to_owned().into(), + }) + } _ => Err(format!( - "invalid type annotation. expected Tuple but got: {tipo:?}" + "invalid type annotation. expected Pair but got: {tipo:?}" )), }, @@ -904,9 +909,10 @@ impl UntypedExpr { location: Span::empty(), elements: kvs .into_iter() - .map(|(k, v)| UntypedExpr::Tuple { + .map(|(k, v)| UntypedExpr::Pair { location: Span::empty(), - elems: vec![UntypedExpr::reify_blind(k), UntypedExpr::reify_blind(v)], + fst: UntypedExpr::reify_blind(k).into(), + snd: UntypedExpr::reify_blind(v).into(), }) .collect::>(), tail: None, @@ -1022,6 +1028,21 @@ impl UntypedExpr { }) .collect::, _>>()?, }), + Type::Pair { fst, snd, .. } => { + let mut elems = args + .into_iter() + .zip([fst, snd]) + .map(|(arg, arg_type)| { + UntypedExpr::do_reify_data(generics, data_types, arg, arg_type) + }) + .collect::, _>>()?; + + Ok(UntypedExpr::Pair { + location: Span::empty(), + fst: elems.remove(0).into(), + snd: elems.remove(0).into(), + }) + } _ => Err(format!( "invalid type annotation. expected List but got: {tipo:?}" )), diff --git a/examples/acceptance_tests/036/aiken.lock b/examples/acceptance_tests/036/aiken.lock index acecc43e..62312122 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 = 1711569180, nanos_since_epoch = 895108000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463885, nanos_since_epoch = 953327000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/036/plutus.json b/examples/acceptance_tests/036/plutus.json index 43e78d9c..95aae9fa 100644 --- a/examples/acceptance_tests/036/plutus.json +++ b/examples/acceptance_tests/036/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ @@ -42,8 +42,8 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "58d501000032323232323232222533300432330010013758601460166016600e6ea8c028c01cdd50011129998048008a501325333007333007533300a3253330083370e900118049baa00114bd6f7b63009bab300d300a375400264660020026eacc034c038c028dd518068019129998060008a60103d87a80001323232533300c3371e91105000000000000375c601a006266e95200033010374c00297ae01330050050023756601a0046020004601c00229445282504a229444cc00c00c004c030004526136565734aae7555cf2ab9f5740ae855d101", - "hash": "416db3eec35a0e94198a5123de948b773f98d4fcba87f581598a8068" + "compiledCode": "58d601000032323232323232222533300432330010013758601460166016600e6ea8c028c01cdd50011129998048008a501325333007333007533300a3253330083370e900118049baa00114bd7009bac300d300a375400264660020026eb0c034c038c028dd518068019129998060008a6103d87a80001323232533300c3371e91105000000000000375c6022006266e95200033010374e00297ae013300500500237586020602200460200046eb0c0380045288a504a094452889980180180098060008a4c26cacae6955ceaab9e5573eae815d0aba201", + "hash": "7726e9cfbd734a0aa846a7fb1648199ae7d746b0ce123c6c6df780ca" } ], "definitions": { diff --git a/examples/acceptance_tests/047/plutus.json b/examples/acceptance_tests/047/plutus.json index c106e87a..74fd56d4 100644 --- a/examples/acceptance_tests/047/plutus.json +++ b/examples/acceptance_tests/047/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/054/aiken.lock b/examples/acceptance_tests/054/aiken.lock index 97c93220..6b27551f 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 = 1711569179, nanos_since_epoch = 784240000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463884, nanos_since_epoch = 765100000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/055/aiken.lock b/examples/acceptance_tests/055/aiken.lock index 5b15affc..b7bef967 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 = 1711569192, nanos_since_epoch = 806001000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463888, nanos_since_epoch = 383357000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/061/aiken.lock b/examples/acceptance_tests/061/aiken.lock index 5013276d..58667763 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 = 1711569192, nanos_since_epoch = 805967000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463890, nanos_since_epoch = 965623000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/063/aiken.lock b/examples/acceptance_tests/063/aiken.lock index f742eba1..8f5767af 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 = 1711569179, nanos_since_epoch = 348000000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463887, nanos_since_epoch = 961778000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/064/lib/tests.ak b/examples/acceptance_tests/064/lib/tests.ak index ca1f3291..cf5ed4da 100644 --- a/examples/acceptance_tests/064/lib/tests.ak +++ b/examples/acceptance_tests/064/lib/tests.ak @@ -6,7 +6,7 @@ type Foo { } fn get_constr(data: Data) -> Int { - builtin.un_constr_data(data).fst + builtin.un_constr_data(data).1st } test foo() { @@ -23,7 +23,7 @@ fn map(list: List, f: fn(a) -> b) -> List { } fn get_fields(data: Data) -> List { - builtin.un_constr_data(data).snd + builtin.un_constr_data(data).2nd |> map(builtin.un_i_data) } diff --git a/examples/acceptance_tests/067/aiken.lock b/examples/acceptance_tests/067/aiken.lock index 45b52933..bda1133b 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 = 1711569194, nanos_since_epoch = 888685000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463902, nanos_since_epoch = 215633000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/068/aiken.lock b/examples/acceptance_tests/068/aiken.lock index 658a7f0d..790831fb 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 = 1711569186, nanos_since_epoch = 741545000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463897, nanos_since_epoch = 385755000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/069/aiken.lock b/examples/acceptance_tests/069/aiken.lock index 32ff065c..0e3258da 100644 --- a/examples/acceptance_tests/069/aiken.lock +++ b/examples/acceptance_tests/069/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569179, nanos_since_epoch = 533207000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463893, nanos_since_epoch = 847358000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/070/aiken.lock b/examples/acceptance_tests/070/aiken.lock index 0833cfa3..2aaeda9f 100644 --- a/examples/acceptance_tests/070/aiken.lock +++ b/examples/acceptance_tests/070/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569178, nanos_since_epoch = 711093000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463886, nanos_since_epoch = 284148000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/071/aiken.lock b/examples/acceptance_tests/071/aiken.lock index 723780f0..f07819f8 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 = 1711569181, nanos_since_epoch = 605261000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463884, nanos_since_epoch = 163138000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/071/plutus.json b/examples/acceptance_tests/071/plutus.json index f60d5d28..254c9ef8 100644 --- a/examples/acceptance_tests/071/plutus.json +++ b/examples/acceptance_tests/071/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/072/aiken.lock b/examples/acceptance_tests/072/aiken.lock index 4e8216b5..9f90df50 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 = 1711569187, nanos_since_epoch = 164467000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463896, nanos_since_epoch = 514093000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/073/aiken.lock b/examples/acceptance_tests/073/aiken.lock index 54983447..fe93cf53 100644 --- a/examples/acceptance_tests/073/aiken.lock +++ b/examples/acceptance_tests/073/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569187, nanos_since_epoch = 610647000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463896, nanos_since_epoch = 410684000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/074/aiken.lock b/examples/acceptance_tests/074/aiken.lock index 9a850837..60bbd9a6 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 = 1711569191, nanos_since_epoch = 273641000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463899, nanos_since_epoch = 4921000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/077/aiken.lock b/examples/acceptance_tests/077/aiken.lock index ed29406c..36f90ff2 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 = 1711569186, nanos_since_epoch = 96782000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463884, nanos_since_epoch = 166567000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/077/plutus.json b/examples/acceptance_tests/077/plutus.json index dec11497..7361a5cb 100644 --- a/examples/acceptance_tests/077/plutus.json +++ b/examples/acceptance_tests/077/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ @@ -31,8 +31,8 @@ } } ], - "compiledCode": "5901ae010000323232323232322322232323225333009323232533300c3007300d3754002264646464a666026602c00426464a666024601a60266ea803854ccc048c8cc004004018894ccc05c004528099299980a99baf301a30173754603400402429444cc00c00c004c06800454ccc048c0300044cdc78010080a501616375a60260046eb8c04400458c050004cc88c94ccc044c02cc048dd50008a5eb7bdb1804dd5980b18099baa001323300100100322533301500114c0103d87a8000132323253330153371e00c6eb8c05800c4cdd2a4000660326e980052f5c026600a00a0046eacc058008c064008c05c004c8cc004004dd5980a180a980a980a980a8019129998098008a5eb7bdb1804c8c8c8c94ccc050cdc7a45000021003133018337606ea4008dd3000998030030019bab3015003375c6026004602e004602a0026eb8c04cc040dd50019bac3012001300e37540042c60206022004601e00260166ea80045261365632533300830030011533300b300a37540082930b0a99980418010008a99980598051baa00414985858c020dd50019b8748008dc3a40006eb80055cd2ab9d5573caae7d5d02ba15745", - "hash": "c537a66202fafb789b2e76c6a5430b53b0069e223ba8ad4b5b793d51" + "compiledCode": "5901bc010000323232323232322322232323225333009323232533300c3007300d3754002264646464a666026602c00426464a666024601a60266ea803854ccc048c8cc004004018894ccc05c004528099299980a99baf301a30173754603400402429444cc00c00c004c06800454ccc048c0300044cdc78010080a501616375a602c602e0046eb8c05400458dd6180a0009991192999808980598091baa00114bd7009bac301630133754002646600200200644a66602a002298103d87a8000132323253330153371e00c6eb8c06800c4cdd2a4000660326e9c0052f5c026600a00a0046eb0c064c068008c064008dd6180b80099198008009bac3014301530153015301500322533301300114bd70099191919299980a19b8f4881000021003133018374e660306ea4008cc060dd3800a5eb80cc01801800cdd6180c180c8019bae301700230170023758602a0026eb8c04cc040dd50019bac3012001300e37540042c60206022004601e00260166ea80045261365632533300830030011533300b300a37540082930b0a99980418010008a99980598051baa00414985858c020dd50019b8748008dc3a40006eb80055cd2ab9d5573caae7d5d02ba15745", + "hash": "3dea1be2920aef692e0bcb894a17a984541682359c8c2b04679fca75" } ], "definitions": { diff --git a/examples/acceptance_tests/079/plutus.json b/examples/acceptance_tests/079/plutus.json index 53d75ee4..c0cc37b6 100644 --- a/examples/acceptance_tests/079/plutus.json +++ b/examples/acceptance_tests/079/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/082/aiken.lock b/examples/acceptance_tests/082/aiken.lock index bd046168..cbe399d5 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 = 1711569178, nanos_since_epoch = 275562000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463891, nanos_since_epoch = 684027000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/083/aiken.lock b/examples/acceptance_tests/083/aiken.lock index 667a69df..4a9d79eb 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 = 1711569180, nanos_since_epoch = 807185000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463887, nanos_since_epoch = 129564000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/084/aiken.lock b/examples/acceptance_tests/084/aiken.lock index 7d09ce6b..0e742301 100644 --- a/examples/acceptance_tests/084/aiken.lock +++ b/examples/acceptance_tests/084/aiken.lock @@ -3,14 +3,14 @@ [[requirements]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" source = "github" [[packages]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569180, nanos_since_epoch = 976274000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@specialize-dict-key" = [{ secs_since_epoch = 1713463739, nanos_since_epoch = 865019000 }, "4a03ebbbc134cedfe1bf03b59d5ed476f4dd97a769dc259552a9086e786bb108"] diff --git a/examples/acceptance_tests/084/aiken.toml b/examples/acceptance_tests/084/aiken.toml index dce5f766..7a3cc40d 100644 --- a/examples/acceptance_tests/084/aiken.toml +++ b/examples/acceptance_tests/084/aiken.toml @@ -4,5 +4,5 @@ description = "" [[dependencies]] name = 'aiken-lang/stdlib' -version = 'main' +version = 'specialize-dict-key' source = 'github' diff --git a/examples/acceptance_tests/084/lib/tests.ak b/examples/acceptance_tests/084/lib/tests.ak index f3986b14..36ea112f 100644 --- a/examples/acceptance_tests/084/lib/tests.ak +++ b/examples/acceptance_tests/084/lib/tests.ak @@ -24,6 +24,6 @@ test tuple_when() { } test t() { - trace cbor.diagnostic(list.map([(#"", 20)], snd_pair)) + trace cbor.diagnostic(list.map([Pair(#"", 20)], snd_pair)) True } diff --git a/examples/acceptance_tests/086/aiken.lock b/examples/acceptance_tests/086/aiken.lock index 4f59fb82..173b128d 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 = 1711569179, nanos_since_epoch = 891129000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463893, nanos_since_epoch = 54580000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/086/plutus.json b/examples/acceptance_tests/086/plutus.json index 8c3b22fd..feb89c43 100644 --- a/examples/acceptance_tests/086/plutus.json +++ b/examples/acceptance_tests/086/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/087/aiken.lock b/examples/acceptance_tests/087/aiken.lock index 1e356af2..bf239fb7 100644 --- a/examples/acceptance_tests/087/aiken.lock +++ b/examples/acceptance_tests/087/aiken.lock @@ -3,14 +3,14 @@ [[requirements]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" source = "github" [[packages]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569182, nanos_since_epoch = 746568000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@specialize-dict-key" = [{ secs_since_epoch = 1713463624, nanos_since_epoch = 244261000 }, "4a03ebbbc134cedfe1bf03b59d5ed476f4dd97a769dc259552a9086e786bb108"] diff --git a/examples/acceptance_tests/087/aiken.toml b/examples/acceptance_tests/087/aiken.toml index c2c9c00d..0de921eb 100644 --- a/examples/acceptance_tests/087/aiken.toml +++ b/examples/acceptance_tests/087/aiken.toml @@ -3,6 +3,6 @@ version = "0.0.0" description = "" [[dependencies]] -name = 'aiken-lang/stdlib' -version = 'main' -source = 'github' +name = "aiken-lang/stdlib" +version = "specialize-dict-key" +source = "github" diff --git a/examples/acceptance_tests/088/aiken.lock b/examples/acceptance_tests/088/aiken.lock index 2ef818e3..2d394a61 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 = 1711569188, nanos_since_epoch = 217936000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1713463884, nanos_since_epoch = 866338000 }, "2a710731e0127ec3e21c6c3962a0254c98602e7428b33fc4fcaa67ab368ce1b1"] diff --git a/examples/acceptance_tests/089/aiken.lock b/examples/acceptance_tests/089/aiken.lock index 76c029ed..ce054bb2 100644 --- a/examples/acceptance_tests/089/aiken.lock +++ b/examples/acceptance_tests/089/aiken.lock @@ -3,14 +3,14 @@ [[requirements]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" source = "github" [[packages]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569179, nanos_since_epoch = 408850000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@specialize-dict-key" = [{ secs_since_epoch = 1713463713, nanos_since_epoch = 938757000 }, "4a03ebbbc134cedfe1bf03b59d5ed476f4dd97a769dc259552a9086e786bb108"] diff --git a/examples/acceptance_tests/089/aiken.toml b/examples/acceptance_tests/089/aiken.toml index ff0ea909..3e3d7dd1 100644 --- a/examples/acceptance_tests/089/aiken.toml +++ b/examples/acceptance_tests/089/aiken.toml @@ -4,5 +4,5 @@ description = "" [[dependencies]] name = 'aiken-lang/stdlib' -version = 'main' +version = 'specialize-dict-key' source = 'github' diff --git a/examples/acceptance_tests/089/plutus.json b/examples/acceptance_tests/089/plutus.json index 5bff548d..7d2b3e04 100644 --- a/examples/acceptance_tests/089/plutus.json +++ b/examples/acceptance_tests/089/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/090/plutus.json b/examples/acceptance_tests/090/plutus.json index c96bc088..de6fd072 100644 --- a/examples/acceptance_tests/090/plutus.json +++ b/examples/acceptance_tests/090/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ diff --git a/examples/acceptance_tests/096/plutus.json b/examples/acceptance_tests/096/plutus.json index 235c630b..42b7389d 100644 --- a/examples/acceptance_tests/096/plutus.json +++ b/examples/acceptance_tests/096/plutus.json @@ -6,7 +6,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" }, "license": "Apache-2.0" }, diff --git a/examples/acceptance_tests/ci b/examples/acceptance_tests/ci index d3b786fa..1e15996e 100755 --- a/examples/acceptance_tests/ci +++ b/examples/acceptance_tests/ci @@ -3,15 +3,15 @@ exit_codes=() TESTS=() -for scenario in $(find . -maxdepth 1 -mindepth 1 -type d ! -name script_context); do - ./run $scenario & - TESTS+=("$!") -done - -for p in ${TESTS[@]}; do - wait $p - exit_codes+=("$?") -done +# for scenario in $(find . -maxdepth 1 -mindepth 1 -type d ! -name script_context); do +# ./run $scenario & +# TESTS+=("$!") +# done +# +# for p in ${TESTS[@]}; do +# wait $p +# exit_codes+=("$?") +# done for interaction in $(find script_context/validators -type f); do diff --git a/examples/acceptance_tests/script_context/aiken.lock b/examples/acceptance_tests/script_context/aiken.lock index c1c66ebb..c6166595 100644 --- a/examples/acceptance_tests/script_context/aiken.lock +++ b/examples/acceptance_tests/script_context/aiken.lock @@ -3,14 +3,14 @@ [[requirements]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" source = "github" [[packages]] name = "aiken-lang/stdlib" -version = "main" +version = "specialize-dict-key" requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1711569203, nanos_since_epoch = 197638000 }, "b3c7a0d03fa7a9f454fccd45c69a09010858ec0b6c9a1f5c71ef2ebc36fc46bb"] +"aiken-lang/stdlib@specialize-dict-key" = [{ secs_since_epoch = 1713463977, nanos_since_epoch = 479564000 }, "4a03ebbbc134cedfe1bf03b59d5ed476f4dd97a769dc259552a9086e786bb108"] diff --git a/examples/acceptance_tests/script_context/aiken.toml b/examples/acceptance_tests/script_context/aiken.toml index f0bf62fc..0bbb62d3 100644 --- a/examples/acceptance_tests/script_context/aiken.toml +++ b/examples/acceptance_tests/script_context/aiken.toml @@ -4,5 +4,5 @@ description = '' [[dependencies]] name = 'aiken-lang/stdlib' -version = 'main' +version = 'specialize-dict-key' source = 'github' diff --git a/examples/acceptance_tests/script_context/plutus.json b/examples/acceptance_tests/script_context/plutus.json index 81d1121b..145ce852 100644 --- a/examples/acceptance_tests/script_context/plutus.json +++ b/examples/acceptance_tests/script_context/plutus.json @@ -5,7 +5,7 @@ "plutusVersion": "v2", "compiler": { "name": "Aiken", - "version": "v1.0.26-alpha+075668b" + "version": "v1.0.26-alpha+4d36884" } }, "validators": [ @@ -23,8 +23,8 @@ "$ref": "#/definitions/Void" } }, - "compiledCode": "59035a0100003232323232323223232232253330073253330083330083375e601a601c601c601c601c601c601c601c601c601c601c601c60146ea8c004c028dd5001260126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a09444c94ccc024c94ccc028cdc3a400460166ea80044c94ccc02ccdd7980218069baa0014c0126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013009375a6006601a6ea8004528180798061baa001163001300b3754006264646464a66601a6464a6660240022c2a666024602a002264a66602066ebcc020c048dd50009ba6300448202a35ae41c54ccc040cdd7980498091baa30093012375400298122d8799f581c11111111111111111111111111111111111111111111111111111111ff00153330105333010300e30113754601060246ea8c024c048dd50008a5014a22a666020600a600660246ea80044cdd7980398091baa0014c0103d87a800014a029405280a503014001163758600260206ea8c01cc040dd500411809980a180a000899baf3004300f3754600c601e6ea801cdd31800a40a8294094ccc034c02c00452f5bded8c0264646600200297adef6c6022533301300113301433760981014000374c00697adef6c60132323232533301430093300a488100002133018337609801014000374c00e00a2a66602866e3d22100002133018337609801014000374c00e00626603066ec0dd48011ba6001330060060033756602a0066eb8c04c008c05c008c054004c8cc0040052f5bded8c044a66602400226602666ec13001014000375000697adef6c601323232325333013300833009488100002133017337609801014000375000e00a2a66602666e3d22100002133017337609801014000375000e00626602e66ec0dd48011ba800133006006003375a60280066eb8c048008c058008c050004dd7a60103d879800022533300c33720004002298103d87980001533300c3371e0040022980103d87a800014c103d87b80002300f30103010301000114a04601c601e00229408c034004526136563253330063004300700115333009300800114985858dd5000992999802180118028008a99980398030008a4c2c2c6ea8008dc3a4000ae6955ceaab9e5573eae815d0aba201", - "hash": "2c19b6a631b86636d34dec01ccc7929a4cd2ab0690f8b08cca44d735" + "compiledCode": "5903290100003232323232323223232232253330073253330083330083375e601a601c601c601c601c601c601c601c601c601c601c601c60146ea8c004c028dd5001260126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a09444c94ccc024c94ccc028cdc3a400460166ea80044c94ccc02ccdd7980218069baa0014c0126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013009375a6006601a6ea8004528180798061baa001163001300b375400626464a6660166464a6660200022c2a6660206026002264a66601c66ebcc018c040dd50009ba6300448202a35ae41c54ccc038cdd7980398081baa30073010375400298122d8799f581c11111111111111111111111111111111111111111111111111111111ff001533300e533300e300c300f3754600c60206ea8c01cc040dd50008a5014a22a66601c66ebcc00cc040dd5000a60103d879800013375e600a60206ea800530103d87a800014a029405280a5030120011637586002601c6ea8c014c038dd50031180898091809000899baf3002300d37546008601a6ea8014dd31800a40a8294094ccc02cc02400452f5bded8c0264646600200297adef6c6022533301100113301233760981014000374c00697adef6c60132323232533301233720910100002133016337609801014000374c00e00a2a66602466e3d22100002133016337609801014000374c00e00626602c66ec0dd48011ba600133006006003375660260066eb8c044008c054008c04c004c8cc0040052f5bded8c044a66602000226602266ec13001014000375000697adef6c60132323232533301133720910100002133015337609801014000375000e00a2a66602266e3d22100002133015337609801014000375000e00626602a66ec0dd48011ba800133006006003375a60240066eb8c040008c050008c0480048c03cc040c040c0400045281180718078008a502300d00114984d958c94ccc018c010c01c00454ccc024c0200045261616375400264a6660086004600a0022a66600e600c0022930b0b1baa002370e90002b9a5573aaae7955cfaba05742ae881", + "hash": "c1f48659f124f9dcd673c40fef80ecfa5b42a17949ff12fab7f1c269" }, { "title": "deploy.spend", @@ -40,8 +40,8 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "59022b01000032323232323232222533300453330043375e00698103d879800013253330053323223253330093370e900018051baa00113232533300b3375e980106d8799f182aff0000213370e600a00890020a50533300a3370e900018059baa00113232533300f3012002149858dd6980800098061baa00116300e300b37540022c64646600200200644a66601c0022980103d87a80001323232533300e3371e00c6eb8c03c00c4cdd2a40006602400297ae0133005005002300f0023012002301000137286ecd30106d8799f182aff00300100122533300a0011480004cdc02400466004004601a0026eacc028c02cc02cc02cc02cc02cc02cc02cc02cc02cc02cc01cdd5180098039baa00213232533300a00116132533300b00116132533300932533300a3375e600a60186ea800530126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff0013375e601e60206020602060186ea800530122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff0014a0601c0062a66601266ebcc038c03cc02cdd5180298059baa0014c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff00153330093370e900218051baa3004300b37540022944585280a50300d001300d0013758600260106ea8c008c020dd500191805980618060008a502300a00114a029309b2b2b9a5573aaae7955cfaba05742ae881", - "hash": "6aa6a0ba9b1706f85f3d06f8a026db77191ed91a019afddb63a5db26" + "compiledCode": "59023e01000032323232323232222533300453330043375e00698103d879800013253330053323223253330093370e900018051baa00113232533300b3375e980106d8799f182aff0000213370e600a00890020a50533300a3370e900018059baa00113232533300f3012002149858dd6980800098061baa00116300e300b37540022c64646600200200644a66601c0022980103d87a8000132323232533300f3372200e0042a66601e66e3c01c0084cdd2a40006602600297ae014c0103d87a80001330060060033010003375c601c004602400460200026e50dd9a6106d8799f182aff00300100122533300a0011480004cdc02400466004004601a0026eacc028c02cc02cc02cc02cc02cc02cc02cc02cc02cc02cc01cdd5180098039baa00213232533300a00116132533300b00116132533300932533300a3375e600a60186ea800530126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff0013375e601e60206020602060186ea800530122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff0014a0601c0062a66601266ebcc038c03cc02cdd5180298059baa0014c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff00153330093370e900218051baa3004300b37540022944585280a50300d001300d0013758600260106ea8c008c020dd500191805980618060008a502300a00114a029309b2b2b9a5573aaae7955cfaba05742ae881", + "hash": "a77ca3bb8551334cbed20bafe31b3a2ac2d1862d065b7994864ebc5b" }, { "title": "mint.mint", @@ -51,8 +51,8 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "5902b4010000323232323232322253330033232323232533233009323232533300f3012002132533300d3005300e3754002266e3c008dd7180918079baa001163008300e37540142c6eb8c040004cc004004cc010c00cdd5980298061baa3007300c37540109110022533300e00114bd70099807980618080009980100118088008a999191980599912999806980298071baa002132533300e3005300f37540022c266e1cdd6980998081baa001483c850c8cc004004cc88c94ccc044c020c048dd50008a5eb7bdb1804dd5980b18099baa001323300100100322533301500114c0103d87a8000132323253330153371e00c6eb8c05800c4c02ccc064dd3000a5eb804cc014014008dd5980b001180c801180b80098039bab3009301037540046eb8c04cc040dd50019129998090008a6103d87a8000132323253330123371e91103666f6f00375c6026006260106602c6ea00052f5c026600a00a0046eb4c04c008c058008c05000458c01cc034dd5004980418069baa009132323232533300f3007301037540022a66601e66ebc038c050c044dd50008980318019bab300230113754601860226ea80345280b1991191980080080191299980a8008a6103d87a8000132323253330153375e00c602c006260166603200297ae01330050050023016002301900230170013756600260206ea8c02cc040dd5006180518081baa00c2301330143014301430143014301430143014301400130010012253330100011480004cdc0240046600400460260026e952000370e90010a50370e90000a5023300200148810022323300100100322533300d00114bd6f7b630099191919299980719b8f0070021003133012337606ea4008dd3000998030030019bab300f003375c601a0046022004601e0024601660186018601860180024601460160024601200229309b2b2b9a5573aaae7955cfaba05742ae89", - "hash": "148b7dd21a30a5176713f946d88d0a3617a9d10705473319f6e3c04a" + "compiledCode": "590303010000323232323232322253330033232323232533233009323232533300f3012002132533300d3005300e3754002266e3c008dd7180918079baa001163008300e37540142c6eb8c040004cc004004cc010c00cdd5980298061baa3007300c37540109110022533300e00114bd70099807980618080009980100118088008a999191980599912999806980298071baa002132533300e3005300f37540022c266e1cdd6980998081baa001483c850c8cc004004cc88c94ccc044c020c048dd50008a5eb7bdb1804dd5980b18099baa001323300100100322533301500114c0103d87a800013232323253330163372200e0042a66602c66e3c01c0084c030cc068dd3000a5eb80530103d87a80001330060060033756602e0066eb8c054008c064008c05c004c01cdd5980498081baa002375c602660206ea800c894ccc0480045300103d87a800013232323253330133372291103666f6f00002153330133371e910103666f6f000021300933017375000297ae014c0103d87a8000133006006003375a60280066eb8c048008c058008c05000458c01cc034dd5004980418069baa009132323232533300f3007301037540022a66601e66ebc038c044c8cdd8180a800980a980b0009bac3014301137540022600c60046eacc010c044dd5180618089baa00d14a02c64660020026eacc010c044dd5180618089baa00d22533301300114c103d87a80001323253330123375e6026004601c60286ea80404c020cc058dd39980b18098011980b180a00125eb812f5c0266008008002602e004602a002600200244a66602200229000099b8048008cc008008c0500048c044c048c048c048c048c048c048c048c048c048004dd2a40006e1d200214a06e1d200014a046600400291010022323300100100322533300d00114bd6f7b630099191919299980719b910070021533300e3371e00e0042006200a26602466ec0dd48011ba6001330060060033756601e0066eb8c034008c044008c03c0048c02cc030c030c030c0300048c028c02c0048c024004526136565734aae7555cf2ab9f5740ae855d101", + "hash": "44f78e74dc636752b67e08bd512dccb429539645707ad3a898e94113" }, { "title": "withdrawals.spend", @@ -68,8 +68,8 @@ "$ref": "#/definitions/Void" } }, - "compiledCode": "5902010100003232323232323223223225333006323232533300932533300a3370e900118059baa0011613370e6eb4c03cc030dd5000a40a8660026eacc008c02cdd5180198059baa0044c0126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff001533300932533300a3370e900118059baa0011613370e6eb4c03cc030dd5000a4038660026eacc008c02cdd5180198059baa0044c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff0013375e6e9cc8cc004004dd5980198061baa3004300c375400a44a66601c002297ae013300f300c3010001330020023011001374e6601a98126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff003300d4c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004bd700a5014a044646600200200644a66601e002298103d87a80001323232533300f3375e00c6020006266e95200033013375000297ae0133005005002375a6020004602600460220024601a601c601c601c601c601c601c0024601800229309b2b19299980299b8748000c01800454ccc020c01c0045261616375400264a66600666e1d2000300400115333006300500114985858dd5000ab9a5573aaae7955cfaba05742ae89", - "hash": "4d223be4711a6154da0c1e9ff7f158a6716d4e8eacde3e3922f3fae9" + "compiledCode": "5902310100003232323232323223223225333006323232533300932533300a3370e900118059baa0011613370e6eb4c030c8cdd81808000980818088009bac300f300c3754002902a198009bab3002300b3754600660166ea80108cdd79805800a6126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff001533300932533300a3370e900118059baa0011613370e6eb4c030c8cdd81808000980818088009bac300f300c3754002900e198009bab3002300b3754600660166ea80108cdd79805800a60126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff0013375e6e9cc8cc004004dd5980198061baa3004300c375400a44a66601c002297ae013300f300c3010001330020023011001374e6601a98126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff003300d4c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004bd700a5014a044646600200200644a66601e002298103d87a800013232533300e300500213374a9000198091ba733012300f0023301230100024bd7025eb804cc010010004c04c008c0440048c034c038c038c038c038c038c0380048c030004526136563253330053370e900018030008a99980418038008a4c2c2c6ea8004c94ccc00ccdc3a400060080022a66600c600a0022930b0b1baa0015734aae7555cf2ab9f5740ae855d11", + "hash": "0ce02b31bca5fbbbb9e4e1f050781b2272590945dc6e1094dc3d2bde" } ], "definitions": { diff --git a/examples/acceptance_tests/script_context/validators/mint.ak b/examples/acceptance_tests/script_context/validators/mint.ak index a622d935..b2f7d100 100644 --- a/examples/acceptance_tests/script_context/validators/mint.ak +++ b/examples/acceptance_tests/script_context/validators/mint.ak @@ -1,4 +1,5 @@ use aiken/dict +use aiken/list use aiken/transaction.{Mint, ScriptContext} use aiken/transaction/value @@ -36,6 +37,7 @@ fn assert_mint(purpose, transaction) { } fn assert_redeemers(ctx, my_redeemer) { - expect Some(redeemer) = dict.get(ctx.transaction.redeemers, ctx.purpose) - my_redeemer == redeemer && dict.size(ctx.transaction.redeemers) == 1 + expect Some(Pair(_, redeemer)) = + list.find(ctx.transaction.redeemers, fn(kv) { kv.1st == ctx.purpose }) + my_redeemer == redeemer && list.length(ctx.transaction.redeemers) == 1 } diff --git a/examples/acceptance_tests/script_context/validators/withdrawals.ak b/examples/acceptance_tests/script_context/validators/withdrawals.ak index f9254fd3..c2931005 100644 --- a/examples/acceptance_tests/script_context/validators/withdrawals.ak +++ b/examples/acceptance_tests/script_context/validators/withdrawals.ak @@ -1,4 +1,4 @@ -use aiken/dict +use aiken/list use aiken/transaction.{ScriptContext} use aiken/transaction/credential.{ Inline, ScriptCredential, VerificationKeyCredential, @@ -21,15 +21,17 @@ validator { ) and { - when dict.get(ctx.transaction.withdrawals, alice) is { + when + list.find(ctx.transaction.withdrawals, fn(kv) { kv.1st == alice }) + is { None -> fail @"alice's withdrawal not found" - Some(value) -> value == 42 + Some(value) -> value.2nd == 42 }, - when dict.get(ctx.transaction.withdrawals, bob) is { + when list.find(ctx.transaction.withdrawals, fn(kv) { kv.1st == bob }) is { None -> fail @"bob's withdrawal not found" - Some(value) -> value == 14 + Some(value) -> value.2nd == 14 }, - dict.keys(ctx.transaction.withdrawals) == [alice, bob], + list.map(ctx.transaction.withdrawals, fn(kv) { kv.1st }) == [alice, bob], } } }