{-# 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"
      ]