module Cooked.Conversion.ToScriptHash where
import Cooked.Conversion.ToVersionedScript
import Plutus.Script.Utils.Scripts qualified as Script
import Plutus.Script.Utils.Typed qualified as Script
import PlutusLedgerApi.V3 qualified as Api
class ToScriptHash a where
toScriptHash :: a -> Api.ScriptHash
instance ToScriptHash Api.ScriptHash where
toScriptHash :: ScriptHash -> ScriptHash
toScriptHash = ScriptHash -> ScriptHash
forall a. a -> a
id
instance ToScriptHash Script.MintingPolicyHash where
toScriptHash :: MintingPolicyHash -> ScriptHash
toScriptHash (Script.MintingPolicyHash BuiltinByteString
hash) = BuiltinByteString -> ScriptHash
Script.ScriptHash BuiltinByteString
hash
instance ToScriptHash Script.ValidatorHash where
toScriptHash :: ValidatorHash -> ScriptHash
toScriptHash (Script.ValidatorHash BuiltinByteString
hash) = BuiltinByteString -> ScriptHash
Script.ScriptHash BuiltinByteString
hash
instance ToScriptHash (Script.Versioned Script.Script) where
toScriptHash :: Versioned Script -> ScriptHash
toScriptHash = Versioned Script -> ScriptHash
Script.scriptHash
instance ToScriptHash (Script.Versioned Script.Validator) where
toScriptHash :: Versioned Validator -> ScriptHash
toScriptHash = Versioned Script -> ScriptHash
forall a. ToScriptHash a => a -> ScriptHash
toScriptHash (Versioned Script -> ScriptHash)
-> (Versioned Validator -> Versioned Script)
-> Versioned Validator
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Versioned Validator -> Versioned Script
forall a. ToVersionedScript a => a -> Versioned Script
toVersionedScript
instance ToScriptHash (Script.TypedValidator a) where
toScriptHash :: TypedValidator a -> ScriptHash
toScriptHash = Versioned Script -> ScriptHash
forall a. ToScriptHash a => a -> ScriptHash
toScriptHash (Versioned Script -> ScriptHash)
-> (TypedValidator a -> Versioned Script)
-> TypedValidator a
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TypedValidator a -> Versioned Script
forall a. ToVersionedScript a => a -> Versioned Script
toVersionedScript
instance ToScriptHash (Script.Versioned Script.MintingPolicy) where
toScriptHash :: Versioned MintingPolicy -> ScriptHash
toScriptHash = Versioned Script -> ScriptHash
forall a. ToScriptHash a => a -> ScriptHash
toScriptHash (Versioned Script -> ScriptHash)
-> (Versioned MintingPolicy -> Versioned Script)
-> Versioned MintingPolicy
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Versioned MintingPolicy -> Versioned Script
forall a. ToVersionedScript a => a -> Versioned Script
toVersionedScript