{-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -- | This file is generated by "plutus-preprocessor:plutus-preprocessor" module Test.Cardano.Ledger.Plutus.Examples ( alwaysSucceedsNoDatum, alwaysSucceedsWithDatum, alwaysFailsNoDatum, alwaysFailsWithDatum, redeemerSameAsDatum, evenDatum, evenRedeemerNoDatum, evenRedeemerWithDatum, purposeIsWellformedNoDatum, purposeIsWellformedWithDatum, datumIsWellformed, inputsOutputsAreNotEmptyNoDatum, inputsOutputsAreNotEmptyWithDatum, inputsOverlapsWithRefInputs, ) where import Cardano.Ledger.Plutus.Language (Plutus (..), PlutusBinary (..), SLanguage (..)) import Data.ByteString (ByteString) import qualified Data.ByteString.Base16 as Base16 (decode) import qualified Data.ByteString.Short as SBS (toShort) import GHC.Stack decodeHexPlutus :: HasCallStack => ByteString -> Plutus l decodeHexPlutus :: forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus = ([Char] -> Plutus l) -> (ByteString -> Plutus l) -> Either [Char] ByteString -> Plutus l forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either [Char] -> Plutus l forall a. HasCallStack => [Char] -> a error (PlutusBinary -> Plutus l forall (l :: Language). PlutusBinary -> Plutus l Plutus (PlutusBinary -> Plutus l) -> (ByteString -> PlutusBinary) -> ByteString -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . ShortByteString -> PlutusBinary PlutusBinary (ShortByteString -> PlutusBinary) -> (ByteString -> ShortByteString) -> ByteString -> PlutusBinary forall b c a. (b -> c) -> (a -> b) -> a -> c . ByteString -> ShortByteString SBS.toShort) (Either [Char] ByteString -> Plutus l) -> (ByteString -> Either [Char] ByteString) -> ByteString -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . ByteString -> Either [Char] ByteString Base16.decode -- | Script that always succeeds, unless arguments are malformed or context contains a datum alwaysSucceedsNoDatum :: SLanguage l -> Plutus l alwaysSucceedsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l alwaysSucceedsNoDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "38c32b1383b0024ad3c3a4b16996c2542051a5b1615973c252cd831d" -- Preprocessed PlutusV1 Script: -- @@@ -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- scriptPurpose_3 -> case scriptPurpose_3 of -- {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- _ -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "5833010000333332222222323253330073370e900118049baa30053008002161498c010004c010dd5000aab9d5" , ByteString "744ae6955cf2ba11" ] -- ScriptHash "f6f8a9dd4cabbc802d15de6f7f01b55cb6c09eef071671bce6011e8f" -- Preprocessed PlutusV2 Script: -- @@@ -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- scriptPurpose_3 -> case scriptPurpose_3 of -- {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- _ -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "5833010000333332222222323253330073370e900118049baa30053008002161498c010004c010dd5000aab9d5" , ByteString "744ae6955cf2ba11" ] -- ScriptHash "003e78df35f266c5f295e9c7ba29116e0ae2cff44535c618fb0fc163" -- Preprocessed PlutusV3 Script: -- @@@ -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 -- in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of -- {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58ad0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c" , ByteString "8c94cd4d6600266e1d2000002891909118010019805800c56600266e1d200200289091000c5900c2018001214a" , ByteString "02944c028008c030004dd518038009803000c528a00e37546a66002446464253001005801c0090011803980500" , ByteString "1180300098029baa0022220012233002300500130080018a4d132633002491035054350049900501" ] -- ScriptHash "b8d9685a3bfbdaf99f79c4cd3df32070593084d5296a2848589dbc98" -- Preprocessed PlutusV4 Script: -- @@@ -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4 -- _sh_5 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 -- in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of -- {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58640101003322232993370e90014800c880094a39900191000a45326ea8c018006447200528009804800a5002" , ByteString "000a49429444c98cc00d2401035054350049a930dd54cc9baa00191000a45200322900191400401a0090029bae" , ByteString "30090010911100115d0ab9c1" ] -- | Script that always succeeds, unless arguments are malformed or context does not contain a datum alwaysSucceedsWithDatum :: SLanguage l -> Plutus l alwaysSucceedsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l alwaysSucceedsWithDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "dd9849ea907bc9bd9fc372d5d3e4e252d7a35d3b461c04e25d3b93ef" -- Preprocessed PlutusV1 Script: -- @@@ -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "583d010000333333222222222323253330093370e900118059baa3007300a00214984c8cc01c0040058c018004" , ByteString "c018dd5000aab9d5744ae6955cf2ba157361" ] -- ScriptHash "4f71b097e95d0df74efe265883545be88cd13797b58bee5b0eba9601" -- Preprocessed PlutusV2 Script: -- @@@ -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "583d010000333333222222222323253330093370e900118059baa3007300a00214984c8cc01c0040058c018004" , ByteString "c018dd5000aab9d5744ae6955cf2ba157361" ] -- ScriptHash "5f87ee5b563f68deb2d64fcfe640b1de0541922137117bdf96beb46c" -- Preprocessed PlutusV3 Script: -- @@@ -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptPurpose_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 -- in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of -- {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.True; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58ad0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c" , ByteString "8c94cd4d6600266e1d2000002891909118010019805800c56600266e1d200200289091000c5900c2018001214a" , ByteString "22940c028008c030004dd518038009803000c528200e37546a66002446464253001005801c0090011803980500" , ByteString "1180300098029baa0022220012233002300500130080018a4d132633002491035054350049900501" ] -- ScriptHash "2a8c876c93e2b41827d3b21a942476c7304b99bd6c4091d5a01cce82" -- Preprocessed PlutusV4 Script: -- @@@ -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptPurpose_4 -- _sh_5 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 -- in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of -- {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.True; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58640101003322232993370e90014800c880094a19900191000a45326ea8c018006447200528009804800a5002" , ByteString "000a49469404c98cc00d2401035054350049a930dd54cc9baa00191000a45200322900191400401a0090029bae" , ByteString "30090010911100115d0ab9c1" ] -- | Script that always fails, unless arguments are malformed or context contains a datum alwaysFailsNoDatum :: SLanguage l -> Plutus l alwaysFailsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l alwaysFailsNoDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "b92fb32a431f2739c4378eddcfd1372dbe0916d85a7585db109e4126" -- Preprocessed PlutusV1 Script: -- @@@ -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "5833010000333332222222323253330073370e900118049baa30053008002149858c010004c010dd5000aab9d5" , ByteString "744ae6955cf2ba11" ] -- ScriptHash "aeb8c6fdbe38292dc5fe7e121fb655c86cc511dbb5099bc2b3b9a242" -- Preprocessed PlutusV2 Script: -- @@@ -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "5833010000333332222222323253330073370e900118049baa30053008002149858c010004c010dd5000aab9d5" , ByteString "744ae6955cf2ba11" ] -- ScriptHash "845624bf0d1f65ac0f5a175bc85c44782dc83d2a9e625bc25e39d8fb" -- Preprocessed PlutusV3 Script: -- @@@ -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of -- {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4) -> case scriptInfo_4 of -- {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.True; -- _ -> GHC.Types.False}; -- GHC.Maybe.Nothing -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "589c0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c" , ByteString "c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c" , ByteString "300d002214a22940c03c004dd518050009804800c52820143754600e6014004600c002600a6ea800888cc008c0" , ByteString "14004c02000629344c98cc009241035054350049900501" ] -- ScriptHash "44fdb41277e69bd668a7a911a912d14c610cf1f92e4eb292857a0e32" -- Preprocessed PlutusV4 Script: -- @@@ -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of -- {GHC.Maybe.Just (PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4 -- _sh_5) -> case scriptInfo_4 of -- {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.True; -- _ -> GHC.Types.False}; -- GHC.Maybe.Nothing -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58570101009800aba1ab9cabd84888a64cc00920049375400322001488ca4cdc3a400520032200252866400644" , ByteString "002914c9baa3009001911c8014a0026018002940080029251a5006ea8009326330034901035054350049a931" ] -- | Script that always fails, unless arguments are malformed or context does not contain a datum alwaysFailsWithDatum :: SLanguage l -> Plutus l alwaysFailsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l alwaysFailsWithDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "fb96118db82531c7eec57c892af422fd002d48a5591dc99b9c321685" -- Preprocessed PlutusV1 Script: -- @@@ -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- _) -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "58340100003333322222222323253330083370e900118051baa30063009002161498c014004c014dd5000aab9d" , ByteString "5744ae6955cf2ba101" ] -- ScriptHash "46b9f33a9b0a7a712af70cb8789ae84417ec379017a8c0143e82ded1" -- Preprocessed PlutusV2 Script: -- @@@ -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of -- {GHC.Maybe.Nothing -> GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- _) -> GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "58340100003333322222222323253330083370e900118051baa30063009002161498c014004c014dd5000aab9d" , ByteString "5744ae6955cf2ba101" ] -- ScriptHash "fe6f5484631753d44c197639b874d34bd65b33a590ac7d8c1cd43ca5" -- Preprocessed PlutusV3 Script: -- @@@ -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of -- {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4) -> case scriptInfo_4 of -- {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> GHC.Types.True}; -- GHC.Maybe.Nothing -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "589c0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c" , ByteString "c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c" , ByteString "300d002214a02944c03c004dd518050009804800c528a0143754600e6014004600c002600a6ea800888cc008c0" , ByteString "14004c02000629344c98cc009241035054350049900501" ] -- ScriptHash "b1377e9ee52244b8d7abd87f741cc2c58ed7a0cc49f0dd42ca42e34e" -- Preprocessed PlutusV4 Script: -- @@@ -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of -- {GHC.Maybe.Just (PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3) -- scriptInfo_4 -- _sh_5) -> case scriptInfo_4 of -- {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> GHC.Types.True}; -- GHC.Maybe.Nothing -> GHC.Types.True}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58570101009800aba1ab9cabd84888a64cc00920049375400322001488ca4cdc3a4005200322002528e6400644" , ByteString "002914c9baa3009001911c8014a0026018002940080029250a5106ea8009326330034901035054350049a931" ] -- | Script that succeeds whenever redeemer equals to the datum -- Fails on malformed arguments redeemerSameAsDatum :: SLanguage l -> Plutus l redeemerSameAsDatum :: forall (l :: Language). SLanguage l -> Plutus l redeemerSameAsDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "a9b777caf273f7fdf60d670d17ae4e8baf82291cc927be32bf00fb5f" -- Preprocessed PlutusV1 Script: -- @@@ -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.Class.== d_4 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "5847010000333333222222222323253330093370e900118059baa3007300a002153330093375e00800a2930b09" , ByteString "919803800800b180300098031baa0015573aae895cd2ab9e5742ae6d" ] -- ScriptHash "a9791b1aab316826b73fbdfc79a346104b1c75fc8a5d4fef0a70b75b" -- Preprocessed PlutusV2 Script: -- @@@ -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.Class.== d_4 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "5847010000333333222222222323253330093370e900118059baa3007300a002153330093375e00800a2930b09" , ByteString "919803800800b180300098031baa0015573aae895cd2ab9e5742ae6d" ] -- ScriptHash "b2aa9b404fc30786466b6f8f04da7aeb593eb065841ea508b87eab4b" -- Preprocessed PlutusV3 Script: -- @@@ -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> datum_4 PlutusTx.Eq.Class.== redeemer_3; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58a00101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c" , ByteString "c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c" , ByteString "300d002213375e00200e2940c03c004dd518050009804800c52820143754600e6014004600c002600a6ea80088" , ByteString "8cc008c014004c02000629344c98cc009241035054350049900501" ] -- ScriptHash "deaf1d6f7c0416dc41dd14d9e7e3dd0cfb9df34189ac7389d040c86b" -- Preprocessed PlutusV4 Script: -- @@@ -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -- _sh_5 -> datum_4 PlutusTx.Eq.Class.== redeemer_3; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58590101003322299937540032200148a4006452003223293370e90014800c880094a19900191000a45326ea8c" , ByteString "030006447200528009807800a5002000a466ebc0040229401baa0021326330024901035054350049a9315d0ab9" , ByteString "c1" ] -- | Script that succeeds whenever Integer datum is supplied and it's value is even. -- Fails on malformed arguments evenDatum :: SLanguage l -> Plutus l evenDatum :: forall (l :: Language). SLanguage l -> Plutus l evenDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "2c708a1d5119e56e61ad97b808cacfc018920171568eade60bfe5842" -- Preprocessed PlutusV1 Script: -- @@@ -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a" , ByteString "00a90020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01" ] -- ScriptHash "84b7076e3c986e802c250045a28137ee60629d64ff57a6ca071a1c72" -- Preprocessed PlutusV2 Script: -- @@@ -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a" , ByteString "00a90020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01" ] -- ScriptHash "3a863cfc41d43db7513d7b74641ff7667c08528407e264c61efb4c1f" -- Preprocessed PlutusV3 Script: -- @@@ -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.Class.== 0}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58b50101009800aab9daba2ab9aaab9eaba1ab9bab9c488888889660026466002446464b30013370e900118068" , ByteString "00c4cc01488c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d200200189091000c5900" , ByteString "f201e300e002213370e900019b86375a002900209919806800800b18080009baa300b001300a00189919804800" , ByteString "800b2016375460106016004600e002600c6ea800888cc008c018004c02400629344c98cc009241035054350049" , ByteString "900601" ] -- ScriptHash "c979e7c0ac6a575439c90cddaf2be400d8458f897260282b16e0eefc" -- Preprocessed PlutusV4 Script: -- @@@ -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -- _sh_5 -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.Class.== 0}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "586a0101009800aba1ab9cabd84888a64cc00920049375400322001488ca4cdc3a40052003220024ca40060026" , ByteString "cc800c88005229937546012003223900294004c0300052801000523370e900019b86375a00290024ca40060026" , ByteString "06ea8009326330034901035054350049a931" ] -- | Script that succeeds whenever Integer redeemer is supplied and it's value is even -- Fails on malformed arguments or whenever datum is present in the context evenRedeemerNoDatum :: SLanguage l -> Plutus l evenRedeemerNoDatum :: forall (l :: Language). SLanguage l -> Plutus l evenRedeemerNoDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "640fd4a96649384fb9406fd251a57c1516200343fb2c3ef669011748" -- Preprocessed PlutusV1 Script: -- @@@ -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- scriptPurpose_4 -> case scriptPurpose_4 of -- {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.Class.== 0 -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "5845010000333332222222323253330073370e900118049baa3005300800216153330073370e900019b86375a0" , ByteString "0890020a4c2c600800260086ea800555ceaba25734aae795d081" ] -- ScriptHash "ebd1eee5f1861bffc28b47255616124539bc483911420667afb7dd3c" -- Preprocessed PlutusV2 Script: -- @@@ -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- scriptPurpose_4 -> case scriptPurpose_4 of -- {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.Class.== 0 -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "5845010000333332222222323253330073370e900118049baa3005300800216153330073370e900019b86375a0" , ByteString "0890020a4c2c600800260086ea800555ceaba25734aae795d081" ] -- ScriptHash "56a2f832a1394e59bffb0ee9ad90fe589e662f11e7e72157e152381d" -- Preprocessed PlutusV3 Script: -- @@@ -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- scriptInfo_4 -> case scriptInfo_4 of -- {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0}}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58ae0101009800aab9daba2ab9aaab9eaba1ab9c4888888966002646600244646464b30013370e900118068014" , ByteString "4cc01888c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d200200189091000c5900f20" , ByteString "1e300e002214a02600a9318080009baa300b001300a00289800a4c80588cdc3a400066e18dd6801a40086ea8c0" , ByteString "1cc028008c018004c014dd5001111980118028009804000c5268993198012481035054350049900501" ] -- ScriptHash "5f48e35f934fbc25bdb5e743ff33e92d241abcc487e9ec58f156c650" -- Preprocessed PlutusV4 Script: -- @@@ -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- scriptInfo_4 -- _sh_5 -> case scriptInfo_4 of -- {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _) -> GHC.Types.False; -- _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0}}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58670101003322299937540032200148a400645200322323293370e90014801488009300149b320052200148a6" , ByteString "4dd51806800c88e400a500130100014a00400149284c00d260466e1d20003370c6eb401920043754004264c660" , ByteString "049201035054350049a9315d0ab9c1" ] -- | Script that succeeds whenever Integer redeemer is supplied and it's value is even -- Fails on malformed arguments or whenever datum is missing from the context evenRedeemerWithDatum :: SLanguage l -> Plutus l evenRedeemerWithDatum :: forall (l :: Language). SLanguage l -> Plutus l evenRedeemerWithDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "18f3ea4bde3aa8f31e3cdb1fc400662f083de781240f09fff3182cb8" -- Preprocessed PlutusV1 Script: -- @@@ -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a" , ByteString "00890020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01" ] -- ScriptHash "2ab0c64e0a3be872f9ce3d8dadd1c64021d582c37dd33f0fe0aa4893" -- Preprocessed PlutusV2 Script: -- @@@ -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _ -- (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.() -- | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a" , ByteString "00890020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01" ] -- ScriptHash "5d3b356e61f26883192d268ce82765a7c87fb5b3a7b76845db996eab" -- Preprocessed PlutusV3 Script: -- @@@ -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _)) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58a70101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c" , ByteString "c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c" , ByteString "300d002213370e900019b86375a00e90020a50300f00137546014002601200314a08050dd51803980500118030" , ByteString "0098029baa0022233002300500130080018a4d132633002491035054350049900501" ] -- ScriptHash "fe57a34e1f86e50662e7ed81e2aaa6aafefc56a498d61c1b058f4ca3" -- Preprocessed PlutusV4 Script: -- @@@ -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3) -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _ -- (GHC.Maybe.Just _)) -- _sh_4 -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58600101003322299937540032200148a4006452003223293370e90014800c880094a19900191000a45326ea8c" , ByteString "030006447200528009807800a5002000a466e1d20003370c6eb40212004a5006ea80084c98cc00924103505435" , ByteString "0049a9315d0ab9c1" ] -- | Script that succeeds when datum is not expected and purpose arguments are validated against txInfo -- Fails on malformed arguments purposeIsWellformedNoDatum :: SLanguage l -> Plutus l purposeIsWellformedNoDatum :: forall (l :: Language). SLanguage l -> Plutus l purposeIsWellformedNoDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "07c26224dff0d3fe60825f64f1999e29e82b79718f0a73f192b18eb0" -- Preprocessed PlutusV1 Script: -- @@@ -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4 -- scriptPurpose_5 -> case scriptPurpose_5 of -- {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoMint txInfo_4) -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((stakingCredential_7 PlutusTx.Eq.Class.==) GHC.Base.. Data.Tuple.fst) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoWdrl txInfo_4) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.Class.==) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoDCert txInfo_4) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "5901ff010000333333333222222222223233001223232323232533300f3370e90000008a999807991980080099" , ByteString "9802004111111111100393119801a5023330113375e6ea4dd718079808003980a8009251233003003001149858" , ByteString "54ccc03ccdc3a40040022c264a66602066e1d200400215333010301333330012330063754002446a66602666e1" , ByteString "d20000021232321233001003002375a6026602c00460240022c00246a0024466e9520003301500233015375000" , ByteString "297ae023375e601e602000e6a00244004666008010444444444400a4c2c2930a99980819b874801800854ccc04" , ByteString "0c04ccccc004800480048cdd7980798080038009998020041111111111003130b0a4c2646601c002002c444644" , ByteString "60040026460020024466600e97ae02232533301730060011323301a30080020013300500500213300500500230" , ByteString "070020013012004222533300c0011003133002300e0013011001222330082232323232323232333333333300b3" , ByteString "7580126eb0c058020dd5980b0039bab30160063758602c00a6eb0c058010c05800cdd6180b0011bac301600133" , ByteString "00d3754602c6032002446a66603466e1d200000212375c60320022c0026030002602e002602c002602a0026028" , ByteString "00260260026024002601c6ea800c88cc004c044008c030008dd5180400098039baa00222330023007001300a00" , ByteString "15573aae8d5d02ba25734aae795d0ab9b5573f" ] -- ScriptHash "331237807ff563e59b696b579604a9f02b6989be5dfdc7a77af409a7" -- Preprocessed PlutusV2 Script: -- @@@ -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4 -- scriptPurpose_5 -> case scriptPurpose_5 of -- {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoMint txInfo_4) -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.AssocMap.member stakingCredential_7 GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoWdrl txInfo_4 -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.(); -- PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.Class.==) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoDCert txInfo_4) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "5901b8010000333333333222222222223233001223232323232533300f3370e90000008a9998079998013a9375" , ByteString "c601a601c00a66600800e4444444444440104c2930b0a99980799b87480080045854ccc03ccdc3a40080022a66" , ByteString "601e6660044002601a601c00a66600800e44444444444400c4c2930b099299980819b874801800854ccc040c04" , ByteString "cc004ccc01402088888888888801c98585261323300e0010016323001001223330054bd7011299980999baf301" , ByteString "1301200900213301500233004004001133004004001001301200422232330010010022330054a0466602466ebc" , ByteString "c014010c0580049289198018018009112999805800880189980118068009808000911198039119191919191919" , ByteString "19191999999999998069bac00b3758602e0146eb0c05c024dd5980b8041bab30170073758602e00c6eacc05c01" , ByteString "4c05c010dd6180b8019bab30170023756602e002646a66603466e1d2000301e00112375c60320022c60320026e" , ByteString "a8c05cc068004c064004c060004c05c004c058004c054004c050004c04c004c048004c044004c034dd50019baa" , ByteString "3008001300737540044466004600e0026014002aae755d1aba05744ae6955cf2ba15736aae7d" ] -- ScriptHash "fabf7e77af08a5c801ce0f9bc98c5568822f2c185c99703f654f670b" -- Preprocessed PlutusV3 Script: -- @@@ -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext (PlutusLedgerApi.V3.Data.Contexts.TxInfo {PlutusLedgerApi.V3.Data.Contexts.txInfoMint = infoMint_2, -- PlutusLedgerApi.V3.Data.Contexts.txInfoInputs = infoInputs_3, -- PlutusLedgerApi.V3.Data.Contexts.txInfoWdrl = infoWdrl_4, -- PlutusLedgerApi.V3.Data.Contexts.txInfoTxCerts = infoTxCerts_5, -- PlutusLedgerApi.V3.Data.Contexts.txInfoVotes = infoVotes_6}) -- _redeemer_7 -- scriptInfo_8 -> case scriptInfo_8 of -- {PlutusLedgerApi.V3.Data.Contexts.MintingScript cs_9 -> PlutusTx.Data.AssocMap.member cs_9 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2); -- PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_10 -- mDatum_11 -> case mDatum_11 of -- {GHC.Maybe.Just _ -> GHC.Types.False; -- GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_10 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) infoInputs_3}; -- PlutusLedgerApi.V3.Data.Contexts.RewardingScript cred_12 -> PlutusTx.Data.AssocMap.member cred_12 infoWdrl_4; -- PlutusLedgerApi.V3.Data.Contexts.CertifyingScript _idx_13 -- txCert_14 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_14 PlutusTx.Eq.Class.==) infoTxCerts_5; -- PlutusLedgerApi.V3.Data.Contexts.VotingScript voter_15 -> PlutusTx.Data.AssocMap.member voter_15 infoVotes_6; -- PlutusLedgerApi.V3.Data.Contexts.ProposingScript _idx_16 -- _propProc_17 -> GHC.Types.True}}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "5902640101009800aab9daba3aba0aba2ab9aaab9eaba1ab9bab9caab9f4888888888896600264660024464660" , ByteString "08446464646464646464b30013370e9000000c66002ea66eb8c04cc050016653001237560032374c0032329800" , ByteString "980d800c01e244600400680c26002eb646ea000653001337109000000c488c00800e00e80c200280126eacc050" , ByteString "025001111191800800919803a5eb7bdb18094cd4c00cc014c064004848cc078cdd818100019803001198020020" , ByteString "008919801801800a0048992cc004cdc3a400400513300f223232533535980099b8748000006246424460040066" , ByteString "03200315980099b87480080062401516406880d0c06400885280980ecc0048006400323375e00a660284400460" , ByteString "346ea80066eb003d005180e8009baa301600130150068acc004cdc3a4008005198009000cc050c05401a6eacc0" , ByteString "5001d003456600266e1d200600289980791180dcc0048006400323375e602e0040033758602c0148018c05401a" , ByteString "2b30013370e90040014660024003301430150069bab3014301730173017301730173017007400d15980099b874" , ByteString "802800a26601e44944c05401a26466028002002c80b1016202c405880b0888c88c008004c8c0040048a600297a" , ByteString "e091192cc004c0180062646604060100040026600a00a0051330050050024074600e005001402080a8c0600108" , ByteString "88c8cc0040040088cc0152814c004cdd79802802180e000c928c8cc00c00c0050181112cc00400620071330023" , ByteString "013001301600140402440026ea8c038c04401cc040004c03c004c038c038c038004c028dd5001980400098039b" , ByteString "aa00222330023007001300a0018a4d132633003491035054350049900701" ] -- ScriptHash "3d72e05b6b88f1653abc6412e3c83f4cb084b7a8e742f0e2623a28c3" -- Preprocessed PlutusV4 Script: -- @@@ -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext (PlutusLedgerApi.V4.Data.Contexts.TxInfo {PlutusLedgerApi.V4.Data.Contexts.txInfoMint = infoMint_2, -- PlutusLedgerApi.V4.Data.Contexts.txInfoInputs = infoInputs_3, -- PlutusLedgerApi.V4.Data.Contexts.txInfoTxCerts = infoTxCerts_4, -- PlutusLedgerApi.V4.Data.Contexts.txInfoVotes = infoVotes_5, -- PlutusLedgerApi.V4.Data.Contexts.txInfoWithdrawals = infoWithdrawals_6, -- PlutusLedgerApi.V4.Data.Contexts.txInfoGuards = infoGuards_7, -- PlutusLedgerApi.V4.Data.Contexts.txInfoSubTxIx = infoSubTxIx_8}) -- _redeemer_9 -- scriptInfo_10 -- sh_11 -> case scriptInfo_10 of -- {PlutusLedgerApi.V4.Data.Contexts.MintingScript cs_12 -> PlutusTx.Data.AssocMap.member cs_12 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2); -- PlutusLedgerApi.V4.Data.Contexts.SpendingScript txOutRef_13 -- mDatum_14 -> case mDatum_14 of -- {GHC.Maybe.Just _ -> GHC.Types.False; -- GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_13 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V4.Data.Contexts.txInInfoOutRef) infoInputs_3}; -- PlutusLedgerApi.V4.Data.Contexts.CertifyingScript _idx_15 -- txCert_16 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_16 PlutusTx.Eq.Class.==) infoTxCerts_4; -- PlutusLedgerApi.V4.Data.Contexts.VotingScript voter_17 -> PlutusTx.Data.AssocMap.member voter_17 infoVotes_5; -- PlutusLedgerApi.V4.Data.Contexts.ProposingScript _idx_18 -- _propProc_19 -> GHC.Types.True; -- PlutusLedgerApi.V4.Data.Contexts.WithdrawingScript (PlutusLedgerApi.V4.Data.Address.AccountId cred_20) -> PlutusTx.Data.AssocMap.member cred_20 infoWithdrawals_6; -- PlutusLedgerApi.V4.Data.Contexts.GuardingScript ix_21 -- topTxInfo_22 -> (PlutusLedgerApi.V1.Data.Credential.ScriptCredential sh_11 PlutusTx.Eq.Class.== (infoGuards_7 PlutusTx.Data.List.!! ix_21)) PlutusTx.Bool.&& (PlutusTx.Maybe.isJust infoSubTxIx_8 PlutusTx.Eq.Class.== PlutusTx.Maybe.isNothing topTxInfo_22)}}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "5902810101009800aba3aba0aba1ab9cabd8488888c8a664dd5000c88005229001914800c8a64dd50034880052" , ByteString "29001914800c8a4cc03d2004001914800c8a40064526602a9003000c8a4cc05d2006001911919499b874800240" , ByteString "0a440049919499b874800a401244004c99b874801a401244004c99b8748022401244004c99b874802a40124400" , ByteString "4c99b8748012401244004c99b8748032401244004994800c004d9900491000a4465266ebccdd2a4004660466ea" , ByteString "4dd7181100c25eb824cdc4000a40013301f00137580173263302149103505436004994a132993300575a02d24a" , ByteString "34a0c800d28d282002933004200130220029250a510dd6801198009000cc07e4012440029bab00a400ca516600" , ByteString "24003301f900491000a6eac01900333200922001488c08e600240032001919baf30220020019bac00e40106640" , ByteString "12440029149980190009810800c9284c08e600240032001919baf0039937540032200148800937580248020114" , ByteString "9baa001911c8014a002600a6046002940080022223223002001323001001229001911949803000ccc01401400a" , ByteString "646604e60100040026600a00a0043007002a5eb819800ba99bae301d900291000a653001237560032374c00323" , ByteString "293022001c00400580126002eb646ea00065266e212000001c00b001001200280126eac0350011111918008009" , ByteString "14800ca4c010c01a400644002911981319bb09003910010c01c008cc014014006466008008002a5eb7bdb18080" , ByteString "08446446004002646002002452003293375e600a00920032200248cc01001000649454a0375402400264c66008" , ByteString "9201035054350049a930c8c004004888e4006445266e1d2000005994c00401e003003401c66e040152002801a4" , ByteString "64c6600c92010350543700498931" ] -- | Script that succeeds when datum is expected and purpose arguments are validated against txInfo -- Fails on malformed arguments purposeIsWellformedWithDatum :: SLanguage l -> Plutus l purposeIsWellformedWithDatum :: forall (l :: Language). SLanguage l -> Plutus l purposeIsWellformedWithDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "560a103eceb56ff3fd130b888620e038a6c9cbaf8308f237b8fe765b" -- Preprocessed PlutusV1 Script: -- @@@ -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5 -- (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V1.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.(); -- _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "589a01000033333333222222222223233001223232533300c3370e900118080010a9998061807980099802911b" , ByteString "ac002300b37540082c2930b1918008009129998050008a5eb804c8c94ccc03ccdd798069807002998041100118" , ByteString "071baa00213301100233004004001133004004001300f002300b00137546010002600e6ea800888cc008c01c00" , ByteString "4c02800555ceaba35740ae895cd2ab9e5742aae7c1" ] -- ScriptHash "679480a94b821bdad4d0d2d86e2a7fb547b9368f255900ef992400be" -- Preprocessed PlutusV2 Script: -- @@@ -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5 -- (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V2.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.(); -- _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "589a01000033333333222222222223233001223232533300c3370e900118080010a9998061807980099802911b" , ByteString "ac002300b37540082c2930b1918008009129998050008a5eb804c8c94ccc03ccdd798069807002998041100118" , ByteString "071baa00213301100233004004001133004004001300f002300b00137546010002600e6ea800888cc008c01c00" , ByteString "4c02800555ceaba35740ae895cd2ab9e5742aae7c1" ] -- ScriptHash "10786ac07d7165016298c6831633ecd85bfae7f2a46903be465a9123" -- Preprocessed PlutusV3 Script: -- @@@ -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_4 -- (GHC.Maybe.Just _)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2)); -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "58f60101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464b3001337" , ByteString "0e90011807800c4cc0148c88c8c94cd4d6600266e1d2000001891909118010019807800c56600266e1d2002001" , ByteString "89091000c590102020300f002219800980a180299805911bac002301037540154a14a2808852818098009baa30" , ByteString "0c0013230010012259800800c52f5c1132325980099baf0053300a22002300f375400513301200233004004001" , ByteString "899802002000a0203010002300c0014028601400314a08058dd518041805801180380098031baa002223300230" , ByteString "0600130090018a4d132633003491035054350049900601" ] -- ScriptHash "6fecd78eea09472f56102d28b4154a43aac7dc35d5e78991b8f28ece" -- Preprocessed PlutusV4 Script: -- @@@ -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript txOutRef_4 -- (GHC.Maybe.Just _)) -- _sh_5 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V4.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_2)); -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58ce0101009800aba3aba0aba1ab9c48888a664dd5000c88005229001914800c88ca4cdc3a4005200322002528" , ByteString "6640064400291914c9baa300d001911c8014a0026020002940080029498081801cc9baa00b91000a4520032290" , ByteString "01914800c8a4006452003229001914800c8a4006452003229001914800c8a4006452003229001914800c8a4006" , ByteString "4520032237580400000528d2829406460020024520032293375e00b326ea800a44002910012660080080033301" , ByteString "00023300400400152f5c00dd5001099319801249035054350049a931" ] -- | Script that succeeds when datum is expected and datum is validated against txInfo -- Fails on malformed arguments datumIsWellformed :: SLanguage l -> Plutus l datumIsWellformed :: forall (l :: Language). SLanguage l -> Plutus l datumIsWellformed = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "4ab220bd937e83ef0ae296e876d9d3b7946f9afb75a9ab92218066dd" -- Preprocessed PlutusV1 Script: -- @@@ -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_6 -- (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((datum'_4 PlutusTx.Eq.Class.==) GHC.Base.. Data.Tuple.snd) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoData txInfo_6) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.(); -- _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "58d80100003333333322222222222323300122533300a3370e900118071baa30080011533300a300d323300100" , ByteString "1330042237586016601c601c601c601c601c601c601c00260146ea800c894ccc02400452f5c026464a66601c66" , ByteString "ebc028c004880044c8cc044c00888cdd2a4000660266ea4008cc04c0052f5c0002660080080042660080080046" , ByteString "4a6a66601c66e1d200030120011232321233001003002300e3011002375c601a0022c601a0026ea8c02c008c03" , ByteString "40045852616300737540044466004600e0026014002aae755d1aba05744ae6955cf2ba15573f" ] -- ScriptHash "3751c29119f9c13c1c1ab32ac16e6a0b4d415e301fbb1bdf13342eec" -- Preprocessed PlutusV2 Script: -- @@@ -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_6 -- (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum'_4 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoData txInfo_6)) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.(); -- _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "58c001000033333333222222222323232223300522533300c3370e900118081baa300a0011533300c300f30053" , ByteString "23300100133008223756601a60206020602060206020602060206020602000260186ea800c8cc01d2f5c044660" , ByteString "22601c004660060060022c2930b18049baa001323001001223330034bd7011299980599baf00700213300d0023" , ByteString "3004004001133004004001001222533300600110031330023007001300a0012233002300500130080015573aae" , ByteString "8d5d02ba25734aae795d0aab9f01" ] -- ScriptHash "a643bc2fa4d7c6c7eef89d930a1bcd03fbe39df2e7493b1e77c4b58b" -- Preprocessed PlutusV3 Script: -- @@@ -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Just datum_5)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoData txInfo_2))); -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "5901240101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464b30013" , ByteString "370e90011807800c4cc01488c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d2002001" , ByteString "89091000c5900f201e300e0022323219800980a9800991980080099806911bab30133016301630163016301630" , ByteString "163016301630160013012375401846600697ae02233017301400233003003001a50a5140486460020024530014" , ByteString "bd704896600266ebc01800a26602e004660080080031330040040014055001400c444b30010018801c4cc008c0" , ByteString "44004c05000500f0a50301200137546016002601400314a08058dd518041805801180380098031baa002223300" , ByteString "2300600130090018a4d1326330034901035054350049900601" ] -- ScriptHash "14d032a06a40828616de6d15f57e3b10ec7a80708e5be017650398a3" -- Preprocessed PlutusV4 Script: -- @@@ -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Just datum_5)) -- _sh_6 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoData txInfo_2))); -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "58e40101009800aba3aba0aba1ab9c48888c8a664dd5000c88005229001914800c88ca4cdc3a40052003220025" , ByteString "2866400644002912cc9baa300d001911c8014a0026020002940080029190c980898009806cc9baa00b91000a45" , ByteString "2003229001914800c8a4006452003229001914800c8a4006452003229001914800c8a400645200322900191480" , ByteString "0c8a40064520032237560100000528d280c8c0040048a400645266ebc01400a660080080033301300233004004" , ByteString "00152f5c08a5006ea80084c98cc00d2401035054350049a930c8c0040048a4006446600f200522001198020020" , ByteString "00d2f5c001" ] -- | Script that succeeds when inputs and outputs are not empty validated against txInfo -- Fails on malformed arguments and also if inputs or outputs are empty inputsOutputsAreNotEmptyNoDatum :: SLanguage l -> Plutus l inputsOutputsAreNotEmptyNoDatum :: forall (l :: Language). SLanguage l -> Plutus l inputsOutputsAreNotEmptyNoDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "fc4a7f36056bda22eb575c229929b6495daf4907ded77536a1c78bc7" -- Preprocessed PlutusV1 Script: -- @@@ -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4 -- _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_4) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "58cc010000333333222222223233001225333008325333009300b33001222222222200a2614a22601666002444" , ByteString "44444440124c446600a446464646464646466666666660166eb0024dd618088041bab30110073756602200c6eb" , ByteString "0c044014dd6180880218088019bac301100237586022002646a66602866e1d2000301700112375c60260022c60" , ByteString "260026ea8c044c050004c04c004c048004c044004c040004c03c004c038004c034004c024dd50020b0a4c600a6" , ByteString "ea800888cc008c014004c02000555ceaba35744ae6955cf2ba11" ] -- ScriptHash "21522499a4d29dafc2b1e1d9238a0ab0c996123fe2c052e9f2148d7e" -- Preprocessed PlutusV2 Script: -- @@@ -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4 -- _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_4) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "58e3010000333333222222223233001225333008325333009300b3300122222222222200c2614a226016660024" , ByteString "444444444440144c446600a4464646464646464646466666666666601a6eb002cdd618098051bac30130093756" , ByteString "60260106eacc04c01cdd618098031bab30130053013004375860260066eacc04c008dd59809800991a99980b19" , ByteString "b8748000c06400448dd7180a8008b180a8009baa30133016001301500130140013013001301200130110013010" , ByteString "001300f001300e001300d001300937540082c29318029baa0022233002300500130080015573aae8d5d12b9a55" , ByteString "73cae841" ] -- ScriptHash "3d43889f2937c92a91af18b23ea5914ebec54cf98835fb05b45a4e73" -- Preprocessed PlutusV3 Script: -- @@@ -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Just _)) -> GHC.Types.False; -- PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5 -- _redeemer_6 -- _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "59017e0101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464b30013370e900" , ByteString "11807801c4cc01c894cd4cc0108004c030004852809801a4c60160071300149900c14c004c966002601e660024" , ByteString "4444444444444440204d14a31300f33001222222222222222200e2640344466012446464646464646464646464" , ByteString "646465300137580213758603801f3758603801d375a603801b375660380193758603801737566038015301c009" , ByteString "9bac301c0089bab301c0079bab301c0069bae301c0059bab301c0049bac301c0039800980e0014c004c070c07c" , ByteString "0090121809bad301d001301c001301b001301a0013019001301800130170013016001301500130140013013001" , ByteString "30120013011001300d37540114a14a2806088c8c8d6600266e1d20000018919091180100198029806800c56600" , ByteString "266e1d200200189091000c5900e201c300d002301000137540026ea8c01cc028008c018004c014dd5001111980" , ByteString "118028009804000c5268993198012481035054350049900501" ] -- ScriptHash "2efeee3cbc9ed9c5e4bf67e94858c7e4bc2510f8100aca47b28899ab" -- Preprocessed PlutusV4 Script: -- @@@ -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Just _)) -- _sh_5 -> GHC.Types.False; -- PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_6 -- _redeemer_7 -- _scriptPurpose_8 -- _sh_9 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_6) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoOutputs txInfo_6))}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "59011b0101009800aba3aba1ab9c4888a664dd5000c88005229001914800c88c8c8ca4cdc3a40052007220024c" , ByteString "00526cc801c88005229330042001300e00192509801a4c08ca64c038cc00488888888888888888880449a601c6" , ByteString "6002444444444444444444401e4d4a2a51a50114c9baa00b91000a452003229001914800c8a400645200322900" , ByteString "1914800c8a4006452003229001914800c8a4006452003229001914800c8a4006452003223298009bae02598008" , ByteString "11cdd6010cdd600fcdd600ecdd580dcdd600ccdd580bcdd580acdd5809c0466eb003e6eac0366eac02e6eac026" , ByteString "6eac01e6eb00166002007375a60660048138c0a1d6800004526ea80064472005280098029807800a50020008dd" , ByteString "5001099319801249035054350049a931" ] -- | Script that succeeds when inputs and outputs are not empty validated against txInfo -- Fails on malformed arguments and also if inputs or outputs are empty inputsOutputsAreNotEmptyWithDatum :: SLanguage l -> Plutus l inputsOutputsAreNotEmptyWithDatum :: forall (l :: Language). SLanguage l -> Plutus l inputsOutputsAreNotEmptyWithDatum = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case -- ScriptHash "63874caa1646678f1c035fa4977e93b78bc1a0d36eeb8b7cb7bd57ca" -- Preprocessed PlutusV1 Script: -- @@@ -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5 -- _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_5) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV1 -> [ ByteString "58cd010000333333222222222323300122533300932533300a300c33001222222222200a2614a2260186600244" , ByteString "444444440124c446600a446464646464646466666666660166eb0024dd618090041bab30120073756602400c6e" , ByteString "b0c048014dd6180900218090019bac301200237586024002646a66602a66e1d2000301800112375c60280022c6" , ByteString "0280026ea8c048c054004c050004c04c004c048004c044004c040004c03c004c038004c028dd50020b0a4c600c" , ByteString "6ea800888cc008c018004c02400555ceaba35744ae6955cf2ba101" ] -- ScriptHash "da698710e6e46a945c0d0365d8ca7e36765f799222f90d6d6de2e1c8" -- Preprocessed PlutusV2 Script: -- @@@ -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of -- {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of -- {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5 -- _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_5) -- then PlutusTx.Builtins.error GHC.Tuple.Prim.() -- else GHC.Tuple.Prim.()}}} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "58e3010000333333222222222323300122533300932533300a300c3300122222222222200c2614a22601866002" , ByteString "4444444444440144c446600a4464646464646464646466666666666601a6eb002cdd6180a0051bac3014009375" , ByteString "660280106eacc05001cdd6180a0031bab30140053014004375860280066eacc050008dd5980a000991a99980b9" , ByteString "9b8748000c06800448dd7180b0008b180b0009baa3014301700130160013015001301400130130013012001301" , ByteString "10013010001300f001300e001300a37540082c29318031baa0022233002300600130090015573aae8d5d12b9a5" , ByteString "573cae85" ] -- ScriptHash "2981b93f6e4d0323fc4b54053332d53375012b728b43a32a0d7805fd" -- Preprocessed PlutusV3 Script: -- @@@ -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Nothing)) -> GHC.Types.False; -- PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5 -- _redeemer_6 -- _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "59017c0101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464b30013370e900" , ByteString "11807801c4cc01c88cd4cc0108004c0300048c011264a060160071300149900c14c004c966002601e660024444" , ByteString "4444444444440204d14a31300f33001222222222222222200e2640344466012446464646464646464646464646" , ByteString "465300137580213758603801f3758603801d375a603801b375660380193758603801737566038015301c0099ba" , ByteString "c301c0089bab301c0079bab301c0069bae301c0059bab301c0049bac301c0039800980e0014c004c070c07c009" , ByteString "0121809bad301d001301c001301b001301a0013019001301800130170013016001301500130140013013001301" , ByteString "20013011001300d37540114a14a2806088c8c8d6600266e1d20000018919091180100198029806800c56600266" , ByteString "e1d200200189091000c5900e201c300d002301000137540026ea8c01cc028008c018004c014dd5001111980118" , ByteString "028009804000c526899319801249035054350049900501" ] -- ScriptHash "db3ae2ddefa0add5b188b4fa09b2c1f582cbd392f2fcf9131045ab07" -- Preprocessed PlutusV4 Script: -- @@@ -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2 -- _redeemer_3 -- (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4 -- (GHC.Maybe.Nothing)) -- _sh_5 -> GHC.Types.False; -- PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_6 -- _redeemer_7 -- _scriptPurpose_8 -- _sh_9 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_6) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoOutputs txInfo_6))}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "59011b0101009800aba3aba1ab9c4888a664dd5000c88005229001914800c88c8c8ca4cdc3a40052007220024c" , ByteString "00526cc801c88005229330042001300e0019180224d4a008ca64c038cc00488888888888888888880449a601c6" , ByteString "6002444444444444444444401e4d4a2a51a50114c9baa00b91000a452003229001914800c8a400645200322900" , ByteString "1914800c8a4006452003229001914800c8a4006452003229001914800c8a4006452003223298009bae02598008" , ByteString "11cdd6010cdd600fcdd600ecdd580dcdd600ccdd580bcdd580acdd5809c0466eb003e6eac0366eac02e6eac026" , ByteString "6eac01e6eb00166002007375a60660048138c0a1d6800004526ea80064472005280098029807800a50020008dd" , ByteString "5001099319801249035054350049a931" ] -- | Script that succeeds only if any the inputs also appears in the reference inputs inputsOverlapsWithRefInputs :: SLanguage l -> Plutus l inputsOverlapsWithRefInputs :: forall (l :: Language). SLanguage l -> Plutus l inputsOverlapsWithRefInputs = ByteString -> Plutus l forall (l :: Language). HasCallStack => ByteString -> Plutus l decodeHexPlutus (ByteString -> Plutus l) -> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l forall b c a. (b -> c) -> (a -> b) -> a -> c . [ByteString] -> ByteString forall a. Monoid a => [a] -> a mconcat ([ByteString] -> ByteString) -> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . \case SLanguage l SPlutusV1 -> [Char] -> [ByteString] forall a. HasCallStack => [Char] -> a error [Char] "Script not available in PlutusV1" -- ScriptHash "444be1efb8efae784b02be16cba44a728692ec266808527a7103f9db" -- Preprocessed PlutusV2 Script: -- @@@ -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinData -> () -- inputsOverlapsWithRefInputs_0 _datum_1 _redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of -- {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4 -- _scriptPurpose_5 -> if PlutusTx.Data.List.any (\x_6 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_6)) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoReferenceInputs txInfo_4) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4 -- then GHC.Tuple.Prim.() -- else PlutusTx.Builtins.error GHC.Tuple.Prim.()} -- @@@ SLanguage l SPlutusV2 -> [ ByteString "590137010000333333222222222323300123232322533300d300233300400522222222222200c26149858c8c00" , ByteString "400488ccc00d281191299980819a98011998038041111111111110059312514a029444cc014014004c8c004004" , ByteString "88ccc018488004894ccc048cdd7801002889118010020998020020008008009112999805000880189980118058" , ByteString "00980700091119802911919191919191919191999999999998069bac00b3758602a0146eb0c054024dd5980a80" , ByteString "41bab30150073758602a00c6eacc054014c054010dd6180a8019bab30150023756602a002646a66603066e1d20" , ByteString "00301a00112375c602e0022c602e0026ea8c054c060004c05c004c058004c054004c050004c04c004c048004c0" , ByteString "44004c040004c03c004c02cdd500198039baa00222330023007001300a0015573aae895cd2ab9e5742aae7c1" ] -- ScriptHash "21705e574a541726019aa44ee6614685404f75931271e7486399f8ec" -- Preprocessed PlutusV3 Script: -- @@@ -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of -- {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- _scriptPurpose_4 -> PlutusTx.Data.List.any (\x_5 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_5)) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV3 -> [ ByteString "5901a00101009800aab9daba2ab9aaab9eaba1ab9caab9f4888888896600264660024646464644646460093001" , ByteString "008911111111111111100849900618078011805800991800800914c0052848c896600266a60053001009911111" , ByteString "1111111111007c9900712514a114a31330050050014040646002002453001008912cc004cdd7801002c4488c00" , ByteString "801226600800800280920028032002801888966002003100389980118058009807000a01222233006223232323" , ByteString "23232323232323232323298009bac0109bac301a00f9bac301a00e9bad301a00d9bab301a00c9bac301a00b9ba" , ByteString "b301a00a980d004cdd6180d0044dd5980d003cdd5980d0034dd7180d002cdd5980d0024dd6180d001cc004c068" , ByteString "00a60026034603a00480908c8c8d6600266e1d2000001891909118010019bad301d0018acc004cdc3a40040031" , ByteString "20178b203c4078603a004603e0026ea8004c06c004c068004c064004c060004c05c004c058004c054004c05000" , ByteString "4c04c004c048004c044004c040004c03c004c02cdd500189100098031baa0022233002300600130090018a4d13" , ByteString "2633003491035054350049900601" ] -- ScriptHash "c944c8d53ae4a538b0d1a0ae4bf5ae08c4c602b9d3715031360c24f5" -- Preprocessed PlutusV4 Script: -- @@@ -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData -> -- PlutusTx.Builtins.Internal.BuiltinUnit -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of -- {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2 -- _redeemer_3 -- _scriptPurpose_4 -- _sh_5 -> PlutusTx.Data.List.any (\x_6 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_6)) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_2; -- _ -> GHC.Types.False}) -- @@@ SLanguage l SPlutusV4 -> [ ByteString "5901170101003322299937540032200148c8c88c00a60020092222222222222222222011932006323001001229" , ByteString "00191914c98014c00401e444444444444444444402126401924a34a099802802800d288c8c0040048a40064526" , ByteString "6ebc0080166600800800380080118012940445326ea800e44002914800c8a4006452003229001914800c8a4006" , ByteString "452003229001914800c8a4006452003229001914800c8a4006452003229001914800c88ca60026eb8096600204" , ByteString "73758043375803f375803b37560373758033375602f375602b37560270119bac00f9bab00d9bab00b9bab0099b" , ByteString "ab0079bac0059800801cdd69816001204e293754003223900294004dd69817800a5002000800004c98cc009241" , ByteString "035054350049a9315d0ab9c1" ]