{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

-- | This file is generated by "plutus-preprocessor:plutus-preprocessor"
module Test.Cardano.Ledger.Plutus.Examples (
  alwaysSucceedsNoDatum,
  alwaysSucceedsWithDatum,
  alwaysFailsNoDatum,
  alwaysFailsWithDatum,
  redeemerSameAsDatum,
  evenDatum,
  evenRedeemerNoDatum,
  evenRedeemerWithDatum,
  purposeIsWellformedNoDatum,
  purposeIsWellformedWithDatum,
  datumIsWellformed,
  inputsOutputsAreNotEmptyNoDatum,
  inputsOutputsAreNotEmptyWithDatum,
  inputsOverlapsWithRefInputs,
) where

import Cardano.Ledger.Plutus.Language (Plutus (..), PlutusBinary (..), SLanguage (..))
import Data.ByteString (ByteString)
import qualified Data.ByteString.Base16 as Base16 (decode)
import qualified Data.ByteString.Short as SBS (toShort)
import GHC.Stack

decodeHexPlutus :: HasCallStack => ByteString -> Plutus l
decodeHexPlutus :: forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus = ([Char] -> Plutus l)
-> (ByteString -> Plutus l) -> Either [Char] ByteString -> Plutus l
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either [Char] -> Plutus l
forall a. HasCallStack => [Char] -> a
error (PlutusBinary -> Plutus l
forall (l :: Language). PlutusBinary -> Plutus l
Plutus (PlutusBinary -> Plutus l)
-> (ByteString -> PlutusBinary) -> ByteString -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShortByteString -> PlutusBinary
PlutusBinary (ShortByteString -> PlutusBinary)
-> (ByteString -> ShortByteString) -> ByteString -> PlutusBinary
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ShortByteString
SBS.toShort) (Either [Char] ByteString -> Plutus l)
-> (ByteString -> Either [Char] ByteString)
-> ByteString
-> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Either [Char] ByteString
Base16.decode

-- | Script that always succeeds, unless arguments are malformed or context contains a datum
alwaysSucceedsNoDatum :: SLanguage l -> Plutus l
alwaysSucceedsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "38c32b1383b0024ad3c3a4b16996c2542051a5b1615973c252cd831d"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5833010000333332222222323253330073370e900118049baa30053008002161498c010004c010dd5000aab9d5"
      , ByteString
"744ae6955cf2ba11"
      ]
    -- ScriptHash "f6f8a9dd4cabbc802d15de6f7f01b55cb6c09eef071671bce6011e8f"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5833010000333332222222323253330073370e900118049baa30053008002161498c010004c010dd5000aab9d5"
      , ByteString
"744ae6955cf2ba11"
      ]
    -- ScriptHash "5eeda416cb7ee9cbafbf648b044c5f0cfd3e1f1f4b280f575676432a"
    -- 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
"58ab0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c"
      , ByteString
"94cd4d6600266e1d2000001891909118010019805000c56600266e1d200200189091000c5900b2016300a00221"
      , ByteString
"4a02944c030004dd518038009803000c528a00e37546a66002446464253001005801c009001180398050011803"
      , ByteString
"00098029baa0022220012233002300500130080018a4d1326330024901035054350049900501"
      ]
    -- ScriptHash "935df6b4eef7aaf97385f236cfa2c529b8a2b03a79e4812859b9d8d2"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                    scriptInfo_4
    --                                                                                    _sh_5 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                  in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of
    --                                                                        {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                         (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                         _ -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58b60101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c"
      , ByteString
"94cd4d6600266e1d2000001891909118010019805000c56600266e1d200200189091000c5900b2016300a00221"
      , ByteString
"4a02944c030004dd518038009803000c528a00e37546a660024464646464253001007802400e0048008dd71804"
      , ByteString
"98060019804001180380118048009bac00222220022233002300500130080018a4d13263300249010350543500"
      , ByteString
"49900501"
      ]

-- | Script that always succeeds, unless arguments are malformed or context does not contain a datum
alwaysSucceedsWithDatum :: SLanguage l -> Plutus l
alwaysSucceedsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "dd9849ea907bc9bd9fc372d5d3e4e252d7a35d3b461c04e25d3b93ef"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"583d010000333333222222222323253330093370e900118059baa3007300a00214984c8cc01c0040058c018004"
      , ByteString
"c018dd5000aab9d5744ae6955cf2ba157361"
      ]
    -- ScriptHash "4f71b097e95d0df74efe265883545be88cd13797b58bee5b0eba9601"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"583d010000333333222222222323253330093370e900118059baa3007300a00214984c8cc01c0040058c018004"
      , ByteString
"c018dd5000aab9d5744ae6955cf2ba157361"
      ]
    -- ScriptHash "90a4869bd26787c6e649fbc84b03dfbd7ef4f46fcd619d5931fd0280"
    -- 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
"58ab0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c"
      , ByteString
"94cd4d6600266e1d2000001891909118010019805000c56600266e1d200200189091000c5900b2016300a00221"
      , ByteString
"4a22940c030004dd518038009803000c528200e37546a66002446464253001005801c009001180398050011803"
      , ByteString
