{-# OPTIONS_GHC -Wno-deferred-out-of-scope-variables #-}
module Ledger.Scripts
    ( module Export
    , examplePlutusScriptAlwaysSucceeds
    , examplePlutusScriptAlwaysFails
    , examplePlutusScriptAlwaysSucceedsHash
    , examplePlutusScriptAlwaysFailsHash
    , WitCtx (..)
    ) where

import Cardano.Api (PlutusScriptVersion (PlutusScriptV1), Script (PlutusScript), WitCtx (..),
                    examplePlutusScriptAlwaysFails, examplePlutusScriptAlwaysSucceeds, hashScript, serialiseToRawBytes)
import Ledger.Scripts.Orphans ()
import Plutus.Script.Utils.Scripts as Export
import Plutus.V1.Ledger.Scripts as Export
import PlutusTx.Builtins (BuiltinByteString, toBuiltin)


examplePlutusScriptAlwaysSucceedsHash :: WitCtx ctx -> BuiltinByteString
examplePlutusScriptAlwaysSucceedsHash :: WitCtx ctx -> BuiltinByteString
examplePlutusScriptAlwaysSucceedsHash = ByteString -> BuiltinByteString
forall a arep. ToBuiltin a arep => a -> arep
toBuiltin (ByteString -> BuiltinByteString)
-> (WitCtx ctx -> ByteString) -> WitCtx ctx -> BuiltinByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ScriptHash -> ByteString
forall a. SerialiseAsRawBytes a => a -> ByteString
serialiseToRawBytes (ScriptHash -> ByteString)
-> (WitCtx ctx -> ScriptHash) -> WitCtx ctx -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Script PlutusScriptV1 -> ScriptHash
forall lang. Script lang -> ScriptHash
hashScript (Script PlutusScriptV1 -> ScriptHash)
-> (WitCtx ctx -> Script PlutusScriptV1)
-> WitCtx ctx
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PlutusScriptVersion PlutusScriptV1
-> PlutusScript PlutusScriptV1 -> Script PlutusScriptV1
forall lang.
PlutusScriptVersion lang -> PlutusScript lang -> Script lang
PlutusScript PlutusScriptVersion PlutusScriptV1
PlutusScriptV1 (PlutusScript PlutusScriptV1 -> Script PlutusScriptV1)
-> (WitCtx ctx -> PlutusScript PlutusScriptV1)
-> WitCtx ctx
-> Script PlutusScriptV1
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WitCtx ctx -> PlutusScript PlutusScriptV1
forall witctx. WitCtx witctx -> PlutusScript PlutusScriptV1
examplePlutusScriptAlwaysSucceeds

examplePlutusScriptAlwaysFailsHash :: WitCtx ctx -> BuiltinByteString
examplePlutusScriptAlwaysFailsHash :: WitCtx ctx -> BuiltinByteString
examplePlutusScriptAlwaysFailsHash = ByteString -> BuiltinByteString
forall a arep. ToBuiltin a arep => a -> arep
toBuiltin (ByteString -> BuiltinByteString)
-> (WitCtx ctx -> ByteString) -> WitCtx ctx -> BuiltinByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ScriptHash -> ByteString
forall a. SerialiseAsRawBytes a => a -> ByteString
serialiseToRawBytes (ScriptHash -> ByteString)
-> (WitCtx ctx -> ScriptHash) -> WitCtx ctx -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Script PlutusScriptV1 -> ScriptHash
forall lang. Script lang -> ScriptHash
hashScript (Script PlutusScriptV1 -> ScriptHash)
-> (WitCtx ctx -> Script PlutusScriptV1)
-> WitCtx ctx
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PlutusScriptVersion PlutusScriptV1
-> PlutusScript PlutusScriptV1 -> Script PlutusScriptV1
forall lang.
PlutusScriptVersion lang -> PlutusScript lang -> Script lang
PlutusScript PlutusScriptVersion PlutusScriptV1
PlutusScriptV1 (PlutusScript PlutusScriptV1 -> Script PlutusScriptV1)
-> (WitCtx ctx -> PlutusScript PlutusScriptV1)
-> WitCtx ctx
-> Script PlutusScriptV1
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WitCtx ctx -> PlutusScript PlutusScriptV1
forall witctx. WitCtx witctx -> PlutusScript PlutusScriptV1
examplePlutusScriptAlwaysFails