module Plutarch.Script (Script (..), serialiseScript, deserialiseScript) where import Data.ByteString.Short (ShortByteString) import GHC.Generics (Generic) import PlutusLedgerApi.Common (serialiseUPLC, uncheckedDeserialiseUPLC) import UntypedPlutusCore qualified as UPLC newtype Script = Script {Script -> Program DeBruijn DefaultUni DefaultFun () unScript :: UPLC.Program UPLC.DeBruijn UPLC.DefaultUni UPLC.DefaultFun ()} deriving newtype (Script -> Script -> Bool (Script -> Script -> Bool) -> (Script -> Script -> Bool) -> Eq Script forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Script -> Script -> Bool == :: Script -> Script -> Bool $c/= :: Script -> Script -> Bool /= :: Script -> Script -> Bool Eq) deriving stock (Int -> Script -> ShowS [Script] -> ShowS Script -> String (Int -> Script -> ShowS) -> (Script -> String) -> ([Script] -> ShowS) -> Show Script forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Script -> ShowS showsPrec :: Int -> Script -> ShowS $cshow :: Script -> String show :: Script -> String $cshowList :: [Script] -> ShowS showList :: [Script] -> ShowS Show, (forall x. Script -> Rep Script x) -> (forall x. Rep Script x -> Script) -> Generic Script forall x. Rep Script x -> Script forall x. Script -> Rep Script x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. Script -> Rep Script x from :: forall x. Script -> Rep Script x $cto :: forall x. Rep Script x -> Script to :: forall x. Rep Script x -> Script Generic) serialiseScript :: Script -> ShortByteString serialiseScript :: Script -> ShortByteString serialiseScript = Program DeBruijn DefaultUni DefaultFun () -> ShortByteString serialiseUPLC (Program DeBruijn DefaultUni DefaultFun () -> ShortByteString) -> (Script -> Program DeBruijn DefaultUni DefaultFun ()) -> Script -> ShortByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . Script -> Program DeBruijn DefaultUni DefaultFun () unScript deserialiseScript :: ShortByteString -> Script deserialiseScript :: ShortByteString -> Script deserialiseScript = Program DeBruijn DefaultUni DefaultFun () -> Script Script (Program DeBruijn DefaultUni DefaultFun () -> Script) -> (ShortByteString -> Program DeBruijn DefaultUni DefaultFun ()) -> ShortByteString -> Script forall b c a. (b -> c) -> (a -> b) -> a -> c . ShortByteString -> Program DeBruijn DefaultUni DefaultFun () uncheckedDeserialiseUPLC