"00098029baa0022220012233002300500130080018a4d1326330024901035054350049900501"
      ]
    -- ScriptHash "e9c271ccb3e2948991434c8be757fcf8e4acb917f2f7ae4882422d5a"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                      (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                      scriptPurpose_4
    --                                                                                      _sh_5 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                    in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of
    --                                                                          {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                           (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                           _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58b60101009800aab9daba2ab9aaab9eaba1ab9c48888889660026464b30013370e90011804800c4cc00888c8c"
      , ByteString
"94cd4d6600266e1d2000001891909118010019805000c56600266e1d200200189091000c5900b2016300a00221"
      , ByteString
"4a22940c030004dd518038009803000c528200e37546a660024464646464253001007802400e0048008dd71804"
      , ByteString
"98060019804001180380118048009bac00222220022233002300500130080018a4d13263300249010350543500"
      , ByteString
"49900501"
      ]

-- | Script that always fails, unless arguments are malformed or context contains a datum
alwaysFailsNoDatum :: SLanguage l -> Plutus l
alwaysFailsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "b92fb32a431f2739c4378eddcfd1372dbe0916d85a7585db109e4126"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5833010000333332222222323253330073370e900118049baa30053008002149858c010004c010dd5000aab9d5"
      , ByteString
"744ae6955cf2ba11"
      ]
    -- ScriptHash "aeb8c6fdbe38292dc5fe7e121fb655c86cc511dbb5099bc2b3b9a242"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5833010000333332222222323253330073370e900118049baa30053008002149858c010004c010dd5000aab9d5"
      , ByteString
"744ae6955cf2ba11"
      ]
    -- ScriptHash "845624bf0d1f65ac0f5a175bc85c44782dc83d2a9e625bc25e39d8fb"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                 {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                 (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                 scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                                                                                                   _ -> GHC.Types.False};
    --                                                                  GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"589c0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c"
      , ByteString
"c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c"
      , ByteString
"300d002214a22940c03c004dd518050009804800c52820143754600e6014004600c002600a6ea800888cc008c0"
      , ByteString
"14004c02000629344c98cc009241035054350049900501"
      ]
    -- ScriptHash "61817cbf34a2b2d866f03824858cab97e6b9b8b738fce7750a044a83"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                 {GHC.Maybe.Just (PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                 (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                 scriptInfo_4
    --                                                                                                                                 _sh_5) -> case scriptInfo_4 of
    --                                                                                                                                           {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                            (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                                                                                            _ -> GHC.Types.False};
    --                                                                  GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58a40101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464646464b30013370e90011807"
      , ByteString
"800c4cc02088c8c94cd4d6600266e1d2000001891909118010019808000c56600266e1d200200189091000c590"
      , ByteString
"1120223010002214a22940c048004dd518068009806000c528201a3754004601800460100026014004600c0026"
      , ByteString
"eb000888cc008c014004c02000629344c98cc0092401035054350049900501"
      ]

-- | Script that always fails, unless arguments are malformed or context does not contain a datum
alwaysFailsWithDatum :: SLanguage l -> Plutus l
alwaysFailsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "fb96118db82531c7eec57c892af422fd002d48a5591dc99b9c321685"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58340100003333322222222323253330083370e900118051baa30063009002161498c014004c014dd5000aab9d"
      , ByteString
"5744ae6955cf2ba101"
      ]
    -- ScriptHash "46b9f33a9b0a7a712af70cb8789ae84417ec379017a8c0143e82ded1"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58340100003333322222222323253330083370e900118051baa30063009002161498c014004c014dd5000aab9d"
      , ByteString
"5744ae6955cf2ba101"
      ]
    -- ScriptHash "fe6f5484631753d44c197639b874d34bd65b33a590ac7d8c1cd43ca5"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                   {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                   (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                   scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                    {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                     (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                                     _ -> GHC.Types.True};
    --                                                                    GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"589c0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c"
      , ByteString
"c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c"
      , ByteString
"300d002214a02944c03c004dd518050009804800c528a0143754600e6014004600c002600a6ea800888cc008c0"
      , ByteString
"14004c02000629344c98cc009241035054350049900501"
      ]
    -- ScriptHash "9d4abb21e02c9d26871e63f645e4e5b41fab0a392f72914dbb937351"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                   {GHC.Maybe.Just (PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                   (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                   scriptInfo_4
    --                                                                                                                                   _sh_5) -> case scriptInfo_4 of
    --                                                                                                                                             {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                              (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                              _ -> GHC.Types.True};
    --                                                                    GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58a40101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464646464b30013370e90011807"
      , ByteString
"800c4cc02088c8c94cd4d6600266e1d2000001891909118010019808000c56600266e1d200200189091000c590"
      , ByteString
"1120223010002214a02944c048004dd518068009806000c528a01a3754004601800460100026014004600c0026"
      , ByteString
"eb000888cc008c014004c02000629344c98cc0092401035054350049900501"
      ]

-- | Script that succeeds whenever redeemer equals to the datum
-- Fails on malformed arguments
redeemerSameAsDatum :: SLanguage l -> Plutus l
redeemerSameAsDatum :: forall (l :: Language). SLanguage l -> Plutus l
redeemerSameAsDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "a9b777caf273f7fdf60d670d17ae4e8baf82291cc927be32bf00fb5f"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.Class.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5847010000333333222222222323253330093370e900118059baa3007300a002153330093375e00800a2930b09"
      , ByteString
"919803800800b180300098031baa0015573aae895cd2ab9e5742ae6d"
      ]
    -- ScriptHash "a9791b1aab316826b73fbdfc79a346104b1c75fc8a5d4fef0a70b75b"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.Class.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5847010000333333222222222323253330093370e900118059baa3007300a002153330093375e00800a2930b09"
      , ByteString
"919803800800b180300098031baa0015573aae895cd2ab9e5742ae6d"
      ]
    -- ScriptHash "b2aa9b404fc30786466b6f8f04da7aeb593eb065841ea508b87eab4b"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                   (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> datum_4 PlutusTx.Eq.Class.== redeemer_3;
    --                                                                   _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58a00101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c"
      , ByteString
"c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c"
      , ByteString
"300d002213375e00200e2940c03c004dd518050009804800c52820143754600e6014004600c002600a6ea80088"
      , ByteString
"8cc008c014004c02000629344c98cc009241035054350049900501"
      ]
    -- ScriptHash "919ccb4dc37b6311f385ceeb50c7bdc28a40961591fa9d6bda2e5380"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                                   (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4)))
    --                                                                                                                  _sh_5 -> datum_4 PlutusTx.Eq.Class.== redeemer_3;
    --                                                                   _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58a80101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464646464b30013370e90011807"
      , ByteString
"800c4cc02088c8c94cd4d6600266e1d2000001891909118010019808000c56600266e1d200200189091000c590"
      , ByteString
"1120223010002213375e0020142940c048004dd518068009806000c528201a3754004601800460100026014004"
      , ByteString
"600c0026eb000888cc008c014004c02000629344c98cc0092401035054350049900501"
      ]

-- | Script that succeeds whenever Integer datum is supplied and it's value is even.
-- Fails on malformed arguments
evenDatum :: SLanguage l -> Plutus l
evenDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "2c708a1d5119e56e61ad97b808cacfc018920171568eade60bfe5842"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a"
      , ByteString
"00a90020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01"
      ]
    -- ScriptHash "84b7076e3c986e802c250045a28137ee60629d64ff57a6ca071a1c72"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a"
      , ByteString
