From 823492c27bf22b0d33e21f55fa3a6f8bd0898d26 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Wed, 14 Aug 2024 19:01:05 +0200 Subject: [PATCH] Adjust v3 script context end-to-end tests to work with new syntax. --- crates/uplc/src/tx/eval.rs | 10 +--- .../v3/validators/simple_spend.ak | 46 +++++++++++-------- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/crates/uplc/src/tx/eval.rs b/crates/uplc/src/tx/eval.rs index fecc78a4..c02771c4 100644 --- a/crates/uplc/src/tx/eval.rs +++ b/crates/uplc/src/tx/eval.rs @@ -46,15 +46,7 @@ pub fn eval_redeemer( .apply_data(redeemer.data.clone()) .apply_data(script_context.to_plutus_data()), - // FIXME: Temporary, but needed until https://github.com/aiken-lang/aiken/pull/977 - // is implemented. - ScriptContext::V3 { .. } => if let Some(datum) = datum { - program.apply_data(datum) - } else { - program - } - .apply_data(redeemer.data.clone()) - .apply_data(script_context.to_plutus_data()), + ScriptContext::V3 { .. } => program.apply_data(script_context.to_plutus_data()), }; let mut eval_result = if let Some(costs) = cost_mdl_opt { diff --git a/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak index fe628189..81dddc0c 100644 --- a/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak +++ b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak @@ -3,31 +3,40 @@ use cardano/assets use cardano/credential.{Address, Script} use cardano/transaction.{ InlineDatum, Input, Output, OutputReference, ScriptContext, ScriptInfo, - ScriptPurpose, Spend, Spending, + ScriptPurpose, Spend, Spending, Transaction, } -validator { - fn spend(_tmp1: Void, _tmp2: Void, ctx: ScriptContext) { - assert_transaction_id(ctx.transaction.id) +validator simple_spend { + spend( + _datum: Option, + _redeemer: Void, + output_ref: OutputReference, + transaction: Transaction, + ) { + assert_transaction_id(transaction.id) - assert_script_info(ctx.info) + assert_script_info(output_ref) - assert_inputs(ctx.transaction.inputs) + assert_inputs(transaction.inputs) - expect [] = ctx.transaction.outputs + expect [] = transaction.outputs - expect [] = ctx.transaction.reference_inputs + expect [] = transaction.reference_inputs - expect [] = ctx.transaction.extra_signatories + expect [] = transaction.extra_signatories - expect 42 == ctx.transaction.fee + expect 42 == transaction.fee - assert_redeemers(ctx.transaction.redeemers) + assert_redeemers(transaction.redeemers) - expect [] == dict.to_pairs(ctx.transaction.datums) + expect [] == dict.to_pairs(transaction.datums) True } + + else(_ctx) { + fail + } } fn assert_transaction_id(id: ByteArray) { @@ -36,15 +45,12 @@ fn assert_transaction_id(id: ByteArray) { Void } -fn assert_script_info(info: ScriptInfo) { +fn assert_script_info(info: OutputReference) { expect - Spending( - OutputReference { - transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000", - output_index: 0, - }, - Some(void()), - ) == info + OutputReference { + transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000", + output_index: 0, + } == info Void }