From d41e6942c65f76284e5cbae08abdd7738f72893e Mon Sep 17 00:00:00 2001 From: rvcas Date: Wed, 15 Feb 2023 22:46:16 -0500 Subject: [PATCH] test: fix acceptance tests --- examples/acceptance_tests/036/plutus.json | 6 +-- .../acceptance_tests/036/validators/spend.ak | 36 ++++++------- examples/acceptance_tests/047/plutus.json | 3 +- .../acceptance_tests/047/validators/foo.ak | 6 ++- examples/acceptance_tests/048/plutus.json | 3 +- .../acceptance_tests/048/validators/foo.ak | 6 ++- .../script_context/plutus.json | 40 +++++++------- .../acceptance_tests/script_context/test.sh | 2 +- .../script_context/validators/basic.ak | 22 ++++---- .../script_context/validators/deploy.ak | 20 +++---- .../script_context/validators/mint.ak | 18 ++++--- .../script_context/validators/withdrawals.ak | 52 ++++++++++--------- 12 files changed, 109 insertions(+), 105 deletions(-) diff --git a/examples/acceptance_tests/036/plutus.json b/examples/acceptance_tests/036/plutus.json index ba7229b7..cc40b784 100644 --- a/examples/acceptance_tests/036/plutus.json +++ b/examples/acceptance_tests/036/plutus.json @@ -5,8 +5,7 @@ }, "validators": [ { - "title": "spend", - "purpose": "spend", + "title": "spend.spend", "datum": { "title": "Data", "description": "Any Plutus data." @@ -19,8 +18,7 @@ "hash": "3f46b921ead33594e1da4afa1f1ba31807c0d8deca029f96fe9fe394" }, { - "title": "spend", - "purpose": "mint", + "title": "spend.mint", "redeemer": { "title": "Unit", "description": "The nullary constructor.", diff --git a/examples/acceptance_tests/036/validators/spend.ak b/examples/acceptance_tests/036/validators/spend.ak index 20e8911f..da7584ad 100644 --- a/examples/acceptance_tests/036/validators/spend.ak +++ b/examples/acceptance_tests/036/validators/spend.ak @@ -12,23 +12,23 @@ pub fn has_policy_id(self: Output, policy_id: PolicyId) -> Bool { |> not } -pub fn spend(_datum: Data, _redeemer: Data, ctx: ScriptContext) -> Bool { - ctx.transaction.outputs - |> list.any(has_policy_id(_, my_policy_id)) -} - -fn mint( - output_reference: OutputReference, - _redeemer: Void, - ctx: ScriptContext, -) -> Bool { - when - list.find( - ctx.transaction.inputs, - fn(input) { input.output_reference == output_reference }, - ) - is { - Some(_) -> True - None -> False +validator spend { + fn(_datum: Data, _redeemer: Data, ctx: ScriptContext) -> Bool { + ctx.transaction.outputs + |> list.any(has_policy_id(_, my_policy_id)) + } +} + +validator mint(output_reference: OutputReference) { + fn(_redeemer: Void, ctx: ScriptContext) -> Bool { + when + list.find( + ctx.transaction.inputs, + fn(input) { input.output_reference == output_reference }, + ) + is { + Some(_) -> True + None -> False + } } } diff --git a/examples/acceptance_tests/047/plutus.json b/examples/acceptance_tests/047/plutus.json index 6fe46442..81fc4af5 100644 --- a/examples/acceptance_tests/047/plutus.json +++ b/examples/acceptance_tests/047/plutus.json @@ -5,8 +5,7 @@ }, "validators": [ { - "title": "foo", - "purpose": "spend", + "title": "foo.spend", "datum": { "title": "Unit", "description": "The nullary constructor.", diff --git a/examples/acceptance_tests/047/validators/foo.ak b/examples/acceptance_tests/047/validators/foo.ak index 7c29cd5e..55e122e5 100644 --- a/examples/acceptance_tests/047/validators/foo.ak +++ b/examples/acceptance_tests/047/validators/foo.ak @@ -1,5 +1,7 @@ -fn spend(_datum: Void, _redeemer: Void, _ctx: Void) -> Bool { - True +validator spend { + fn(_datum: Void, _redeemer: Void, _ctx: Void) -> Bool { + True + } } test foo() { diff --git a/examples/acceptance_tests/048/plutus.json b/examples/acceptance_tests/048/plutus.json index 00eaa5f2..25d9bab1 100644 --- a/examples/acceptance_tests/048/plutus.json +++ b/examples/acceptance_tests/048/plutus.json @@ -5,8 +5,7 @@ }, "validators": [ { - "title": "foo", - "purpose": "spend", + "title": "foo.spend", "datum": { "title": "Data", "description": "Any Plutus data." diff --git a/examples/acceptance_tests/048/validators/foo.ak b/examples/acceptance_tests/048/validators/foo.ak index 863fc603..a999c3cf 100644 --- a/examples/acceptance_tests/048/validators/foo.ak +++ b/examples/acceptance_tests/048/validators/foo.ak @@ -4,6 +4,8 @@ fn when_tuple(a: (Int, Int)) -> Int { } } -pub fn spend(a: Data, b: Data, c) -> Bool { - when_tuple((4, 1)) == 4 +validator spend { + fn(a: Data, b: Data, c) -> Bool { + when_tuple((4, 1)) == 4 + } } diff --git a/examples/acceptance_tests/script_context/plutus.json b/examples/acceptance_tests/script_context/plutus.json index 4e531da6..3f8cc024 100644 --- a/examples/acceptance_tests/script_context/plutus.json +++ b/examples/acceptance_tests/script_context/plutus.json @@ -5,8 +5,20 @@ }, "validators": [ { - "title": "withdrawals", - "purpose": "spend", + "title": "deploy.spend", + "datum": { + "title": "Data", + "description": "Any Plutus data." + }, + "redeemer": { + "title": "Data", + "description": "Any Plutus data." + }, + "compiledCode": "5904b001000032323232323232323232322225333006323232323230020013301033300a32323375e0040026601893260103d87980000074c103d87a80004c0103d87980003301033300a32323232323232330123253330123370e002900009919299980c980e0010a4c2a6602c921364c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2069742065787065637465640016375a603400260180042a660289212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630143754002a66602266ebd30106d8799f182aff0000113370e64600a00200690020a50301700130093253330103370e900018099baa0011001153301249012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163322330060020010013237280026ecd30106d8799f182aff0037566600e60106600e6010012900024028600200244a6660260022900009919b8048008cc00c00c004c058004c0040048894ccc0480084cdd2a400497ae013232323253330113371e00a002266e952000330170024bd7009998038038018029bae30130033013002301600330140024c0103d87a80004c0103d87980003301033300a325333010001153300d4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f75747075747300161325333011001153300e4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f757470757473001613253330120011323232533301032323009001330173330113375e6601460160029002260126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d8798000330173330113375e6601460160029003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd700018991918048009980b99980899baf3300a300b3300a300b0014800120024c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d879800033017333011323253330133370e0029002099251300d0021533015490115657870656374656420696e6c696e6520646174756d001630153754002660146016002900226103d87a80004c0103d87980004bd700010a50301700430150033014003153300f4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f757470757473001630140013013001375866006600866006600800a900024008980103d87a80004c0103d87980004bd7018008009129998078008a5113232533300c00213300400400114a0602600466e1d2002300d3754602200244646660020029000001911199980619b870040020132333004004337000069001180a800800918059baa001149858c0040048894ccc0240085261330053001300b002333003003300c0020015734ae6d5ce2ab9d5573caae7d5d02ba15745", + "hash": "40d205673f92b78edf545e560dcbbaa13e9e6b60bca1bebe70950efd" + }, + { + "title": "withdrawals.spend", "datum": { "title": "Unit", "description": "The nullary constructor.", @@ -33,18 +45,7 @@ "hash": "d728bee57cec0eeab091201017a43001978acda9c0957bae8c9704df" }, { - "title": "mint", - "purpose": "mint", - "redeemer": { - "title": "Data", - "description": "Any Plutus data." - }, - "compiledCode": "59049e010000323232323232323232323222533300532323232323001003300100122533300f00114a226464a6660180042660080080022940c04c008cdc3a4004601a6ea8c044004cc034ccc01cc8c8c8c8c8c8c94ccc04cc0580084c8c8cdc78018009bae3016001300932533300f3370e900018091baa0011001153301149012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300830090034800854cc0412401364c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2069742065787065637465640016375c602800264646464600c00200200264640026644660100040020029110000137566600c600e6600c600e00290002401000e600200244a666020002297ae01323232323301537520026600c00c0066eb8c04400cdd59808801180a0011809000980080091129998078010a5eb7bdb1804c8c8c8c94ccc038cdc7802800880189980a19bb037520026e98008ccc01c01c00c014dd718080019bab3010002301300330110024c103d87a80004c0103d87980003300d333007323232323322323232323253330123370e00290010a9980a2490f746f6b656e206e6f7420666f756e640016132323370e00290790a1bad301a001300d00230143754002664466010004002002910103666f6f0033223233223253330153370e00290010801099190009bab301d00130100033017375400400297adef6c6033223300b002001002001375666012601400690040009bae30150013008533300d3370e900018081baa0021002153300f49012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001633005300600748008cc014c01801d20003001001222533301100213374a900125eb804c8c8c8c94ccc040cdc7802800899ba548000cc058dd400125eb804ccc01c01c00c014dd718090019bad3012002301500330130023001001222533300f00213374a900125eb804c8c8c8c94ccc038cdc7802800899ba548000cc050dd300125eb804ccc01c01c00c014dd718080019bab3010002301300330110024c103d87a80004c0103d87980003300d3330073232323233223232533300f3375e006002266e1cc8c018004dd5998049805198049805002240009009240042940c054004c020c94ccc038cdc3a400060226ea8004400454cc0412412a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001633223300700200137566600e60106600e60100049000240246600e6010004900100380418008009129998080008a400026466e0120023300300300130130013001001222533300f00213374a900125eb804c8c8c8c94ccc038cdd7802800899ba548000cc0500092f5c0266600e00e00600a6020006602000460260066022004980103d87a80004c0103d87980004bd701119199800800a4000006444666601666e1c0100080488ccc010010cdc0001a40046028002002460146ea8004526163001001222533300900214984cc014c004c02c008ccc00c00cc0300080055cd2b9b5738aae7555cf2ab9f5740ae855d11", - "hash": "c941d5e9386a58d33f19ed088fc631bf0ded090d148268803e3dce7b" - }, - { - "title": "basic", - "purpose": "spend", + "title": "basic.spend", "datum": { "title": "Unit", "description": "The nullary constructor.", @@ -71,18 +72,13 @@ "hash": "dfee0efa0f0c05bf6f3b69d626911891396a6c21d50da7653ce91aac" }, { - "title": "deploy", - "purpose": "spend", - "datum": { - "title": "Data", - "description": "Any Plutus data." - }, + "title": "mint.mint", "redeemer": { "title": "Data", "description": "Any Plutus data." }, - "compiledCode": "5904b001000032323232323232323232322225333006323232323230020013301033300a32323375e0040026601893260103d87980000074c103d87a80004c0103d87980003301033300a32323232323232330123253330123370e002900009919299980c980e0010a4c2a6602c921364c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2069742065787065637465640016375a603400260180042a660289212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630143754002a66602266ebd30106d8799f182aff0000113370e64600a00200690020a50301700130093253330103370e900018099baa0011001153301249012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163322330060020010013237280026ecd30106d8799f182aff0037566600e60106600e6010012900024028600200244a6660260022900009919b8048008cc00c00c004c058004c0040048894ccc0480084cdd2a400497ae013232323253330113371e00a002266e952000330170024bd7009998038038018029bae30130033013002301600330140024c0103d87a80004c0103d87980003301033300a325333010001153300d4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f75747075747300161325333011001153300e4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f757470757473001613253330120011323232533301032323009001330173330113375e6601460160029002260126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d8798000330173330113375e6601460160029003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd700018991918048009980b99980899baf3300a300b3300a300b0014800120024c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d879800033017333011323253330133370e0029002099251300d0021533015490115657870656374656420696e6c696e6520646174756d001630153754002660146016002900226103d87a80004c0103d87980004bd700010a50301700430150033014003153300f4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f757470757473001630140013013001375866006600866006600800a900024008980103d87a80004c0103d87980004bd7018008009129998078008a5113232533300c00213300400400114a0602600466e1d2002300d3754602200244646660020029000001911199980619b870040020132333004004337000069001180a800800918059baa001149858c0040048894ccc0240085261330053001300b002333003003300c0020015734ae6d5ce2ab9d5573caae7d5d02ba15745", - "hash": "40d205673f92b78edf545e560dcbbaa13e9e6b60bca1bebe70950efd" + "compiledCode": "59049e010000323232323232323232323222533300532323232323001003300100122533300f00114a226464a6660180042660080080022940c04c008cdc3a4004601a6ea8c044004cc034ccc01cc8c8c8c8c8c8c94ccc04cc0580084c8c8cdc78018009bae3016001300932533300f3370e900018091baa0011001153301149012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300830090034800854cc0412401364c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2069742065787065637465640016375c602800264646464600c00200200264640026644660100040020029110000137566600c600e6600c600e00290002401000e600200244a666020002297ae01323232323301537520026600c00c0066eb8c04400cdd59808801180a0011809000980080091129998078010a5eb7bdb1804c8c8c8c94ccc038cdc7802800880189980a19bb037520026e98008ccc01c01c00c014dd718080019bab3010002301300330110024c103d87a80004c0103d87980003300d333007323232323322323232323253330123370e00290010a9980a2490f746f6b656e206e6f7420666f756e640016132323370e00290790a1bad301a001300d00230143754002664466010004002002910103666f6f0033223233223253330153370e00290010801099190009bab301d00130100033017375400400297adef6c6033223300b002001002001375666012601400690040009bae30150013008533300d3370e900018081baa0021002153300f49012a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001633005300600748008cc014c01801d20003001001222533301100213374a900125eb804c8c8c8c94ccc040cdc7802800899ba548000cc058dd400125eb804ccc01c01c00c014dd718090019bad3012002301500330130023001001222533300f00213374a900125eb804c8c8c8c94ccc038cdc7802800899ba548000cc050dd300125eb804ccc01c01c00c014dd718080019bab3010002301300330110024c103d87a80004c0103d87980003300d3330073232323233223232533300f3375e006002266e1cc8c018004dd5998049805198049805002240009009240042940c054004c020c94ccc038cdc3a400060226ea8004400454cc0412412a4173736572746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001633223300700200137566600e60106600e60100049000240246600e6010004900100380418008009129998080008a400026466e0120023300300300130130013001001222533300f00213374a900125eb804c8c8c8c94ccc038cdd7802800899ba548000cc0500092f5c0266600e00e00600a6020006602000460260066022004980103d87a80004c0103d87980004bd701119199800800a4000006444666601666e1c0100080488ccc010010cdc0001a40046028002002460146ea8004526163001001222533300900214984cc014c004c02c008ccc00c00cc0300080055cd2b9b5738aae7555cf2ab9f5740ae855d11", + "hash": "c941d5e9386a58d33f19ed088fc631bf0ded090d148268803e3dce7b" } ] } \ No newline at end of file diff --git a/examples/acceptance_tests/script_context/test.sh b/examples/acceptance_tests/script_context/test.sh index f7d0f8b5..afce301e 100755 --- a/examples/acceptance_tests/script_context/test.sh +++ b/examples/acceptance_tests/script_context/test.sh @@ -29,7 +29,7 @@ if [ $? -ne 0 ]; then exit $? fi -BLUEPRINT=$(jq ".validators[] | select(.title == \"$TITLE\")" plutus.json) +BLUEPRINT=$(jq ".validators[] | select(.title|contains(\"$TITLE\"))" plutus.json) VALIDATOR_HASH=$(echo $BLUEPRINT | jq .hash | sed s/\"//g) VALIDATOR=$(echo $BLUEPRINT | jq .compiledCode | sed s/\"//g) diff --git a/examples/acceptance_tests/script_context/validators/basic.ak b/examples/acceptance_tests/script_context/validators/basic.ak index 0f8ec11a..a2575c42 100644 --- a/examples/acceptance_tests/script_context/validators/basic.ak +++ b/examples/acceptance_tests/script_context/validators/basic.ak @@ -4,14 +4,16 @@ use aiken/transaction.{NoDatum, ScriptContext, Spend, TransactionId} use aiken/transaction/credential.{VerificationKeyCredential} use aiken/transaction/value -fn spend(_datum: Void, _redeemer: Void, ctx: ScriptContext) { - [ - assert_id(ctx.transaction), - assert_purpose(ctx.purpose), - assert_outputs(ctx.transaction), - assert_fee(ctx.transaction), - ] - |> list.and +validator spend { + fn(_datum: Void, _redeemer: Void, ctx: ScriptContext) { + [ + assert_id(ctx.transaction), + assert_purpose(ctx.purpose), + assert_outputs(ctx.transaction), + assert_fee(ctx.transaction), + ] + |> list.and + } } fn assert_id(transaction) { @@ -26,7 +28,7 @@ fn assert_purpose(purpose) { ref.transaction_id == TransactionId( #"0000000000000000000000000000000000000000000000000000000000000000", ) && ref.output_index == 0 - _ -> error("script purpose isn't 'Spend'") + _ -> error "script purpose isn't 'Spend'" } } @@ -47,6 +49,6 @@ fn assert_outputs(transaction) { output.reference_script == None, ] |> list.and - _ -> error("unexpected number of outputs") + _ -> error "unexpected number of outputs" } } diff --git a/examples/acceptance_tests/script_context/validators/deploy.ak b/examples/acceptance_tests/script_context/validators/deploy.ak index c2ef8707..c753b45f 100644 --- a/examples/acceptance_tests/script_context/validators/deploy.ak +++ b/examples/acceptance_tests/script_context/validators/deploy.ak @@ -5,13 +5,15 @@ use aiken/list use aiken/transaction.{DatumHash, InlineDatum, ScriptContext} use aiken/transaction/credential.{Inline, VerificationKeyCredential} -fn spend(datum: Data, _redeemer: Data, ctx: ScriptContext) { - [ - assert_datum(datum), - assert_datums(ctx.transaction.datums), - assert_outputs(ctx.transaction.outputs), - ] - |> list.and +validator spend { + fn(datum: Data, _redeemer: Data, ctx: ScriptContext) { + [ + assert_datum(datum), + assert_datums(ctx.transaction.datums), + assert_outputs(ctx.transaction.outputs), + ] + |> list.and + } } fn assert_datum(datum) { @@ -38,7 +40,7 @@ fn assert_outputs(outputs) { when outputs is { [output_1, output_2, ..] -> assert_first_output(output_1) && assert_second_output(output_2) - _ -> error("expected transaction to have (at least) 2 outputs") + _ -> error "expected transaction to have (at least) 2 outputs" } } @@ -65,7 +67,7 @@ fn assert_second_output(output) { ), when output.datum is { InlineDatum(_) -> True - _ -> error("expected inline datum") + _ -> error "expected inline datum" }, ] |> list.and diff --git a/examples/acceptance_tests/script_context/validators/mint.ak b/examples/acceptance_tests/script_context/validators/mint.ak index 6f12b155..734c80a4 100644 --- a/examples/acceptance_tests/script_context/validators/mint.ak +++ b/examples/acceptance_tests/script_context/validators/mint.ak @@ -3,13 +3,15 @@ use aiken/list use aiken/transaction.{Mint, ScriptContext} use aiken/transaction/value -fn mint(redeemer: Data, ctx: ScriptContext) { - [ - assert_purpose(ctx), - assert_mint(ctx.purpose, ctx.transaction), - assert_redeemers(ctx, redeemer), - ] - |> list.and +validator mint { + fn(redeemer: Data, ctx: ScriptContext) { + [ + assert_purpose(ctx), + assert_mint(ctx.purpose, ctx.transaction), + assert_redeemers(ctx, redeemer), + ] + |> list.and + } } fn assert_purpose(ctx) { @@ -27,7 +29,7 @@ fn assert_mint(purpose, transaction) { let tokens = value.tokens(transaction.mint, policy_id) when dict.get(tokens, #"666f6f") is { - None -> error("token not found") + None -> error "token not found" Some(quantity) -> quantity == 1337 } } diff --git a/examples/acceptance_tests/script_context/validators/withdrawals.ak b/examples/acceptance_tests/script_context/validators/withdrawals.ak index 200393e3..1c8ce18b 100644 --- a/examples/acceptance_tests/script_context/validators/withdrawals.ak +++ b/examples/acceptance_tests/script_context/validators/withdrawals.ak @@ -5,31 +5,33 @@ use aiken/transaction/credential.{ Inline, ScriptCredential, VerificationKeyCredential, } -fn spend(_datum: Void, _redeemer: Void, ctx: ScriptContext) { - let alice = - Inline( - VerificationKeyCredential( - #"22222222222222222222222222222222222222222222222222222222", - ), - ) +validator spend { + fn(_datum: Void, _redeemer: Void, ctx: ScriptContext) { + let alice = + Inline( + VerificationKeyCredential( + #"22222222222222222222222222222222222222222222222222222222", + ), + ) - let bob = - Inline( - ScriptCredential( - #"afddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72", - ), - ) + let bob = + Inline( + ScriptCredential( + #"afddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72", + ), + ) - [ - when dict.get(ctx.transaction.withdrawals, alice) is { - None -> error("alice's withdrawal not found") - Some(value) -> value == 42 - }, - when dict.get(ctx.transaction.withdrawals, bob) is { - None -> error("bob's withdrawal not found") - Some(value) -> value == 14 - }, - dict.keys(ctx.transaction.withdrawals) == [alice, bob], - ] - |> list.and + [ + when dict.get(ctx.transaction.withdrawals, alice) is { + None -> error "alice's withdrawal not found" + Some(value) -> value == 42 + }, + when dict.get(ctx.transaction.withdrawals, bob) is { + None -> error "bob's withdrawal not found" + Some(value) -> value == 14 + }, + dict.keys(ctx.transaction.withdrawals) == [alice, bob], + ] + |> list.and + } }