"00a90020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01"
      ]
    -- ScriptHash "3a863cfc41d43db7513d7b74641ff7667c08528407e264c61efb4c1f"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                        {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                        _redeemer_3
    --                                                                                                        (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                         (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.Class.== 0})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58b50101009800aab9daba2ab9aaab9eaba1ab9bab9c488888889660026466002446464b30013370e900118068"
      , ByteString
"00c4cc01488c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d200200189091000c5900"
      , ByteString
"f201e300e002213370e900019b86375a002900209919806800800b18080009baa300b001300a00189919804800"
      , ByteString
"800b2016375460106016004600e002600c6ea800888cc008c018004c02400629344c98cc009241035054350049"
      , ByteString
"900601"
      ]
    -- ScriptHash "f081caff637354ac4d72aa0f92f3ff9563fe5c05d6b6f5f156513ec8"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                        {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                        _redeemer_3
    --                                                                                                        (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                         (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4)))
    --                                                                                                        _sh_5 -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.Class.== 0})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58bd0101009800aab9daba2ab9aaab9eaba1ab9bab9c488888889660026466002446464646464b30013370e900"
      , ByteString
"11808000c4cc02088c8c94cd4d6600266e1d2000001891909118010019808800c56600266e1d20020018909100"
      , ByteString
"0c5901220243011002213370e900019b86375a002900209919808000800b18098009baa300e001300d00189919"
      , ByteString
"806000800b201c3754004601a00460120026016004600e0026eb000888cc008c018004c02400629344c98cc009"
      , ByteString
"2401035054350049900601"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is present in the context
evenRedeemerNoDatum :: SLanguage l -> Plutus l
evenRedeemerNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "640fd4a96649384fb9406fd251a57c1516200343fb2c3ef669011748"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.Class.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5845010000333332222222323253330073370e900118049baa3005300800216153330073370e900019b86375a0"
      , ByteString
"0890020a4c2c600800260086ea800555ceaba25734aae795d081"
      ]
    -- ScriptHash "ebd1eee5f1861bffc28b47255616124539bc483911420667afb7dd3c"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.Class.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5845010000333332222222323253330073370e900118049baa3005300800216153330073370e900019b86375a0"
      , ByteString
"0890020a4c2c600800260086ea800555ceaba25734aae795d081"
      ]
    -- ScriptHash "56a2f832a1394e59bffb0ee9ad90fe589e662f11e7e72157e152381d"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  scriptInfo_4 -> case scriptInfo_4 of
    --                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                   _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58ae0101009800aab9daba2ab9aaab9eaba1ab9c4888888966002646600244646464b30013370e900118068014"
      , ByteString
"4cc01888c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d200200189091000c5900f20"
      , ByteString
"1e300e002214a02600a9318080009baa300b001300a00289800a4c80588cdc3a400066e18dd6801a40086ea8c0"
      , ByteString
"1cc028008c018004c014dd5001111980118028009804000c5268993198012481035054350049900501"
      ]
    -- ScriptHash "f1dfba3664453348768664145b3b72c98f7396f90674556c62292b03"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  scriptInfo_4
    --                                                                                                                  _sh_5 -> case scriptInfo_4 of
    --                                                                                                                           {PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                                            (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                            _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0}})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58b50101009800aab9daba2ab9aaab9eaba1ab9c4888888966002646600244646464646464b30013370e900118"
      , ByteString
"0800144cc02488c8c94cd4d6600266e1d2000001891909118010019808800c56600266e1d200200189091000c5"
      , ByteString
"901220243011002214a02600a9318098009baa300e001300d00289800a4c80708cdc3a400066e18dd680324008"
      , ByteString
"6ea8008c030008c020004c028008c018004dd6001111980118028009804000c526899319801249035054350049"
      , ByteString
"900501"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is missing from the context
evenRedeemerWithDatum :: SLanguage l -> Plutus l
evenRedeemerWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "18f3ea4bde3aa8f31e3cdb1fc400662f083de781240f09fff3182cb8"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a"
      , ByteString
"00890020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01"
      ]
    -- ScriptHash "2ab0c64e0a3be872f9ce3d8dadd1c64021d582c37dd33f0fe0aa4893"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.Class.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"584f010000333333222222222323253330093370e900118059baa3007300a002153330093370e900019b86375a"
      , ByteString
"00890020a4c2c2646600e002002c600c002600c6ea800555ceaba25734aae795d0ab9b01"
      ]
    -- ScriptHash "5d3b356e61f26883192d268ce82765a7c87fb5b3a7b76845db996eab"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                    {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                    (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                     (GHC.Maybe.Just _)) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0;
    --                                                                     _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58a70101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464b30013370e90011806000c4c"
      , ByteString
"c01488c8c94cd4d6600266e1d2000001891909118010019806800c56600266e1d200200189091000c5900e201c"
      , ByteString
"300d002213370e900019b86375a00e90020a50300f00137546014002601200314a08050dd51803980500118030"
      , ByteString
"0098029baa0022233002300500130080018a4d132633002491035054350049900501"
      ]
    -- ScriptHash "b5c4212de6dd3f01fa12cefadc87ff423cc3c7fd71a575ef4201e8bc"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                    {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                    (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _
    --                                                                                                                                                                     (GHC.Maybe.Just _))
    --                                                                                                                    _sh_4 -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.Class.== 0;
    --                                                                     _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58af0101009800aab9daba2ab9aaab9eaba1ab9c48888889660026466002446464646464b30013370e90011807"
      , ByteString
"800c4cc02088c8c94cd4d6600266e1d2000001891909118010019808000c56600266e1d200200189091000c590"
      , ByteString
"1120223010002213370e900019b86375a01490020a5030120013754601a002601800314a08068dd50011806001"
      , ByteString
"1804000980500118030009bac0022233002300500130080018a4d1326330024901035054350049900501"
      ]

-- | 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 "e98a2d78ea2441aaa85fa03b28af6c223cad77376d03b4dcbb54ce94"
    -- 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
"5901f70100003333333332222222222232330012232323232533300e3370e90000008a99980719198008009998"
      , ByteString
"02003911111111100393119801a5023330103375e6ea4dd718071807803180a000925123300300300114985854"
      , ByteString
"ccc038cdc3a40040022c264a66601e66e1d20040021533300f30123333001232353330113370e9000180a80089"
      , ByteString
"191909198008018011bad301130140023010001163010001375400246a0024466e952000330140023301437500"
      , ByteString
"0297ae023375e601c601e00c6a0024400466600800e444444444400a4c2c2930a99980799b874801800854ccc0"
      , ByteString
