From cb0f61eb2cf272ee13e21a25ce3b61825c1dec9a Mon Sep 17 00:00:00 2001 From: Jack Hodgkinson <30505104+jhodgdev@users.noreply.github.com> Date: Mon, 9 May 2022 12:17:49 +0100 Subject: [PATCH] Applied Emily's suggestions --- agora-test/Spec/Sample/Shared.hs | 11 +++++++- agora-test/Spec/Sample/Treasury.hs | 24 +++++++++++++++++ agora-test/Spec/Treasury.hs | 42 ++---------------------------- agora.cabal | 1 - 4 files changed, 36 insertions(+), 42 deletions(-) diff --git a/agora-test/Spec/Sample/Shared.hs b/agora-test/Spec/Sample/Shared.hs index bec7174..d97c5ff 100644 --- a/agora-test/Spec/Sample/Shared.hs +++ b/agora-test/Spec/Sample/Shared.hs @@ -39,6 +39,7 @@ module Spec.Sample.Shared ( gatCs, mockTrEffect, trCredential, + wrongEffHash, ) where import Agora.Effect.NoOp (noOpValidator) @@ -77,7 +78,7 @@ import Plutus.V1.Ledger.Api ( import Plutus.V1.Ledger.Contexts ( TxOut (..), ) -import Plutus.V1.Ledger.Scripts (Validator, ValidatorHash) +import Plutus.V1.Ledger.Scripts (Validator, ValidatorHash (..)) import Plutus.V1.Ledger.Value (TokenName, Value) import Plutus.V1.Ledger.Value qualified as Value @@ -179,6 +180,14 @@ gatTn = validatorHashToTokenName $ validatorHash mockTrEffect mockTrEffect :: Validator mockTrEffect = mkValidator $ noOpValidator gatCs +{- | A SHA-256 hash which (in all certainty) should not match the + hash of the dummy effect script. +-} +wrongEffHash :: ValidatorHash +wrongEffHash = + ValidatorHash + "a21bc4a1d95600f9fa0a00b97ed0fa49a152a72de76253cb706f90b4b40f837b" + ------------------------------------------------------------------ minAda :: Value diff --git a/agora-test/Spec/Sample/Treasury.hs b/agora-test/Spec/Sample/Treasury.hs index c4836d6..8597cbb 100644 --- a/agora-test/Spec/Sample/Treasury.hs +++ b/agora-test/Spec/Sample/Treasury.hs @@ -14,6 +14,7 @@ module Spec.Sample.Treasury ( treasuryRef, gatTn, walletIn, + trCtxGATNameNotAddress, ) where import Plutarch.Api.V1 (validatorHash) @@ -44,6 +45,7 @@ import Spec.Sample.Shared ( signer, treasuryOut, withMinAda, + wrongEffHash, ) import Spec.Util (datumPair) @@ -133,3 +135,25 @@ walletIn = addressBs :: BuiltinByteString (ValidatorHash addressBs) = validatorHash mockTrEffect + +trCtxGATNameNotAddress :: ScriptContext +trCtxGATNameNotAddress = + let txInfo = validCtx.scriptContextTxInfo + inputs = txInfo.txInfoInputs + effectIn = inputs !! 1 + invalidEff = + effectIn + { txInInfoResolved = + effectIn.txInInfoResolved + { txOutAddress = Address (ScriptCredential wrongEffHash) Nothing + } + } + in validCtx + { scriptContextTxInfo = + txInfo + { txInfoInputs = + [ head inputs + , invalidEff + ] + } + } diff --git a/agora-test/Spec/Treasury.hs b/agora-test/Spec/Treasury.hs index 039ec6d..dd1044a 100644 --- a/agora-test/Spec/Treasury.hs +++ b/agora-test/Spec/Treasury.hs @@ -25,25 +25,17 @@ import Agora.Treasury ( TreasuryRedeemer (SpendTreasuryGAT), treasuryValidator, ) -import Plutus.V1.Ledger.Address (Address (Address)) import Plutus.V1.Ledger.Api ( - BuiltinByteString, DCert (DCertDelegRegKey), ) import Plutus.V1.Ledger.Contexts ( ScriptContext (scriptContextPurpose, scriptContextTxInfo), ScriptPurpose (Certifying, Rewarding, Spending), TxInfo (txInfoInputs, txInfoMint), - txInInfoResolved, - txOutAddress, ) import Plutus.V1.Ledger.Credential ( - Credential (ScriptCredential), StakingCredential (StakingHash), ) -import Plutus.V1.Ledger.Scripts ( - ValidatorHash (ValidatorHash), - ) import Plutus.V1.Ledger.Value qualified as Value import Spec.Sample.Shared ( trCredential, @@ -51,6 +43,7 @@ import Spec.Sample.Shared ( import Spec.Sample.Treasury ( gatCs, gatTn, + trCtxGATNameNotAddress, treasuryRef, validCtx, walletIn, @@ -125,32 +118,7 @@ tests = (treasuryValidator gatCs) () SpendTreasuryGAT - ( let txInfo = validCtx.scriptContextTxInfo - inputs = txInfo.txInfoInputs - effectIn = inputs !! 1 - invalidEff = - effectIn - { txInInfoResolved = - effectIn.txInInfoResolved - { txOutAddress = - Address - ( ScriptCredential $ - ValidatorHash - wrongHash - ) - Nothing - } - } - in validCtx - { scriptContextTxInfo = - txInfo - { txInfoInputs = - [ head inputs - , invalidEff - ] - } - } - ) + trCtxGATNameNotAddress , validatorFailsWith "Fails with wallet as input" (treasuryValidator gatCs) @@ -172,9 +140,3 @@ tests = ] ] ] - -{- | A SHA-256 hash which (in all certainty) should not match the - hash of the dummy effect script. --} -wrongHash :: BuiltinByteString -wrongHash = "a21bc4a1d95600f9fa0a00b97ed0fa49a152a72de76253cb706f90b4b40f837b" diff --git a/agora.cabal b/agora.cabal index 0f5f221..36cd7f5 100644 --- a/agora.cabal +++ b/agora.cabal @@ -114,7 +114,6 @@ common test-deps , agora , apropos , apropos-tx - , lens , QuickCheck , quickcheck-instances , tasty