Skip to content

Commit

Permalink
Fix compilation errors in Api.GenSpec.
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanknowles authored and erikd committed Mar 16, 2023
1 parent fb92cd1 commit 68f2612
Showing 1 changed file with 24 additions and 25 deletions.
49 changes: 24 additions & 25 deletions lib/wallet/test/unit/Cardano/Api/GenSpec.hs
Expand Up @@ -38,7 +38,6 @@ import Cardano.Api
, ScriptValidity (..)
, ShelleyWitnessSigningKey (..)
, SimpleScript (..)
, SimpleScriptVersion (..)
, SlotNo (..)
, StakeAddressReference (..)
, TxAuxScripts (..)
Expand Down Expand Up @@ -258,7 +257,7 @@ spec =
$ genExtraKeyWitnessesCoverage era
it "genSimpleScriptV1" $
property genSimpleScriptCoverageV1
it "genSimpleScriptV2" $
it "genSimpleScript" $
property genSimpleScriptCoverageV2
it "genAssetName" $
property genAssetNameCoverage
Expand Down Expand Up @@ -656,7 +655,7 @@ genExtraKeyWitnessesCoverage era ws =

genSimpleScriptCoverageV1 :: Property
genSimpleScriptCoverageV1 =
forAll (genSimpleScript SimpleScriptV1) $ \script ->
forAll genSimpleScript $ \script ->
checkCoverage
$ cover 10 (requiresSignature script)
"script has \"require signature\""
Expand All @@ -674,7 +673,7 @@ genSimpleScriptCoverageV1 =

genSimpleScriptCoverageV2 :: Property
genSimpleScriptCoverageV2 =
forAll (genSimpleScript SimpleScriptV2) $ \script ->
forAll genSimpleScript $ \script ->
checkCoverage
$ cover 10 (requiresSignature script)
"script has \"require signature\""
Expand All @@ -694,68 +693,68 @@ genSimpleScriptCoverageV2 =
"script has recursive script primitives (allOf, anyOf, mOf)"
True

hasOnlyNonRecursiveScriptPrimitive :: forall lang. SimpleScript lang -> Bool
hasOnlyNonRecursiveScriptPrimitive :: SimpleScript -> Bool
hasOnlyNonRecursiveScriptPrimitive = \case
(RequireSignature _) -> True
(RequireTimeBefore _ _) -> True
(RequireTimeAfter _ _) -> True
(RequireTimeBefore _) -> True
(RequireTimeAfter _) -> True
(RequireAllOf _) -> False
(RequireAnyOf _) -> False
(RequireMOf _ _) -> False

-- Returns true if any part of the script might require a signature.
requiresSignature :: forall lang. SimpleScript lang -> Bool
requiresSignature :: SimpleScript -> Bool
requiresSignature = \case
(RequireSignature _) -> True
(RequireTimeBefore _ _) -> False
(RequireTimeAfter _ _) -> False
(RequireTimeBefore _) -> False
(RequireTimeAfter _) -> False
(RequireAllOf ss) -> any requiresSignature ss
(RequireAnyOf ss) -> any requiresSignature ss
(RequireMOf _ ss) -> any requiresSignature ss

-- Returns true if any part of the script requires "time before".
requiresTimeBefore :: forall lang. SimpleScript lang -> Bool
requiresTimeBefore :: SimpleScript -> Bool
requiresTimeBefore = \case
(RequireSignature _) -> False
(RequireTimeBefore _ _) -> True
(RequireTimeAfter _ _) -> False
(RequireTimeBefore _) -> True
(RequireTimeAfter _) -> False
(RequireAllOf ss) -> any requiresTimeBefore ss
(RequireAnyOf ss) -> any requiresTimeBefore ss
(RequireMOf _ ss) -> any requiresTimeBefore ss

-- Returns true if any part of the script requires "time after".
requiresTimeAfter :: forall lang. SimpleScript lang -> Bool
requiresTimeAfter :: SimpleScript -> Bool
requiresTimeAfter = \case
(RequireSignature _) -> False
(RequireTimeBefore _ _) -> False
(RequireTimeAfter _ _) -> True
(RequireTimeBefore _) -> False
(RequireTimeAfter _) -> True
(RequireAllOf ss) -> any requiresTimeBefore ss
(RequireAnyOf ss) -> any requiresTimeBefore ss
(RequireMOf _ ss) -> any requiresTimeBefore ss

requiresAllOf :: forall lang. SimpleScript lang -> Bool
requiresAllOf :: SimpleScript -> Bool
requiresAllOf = \case
(RequireSignature _) -> False
(RequireTimeBefore _ _) -> False
(RequireTimeAfter _ _) -> False
(RequireTimeBefore _) -> False
(RequireTimeAfter _) -> False
(RequireAllOf _) -> True
(RequireAnyOf ss) -> any requiresAllOf ss
(RequireMOf _ ss) -> any requiresAllOf ss

requiresAnyOf :: forall lang. SimpleScript lang -> Bool
requiresAnyOf :: SimpleScript -> Bool
requiresAnyOf = \case
(RequireSignature _) -> False
(RequireTimeBefore _ _) -> False
(RequireTimeAfter _ _) -> False
(RequireTimeBefore _) -> False
(RequireTimeAfter _) -> False
(RequireAllOf ss) -> any requiresAnyOf ss
(RequireAnyOf _) -> True
(RequireMOf _ ss) -> any requiresAnyOf ss

requiresMOf :: forall lang. SimpleScript lang -> Bool
requiresMOf :: SimpleScript -> Bool
requiresMOf = \case
(RequireSignature _) -> False
(RequireTimeBefore _ _) -> False
(RequireTimeAfter _ _) -> False
(RequireTimeBefore _) -> False
(RequireTimeAfter _) -> False
(RequireAllOf ss) -> any requiresMOf ss
(RequireAnyOf ss) -> any requiresMOf ss
(RequireMOf _ _) -> True
Expand Down

0 comments on commit 68f2612

Please sign in to comment.