"3cc048cccc004800480048cdd7980718078030009998020039111111111003130b0a4c2646601a002002c44464"
      , ByteString
"460040026460020024466600e97ae0223253330163006001132330193008002001330050050021330050050023"
      , ByteString
"0070020013011003222533300b0011003133002300d0013010001222330072232323232323232333333333300b"
      , ByteString
"37580126eb0c054020dd5980a8039bab30150063758602a00a6eb0c054010c05400cdd6180a8011bac30150013"
      , ByteString
"2353330183370e9000180e000891bae30170011630170013754602a6030002602e002602c002602a0026028002"
      , ByteString
"602600260240026022002601a6ea800cdd5180400098039baa00222330023007001300a0015573aae8d5d02ba2"
      , ByteString
"5734aae795d0ab9b5573e1"
      ]
    -- ScriptHash "331237807ff563e59b696b579604a9f02b6989be5dfdc7a77af409a7"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                  {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                  scriptPurpose_5 -> case scriptPurpose_5 of
    --                                                                                                                                                                     {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoMint txInfo_4)
    --                                                                                                                                                                                                                        then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                        else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.AssocMap.member stakingCredential_7 GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoWdrl txInfo_4
    --                                                                                                                                                                                                                                         then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.Class.==) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoDCert txInfo_4)
    --                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                              else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5901b8010000333333333222222222223233001223232323232533300f3370e90000008a9998079998013a9375"
      , ByteString
"c601a601c00a66600800e4444444444440104c2930b0a99980799b87480080045854ccc03ccdc3a40080022a66"
      , ByteString
"601e6660044002601a601c00a66600800e44444444444400c4c2930b099299980819b874801800854ccc040c04"
      , ByteString
"cc004ccc01402088888888888801c98585261323300e0010016323001001223330054bd7011299980999baf301"
      , ByteString
"1301200900213301500233004004001133004004001001301200422232330010010022330054a0466602466ebc"
      , ByteString
"c014010c0580049289198018018009112999805800880189980118068009808000911198039119191919191919"
      , ByteString
"19191999999999998069bac00b3758602e0146eb0c05c024dd5980b8041bab30170073758602e00c6eacc05c01"
      , ByteString
"4c05c010dd6180b8019bab30170023756602e002646a66603466e1d2000301e00112375c60320022c60320026e"
      , ByteString
"a8c05cc068004c064004c060004c05c004c058004c054004c050004c04c004c048004c044004c034dd50019baa"
      , ByteString
"3008001300737540044466004600e0026014002aae755d1aba05744ae6955cf2ba15736aae7d"
      ]
    -- ScriptHash "fabf7e77af08a5c801ce0f9bc98c5568822f2c185c99703f654f670b"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                         {PlutusLedgerApi.V3.Data.Contexts.ScriptContext (PlutusLedgerApi.V3.Data.Contexts.TxInfo {PlutusLedgerApi.V3.Data.Contexts.txInfoMint = infoMint_2,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoInputs = infoInputs_3,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoWdrl = infoWdrl_4,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoTxCerts = infoTxCerts_5,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoVotes = infoVotes_6})
    --                                                                                                                         _redeemer_7
    --                                                                                                                         scriptInfo_8 -> case scriptInfo_8 of
    --                                                                                                                                         {PlutusLedgerApi.V3.Data.Contexts.MintingScript cs_9 -> PlutusTx.Data.AssocMap.member cs_9 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2);
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_10
    --                                                                                                                                                                                          mDatum_11 -> case mDatum_11 of
    --                                                                                                                                                                                                       {GHC.Maybe.Just _ -> GHC.Types.False;
    --                                                                                                                                                                                                        GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_10 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) infoInputs_3};
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.RewardingScript cred_12 -> PlutusTx.Data.AssocMap.member cred_12 infoWdrl_4;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.CertifyingScript _idx_13
    --                                                                                                                                                                                            txCert_14 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_14 PlutusTx.Eq.Class.==) infoTxCerts_5;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.VotingScript voter_15 -> PlutusTx.Data.AssocMap.member voter_15 infoVotes_6;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.ProposingScript _idx_16
    --                                                                                                                                                                                           _propProc_17 -> GHC.Types.True}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5902640101009800aab9daba3aba0aba2ab9aaab9eaba1ab9bab9caab9f4888888888896600264660024464660"
      , ByteString
"08446464646464646464b30013370e9000000c66002ea66eb8c04cc050016653001237560032374c0032329800"
      , ByteString
"980d800c01e244600400680c26002eb646ea000653001337109000000c488c00800e00e80c200280126eacc050"
      , ByteString
"025001111191800800919803a5eb7bdb18094cd4c00cc014c064004848cc078cdd818100019803001198020020"
      , ByteString
"008919801801800a0048992cc004cdc3a400400513300f223232533535980099b8748000006246424460040066"
      , ByteString
"03200315980099b87480080062401516406880d0c06400885280980ecc0048006400323375e00a660284400460"
      , ByteString
"346ea80066eb003d005180e8009baa301600130150068acc004cdc3a4008005198009000cc050c05401a6eacc0"
      , ByteString
"5001d003456600266e1d200600289980791180dcc0048006400323375e602e0040033758602c0148018c05401a"
      , ByteString
"2b30013370e90040014660024003301430150069bab3014301730173017301730173017007400d15980099b874"
      , ByteString
"802800a26601e44944c05401a26466028002002c80b1016202c405880b0888c88c008004c8c0040048a600297a"
      , ByteString
"e091192cc004c0180062646604060100040026600a00a0051330050050024074600e005001402080a8c0600108"
      , ByteString
"88c8cc0040040088cc0152814c004cdd79802802180e000c928c8cc00c00c0050181112cc00400620071330023"
      , ByteString
"013001301600140402440026ea8c038c04401cc040004c03c004c038c038c038004c028dd5001980400098039b"
      , ByteString
