{-# 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 "3f284e451d67e2c2ed1b255d253a58c1810cce58cde329ad04f3bc92" -- 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 "5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004584480041" ] -- ScriptHash "f610f0bf10e7d6607e34074a162db1b98965dd322c23e2754a7eec0c" -- 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 "5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004584480041" ] -- ScriptHash "2c1d15edb6945bbdd299a90beca6996fcd387ae118fd1294125952a8" -- 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 "5889010100259800992cc004cdc3a40046aae74006326466446b30013370e900000144a0026ae8400515980099" , ByteString "b874800800a250028b2ae68ab9a0009aab9d00135573c0026ea8d5d09aba235573c00324a14a28a5155cd0dd54" , ByteString "99194004d5d08014d5d0800cd5d09aba20011aba200135573c6ea80064440028a4d13263357389210350543500" , ByteString "8002ae69" ] -- ScriptHash "b095ffaaf982e5ab9c386a0eb8a22c1210a86130636b003e16f08203" -- Preprocessed PlutusV4 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 SPlutusV4 -> [ ByteString "5889010100259800992cc004cdc3a40046aae74006326466446b30013370e900000144a0026ae8400515980099" , ByteString "b874800800a250028b2ae68ab9a0009aab9d00135573c0026ea8d5d09aba235573c00324a14a28a5155cd0dd54" , ByteString "99194004d5d08014d5d0800cd5d09aba20011aba200135573c6ea80064440028a4d13263357389210350543500" , ByteString "8002ae69" ] -- | 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 "bf97f02604ffd780f1d72d535d60dbcd40e941577e8865f51c311478" -- 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 "58260100002225333573466e1d200235573a6ea8d5d09aba235573c6ea80044480044c8d40040059" ] -- ScriptHash "32c1100dea60b653233e32adb33e20d9a30c8359f7072027ec3e00a0" -- 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 "58260100002225333573466e1d200235573a6ea8d5d09aba235573c6ea80044480044c8d40040059" ] -- ScriptHash "e6e6e94b5874191411e622ffb5d8dcae7ca405d60bb61de2dc939757" -- 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 "5889010100259800992cc004cdc3a40046aae74006326466446b30013370e900000144a0026ae8400515980099" , ByteString "b874800800a250028b2ae68ab9a0009aab9d00135573c0026ea8d5d09aba235573c00324a34a08a5055cd0dd54" , ByteString "99194004d5d08014d5d0800cd5d09aba20011aba200135573c6ea80064440028a4d13263357389210350543500" , ByteString "8002ae69" ] -- ScriptHash "ae529b7b60fde84a5debcf365aaec3416fcb9ac10a560f36a370b6e7" -- Preprocessed PlutusV4 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 SPlutusV4 -> [ ByteString "5889010100259800992cc004cdc3a40046aae74006326466446b30013370e900000144a0026ae8400515980099" , ByteString "b874800800a250028b2ae68ab9a0009aab9d00135573c0026ea8d5d09aba235573c00324a34a08a5055cd0dd54" , ByteString "99194004d5d08014d5d0800cd5d09aba20011aba200135573c6ea80064440028a4d13263357389210350543500" , ByteString "8002ae69" ] -- | 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 "b85a057b2c91b4c2984a77a5dd10afe15a404687825324ba58ad07f5" -- 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 "5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004448004581" ] -- ScriptHash "02f4fe174ec961b3cc942ab15baa193a266ea4560a28690dd78d975d" -- 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 "5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004448004581" ] -- ScriptHash "303b7c52da85a1b64259e5a560f2c3b416033346b0828661d17f323c" -- 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 "5874010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00324a34a08a5055cd0dd51aba13" , ByteString "57446ae88d55cf1baa0018a4d132633573892103505435008002ae69" ] -- ScriptHash "188c238d262df66dd08b69b5325f41d43a80562ec6f6a0d136d37688" -- 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.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 SPlutusV4 -> [ ByteString "5874010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00324a34a08a5055cd0dd51aba13" , ByteString "57446ae88d55cf1baa0018a4d132633573892103505435008002ae69" ] -- | 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 "4d21fdf22b322b92f116190ded13f1a2f5e8eae550af556a2c3898fc" -- 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 "58210100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800458448005" ] -- ScriptHash "aade2c5c9e32ea7a8f9c284d3e958fbabe9f4838ef6bdd665b43d9d6" -- 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 "58210100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800458448005" ] -- ScriptHash "79f2160533b4faeacfda144300c97433e01b9d15b5cb5b3d2c909a4f" -- 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 "5874010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00324a14a28a5155cd0dd51aba13" , ByteString "57446ae88d55cf1baa0018a4d132633573892103505435008002ae69" ] -- ScriptHash "daa15a66d35357d1bd172a144442875571fec78257dcabc8a7e912dd" -- 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.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 SPlutusV4 -> [ ByteString "5874010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00324a14a28a5155cd0dd51aba13" , ByteString "57446ae88d55cf1baa0018a4d132633573892103505435008002ae69" ] -- | 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 "8434e5ac35b5faf73a6f48cfaeb75d946149d15ebcac279993761fe5" -- 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 "58310100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19baf002003112001161" , ByteString "323500100161" ] -- ScriptHash "b2cde39d731e1a641e3efab1fe83d09e77dde65ee50848d18107f039" -- 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 "58310100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19baf002003112001161" , ByteString "323500100161" ] -- ScriptHash "b09cb506a21a808af52cecbfa649844a05d691108ef3e53c30fadf1f" -- 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 "587d01010025980099192cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099" , ByteString "b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323375e0026ae8400e94114a" , ByteString "0ab9a1baa357426ae88004d5d11aab9e3754003149a264c66ae7124103505435008002ae69" ] -- ScriptHash "5518729d2bd78aeccb04de2c783b69b1a0dab01d9999661e7aa4f48c" -- 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.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 SPlutusV4 -> [ ByteString "587d01010025980099192cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099" , ByteString "b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323375e0026ae8400e94114a" , ByteString "0ab9a1baa357426ae88004d5d11aab9e3754003149a264c66ae7124103505435008002ae69" ] -- | 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 "48b29a063768bc21d0e6eeed6e3e4f23a174164f8e8252c8845daceb" -- 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 "58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00" , ByteString "348010448004584c8d40040059" ] -- ScriptHash "a1741f496dd45f8ce84db15246ee75a663914bce6807a14ee9a543bc" -- 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 "58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00" , ByteString "348010448004584c8d40040059" ] -- ScriptHash "b74f3e1a891b15934355288ce309632f7e10c961ea2e76ec055b74c8" -- 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 "5887010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323370e900019b86375a002900" , ByteString "24ca4006002644ca4006002655cd0dd51aba1357446ae88d55cf1baa0018a4d132633573892103505435008002" , ByteString "ae69" ] -- ScriptHash "547755b257a7fedd31827abf2c1ff84f2719fa0da74ff3a8753fd9de" -- 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.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 SPlutusV4 -> [ ByteString "5887010100259800992cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099b8" , ByteString "748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323370e900019b86375a002900" , ByteString "24ca4006002644ca4006002655cd0dd51aba1357446ae88d55cf1baa0018a4d132633573892103505435008002" , ByteString "ae69" ] -- | 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 "ff651f4b89881b72407d020292291809ed49e4f1757a9745e35498c1" -- 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 "5833010000225333573466e1d200235573a6ea8d5d09aba235573c6ea80045854ccd5cd19b8748000cdc31bad0" , ByteString "0248010448004581" ] -- ScriptHash "5dae481efaf96e0c4203cf261dc16bda7e91171afc69c655ff623a66" -- 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 "5833010000225333573466e1d200235573a6ea8d5d09aba235573c6ea80045854ccd5cd19b8748000cdc31bad0" , ByteString "0248010448004581" ] -- ScriptHash "00d86c6e9e51c5c18eede300aaf498fb5870e2175112ef7d8dde7475" -- 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 "588b01010025980099192994c004cdc3a40046aae7400a3264646b30013370e9000000c4a0026ae84005159800" , ByteString "99b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00524a130014991300149957" , ByteString "3423370e900019b86375a6ae8400d200437546ae84d5d10009aba235573c6ea800629344c98cd5ce2481035054" , ByteString "35008002ae69" ] -- ScriptHash "9fe45614de32a388c11dbfd9e7e582a022eb711acb3a73659ed777f7" -- 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.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 SPlutusV4 -> [ ByteString "588b01010025980099192994c004cdc3a40046aae7400a3264646b30013370e9000000c4a0026ae84005159800" , ByteString "99b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00524a130014991300149957" , ByteString "3423370e900019b86375a6ae8400d200437546ae84d5d10009aba235573c6ea800629344c98cd5ce2481035054" , ByteString "35008002ae69" ] -- | 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 "ce2c6a09fd9706d2fa13bad68d83b9bee1e59423a9e8b4eb291c089c" -- 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 "58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00" , ByteString "248010448004584c8d40040059" ] -- ScriptHash "9c542eaf9fbd625c5ff40fe4eedbd1b415fa5edf73c679fc9d5aca32" -- 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 "58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00" , ByteString "248010448004584c8d40040059" ] -- ScriptHash "747f08071f9197d56ef209295c07870561ba8d6ac0a0073625ecf516" -- 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 "588401010025980099192cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099" , ByteString "b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323370e900019b86375a6ae8" , ByteString "400d2004a5045282ae686ea8d5d09aba2001357446aae78dd5000c526899319ab9c49103505435008002ae69" ] -- ScriptHash "e788770dc970e6d1d52f6acb99c57efdb27ed744a9c29b0bca53604b" -- 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.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 SPlutusV4 -> [ ByteString "588401010025980099192cc004cdc3a40046aae740063264646b30013370e9000000c4a0026ae8400515980099" , ByteString "b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323370e900019b86375a6ae8" , ByteString "400d2004a5045282ae686ea8d5d09aba2001357446aae78dd5000c526899319ab9c49103505435008002ae69" ] -- | 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 "849ee7e8218dab13a66b553c29ae72c39d5af70ece373d644b8f46dc" -- 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 "5901fe0100002232323253232323232333573466e1d200000115333573466460020024660089408ccd5cd19baf" , ByteString "37526eb8d5d09aab9e00835573a00249448cc00c00c004ccc01001c888888888801c9840085854ccd5cd19b874" , ByteString "80080045854c8ccd5cd19b874801000854ccd5cd1aba333330012330073754002446a666ae68cdc3a400000424" , ByteString "664424660020060046ae84004dd69aba1357440022c00246a0024466e95200033574000466ae80dd4000a5eb80" , ByteString "8cdd79aba135573c0106a0024400466600a010444444444400a4c2c20062a666ae68cdc3a400c0042a666ae68d" , ByteString "5d1999980090009000919baf357426aae78020004ccc01402088888888880189858400c4c8d40040058888c88c" , ByteString "008004c8c00400488ccc0212f5c04464a666ae68c0180044c8cd5d018040010009980280280109980280280118" , ByteString "038010009aab9d0051200122253335573e00220062660046ae84004d5d10009111919191919191919191999999" , ByteString "9998059bac357420126eb0d5d08041bab3574200e6eacd5d08031bac3574200a6eb0d5d08021aba100337586ae" , ByteString "84008dd61aba10013300d37546ae84d5d1000911a999ab9a3370e9000001091bae357420022c0026ae88004d5d" , ByteString "10009aba2001357440026ae88004d5d10009aba2001357440026aae78dd500191198009aab9d00235573c0046e" , ByteString "a8d5d09aba2002357420026aae78dd500081" ] -- ScriptHash "4216c3f60171af490844ee071e9c19821ac14c8b2a3869db027e7c37" -- 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 "5901b50100002232323253232323232333573466e1d2000001153335734666006ea4dd71aba135573c00c66600" , ByteString "a00e4444444444440104c20042c2a666ae68cdc3a40040022c2a666ae68cdc3a40080022a666ae68ccc00c8004" , ByteString "d5d09aab9e006333005007222222222222006261002161325333573466e1d20060021533357346ae8cc004ccc0" , ByteString "1802088888888888801c9858400c4c8d40040058c8c00400488ccc0192f5c044a666ae68cdd79aba135573c014" , ByteString "004266ae80008cc0100100044cc010010004004d55ce802890009111991800800919802a502333573466ebcc01" , ByteString "4010d55ce800925123300300300100122253335573e00220062660046ae84004d5d10009111919191919191919" , ByteString "1919191999999999998069bac357420166eb0d5d08051bac357420126eacd5d08041bab3574200e6eb0d5d0803" , ByteString "1bab3574200a6ae84010dd61aba100337566ae84008dd59aba10013235333573466e1d200035573a002246eb8d" , ByteString "5d08008b1aab9e00137546ae84d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "d10009aba2001357440026aae78dd50019baa357426ae88008d5d08009aab9e3754003" ] -- ScriptHash "47bc516cb1ed1435ad883709ea6e58849f45aab3ff695657b67155b1" -- 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 "59025301010025980099191919191929919194c004cdc3a400000319800ba99bae357426aae780126653001237" , ByteString "560032374c003232598009aba30018c00a30010012ae69300175b23750003259800cc004cdc4800a40014a14a2" , ByteString "ab9a460020028c0095734800a004400444464600200246600e97adef6c60293003300535573c0032233574066e" , ByteString "c0d55ce801980300119802002000c8cc00c00c0046eacd5d0803a0048a99194c004cdc3a400400713293232359" , ByteString "80099b874800000625001357420028acc004cdc3a400400312801459573455cd0d55cf0011aab9d00137546ae8" , ByteString "4d5d1000c9284d5d1cc00400a400323375e6ae84008d5d09aab9e375400337586ae8402d0030d55cf003456600" , ByteString "266e1d20040038cc00480066ae84d55cf0034dd59aba1007401115980099b874801800e2646ae8e60020052001" , ByteString "919baf357426ae880080066eb0d5d0804a00635573c00d15980099b874802000e3300120019aba135573c00d37" , ByteString "566ae84d5d11aba2357446ae88d5d11aba2007401115980099b874802800e264944d55cf00344ca4006002655c" , ByteString "d1573455cd1573455cd08004888c88c008004c8c0040048a600297ae091192cc004c01800626466ae80c020008" , ByteString "004cc01401400a26600a00a004ab9a180380140050082ae686aae7400c888cc8c0040048cc0152814c004cdd79" , ByteString "8028021aab9d0019251919801801800aae68002444b30010018801c4cc008d5d08009aba2001555cf8dd51aba1" , ByteString "357446ae88014d5d10009aba2001357446ae88d5d11aba200135573c6ea8d5d08009aab9e3754003149a264c66" , ByteString "ae71240103505435008002ae69" ] -- ScriptHash "0bea0c07b560c8c58500dbb73e476c1ea523c604824d1a5f41aea6ce" -- 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.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 SPlutusV4 -> [ ByteString "59025301010025980099191919191929919194c004cdc3a400000319800ba99bae357426aae780126653001237" , ByteString "560032374c003232598009aba30018c00a30010012ae69300175b23750003259800cc004cdc4800a40014a14a2" , ByteString "ab9a460020028c0095734800a004400444464600200246600e97adef6c60293003300535573c0032233574066e" , ByteString "c0d55ce801980300119802002000c8cc00c00c0046eacd5d0803a0048a99194c004cdc3a400400713293232359" , ByteString "80099b874800000625001357420028acc004cdc3a400400312801459573455cd0d55cf0011aab9d00137546ae8" , ByteString "4d5d1000c9284d5d1cc00400a400323375e6ae84008d5d09aab9e375400337586ae8402d0030d55cf003456600" , ByteString "266e1d20040038cc00480066ae84d55cf0034dd59aba1007401115980099b874801800e2646ae8e60020052001" , ByteString "919baf357426ae880080066eb0d5d0804a00635573c00d15980099b874802000e3300120019aba135573c00d37" , ByteString "566ae84d5d11aba2357446ae88d5d11aba2007401115980099b874802800e264944d55cf00344ca4006002655c" , ByteString "d1573455cd1573455cd08004888c88c008004c8c0040048a600297ae091192cc004c01800626466ae80c020008" , ByteString "004cc01401400a26600a00a004ab9a180380140050082ae686aae7400c888cc8c0040048cc0152814c004cdd79" , ByteString "8028021aab9d0019251919801801800aae68002444b30010018801c4cc008d5d08009aba2001555cf8dd51aba1" , ByteString "357446ae88014d5d10009aba2001357446ae88d5d11aba200135573c6ea8d5d08009aab9e3754003149a264c66" , ByteString "ae71240103505435008002ae69" ] -- | 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 "ee1800a99f823b0334af17acb0ac2ab49e745e4b47895053deb7842e" -- 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 "587d0100002223232325333573466e1d200235573a0042a666ae68d5d198009bac357426aae78dd51aba100316" , ByteString "112001163230010012253335573e002297ae0133225333573466ebcd5d09aab9e005357426aae78dd5001099ab" , ByteString "a000233004004001133004004001357420026ae88004dd51aba1357440026aae78dd500081" ] -- ScriptHash "2de30cbd6002b4cfc588f39e2e4620764daa8fc25172c7a3c7c5f0ad" -- 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 "587d0100002223232325333573466e1d200235573a0042a666ae68d5d198009bac357426aae78dd51aba100316" , ByteString "112001163230010012253335573e002297ae0133225333573466ebcd5d09aab9e005357426aae78dd5001099ab" , ByteString "a000233004004001133004004001357420026ae88004dd51aba1357440026aae78dd500081" ] -- ScriptHash "85f964de9227324b4862ecd38d9f7f4ea2d272498b8a5877809f8768" -- 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 "58d001010025980099192cc004cdc3a40046aae7400626465264646b30013370e9000000c4a0026ae840051598" , ByteString "0099b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba200294c004d5d198011bac357426a" , ByteString "ae78dd51aba1005a50a5155cd294064600200244b30010018a5eb8226644b30013375e6ae84014d5d09aab9e37" , ByteString "5400513357400046600800800313300400400155cd0d5d08009aba2001555cf8d55cf000c5282ae686ea8d5d09" , ByteString "aba2357440026aae78dd5000c526899319ab9c490103505435008002ae69" ] -- ScriptHash "06cd72f75dc7d154d5fc865b6e4c52d938d2ac2e98faa510ffb536e1" -- 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.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 SPlutusV4 -> [ ByteString "58d001010025980099192cc004cdc3a40046aae7400626465264646b30013370e9000000c4a0026ae840051598" , ByteString "0099b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba200294c004d5d198011bac357426a" , ByteString "ae78dd51aba1005a50a5155cd294064600200244b30010018a5eb8226644b30013375e6ae84014d5d09aab9e37" , ByteString "5400513357400046600800800313300400400155cd0d5d08009aba2001555cf8d55cf000c5282ae686ea8d5d09" , ByteString "aba2357440026aae78dd5000c526899319ab9c490103505435008002ae69" ] -- | 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 "5e01883b1e426b0449e735abd5aaba479ec2cfa258456ea43e3eb103" -- 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 "58c3010000222325333573466e1d200235573a6ea8d5d09aba20011533357346ae8ccc8c004004894ccd55cf80" , ByteString "08a5eb804c8c94ccd5cd19baf00830012200113233574060044466e9520003357406ea4008cd5d0000a5eb8000" , ByteString "4cc0100100084cc0100100094c8d4ccd5cd19b8748000d55ce80089199109198008018011bae357420026ae84d" , ByteString "5d10008b1aab9e00137546ae84008d5d10009bac357426ae88d5d11aba2357446ae88d5d11aba2357446aae78d" , ByteString "d51aba1001161120011635573c6ea80041" ] -- ScriptHash "72d6fa7b7aadac60673d3f599661ce4900164eb57da87bef863c2e32" -- 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 "58a80100002323222325333573466e1d200235573a6ea8d5d09aba20011533357346ae8cc010cc8c0040048cc0" , ByteString "192f5c04466ae80d55cf001198018018009bab357426ae88d5d11aba2357446ae88d5d11aba2357446ae88d5d1" , ByteString "1aab9e37546ae840045844800458d55cf1baa001323001001223330034bd70112999ab9a3375e00c004266ae80" , ByteString "008cc0100100044cc0100100040048894ccd55cf80088018998011aba1001357440021" ] -- ScriptHash "5ee0bd0819b893090acc2acea004a1322a111f78453da15d677c0984" -- 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 "59010101010025980099192cc004cdc3a40046aae740062b264646b30013370e9000000c4a0026ae8400515980" , ByteString "099b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323232198009aba330013" , ByteString "3230010012330034bd701119aba035573c004660060060026eacd5d09aba2357446ae88d5d11aba2357446ae88" , ByteString "d5d11aba2357446aae78dd51aba1005a50a5155cd0c8c0040048a600297ae0912cc004cdd780300144cd5d0001" , ByteString "19802002000c4cc0100100055734800a00622259800800c400e2660046ae84004d5d1000aaae7d14a08a5055cd" , ByteString "0dd51aba1357446ae88004d55cf1baa0018a4d1326335738920103505435008002ae69" ] -- ScriptHash "1502b1c94496b7fff7d076c06acb0cd6b69f12da40d99b66f680ac76" -- 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.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 SPlutusV4 -> [ ByteString "59010101010025980099192cc004cdc3a40046aae740062b264646b30013370e9000000c4a0026ae8400515980" , ByteString "099b8748008006250028b2ae68ab9a1aab9e00235573a0026ea8d5d09aba235573c00323232198009aba330013" , ByteString "3230010012330034bd701119aba035573c004660060060026eacd5d09aba2357446ae88d5d11aba2357446ae88" , ByteString "d5d11aba2357446aae78dd51aba1005a50a5155cd0c8c0040048a600297ae0912cc004cdd780300144cd5d0001" , ByteString "19802002000c4cc0100100055734800a00622259800800c400e2660046ae84004d5d1000aaae7d14a08a5055cd" , ByteString "0dd51aba1357446ae88004d55cf1baa0018a4d1326335738920103505435008002ae69" ] -- | 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 "7a4e9e623c48efedadcc40b8bfe6528d1982e359012f8f56dcd57e63" -- 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 "58be0100002253335734a64666ae68d5d1998009111111111005130a511357466600244444444440124c446464" , ByteString "6464646464646466666666660166eb0d5d08049bac357420106eacd5d08039bab3574200c6eb0d5d08029bac35" , ByteString "7420086ae8400cdd61aba100237586ae84004c8d4ccd5cd19b8748000d55ce800891bae357420022c6aae78004" , ByteString "dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026aae78dd51ab" , ByteString "a135573c6ea800c584480041" ] -- ScriptHash "769d34b3e99e8a427457674368c4251a486cafec0c3d4260c86c7a90" -- 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 "58d60100002253335734a64666ae68d5d199800911111111111006130a51135746660024444444444440144c44" , ByteString "646464646464646464646466666666666601a6eb0d5d08059bac357420146eb0d5d08049bab357420106eacd5d" , ByteString "08039bac3574200c6eacd5d08029aba100437586ae8400cdd59aba100237566ae84004c8d4ccd5cd19b8748000" , ByteString "d55ce800891bae357420022c6aae78004dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "d10009aba2001357440026ae88004d5d10009aab9e37546ae84d55cf1baa003161120011" ] -- ScriptHash "c636a1669fc64a1da66eadd8556003fa5b57b37ec0aaa93f56ba2e25" -- 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 "59016d0101002598009919299194c004cdc3a40046aae7400e26526600640026ae84d5d1000c9284c009261aab" , ByteString "9e00389800a4cab9a14c0054ca60026ae8ccc00488888888888888880409a294626ae8ccc00488888888888888" , ByteString "88038995734223232323232323232323232323232323298009bac3574202137586ae8403e6eb0d5d08074dd69a" , ByteString "ba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab3574200f37566ae8401a6eb8d" , ByteString "5d0802cdd59aba10049bac357420073001357420053001357426ae880090121809bad357440026ae88004d5d10" , ByteString "009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "5cf1baa3574200d4a14a2ab9a1119191acc004cdc3a40000031280098029aba1001456600266e1d20020018940" , ByteString "0a2cab9a2ae686aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea800629344c98cd5ce248103" , ByteString "505435008002ae69" ] -- ScriptHash "77a182ced717773aa080ce06e019cd1d84aa92086b3bbb2d0a0813c2" -- 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.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 SPlutusV4 -> [ ByteString "59016d0101002598009919299194c004cdc3a40046aae7400e26526600640026ae84d5d1000c9284c009261aab" , ByteString "9e00389800a4cab9a14c0054ca60026ae8ccc00488888888888888880409a294626ae8ccc00488888888888888" , ByteString "88038995734223232323232323232323232323232323298009bac3574202137586ae8403e6eb0d5d08074dd69a" , ByteString "ba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab3574200f37566ae8401a6eb8d" , ByteString "5d0802cdd59aba10049bac357420073001357420053001357426ae880090121809bad357440026ae88004d5d10" , ByteString "009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "5cf1baa3574200d4a14a2ab9a1119191acc004cdc3a40000031280098029aba1001456600266e1d20020018940" , ByteString "0a2cab9a2ae686aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea800629344c98cd5ce248103" , ByteString "505435008002ae69" ] -- | 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 "e9deb6b3ab5ed3f65837ed5750a4eaa62c656cff6486e421ff2ddaea" -- 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 "58be01000022253335734a64666ae68d5d1998009111111111005130a511357466600244444444440124c44646" , ByteString "46464646464646466666666660166eb0d5d08049bac357420106eacd5d08039bab3574200c6eb0d5d08029bac3" , ByteString "57420086ae8400cdd61aba100237586ae84004c8d4ccd5cd19b8748000d55ce800891bae357420022c6aae7800" , ByteString "4dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026aae78dd51a" , ByteString "ba135573c6ea800c58448005" ] -- ScriptHash "043d8dca3fa10c9f432b0da0ee15da9f6c808ebe51c29be44a6891b1" -- 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 "58d701000022253335734a64666ae68d5d199800911111111111006130a51135746660024444444444440144c4" , ByteString "4646464646464646464646466666666666601a6eb0d5d08059bac357420146eb0d5d08049bab357420106eacd5" , ByteString "d08039bac3574200c6eacd5d08029aba100437586ae8400cdd59aba100237566ae84004c8d4ccd5cd19b874800" , ByteString "0d55ce800891bae357420022c6aae78004dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d" , ByteString "5d10009aba2001357440026ae88004d5d10009aab9e37546ae84d55cf1baa0031611200101" ] -- ScriptHash "54b5ebdb883722eea7ea11e8f3b786888f44ffea8d52748dcc3f32d6" -- 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 "59016d0101002598009919299194c004cdc3a40046aae7400e26526600640026ae84d5d1000c8c00d26a501aab" , ByteString "9e00389800a4cab9a14c0054ca60026ae8ccc00488888888888888880409a294626ae8ccc00488888888888888" , ByteString "88038995734223232323232323232323232323232323298009bac3574202137586ae8403e6eb0d5d08074dd69a" , ByteString "ba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab3574200f37566ae8401a6eb8d" , ByteString "5d0802cdd59aba10049bac357420073001357420053001357426ae880090121809bad357440026ae88004d5d10" , ByteString "009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "5cf1baa3574200d4a14a2ab9a1119191acc004cdc3a40000031280098029aba1001456600266e1d20020018940" , ByteString "0a2cab9a2ae686aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea800629344c98cd5ce248103" , ByteString "505435008002ae69" ] -- ScriptHash "f34ca8de774c345040a1e14ec2045571811a24e0263b406489a8ae02" -- 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.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 SPlutusV4 -> [ ByteString "59016d0101002598009919299194c004cdc3a40046aae7400e26526600640026ae84d5d1000c8c00d26a501aab" , ByteString "9e00389800a4cab9a14c0054ca60026ae8ccc00488888888888888880409a294626ae8ccc00488888888888888" , ByteString "88038995734223232323232323232323232323232323298009bac3574202137586ae8403e6eb0d5d08074dd69a" , ByteString "ba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab3574200f37566ae8401a6eb8d" , ByteString "5d0802cdd59aba10049bac357420073001357420053001357426ae880090121809bad357440026ae88004d5d10" , ByteString "009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5" , ByteString "5cf1baa3574200d4a14a2ab9a1119191acc004cdc3a40000031280098029aba1001456600266e1d20020018940" , ByteString "0a2cab9a2ae686aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea800629344c98cd5ce248103" , ByteString "505435008002ae69" ] -- | 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 "066d31e74d41fd2e5ae8d68ebf8c00742351091dc2c1d5c9b30f302c" -- 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 "5901240100002223232533357346646002002446660089408c894ccd5cd19a9801198031111111111110059312" , ByteString "514a029444cc014014004c8c00400488ccc01c488004894ccd5cd19baf00200511223002004133004004001001" , ByteString "0013300122222222222200c261120011622323232323232323232323233333333333300d37586ae8402cdd61ab" , ByteString "a100a37586ae84024dd59aba100837566ae8401cdd61aba100637566ae84014d5d08021bac357420066eacd5d0" , ByteString "8011bab35742002646a666ae68cdc3a40006aae7400448dd71aba10011635573c0026ea8d5d09aba2001357440" , ByteString "026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d55cf1baa357426aae" , ByteString "78dd50021112999aab9f0011003133002357420026ae880041" ] -- ScriptHash "95d9b33c0485847f6f13cf6625d086ce9ed0cd843ad1be7b0c6683e7" -- 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 "59017701010025980099191991800800914c0052848c8966003260046600c444444444444444401e4d24a34a08" , ByteString "a51899802802800aae686460020024530018014896600266ebc008016300100244cc0100100055734800a00e80" , ByteString "0a00833001222222222222222201026223232323232323232323232323232323298009bac3574202137586ae84" , ByteString "03e6eb0d5d08074dd69aba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab35742" , ByteString "00f37566ae8401a6eb8d5d0802cdd59aba10049bac357420073001357420053001357426ae88009012119191ac" , ByteString "c004cdc3a4000003128009bad357420028acc004cdc3a400400312801459573455cd0d55cf0011aab9d0013754" , ByteString "0026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba200135" , ByteString "7440026ae88004d5d10009aab9e37546ae84d55cf1baa00422259800800c400e2660046ae84004d5d1000aaae7" , ByteString "d149a264c66ae7124103505435008002ae69" ] -- ScriptHash "108e6e169684769b725d0590d0a26cdae6f8aed031a0b4b2385ee8bf" -- 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.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 SPlutusV4 -> [ ByteString "59017701010025980099191991800800914c0052848c8966003260046600c444444444444444401e4d24a34a08" , ByteString "a51899802802800aae686460020024530018014896600266ebc008016300100244cc0100100055734800a00e80" , ByteString "0a00833001222222222222222201026223232323232323232323232323232323298009bac3574202137586ae84" , ByteString "03e6eb0d5d08074dd69aba100d9bab3574201937586ae8402e6eacd5d08054d5d0804cdd61aba10089bab35742" , ByteString "00f37566ae8401a6eb8d5d0802cdd59aba10049bac357420073001357420053001357426ae88009012119191ac" , ByteString "c004cdc3a4000003128009bad357420028acc004cdc3a400400312801459573455cd0d55cf0011aab9d0013754" , ByteString "0026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba200135" , ByteString "7440026ae88004d5d10009aab9e37546ae84d55cf1baa00422259800800c400e2660046ae84004d5d1000aaae7" , ByteString "d149a264c66ae7124103505435008002ae69" ]