@@ -12,7 +12,11 @@ module Plutus.Test.Model.Validator(
12
12
toBuiltinPolicy ,
13
13
toBuiltinStake ,
14
14
15
+ -- * Hashes
16
+ validatorHash ,
15
17
scriptCurrencySymbol ,
18
+ stakeValidatorHash ,
19
+ mintingPolicyHash ,
16
20
) where
17
21
18
22
import Prelude
@@ -34,6 +38,11 @@ class (HasAddress script, ToData (DatumType script), FromData (DatumType script)
34
38
type RedeemerType script :: Type
35
39
toValidator :: script -> Validator
36
40
41
+ instance IsValidator Validator where
42
+ type DatumType Validator = BuiltinData
43
+ type RedeemerType Validator = BuiltinData
44
+ toValidator = id
45
+
37
46
instance (ToData datum , FromData datum , ToData redeemer , FromData redeemer )
38
47
=> IsValidator (TypedValidator datum redeemer ) where
39
48
type DatumType (TypedValidator datum redeemer ) = datum
@@ -51,6 +60,9 @@ instance (ToData redeemer, FromData redeemer) => IsValidator (TypedPolicy redeem
51
60
type RedeemerType (TypedPolicy redeemer ) = redeemer
52
61
toValidator (TypedPolicy (MintingPolicy script)) = Validator script
53
62
63
+ validatorHash :: IsValidator a => a -> ValidatorHash
64
+ validatorHash = Fork. validatorHash . toValidator
65
+
54
66
-- | Phantom type to annotate types
55
67
newtype TypedValidator datum redeemer = TypedValidator
56
68
{ unTypedValidator :: Validator }
@@ -62,9 +74,6 @@ instance HasAddress (TypedValidator datum redeemer) where
62
74
newtype TypedPolicy redeemer = TypedPolicy
63
75
{ unTypedPolicy :: MintingPolicy }
64
76
65
- scriptCurrencySymbol :: TypedPolicy a -> CurrencySymbol
66
- scriptCurrencySymbol (TypedPolicy script) = Fork. scriptCurrencySymbol script
67
-
68
77
instance (ToData redeemer , FromData redeemer ) => HasAddress (TypedPolicy redeemer ) where
69
78
toAddress = toAddress . toValidator
70
79
@@ -90,6 +99,19 @@ instance (ToData redeemer, FromData redeemer) => HasAddress (TypedStake redeemer
90
99
instance HasStakingCredential (TypedStake redeemer ) where
91
100
toStakingCredential (TypedStake script) = toStakingCredential script
92
101
102
+ ---------------------------------------------------------------------------------
103
+
104
+ scriptCurrencySymbol :: TypedPolicy a -> CurrencySymbol
105
+ scriptCurrencySymbol = Fork. scriptCurrencySymbol . unTypedPolicy
106
+
107
+ mintingPolicyHash :: TypedPolicy a -> MintingPolicyHash
108
+ mintingPolicyHash = Fork. mintingPolicyHash . unTypedPolicy
109
+
110
+ stakeValidatorHash :: TypedStake a -> StakeValidatorHash
111
+ stakeValidatorHash = Fork. stakeValidatorHash . unTypedStake
112
+
113
+ ---------------------------------------------------------------------------------
114
+
93
115
-- | Coverts to low-level validator representation
94
116
{-# INLINABLE toBuiltinValidator #-}
95
117
toBuiltinValidator :: (UnsafeFromData datum , UnsafeFromData redeemer )
0 commit comments