"aa00222330023007001300a0018a4d132633003491035054350049900701"
      ]
    -- ScriptHash "46ffab4ccc23096dbffe084ed676699cbea85caf20b34c524ae43df7"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                         {PlutusLedgerApi.V4.Data.Contexts.ScriptContext (PlutusLedgerApi.V4.Data.Contexts.TxInfo {PlutusLedgerApi.V4.Data.Contexts.txInfoMint = infoMint_2,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoInputs = infoInputs_3,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoTxCerts = infoTxCerts_4,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoVotes = infoVotes_5,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoWithdrawals = infoWithdrawals_6,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoGuards = infoGuards_7,
    --                                                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.txInfoSubTxIx = infoSubTxIx_8})
    --                                                                                                                         _redeemer_9
    --                                                                                                                         scriptInfo_10
    --                                                                                                                         sh_11 -> case scriptInfo_10 of
    --                                                                                                                                  {PlutusLedgerApi.V4.Data.Contexts.MintingScript cs_12 -> PlutusTx.Data.AssocMap.member cs_12 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2);
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.SpendingScript txOutRef_13
    --                                                                                                                                                                                   mDatum_14 -> case mDatum_14 of
    --                                                                                                                                                                                                {GHC.Maybe.Just _ -> GHC.Types.False;
    --                                                                                                                                                                                                 GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_13 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V4.Data.Contexts.txInInfoOutRef) infoInputs_3};
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.CertifyingScript _idx_15
    --                                                                                                                                                                                     txCert_16 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_16 PlutusTx.Eq.Class.==) infoTxCerts_4;
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.VotingScript voter_17 -> PlutusTx.Data.AssocMap.member voter_17 infoVotes_5;
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.ProposingScript _idx_18
    --                                                                                                                                                                                    _propProc_19 -> GHC.Types.True;
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.WithdrawingScript (PlutusLedgerApi.V4.Data.Address.AccountId cred_20) -> PlutusTx.Data.AssocMap.member cred_20 infoWithdrawals_6;
    --                                                                                                                                   PlutusLedgerApi.V4.Data.Contexts.GuardingScript ix_21
    --                                                                                                                                                                                   topTxInfo_22 -> (PlutusLedgerApi.V1.Data.Credential.ScriptCredential sh_11 PlutusTx.Eq.Class.== (infoGuards_7 PlutusTx.Data.List.!! ix_21)) PlutusTx.Bool.&& (PlutusTx.Maybe.isJust infoSubTxIx_8 PlutusTx.Eq.Class.== PlutusTx.Maybe.isNothing topTxInfo_22)}})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5903350101009800aab9daba3aba0aba2ab9aaab9eaba1ab9bab9caab9f48888888888c8c89660026466002446"
      , ByteString
"46464646600e44646464646464646464b30013370e9000000c66002ea66eb8c064c06801265300123756003237"
      , ByteString
"4c00323298009810800c016244600400680f26002eb646ea000653001337109000000c488c00800e00a80f2002"
      , ByteString
"80126eacc06802500111119180080091980ca5eb7bdb18094cd4c00cc014c07c004848cc090cdd818130019803"
      , ByteString
"001198020020008919801801800a006899192cc004cdc3a4004007133014225335330032001301d001214a0260"
      , ByteString
"45300120019000c8cdd78019980b910011bac0019bac301d00d4010603800d15980099b874801800e266028446"
      , ByteString
"045300120019000c8cdd7980f001000cdd6180e805a008301c0068acc004cdc3a4010007198009000cc06cc070"
      , ByteString
"01a6eacc06cc078c078c078c07801d005456600266e1d200a00389980a11251301c0068acc004cdc3a40080071"
      , ByteString
"98009000cc06cc07001a6eacc06c021005456600266e1d200c00389980a11192cc004cdd799ba548008cc088dd"
      , ByteString
"49bae301e0114bd702cc004cdc4000a400113263301c4901035054360049a2660320026eb0c07802902044c966"
      , ByteString
"00266a6600aeb4c07c040928a508800c660020034a14a2810902119a998021000980f00112504a314a08100dd6"
      , ByteString
"801180e00344c8cc06c004005901d203a407480e901d203a22323235980099b874800000624642446004006600"
      , ByteString
"a603e00315980099b8748008006240111640808100c07c008c08c004dd50009111911801000991800800914c00"
      , ByteString
"52f5c12232598009803000c4c8cc098c020008004cc01401400a26600a00a0048118c01c00a00280d101b180f0"
      , ByteString
"01891000911191980080080111980b2502980099baf300500430210019251919801801800a03a3754012602e60"
      , ByteString
"2e602e602e002602c002602a00260286028602800260260026eb0018c040008c030004c038008c028004dd6001"
      , ByteString
"111980118048009806000c526899319802a48103505435004990091918008009114c0048c98cc01d2401035054"
      , ByteString
"370049a444b30013370e9000002c400e2653001007800c00d00719b810054800900d400693200822259800800c"
      , ByteString
"400e266004600e00260140028021"
      ]

-- | Script that succeeds when datum is expected and purpose arguments are validated against txInfo
-- Fails on malformed arguments
purposeIsWellformedWithDatum :: SLanguage l -> Plutus l
purposeIsWellformedWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
purposeIsWellformedWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "560a103eceb56ff3fd130b888620e038a6c9cbaf8308f237b8fe765b"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V1.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"589a01000033333333222222222223233001223232533300c3370e900118080010a9998061807980099802911b"
      , ByteString
"ac002300b37540082c2930b1918008009129998050008a5eb804c8c94ccc03ccdd798069807002998041100118"
      , ByteString
"071baa00213301100233004004001133004004001300f002300b00137546010002600e6ea800888cc008c01c00"
      , ByteString
"4c02800555ceaba35740ae895cd2ab9e5742aae7c1"
      ]
    -- ScriptHash "679480a94b821bdad4d0d2d86e2a7fb547b9368f255900ef992400be"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V2.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"589a01000033333333222222222223233001223232533300c3370e900118080010a9998061807980099802911b"
      , ByteString
"ac002300b37540082c2930b1918008009129998050008a5eb804c8c94ccc03ccdd798069807002998041100118"
      , ByteString
"071baa00213301100233004004001133004004001300f002300b00137546010002600e6ea800888cc008c01c00"
      , ByteString
"4c02800555ceaba35740ae895cd2ab9e5742aae7c1"
      ]
    -- ScriptHash "10786ac07d7165016298c6831633ecd85bfae7f2a46903be465a9123"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                           {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                           _redeemer_3
    --                                                                                                                           (PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_4
    --                                                                                                                                                                            (GHC.Maybe.Just _)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2));
    --                                                                            _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58f60101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464b3001337"
      , ByteString
"0e90011807800c4cc0148c88c8c94cd4d6600266e1d2000001891909118010019807800c56600266e1d2002001"
      , ByteString
"89091000c590102020300f002219800980a180299805911bac002301037540154a14a2808852818098009baa30"
      , ByteString
"0c0013230010012259800800c52f5c1132325980099baf0053300a22002300f375400513301200233004004001"
      , ByteString
"899802002000a0203010002300c0014028601400314a08058dd518041805801180380098031baa002223300230"
      , ByteString
"0600130090018a4d132633003491035054350049900601"
      ]
    -- ScriptHash "b347179e88cb29d9d0751452e02327cf39fe9684a2b6ac456830bdd2"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                           {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                           _redeemer_3
    --                                                                                                                           (PlutusLedgerApi.V4.Data.Contexts.SpendingScript txOutRef_4
    --                                                                                                                                                                            (GHC.Maybe.Just _))
    --                                                                                                                           _sh_5 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.Class.==) GHC.Base.. PlutusLedgerApi.V4.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_2));
    --                                                                            _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58fe0101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464646464b3"
      , ByteString
"0013370e90011809000c4cc0208c88c8c94cd4d6600266e1d2000001891909118010019809000c56600266e1d2"
      , ByteString
"00200189091000c5901320263012002219800980b980299807111bac30143017001375801b4a14a280a0528180"
      , ByteString
"b0009baa300f0013230010012259800800c52f5c1132325980099baf0053300d22002375800513301500233004"
      , ByteString
"004001899802002000a0263013002300f0014034601a00314a08070dd500118068011804800980580118038009"
      , ByteString
"bac0022233002300600130090018a4d1326330034901035054350049900601"
      ]

-- | Script that succeeds when datum is expected and datum is validated against txInfo
-- Fails on malformed arguments
datumIsWellformed :: SLanguage l -> Plutus l
datumIsWellformed :: forall (l :: Language). SLanguage l -> Plutus l
datumIsWellformed =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "4ab220bd937e83ef0ae296e876d9d3b7946f9afb75a9ab92218066dd"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((datum'_4 PlutusTx.Eq.Class.==) GHC.Base.. Data.Tuple.snd) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoData txInfo_6)
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58d80100003333333322222222222323300122533300a3370e900118071baa30080011533300a300d323300100"
      , ByteString
"1330042237586016601c601c601c601c601c601c601c00260146ea800c894ccc02400452f5c026464a66601c66"
      , ByteString
"ebc028c004880044c8cc044c00888cdd2a4000660266ea4008cc04c0052f5c0002660080080042660080080046"
      , ByteString
"4a6a66601c66e1d200030120011232321233001003002300e3011002375c601a0022c601a0026ea8c02c008c03"
      , ByteString
"40045852616300737540044466004600e0026014002aae755d1aba05744ae6955cf2ba15573f"
      ]
    -- ScriptHash "3751c29119f9c13c1c1ab32ac16e6a0b4d415e301fbb1bdf13342eec"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum'_4 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoData txInfo_6))
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58c001000033333333222222222323232223300522533300c3370e900118081baa300a0011533300c300f30053"
      , ByteString
"23300100133008223756601a60206020602060206020602060206020602000260186ea800c8cc01d2f5c044660"
      , ByteString
"22601c004660060060022c2930b18049baa001323001001223330034bd7011299980599baf00700213300d0023"
      , ByteString
"3004004001133004004001001222533300600110031330023007001300a0012233002300500130080015573aae"
      , ByteString
"8d5d02ba25734aae795d0aab9f01"
      ]
    -- ScriptHash "a643bc2fa4d7c6c7eef89d930a1bcd03fbe39df2e7493b1e77c4b58b"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                _redeemer_3
    --                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                 (GHC.Maybe.Just datum_5)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoData txInfo_2)));
    --                                                                 _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5901240101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464b30013"
      , ByteString
"370e90011807800c4cc01488c8c94cd4d6600266e1d2000001891909118010019807000c56600266e1d2002001"
      , ByteString
"89091000c5900f201e300e0022323219800980a9800991980080099806911bab30133016301630163016301630"
      , ByteString
"163016301630160013012375401846600697ae02233017301400233003003001a50a5140486460020024530014"
      , ByteString
"bd704896600266ebc01800a26602e004660080080031330040040014055001400c444b30010018801c4cc008c0"
      , ByteString
"44004c05000500f0a50301200137546016002601400314a08058dd518041805801180380098031baa002223300"
      , ByteString
"2300600130090018a4d1326330034901035054350049900601"
      ]
    -- ScriptHash "f57e19c91931c4d864804e162dd512d421ceb10e252b1937957b2198"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                _redeemer_3
    --                                                                                                                (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                 (GHC.Maybe.Just datum_5))
    --                                                                                                                _sh_6 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.Class.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoData txInfo_2)));
    --                                                                 _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901310101009800aab9daba3aba0aba2ab9aaab9eaba1ab9caab9f48888888889660026466002446464646464"
      , ByteString
"b30013370e90011809000c4cc02088c8c94cd4d6600266e1d2000001891909118010019808800c56600266e1d2"
      , ByteString
"00200189091000c59012202430110022323219800980c1800991980080099808111bab30163019301930193019"
      , ByteString
"301930193019301930193019301930193019001375801e46600697ae0223301a301700233003003001a50a5140"
      , ByteString
"546460020024530014bd704896600266ebc01800a266034004660080080031330040040014061001400c444b30"
      , ByteString
"010018801c4cc008c050004c05c0050120a5030150013754601c002601a00314a08070dd500118068011804800"
      , ByteString
"980580118038009bac0022233002300600130090018a4d132633003491035054350049900601"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyNoDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "fc4a7f36056bda22eb575c229929b6495daf4907ded77536a1c78bc7"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58cc010000333333222222223233001225333008325333009300b33001222222222200a2614a22601666002444"
      , ByteString
"44444440124c446600a446464646464646466666666660166eb0024dd618088041bab30110073756602200c6eb"
      , ByteString
"0c044014dd6180880218088019bac301100237586022002646a66602866e1d2000301700112375c60260022c60"
      , ByteString
"260026ea8c044c050004c04c004c048004c044004c040004c03c004c038004c034004c024dd50020b0a4c600a6"
      , ByteString
"ea800888cc008c014004c02000555ceaba35744ae6955cf2ba11"
      ]
    -- ScriptHash "21522499a4d29dafc2b1e1d9238a0ab0c996123fe2c052e9f2148d7e"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58e3010000333333222222223233001225333008325333009300b3300122222222222200c2614a226016660024"
      , ByteString
"444444444440144c446600a4464646464646464646466666666666601a6eb002cdd618098051bac30130093756"
      , ByteString
"60260106eacc04c01cdd618098031bab30130053013004375860260066eacc04c008dd59809800991a99980b19"
      , ByteString
"b8748000c06400448dd7180a8008b180a8009baa30133016001301500130140013013001301200130110013010"
      , ByteString
"001300f001300e001300d001300937540082c29318029baa0022233002300500130080015573aae8d5d12b9a55"
      , ByteString
"73cae841"
      ]
    -- ScriptHash "3d43889f2937c92a91af18b23ea5914ebec54cf98835fb05b45a4e73"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                               (GHC.Maybe.Just _)) -> GHC.Types.False;
    --                                                                               PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                              _redeemer_6
    --                                                                                                                              _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"59017e0101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464b30013370e900"
      , ByteString
"11807801c4cc01c894cd4cc0108004c030004852809801a4c60160071300149900c14c004c966002601e660024"
      , ByteString
"4444444444444440204d14a31300f33001222222222222222200e2640344466012446464646464646464646464"
      , ByteString
"646465300137580213758603801f3758603801d375a603801b375660380193758603801737566038015301c009"
      , ByteString
"9bac301c0089bab301c0079bab301c0069bae301c0059bab301c0049bac301c0039800980e0014c004c070c07c"
      , ByteString
"0090121809bad301d001301c001301b001301a0013019001301800130170013016001301500130140013013001"
      , ByteString
"30120013011001300d37540114a14a2806088c8c8d6600266e1d20000018919091180100198029806800c56600"
      , ByteString
"266e1d200200189091000c5900e201c300d002301000137540026ea8c01cc028008c018004c014dd5001111980"
      , ByteString
"118028009804000c5268993198012481035054350049900501"
      ]
    -- ScriptHash "ddf90abbff398335df1edafa32f3a2befd06d657b508f7c2d437ec00"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                              {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                               (GHC.Maybe.Just _))
    --                                                                                                                              _sh_5 -> GHC.Types.False;
    --                                                                               PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                              _redeemer_7
    --                                                                                                                              _scriptPurpose_8
    --                                                                                                                              _sh_9 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_6) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoOutputs txInfo_6))})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901a40101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464646464b300133"
      , ByteString
"70e90011809001c4cc028894cd4cc0108004c03c004852809801a4c601c0071300149900f14c004c9660026024"
      , ByteString
"6600244444444444444444440224d14a31301233001222222222222222222200f2640404466018446464646464"
      , ByteString
"6464646464646464646464653001375c027300130220129bac30220119bac30220109bac302200f9bab302200e"
      , ByteString
"9bac302200d9bab302200c9bab302200b9bab302200a9811004cdd618110044dd59811003cdd598110034dd598"
      , ByteString
"11002cdd598110024dd61811001cc004c08800a6eb4c088c094009015180b3ad30230013022001302100130200"
      , ByteString
"01301f001301e001301d001301c001301b001301a0013019001301800130170013016001301500130140013758"
      , ByteString
"0174a14a2807888c8c8d6600266e1d20000018919091180100198029808000c56600266e1d200200189091000c"
      , ByteString
"5901120223010002301300137540026ea8008c030008c020004c028008c018004dd60011119801180280098040"
      , ByteString
"00c526899319801249035054350049900501"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyWithDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "63874caa1646678f1c035fa4977e93b78bc1a0d36eeb8b7cb7bd57ca"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58cd010000333333222222222323300122533300932533300a300c33001222222222200a2614a2260186600244"
      , ByteString
"444444440124c446600a446464646464646466666666660166eb0024dd618090041bab30120073756602400c6e"
      , ByteString
"b0c048014dd6180900218090019bac301200237586024002646a66602a66e1d2000301800112375c60280022c6"
      , ByteString
"0280026ea8c048c054004c050004c04c004c048004c044004c040004c03c004c038004c028dd50020b0a4c600c"
      , ByteString
"6ea800888cc008c018004c02400555ceaba35744ae6955cf2ba101"
      ]
    -- ScriptHash "da698710e6e46a945c0d0365d8ca7e36765f799222f90d6d6de2e1c8"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58e3010000333333222222222323300122533300932533300a300c3300122222222222200c2614a22601866002"
      , ByteString
"4444444444440144c446600a4464646464646464646466666666666601a6eb002cdd6180a0051bac3014009375"
      , ByteString
"660280106eacc05001cdd6180a0031bab30140053014004375860280066eacc050008dd5980a000991a99980b9"
      , ByteString
"9b8748000c06800448dd7180b0008b180b0009baa3014301700130160013015001301400130130013012001301"
      , ByteString
"10013010001300f001300e001300a37540082c29318031baa0022233002300600130090015573aae8d5d12b9a5"
      , ByteString
"573cae85"
      ]
    -- ScriptHash "2981b93f6e4d0323fc4b54053332d53375012b728b43a32a0d7805fd"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                _redeemer_3
    --                                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                                 (GHC.Maybe.Nothing)) -> GHC.Types.False;
    --                                                                                 PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                _redeemer_6
    --                                                                                                                                _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"59017c0101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464b30013370e900"
      , ByteString
"11807801c4cc01c88cd4cc0108004c0300048c011264a060160071300149900c14c004c966002601e660024444"
      , ByteString
"4444444444440204d14a31300f33001222222222222222200e2640344466012446464646464646464646464646"
      , ByteString
"465300137580213758603801f3758603801d375a603801b375660380193758603801737566038015301c0099ba"
      , ByteString
"c301c0089bab301c0079bab301c0069bae301c0059bab301c0049bac301c0039800980e0014c004c070c07c009"
      , ByteString
"0121809bad301d001301c001301b001301a0013019001301800130170013016001301500130140013013001301"
      , ByteString
"20013011001300d37540114a14a2806088c8c8d6600266e1d20000018919091180100198029806800c56600266"
      , ByteString
"e1d200200189091000c5900e201c300d002301000137540026ea8c01cc028008c018004c014dd5001111980118"
      , ByteString
"028009804000c526899319801249035054350049900501"
      ]
    -- ScriptHash "fe4082fda812377111ac27765dfb6735bc023b6d2d4dee3fbca3e7d8"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                                {PlutusLedgerApi.V4.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                _redeemer_3
    --                                                                                                                                (PlutusLedgerApi.V4.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                                 (GHC.Maybe.Nothing))
    --                                                                                                                                _sh_5 -> GHC.Types.False;
    --                                                                                 PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                _redeemer_7
    --                                                                                                                                _scriptPurpose_8
    --                                                                                                                                _sh_9 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_6) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V4.Data.Contexts.txInfoOutputs txInfo_6))})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901a30101009800aab9daba3aba2ab9aaab9eaba1ab9c4888888896600264660024464646464646464b300133"
      , ByteString
"70e90011809001c4cc02888cd4cc0108004c03c0048c011264a0601c0071300149900f14c004c9660026024660"
      , ByteString
"0244444444444444444440224d14a31301233001222222222222222222200f2640404466018446464646464646"
      , ByteString
"4646464646464646464653001375c027300130220129bac30220119bac30220109bac302200f9bab302200e9ba"
      , ByteString
"c302200d9bab302200c9bab302200b9bab302200a9811004cdd618110044dd59811003cdd598110034dd598110"
      , ByteString
"02cdd598110024dd61811001cc004c08800a6eb4c088c094009015180b3ad30230013022001302100130200013"
      , ByteString
"01f001301e001301d001301c001301b001301a0013019001301800130170013016001301500130140013758017"
      , ByteString
"4a14a2807888c8c8d6600266e1d20000018919091180100198029808000c56600266e1d200200189091000c590"
      , ByteString
"1120223010002301300137540026ea8008c030008c020004c028008c018004dd6001111980118028009804000c"
      , ByteString
"5268993198012481035054350049900501"
      ]

-- | Script that succeeds only if any the inputs also appears in the reference inputs
inputsOverlapsWithRefInputs :: SLanguage l -> Plutus l
inputsOverlapsWithRefInputs :: forall (l :: Language). SLanguage l -> Plutus l
inputsOverlapsWithRefInputs =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    SLanguage l
SPlutusV1 -> [Char] -> [ByteString]
forall a. HasCallStack => [Char] -> a
error [Char]
"Script not available in PlutusV1"
    -- ScriptHash "444be1efb8efae784b02be16cba44a728692ec266808527a7103f9db"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOverlapsWithRefInputs_0 _datum_1 _redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                _scriptPurpose_5 -> if PlutusTx.Data.List.any (\x_6 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_6)) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoReferenceInputs txInfo_4) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4
    --                                                                                                                                     then GHC.Tuple.Prim.()
    --                                                                                                                                     else PlutusTx.Builtins.error GHC.Tuple.Prim.()}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"590137010000333333222222222323300123232322533300d300233300400522222222222200c26149858c8c00"
      , ByteString
"400488ccc00d281191299980819a98011998038041111111111110059312514a029444cc014014004c8c004004"
      , ByteString
"88ccc018488004894ccc048cdd7801002889118010020998020020008008009112999805000880189980118058"
      , ByteString
"00980700091119802911919191919191919191999999999998069bac00b3758602a0146eb0c054024dd5980a80"
      , ByteString
"41bab30150073758602a00c6eacc054014c054010dd6180a8019bab30150023756602a002646a66603066e1d20"
      , ByteString
"00301a00112375c602e0022c602e0026ea8c054c060004c05c004c058004c054004c050004c04c004c048004c0"
      , ByteString
"44004c040004c03c004c02cdd500198039baa00222330023007001300a0015573aae895cd2ab9e5742aae7c1"
      ]
    -- ScriptHash "21705e574a541726019aa44ee6614685404f75931271e7486399f8ec"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              _scriptPurpose_4 -> PlutusTx.Data.List.any (\x_5 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_5)) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2;
    --                                                                               _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5901a00101009800aab9daba2ab9aaab9eaba1ab9caab9f4888888896600264660024646464644646460093001"
      , ByteString
"008911111111111111100849900618078011805800991800800914c0052848c896600266a60053001009911111"
      , ByteString
"1111111111007c9900712514a114a31330050050014040646002002453001008912cc004cdd7801002c4488c00"
      , ByteString
"801226600800800280920028032002801888966002003100389980118058009807000a01222233006223232323"
      , ByteString
"23232323232323232323298009bac0109bac301a00f9bac301a00e9bad301a00d9bab301a00c9bac301a00b9ba"
      , ByteString
"b301a00a980d004cdd6180d0044dd5980d003cdd5980d0034dd7180d002cdd5980d0024dd6180d001cc004c068"
      , ByteString
"00a60026034603a00480908c8c8d6600266e1d2000001891909118010019bad301d0018acc004cdc3a40040031"
      , ByteString
"20178b203c4078603a004603e0026ea8004c06c004c068004c064004c060004c05c004c058004c054004c05000"
      , ByteString
"4c04c004c048004c044004c040004c03c004c02cdd500189100098031baa0022233002300600130090018a4d13"
      , ByteString
"2633003491035054350049900601"
      ]
    -- ScriptHash "8a352c1d83c013d6160d11814d1c9e7b12b7dae91fc8cce3f70e86ba"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of
    --                                                                              {PlutusLedgerApi.V4.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              _scriptPurpose_4
    --                                                                                                                              _sh_5 -> PlutusTx.Data.List.any (\x_6 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.Class.== x_6)) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V4.Data.Contexts.txInfoInputs txInfo_2;
    --                                                                               _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901c60101009800aab9daba2ab9aaab9eaba1ab9caab9f488888889660026466002464646464464646464600d"
      , ByteString
"300100a9111111111111111111008c990081808801180680098078011805800991800800914c0052848c896600"
      , ByteString
"266a60053001009911111111111111111100849900712514a114a3133005005001404064600200245300100891"
      , ByteString
"2cc004cdd7801002c4488c00801226600800800280920028032002801888966002003100389980118058009807"
      , ByteString
"000a0122223300622323232323232323232323232323232323298009bae0139800980e8094dd6180e808cdd618"
      , ByteString
"0e8084dd6180e807cdd5980e8074dd6180e806cdd5980e8064dd5980e805cdd5980e8054c0740266eb0c074022"
      , ByteString
"6eacc07401e6eacc07401a6eacc0740166eacc0740126eb0c07400e6002603a005375a603a604000480a88c8c8"
      , ByteString
"d6600266e1d2000001891909118010019bad30200018acc004cdc3a40040031201a8b204240846040004604400"
      , ByteString
"26ea8004c078004c074004c070004c06c004c068004c064004c060004c05c004c058004c054004c050004c04c0"
      , ByteString
"04c048004c044004c040004c03c004dd60018910009bac0022233002300600130090018a4d1326330034910350"
      , ByteString
"54350049900601"
      ]