{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeOperators #-}
module Cardano.Api.Experimental.AnyScriptWitness
( AnyScriptWitness (..)
, AnyPlutusScriptWitness (..)
, PlutusSpendingScriptWitness (..)
, createPlutusSpendingScriptWitness
, getAnyPlutusScriptData
, getAnyPlutusScriptWitnessExecutionUnits
, getAnyPlutusScriptWitnessRedeemer
, getAnyPlutusScriptWitnessReferenceInput
, getAnyPlutusWitnessPlutusScript
, getAnyPlutusScriptWitnessLanguage
, langTypeEquality
, updatePlutusScriptWitnessExecutionUnits
)
where
import Cardano.Api.Experimental.Plutus.Internal.Script
import Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
import Cardano.Api.Experimental.Simple.Script
import Cardano.Api.Ledger qualified as L
import Cardano.Api.Plutus.Internal.Script (ExecutionUnits)
import Cardano.Api.Tx.Internal.TxIn
import Cardano.Ledger.Plutus.Language qualified as L
import Data.Type.Equality
import Data.Typeable
data AnyScriptWitness era where
AnyScriptWitnessSimple :: SimpleScriptOrReferenceInput era -> AnyScriptWitness era
AnyScriptWitnessPlutus :: AnyPlutusScriptWitness lang purpose era -> AnyScriptWitness era
deriving instance Show (AnyScriptWitness era)
instance Eq (AnyScriptWitness era) where
(AnyScriptWitnessSimple SimpleScriptOrReferenceInput era
s1) == :: AnyScriptWitness era -> AnyScriptWitness era -> Bool
== (AnyScriptWitnessSimple SimpleScriptOrReferenceInput era
s2) = SimpleScriptOrReferenceInput era
s1 SimpleScriptOrReferenceInput era
-> SimpleScriptOrReferenceInput era -> Bool
forall a. Eq a => a -> a -> Bool
== SimpleScriptOrReferenceInput era
s2
(AnyScriptWitnessPlutus (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s2)) = PlutusSpendingScriptWitness era
s1 PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusSpendingScriptWitness era
s2
(AnyScriptWitnessPlutus (AnyPlutusMintingScriptWitness PlutusScriptWitness lang 'MintingScript era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusMintingScriptWitness PlutusScriptWitness lang 'MintingScript era
s2)) =
case PlutusScriptWitness lang 'MintingScript era
-> PlutusScriptWitness lang 'MintingScript era
-> Maybe (lang :~: lang)
forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness lang 'MintingScript era
s1 PlutusScriptWitness lang 'MintingScript era
s2 of
Just lang :~: lang
Refl -> PlutusScriptWitness lang 'MintingScript era
s1 PlutusScriptWitness lang 'MintingScript era
-> PlutusScriptWitness lang 'MintingScript era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusScriptWitness lang 'MintingScript era
PlutusScriptWitness lang 'MintingScript era
s2
Maybe (lang :~: lang)
Nothing -> Bool
False
(AnyScriptWitnessPlutus (AnyPlutusWithdrawingScriptWitness PlutusScriptWitness lang 'WithdrawingScript era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusWithdrawingScriptWitness PlutusScriptWitness lang 'WithdrawingScript era
s2)) =
case PlutusScriptWitness lang 'WithdrawingScript era
-> PlutusScriptWitness lang 'WithdrawingScript era
-> Maybe (lang :~: lang)
forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness lang 'WithdrawingScript era
s1 PlutusScriptWitness lang 'WithdrawingScript era
s2 of
Just lang :~: lang
Refl -> PlutusScriptWitness lang 'WithdrawingScript era
s1 PlutusScriptWitness lang 'WithdrawingScript era
-> PlutusScriptWitness lang 'WithdrawingScript era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusScriptWitness lang 'WithdrawingScript era
PlutusScriptWitness lang 'WithdrawingScript era
s2
Maybe (lang :~: lang)
Nothing -> Bool
False
(AnyScriptWitnessPlutus (AnyPlutusCertifyingScriptWitness PlutusScriptWitness lang 'CertifyingScript era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusCertifyingScriptWitness PlutusScriptWitness lang 'CertifyingScript era
s2)) =
case PlutusScriptWitness lang 'CertifyingScript era
-> PlutusScriptWitness lang 'CertifyingScript era
-> Maybe (lang :~: lang)
forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness lang 'CertifyingScript era
s1 PlutusScriptWitness lang 'CertifyingScript era
s2 of
Just lang :~: lang
Refl -> PlutusScriptWitness lang 'CertifyingScript era
s1 PlutusScriptWitness lang 'CertifyingScript era
-> PlutusScriptWitness lang 'CertifyingScript era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusScriptWitness lang 'CertifyingScript era
PlutusScriptWitness lang 'CertifyingScript era
s2
Maybe (lang :~: lang)
Nothing -> Bool
False
(AnyScriptWitnessPlutus (AnyPlutusProposingScriptWitness PlutusScriptWitness lang 'ProposingScript era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusProposingScriptWitness PlutusScriptWitness lang 'ProposingScript era
s2)) =
case PlutusScriptWitness lang 'ProposingScript era
-> PlutusScriptWitness lang 'ProposingScript era
-> Maybe (lang :~: lang)
forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness lang 'ProposingScript era
s1 PlutusScriptWitness lang 'ProposingScript era
s2 of
Just lang :~: lang
Refl -> PlutusScriptWitness lang 'ProposingScript era
s1 PlutusScriptWitness lang 'ProposingScript era
-> PlutusScriptWitness lang 'ProposingScript era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusScriptWitness lang 'ProposingScript era
PlutusScriptWitness lang 'ProposingScript era
s2
Maybe (lang :~: lang)
Nothing -> Bool
False
(AnyScriptWitnessPlutus (AnyPlutusVotingScriptWitness PlutusScriptWitness lang 'VotingScript era
s1)) == (AnyScriptWitnessPlutus (AnyPlutusVotingScriptWitness PlutusScriptWitness lang 'VotingScript era
s2)) =
case PlutusScriptWitness lang 'VotingScript era
-> PlutusScriptWitness lang 'VotingScript era
-> Maybe (lang :~: lang)
forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness lang 'VotingScript era
s1 PlutusScriptWitness lang 'VotingScript era
s2 of
Just lang :~: lang
Refl -> PlutusScriptWitness lang 'VotingScript era
s1 PlutusScriptWitness lang 'VotingScript era
-> PlutusScriptWitness lang 'VotingScript era -> Bool
forall a. Eq a => a -> a -> Bool
== PlutusScriptWitness lang 'VotingScript era
PlutusScriptWitness lang 'VotingScript era
s2
Maybe (lang :~: lang)
Nothing -> Bool
False
AnyScriptWitness era
_ == AnyScriptWitness era
_ = Bool
False
langTypeEquality
:: (Typeable langA, Typeable langB)
=> PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era
-> Maybe (langA :~: langB)
langTypeEquality :: forall (langA :: Language) (langB :: Language)
(purpose :: PlutusScriptPurpose) era.
(Typeable langA, Typeable langB) =>
PlutusScriptWitness langA purpose era
-> PlutusScriptWitness langB purpose era -> Maybe (langA :~: langB)
langTypeEquality PlutusScriptWitness langA purpose era
_ PlutusScriptWitness langB purpose era
_ = Maybe (langA :~: langB)
forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT
data PlutusSpendingScriptWitness era
= PlutusSpendingScriptWitnessV1 (PlutusScriptWitness L.PlutusV1 SpendingScript era)
| PlutusSpendingScriptWitnessV2 (PlutusScriptWitness L.PlutusV2 SpendingScript era)
| PlutusSpendingScriptWitnessV3 (PlutusScriptWitness L.PlutusV3 SpendingScript era)
| PlutusSpendingScriptWitnessV4 (PlutusScriptWitness L.PlutusV4 SpendingScript era)
deriving (Int -> PlutusSpendingScriptWitness era -> ShowS
[PlutusSpendingScriptWitness era] -> ShowS
PlutusSpendingScriptWitness era -> String
(Int -> PlutusSpendingScriptWitness era -> ShowS)
-> (PlutusSpendingScriptWitness era -> String)
-> ([PlutusSpendingScriptWitness era] -> ShowS)
-> Show (PlutusSpendingScriptWitness era)
forall era. Int -> PlutusSpendingScriptWitness era -> ShowS
forall era. [PlutusSpendingScriptWitness era] -> ShowS
forall era. PlutusSpendingScriptWitness era -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> PlutusSpendingScriptWitness era -> ShowS
showsPrec :: Int -> PlutusSpendingScriptWitness era -> ShowS
$cshow :: forall era. PlutusSpendingScriptWitness era -> String
show :: PlutusSpendingScriptWitness era -> String
$cshowList :: forall era. [PlutusSpendingScriptWitness era] -> ShowS
showList :: [PlutusSpendingScriptWitness era] -> ShowS
Show, PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
(PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool)
-> (PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool)
-> Eq (PlutusSpendingScriptWitness era)
forall era.
PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era.
PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
== :: PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
$c/= :: forall era.
PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
/= :: PlutusSpendingScriptWitness era
-> PlutusSpendingScriptWitness era -> Bool
Eq)
createPlutusSpendingScriptWitness
:: L.SLanguage lang
-> PlutusScriptWitness lang SpendingScript era
-> PlutusSpendingScriptWitness era
createPlutusSpendingScriptWitness :: forall (lang :: Language) era.
SLanguage lang
-> PlutusScriptWitness lang 'SpendingScript era
-> PlutusSpendingScriptWitness era
createPlutusSpendingScriptWitness SLanguage lang
L.SPlutusV1 PlutusScriptWitness lang 'SpendingScript era
witness = PlutusScriptWitness 'PlutusV1 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV1 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV1 PlutusScriptWitness lang 'SpendingScript era
PlutusScriptWitness 'PlutusV1 'SpendingScript era
witness
createPlutusSpendingScriptWitness SLanguage lang
L.SPlutusV2 PlutusScriptWitness lang 'SpendingScript era
witness = PlutusScriptWitness 'PlutusV2 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV2 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV2 PlutusScriptWitness lang 'SpendingScript era
PlutusScriptWitness 'PlutusV2 'SpendingScript era
witness
createPlutusSpendingScriptWitness SLanguage lang
L.SPlutusV3 PlutusScriptWitness lang 'SpendingScript era
witness = PlutusScriptWitness 'PlutusV3 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV3 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV3 PlutusScriptWitness lang 'SpendingScript era
PlutusScriptWitness 'PlutusV3 'SpendingScript era
witness
createPlutusSpendingScriptWitness SLanguage lang
L.SPlutusV4 PlutusScriptWitness lang 'SpendingScript era
witness = PlutusScriptWitness 'PlutusV4 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV4 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV4 PlutusScriptWitness lang 'SpendingScript era
PlutusScriptWitness 'PlutusV4 'SpendingScript era
witness
data AnyPlutusScriptWitness lang purpose era where
AnyPlutusSpendingScriptWitness
:: PlutusSpendingScriptWitness era -> AnyPlutusScriptWitness lang SpendingScript era
AnyPlutusMintingScriptWitness
:: Typeable lang
=> PlutusScriptWitness lang MintingScript era -> AnyPlutusScriptWitness lang MintingScript era
AnyPlutusWithdrawingScriptWitness
:: Typeable lang
=> PlutusScriptWitness lang WithdrawingScript era -> AnyPlutusScriptWitness lang WithdrawingScript era
AnyPlutusCertifyingScriptWitness
:: Typeable lang
=> PlutusScriptWitness lang CertifyingScript era -> AnyPlutusScriptWitness lang CertifyingScript era
AnyPlutusProposingScriptWitness
:: Typeable lang
=> PlutusScriptWitness lang ProposingScript era -> AnyPlutusScriptWitness lang ProposingScript era
AnyPlutusVotingScriptWitness
:: Typeable lang
=> PlutusScriptWitness lang VotingScript era -> AnyPlutusScriptWitness lang VotingScript era
deriving instance Show (AnyPlutusScriptWitness lang purpose era)
deriving instance Eq (AnyPlutusScriptWitness lang purpose era)
getAnyPlutusScriptWitnessExecutionUnits
:: AnyPlutusScriptWitness lang purpose era -> ExecutionUnits
getAnyPlutusScriptWitnessExecutionUnits :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
AnyPlutusScriptWitness lang purpose era -> ExecutionUnits
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness SLanguage 'PlutusV1
_ PlutusScriptOrReferenceInput 'PlutusV1 era
_ PlutusScriptDatum 'PlutusV1 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
eu) -> ExecutionUnits
eu
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness SLanguage 'PlutusV2
_ PlutusScriptOrReferenceInput 'PlutusV2 era
_ PlutusScriptDatum 'PlutusV2 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
eu) -> ExecutionUnits
eu
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness SLanguage 'PlutusV3
_ PlutusScriptOrReferenceInput 'PlutusV3 era
_ PlutusScriptDatum 'PlutusV3 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
eu) -> ExecutionUnits
eu
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness SLanguage 'PlutusV4
_ PlutusScriptOrReferenceInput 'PlutusV4 era
_ PlutusScriptDatum 'PlutusV4 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
eu) -> ExecutionUnits
eu
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusMintingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'MintingScript
_ ScriptRedeemer
_ ExecutionUnits
eu)) = ExecutionUnits
eu
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'WithdrawingScript
_ ScriptRedeemer
_ ExecutionUnits
eu)) = ExecutionUnits
eu
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'CertifyingScript
_ ScriptRedeemer
_ ExecutionUnits
eu)) = ExecutionUnits
eu
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusProposingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'ProposingScript
_ ScriptRedeemer
_ ExecutionUnits
eu)) = ExecutionUnits
eu
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusVotingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'VotingScript
_ ScriptRedeemer
_ ExecutionUnits
eu)) = ExecutionUnits
eu
getAnyPlutusScriptWitnessRedeemer
:: AnyPlutusScriptWitness lang purpose era
-> ScriptRedeemer
getAnyPlutusScriptWitnessRedeemer :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
AnyPlutusScriptWitness lang purpose era -> ScriptRedeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness SLanguage 'PlutusV1
_ PlutusScriptOrReferenceInput 'PlutusV1 era
_ PlutusScriptDatum 'PlutusV1 'SpendingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_) -> ScriptRedeemer
redeemer
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness SLanguage 'PlutusV2
_ PlutusScriptOrReferenceInput 'PlutusV2 era
_ PlutusScriptDatum 'PlutusV2 'SpendingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_) -> ScriptRedeemer
redeemer
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness SLanguage 'PlutusV3
_ PlutusScriptOrReferenceInput 'PlutusV3 era
_ PlutusScriptDatum 'PlutusV3 'SpendingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_) -> ScriptRedeemer
redeemer
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness SLanguage 'PlutusV4
_ PlutusScriptOrReferenceInput 'PlutusV4 era
_ PlutusScriptDatum 'PlutusV4 'SpendingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_) -> ScriptRedeemer
redeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusMintingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'MintingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_)) = ScriptRedeemer
redeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'WithdrawingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_)) = ScriptRedeemer
redeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'CertifyingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_)) = ScriptRedeemer
redeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusProposingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'ProposingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_)) = ScriptRedeemer
redeemer
getAnyPlutusScriptWitnessRedeemer (AnyPlutusVotingScriptWitness (PlutusScriptWitness SLanguage lang
_ PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'VotingScript
_ ScriptRedeemer
redeemer ExecutionUnits
_)) = ScriptRedeemer
redeemer
updatePlutusScriptWitnessExecutionUnits
:: ExecutionUnits -> AnyPlutusScriptWitness lang purpose era -> AnyPlutusScriptWitness lang purpose era
updatePlutusScriptWitnessExecutionUnits :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
ExecutionUnits
-> AnyPlutusScriptWitness lang purpose era
-> AnyPlutusScriptWitness lang purpose era
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness SLanguage 'PlutusV1
lang PlutusScriptOrReferenceInput 'PlutusV1 era
script PlutusScriptDatum 'PlutusV1 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_) ->
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
forall era (lang :: Language).
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
AnyPlutusSpendingScriptWitness
(PlutusScriptWitness 'PlutusV1 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV1 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV1 (SLanguage 'PlutusV1
-> PlutusScriptOrReferenceInput 'PlutusV1 era
-> PlutusScriptDatum 'PlutusV1 'SpendingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness 'PlutusV1 'SpendingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage 'PlutusV1
lang PlutusScriptOrReferenceInput 'PlutusV1 era
script PlutusScriptDatum 'PlutusV1 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu))
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness SLanguage 'PlutusV2
lang PlutusScriptOrReferenceInput 'PlutusV2 era
script PlutusScriptDatum 'PlutusV2 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_) ->
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
forall era (lang :: Language).
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
AnyPlutusSpendingScriptWitness
(PlutusScriptWitness 'PlutusV2 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV2 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV2 (SLanguage 'PlutusV2
-> PlutusScriptOrReferenceInput 'PlutusV2 era
-> PlutusScriptDatum 'PlutusV2 'SpendingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness 'PlutusV2 'SpendingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage 'PlutusV2
lang PlutusScriptOrReferenceInput 'PlutusV2 era
script PlutusScriptDatum 'PlutusV2 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu))
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness SLanguage 'PlutusV3
lang PlutusScriptOrReferenceInput 'PlutusV3 era
script PlutusScriptDatum 'PlutusV3 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_) ->
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
forall era (lang :: Language).
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
AnyPlutusSpendingScriptWitness
(PlutusScriptWitness 'PlutusV3 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV3 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV3 (SLanguage 'PlutusV3
-> PlutusScriptOrReferenceInput 'PlutusV3 era
-> PlutusScriptDatum 'PlutusV3 'SpendingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness 'PlutusV3 'SpendingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage 'PlutusV3
lang PlutusScriptOrReferenceInput 'PlutusV3 era
script PlutusScriptDatum 'PlutusV3 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu))
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness SLanguage 'PlutusV4
lang PlutusScriptOrReferenceInput 'PlutusV4 era
script PlutusScriptDatum 'PlutusV4 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_) ->
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
forall era (lang :: Language).
PlutusSpendingScriptWitness era
-> AnyPlutusScriptWitness lang 'SpendingScript era
AnyPlutusSpendingScriptWitness
(PlutusScriptWitness 'PlutusV4 'SpendingScript era
-> PlutusSpendingScriptWitness era
forall era.
PlutusScriptWitness 'PlutusV4 'SpendingScript era
-> PlutusSpendingScriptWitness era
PlutusSpendingScriptWitnessV4 (SLanguage 'PlutusV4
-> PlutusScriptOrReferenceInput 'PlutusV4 era
-> PlutusScriptDatum 'PlutusV4 'SpendingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness 'PlutusV4 'SpendingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage 'PlutusV4
lang PlutusScriptOrReferenceInput 'PlutusV4 era
script PlutusScriptDatum 'PlutusV4 'SpendingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu))
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusMintingScriptWitness (PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'MintingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_)) =
PlutusScriptWitness lang 'MintingScript era
-> AnyPlutusScriptWitness lang 'MintingScript era
forall (lang :: Language) era.
Typeable lang =>
PlutusScriptWitness lang 'MintingScript era
-> AnyPlutusScriptWitness lang 'MintingScript era
AnyPlutusMintingScriptWitness (SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang 'MintingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang 'MintingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'MintingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu)
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'WithdrawingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_)) =
PlutusScriptWitness lang 'WithdrawingScript era
-> AnyPlutusScriptWitness lang 'WithdrawingScript era
forall (lang :: Language) era.
Typeable lang =>
PlutusScriptWitness lang 'WithdrawingScript era
-> AnyPlutusScriptWitness lang 'WithdrawingScript era
AnyPlutusWithdrawingScriptWitness (SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang 'WithdrawingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang 'WithdrawingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'WithdrawingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu)
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'CertifyingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_)) =
PlutusScriptWitness lang 'CertifyingScript era
-> AnyPlutusScriptWitness lang 'CertifyingScript era
forall (lang :: Language) era.
Typeable lang =>
PlutusScriptWitness lang 'CertifyingScript era
-> AnyPlutusScriptWitness lang 'CertifyingScript era
AnyPlutusCertifyingScriptWitness (SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang 'CertifyingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang 'CertifyingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'CertifyingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu)
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusProposingScriptWitness (PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'ProposingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_)) =
PlutusScriptWitness lang 'ProposingScript era
-> AnyPlutusScriptWitness lang 'ProposingScript era
forall (lang :: Language) era.
Typeable lang =>
PlutusScriptWitness lang 'ProposingScript era
-> AnyPlutusScriptWitness lang 'ProposingScript era
AnyPlutusProposingScriptWitness (SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang 'ProposingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang 'ProposingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'ProposingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu)
updatePlutusScriptWitnessExecutionUnits ExecutionUnits
eu (AnyPlutusVotingScriptWitness (PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'VotingScript
dat ScriptRedeemer
redeemer ExecutionUnits
_)) =
PlutusScriptWitness lang 'VotingScript era
-> AnyPlutusScriptWitness lang 'VotingScript era
forall (lang :: Language) era.
Typeable lang =>
PlutusScriptWitness lang 'VotingScript era
-> AnyPlutusScriptWitness lang 'VotingScript era
AnyPlutusVotingScriptWitness (SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang 'VotingScript
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang 'VotingScript era
forall (lang :: Language) era (purpose :: PlutusScriptPurpose).
SLanguage lang
-> PlutusScriptOrReferenceInput lang era
-> PlutusScriptDatum lang purpose
-> ScriptRedeemer
-> ExecutionUnits
-> PlutusScriptWitness lang purpose era
PlutusScriptWitness SLanguage lang
lang PlutusScriptOrReferenceInput lang era
script PlutusScriptDatum lang 'VotingScript
dat ScriptRedeemer
redeemer ExecutionUnits
eu)
getAnyPlutusScriptWitnessLanguage
:: AnyPlutusScriptWitness lang purpose era -> L.Language
getAnyPlutusScriptWitnessLanguage :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
AnyPlutusScriptWitness lang purpose era -> Language
getAnyPlutusScriptWitnessLanguage (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 PlutusScriptWitness 'PlutusV1 'SpendingScript era
s' -> PlutusScriptWitness 'PlutusV1 'SpendingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness 'PlutusV1 'SpendingScript era
s'
PlutusSpendingScriptWitnessV2 PlutusScriptWitness 'PlutusV2 'SpendingScript era
s' -> PlutusScriptWitness 'PlutusV2 'SpendingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness 'PlutusV2 'SpendingScript era
s'
PlutusSpendingScriptWitnessV3 PlutusScriptWitness 'PlutusV3 'SpendingScript era
s' -> PlutusScriptWitness 'PlutusV3 'SpendingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness 'PlutusV3 'SpendingScript era
s'
PlutusSpendingScriptWitnessV4 PlutusScriptWitness 'PlutusV4 'SpendingScript era
s' -> PlutusScriptWitness 'PlutusV4 'SpendingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness 'PlutusV4 'SpendingScript era
s'
getAnyPlutusScriptWitnessLanguage (AnyPlutusMintingScriptWitness PlutusScriptWitness lang 'MintingScript era
s) = PlutusScriptWitness lang 'MintingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness lang 'MintingScript era
s
getAnyPlutusScriptWitnessLanguage (AnyPlutusWithdrawingScriptWitness PlutusScriptWitness lang 'WithdrawingScript era
s) = PlutusScriptWitness lang 'WithdrawingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness lang 'WithdrawingScript era
s
getAnyPlutusScriptWitnessLanguage (AnyPlutusCertifyingScriptWitness PlutusScriptWitness lang 'CertifyingScript era
s) = PlutusScriptWitness lang 'CertifyingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness lang 'CertifyingScript era
s
getAnyPlutusScriptWitnessLanguage (AnyPlutusProposingScriptWitness PlutusScriptWitness lang 'ProposingScript era
s) = PlutusScriptWitness lang 'ProposingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness lang 'ProposingScript era
s
getAnyPlutusScriptWitnessLanguage (AnyPlutusVotingScriptWitness PlutusScriptWitness lang 'VotingScript era
s) = PlutusScriptWitness lang 'VotingScript era -> Language
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Language
getPlutusScriptWitnessLanguage PlutusScriptWitness lang 'VotingScript era
s
getAnyPlutusScriptWitnessReferenceInput
:: AnyPlutusScriptWitness lang purpose era
-> Maybe TxIn
getAnyPlutusScriptWitnessReferenceInput :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
AnyPlutusScriptWitness lang purpose era -> Maybe TxIn
getAnyPlutusScriptWitnessReferenceInput (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness SLanguage 'PlutusV1
_ ((PReferenceScript TxIn
txin)) PlutusScriptDatum 'PlutusV1 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness SLanguage 'PlutusV1
_ PScript{} PlutusScriptDatum 'PlutusV1 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness SLanguage 'PlutusV2
_ (PReferenceScript TxIn
txin) PlutusScriptDatum 'PlutusV2 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness SLanguage 'PlutusV2
_ PScript{} PlutusScriptDatum 'PlutusV2 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness SLanguage 'PlutusV3
_ (PReferenceScript TxIn
txin) PlutusScriptDatum 'PlutusV3 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness SLanguage 'PlutusV3
_ PScript{} PlutusScriptDatum 'PlutusV3 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness SLanguage 'PlutusV4
_ (PReferenceScript TxIn
txin) PlutusScriptDatum 'PlutusV4 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness SLanguage 'PlutusV4
_ PScript{} PlutusScriptDatum 'PlutusV4 'SpendingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
getAnyPlutusScriptWitnessReferenceInput AnyPlutusScriptWitness lang purpose era
psw =
case AnyPlutusScriptWitness lang purpose era
psw of
AnyPlutusMintingScriptWitness (PlutusScriptWitness SLanguage lang
_ (PReferenceScript TxIn
txin) PlutusScriptDatum lang 'MintingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
AnyPlutusMintingScriptWitness (PlutusScriptWitness SLanguage lang
_ PScript{} PlutusScriptDatum lang 'MintingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness SLanguage lang
_ (PReferenceScript TxIn
txin) PlutusScriptDatum lang 'WithdrawingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness SLanguage lang
_ PScript{} PlutusScriptDatum lang 'WithdrawingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
AnyPlutusCertifyingScriptWitness (PlutusScriptWitness SLanguage lang
_ (PReferenceScript TxIn
txin) PlutusScriptDatum lang 'CertifyingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
AnyPlutusCertifyingScriptWitness (PlutusScriptWitness SLanguage lang
_ PScript{} PlutusScriptDatum lang 'CertifyingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
AnyPlutusProposingScriptWitness (PlutusScriptWitness SLanguage lang
_ (PReferenceScript TxIn
txin) PlutusScriptDatum lang 'ProposingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
AnyPlutusProposingScriptWitness (PlutusScriptWitness SLanguage lang
_ PScript{} PlutusScriptDatum lang 'ProposingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
AnyPlutusVotingScriptWitness (PlutusScriptWitness SLanguage lang
_ (PReferenceScript TxIn
txin) PlutusScriptDatum lang 'VotingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> TxIn -> Maybe TxIn
forall a. a -> Maybe a
Just TxIn
txin
AnyPlutusVotingScriptWitness (PlutusScriptWitness SLanguage lang
_ PScript{} PlutusScriptDatum lang 'VotingScript
_ ScriptRedeemer
_ ExecutionUnits
_) -> Maybe TxIn
forall a. Maybe a
Nothing
getAnyPlutusScriptData
:: L.Era era
=> AnyPlutusScriptWitness lang purpose era
-> L.TxDats era
getAnyPlutusScriptData :: forall era (lang :: Language) (purpose :: PlutusScriptPurpose).
Era era =>
AnyPlutusScriptWitness lang purpose era -> TxDats era
getAnyPlutusScriptData (AnyPlutusSpendingScriptWitness PlutusSpendingScriptWitness era
s) =
case PlutusSpendingScriptWitness era
s of
PlutusSpendingScriptWitnessV1 PlutusScriptWitness 'PlutusV1 'SpendingScript era
sw -> PlutusScriptWitness 'PlutusV1 'SpendingScript era -> TxDats era
forall era (lang :: Language).
Era era =>
PlutusScriptWitness lang 'SpendingScript era -> TxDats era
getSpendingPlutusWitnessData PlutusScriptWitness 'PlutusV1 'SpendingScript era
sw
PlutusSpendingScriptWitnessV2 PlutusScriptWitness 'PlutusV2 'SpendingScript era
sw -> PlutusScriptWitness 'PlutusV2 'SpendingScript era -> TxDats era
forall era (lang :: Language).
Era era =>
PlutusScriptWitness lang 'SpendingScript era -> TxDats era
getSpendingPlutusWitnessData PlutusScriptWitness 'PlutusV2 'SpendingScript era
sw
PlutusSpendingScriptWitnessV3 PlutusScriptWitness 'PlutusV3 'SpendingScript era
sw -> PlutusScriptWitness 'PlutusV3 'SpendingScript era -> TxDats era
forall era (lang :: Language).
Era era =>
PlutusScriptWitness lang 'SpendingScript era -> TxDats era
getSpendingPlutusWitnessData PlutusScriptWitness 'PlutusV3 'SpendingScript era
sw
PlutusSpendingScriptWitnessV4 PlutusScriptWitness 'PlutusV4 'SpendingScript era
sw -> PlutusScriptWitness 'PlutusV4 'SpendingScript era -> TxDats era
forall era (lang :: Language).
Era era =>
PlutusScriptWitness lang 'SpendingScript era -> TxDats era
getSpendingPlutusWitnessData PlutusScriptWitness 'PlutusV4 'SpendingScript era
sw
getAnyPlutusScriptData AnyPlutusMintingScriptWitness{} = TxDats era
forall a. Monoid a => a
mempty
getAnyPlutusScriptData AnyPlutusWithdrawingScriptWitness{} = TxDats era
forall a. Monoid a => a
mempty
getAnyPlutusScriptData AnyPlutusCertifyingScriptWitness{} = TxDats era
forall a. Monoid a => a
mempty
getAnyPlutusScriptData AnyPlutusProposingScriptWitness{} = TxDats era
forall a. Monoid a => a
mempty
getAnyPlutusScriptData AnyPlutusVotingScriptWitness{} = TxDats era
forall a. Monoid a => a
mempty
getAnyPlutusWitnessPlutusScript
:: L.AlonzoEraScript era
=> AnyPlutusScriptWitness lang purpose era
-> Maybe (L.Script era)
getAnyPlutusWitnessPlutusScript :: forall era (lang :: Language) (purpose :: PlutusScriptPurpose).
AlonzoEraScript era =>
AnyPlutusScriptWitness lang purpose era -> Maybe (Script era)
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV1 PlutusScriptWitness 'PlutusV1 'SpendingScript era
s)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable 'PlutusV1)
plutusScriptRunnable = PlutusScriptWitness 'PlutusV1 'SpendingScript era
-> Maybe (PlutusRunnable 'PlutusV1)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness 'PlutusV1 'SpendingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage 'PlutusV1
-> PlutusRunnable 'PlutusV1 -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage 'PlutusV1
L.SPlutusV1 (PlutusRunnable 'PlutusV1 -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable 'PlutusV1) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable 'PlutusV1)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV2 PlutusScriptWitness 'PlutusV2 'SpendingScript era
s)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable 'PlutusV2)
plutusScriptRunnable = PlutusScriptWitness 'PlutusV2 'SpendingScript era
-> Maybe (PlutusRunnable 'PlutusV2)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness 'PlutusV2 'SpendingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage 'PlutusV2
-> PlutusRunnable 'PlutusV2 -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage 'PlutusV2
L.SPlutusV2 (PlutusRunnable 'PlutusV2 -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable 'PlutusV2) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable 'PlutusV2)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV3 PlutusScriptWitness 'PlutusV3 'SpendingScript era
s)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable 'PlutusV3)
plutusScriptRunnable = PlutusScriptWitness 'PlutusV3 'SpendingScript era
-> Maybe (PlutusRunnable 'PlutusV3)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness 'PlutusV3 'SpendingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage 'PlutusV3
-> PlutusRunnable 'PlutusV3 -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage 'PlutusV3
L.SPlutusV3 (PlutusRunnable 'PlutusV3 -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable 'PlutusV3) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable 'PlutusV3)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV4 PlutusScriptWitness 'PlutusV4 'SpendingScript era
s)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable 'PlutusV4)
plutusScriptRunnable = PlutusScriptWitness 'PlutusV4 'SpendingScript era
-> Maybe (PlutusRunnable 'PlutusV4)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness 'PlutusV4 'SpendingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage 'PlutusV4
-> PlutusRunnable 'PlutusV4 -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage 'PlutusV4
L.SPlutusV4 (PlutusRunnable 'PlutusV4 -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable 'PlutusV4) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable 'PlutusV4)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusMintingScriptWitness s :: PlutusScriptWitness lang 'MintingScript era
s@(PlutusScriptWitness SLanguage lang
l PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'MintingScript
_ ScriptRedeemer
_ ExecutionUnits
_)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable lang)
plutusScriptRunnable = PlutusScriptWitness lang 'MintingScript era
-> Maybe (PlutusRunnable lang)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness lang 'MintingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
l (PlutusRunnable lang -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable lang) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable lang)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusWithdrawingScriptWitness s :: PlutusScriptWitness lang 'WithdrawingScript era
s@(PlutusScriptWitness SLanguage lang
l PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'WithdrawingScript
_ ScriptRedeemer
_ ExecutionUnits
_)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable lang)
plutusScriptRunnable = PlutusScriptWitness lang 'WithdrawingScript era
-> Maybe (PlutusRunnable lang)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness lang 'WithdrawingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
l (PlutusRunnable lang -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable lang) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable lang)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusCertifyingScriptWitness s :: PlutusScriptWitness lang 'CertifyingScript era
s@(PlutusScriptWitness SLanguage lang
l PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'CertifyingScript
_ ScriptRedeemer
_ ExecutionUnits
_)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable lang)
plutusScriptRunnable = PlutusScriptWitness lang 'CertifyingScript era
-> Maybe (PlutusRunnable lang)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness lang 'CertifyingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
l (PlutusRunnable lang -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable lang) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable lang)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusProposingScriptWitness s :: PlutusScriptWitness lang 'ProposingScript era
s@(PlutusScriptWitness SLanguage lang
l PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'ProposingScript
_ ScriptRedeemer
_ ExecutionUnits
_)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable lang)
plutusScriptRunnable = PlutusScriptWitness lang 'ProposingScript era
-> Maybe (PlutusRunnable lang)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness lang 'ProposingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
l (PlutusRunnable lang -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable lang) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable lang)
plutusScriptRunnable)
getAnyPlutusWitnessPlutusScript (AnyPlutusVotingScriptWitness s :: PlutusScriptWitness lang 'VotingScript era
s@(PlutusScriptWitness SLanguage lang
l PlutusScriptOrReferenceInput lang era
_ PlutusScriptDatum lang 'VotingScript
_ ScriptRedeemer
_ ExecutionUnits
_)) =
let plutusScriptRunnable :: Maybe (PlutusRunnable lang)
plutusScriptRunnable = PlutusScriptWitness lang 'VotingScript era
-> Maybe (PlutusRunnable lang)
forall (lang :: Language) (purpose :: PlutusScriptPurpose) era.
PlutusScriptWitness lang purpose era -> Maybe (PlutusRunnable lang)
getPlutusScriptRunnable PlutusScriptWitness lang 'VotingScript era
s
in PlutusScript era -> Script era
forall era. AlonzoEraScript era => PlutusScript era -> Script era
L.fromPlutusScript (PlutusScript era -> Script era)
-> Maybe (PlutusScript era) -> Maybe (Script era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
l (PlutusRunnable lang -> Maybe (PlutusScript era))
-> Maybe (PlutusRunnable lang) -> Maybe (PlutusScript era)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Maybe (PlutusRunnable lang)
plutusScriptRunnable)
fromPlutusRunnable
:: L.AlonzoEraScript era
=> L.SLanguage lang
-> L.PlutusRunnable lang
-> Maybe (L.PlutusScript era)
fromPlutusRunnable :: forall era (lang :: Language).
AlonzoEraScript era =>
SLanguage lang -> PlutusRunnable lang -> Maybe (PlutusScript era)
fromPlutusRunnable SLanguage lang
L.SPlutusV1 PlutusRunnable lang
runnable =
Plutus lang -> Maybe (PlutusScript era)
forall era (l :: Language) (m :: * -> *).
(AlonzoEraScript era, PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
forall (l :: Language) (m :: * -> *).
(PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
L.mkPlutusScript (Plutus lang -> Maybe (PlutusScript era))
-> Plutus lang -> Maybe (PlutusScript era)
forall a b. (a -> b) -> a -> b
$ PlutusRunnable lang -> Plutus lang
forall (l :: Language). PlutusRunnable l -> Plutus l
L.plutusFromRunnable PlutusRunnable lang
runnable
fromPlutusRunnable SLanguage lang
L.SPlutusV2 PlutusRunnable lang
runnable =
Plutus lang -> Maybe (PlutusScript era)
forall era (l :: Language) (m :: * -> *).
(AlonzoEraScript era, PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
forall (l :: Language) (m :: * -> *).
(PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
L.mkPlutusScript (Plutus lang -> Maybe (PlutusScript era))
-> Plutus lang -> Maybe (PlutusScript era)
forall a b. (a -> b) -> a -> b
$ PlutusRunnable lang -> Plutus lang
forall (l :: Language). PlutusRunnable l -> Plutus l
L.plutusFromRunnable PlutusRunnable lang
runnable
fromPlutusRunnable SLanguage lang
L.SPlutusV3 PlutusRunnable lang
runnable =
Plutus lang -> Maybe (PlutusScript era)
forall era (l :: Language) (m :: * -> *).
(AlonzoEraScript era, PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
forall (l :: Language) (m :: * -> *).
(PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
L.mkPlutusScript (Plutus lang -> Maybe (PlutusScript era))
-> Plutus lang -> Maybe (PlutusScript era)
forall a b. (a -> b) -> a -> b
$ PlutusRunnable lang -> Plutus lang
forall (l :: Language). PlutusRunnable l -> Plutus l
L.plutusFromRunnable PlutusRunnable lang
runnable
fromPlutusRunnable SLanguage lang
L.SPlutusV4 PlutusRunnable lang
runnable =
Plutus lang -> Maybe (PlutusScript era)
forall era (l :: Language) (m :: * -> *).
(AlonzoEraScript era, PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
forall (l :: Language) (m :: * -> *).
(PlutusLanguage l, MonadFail m) =>
Plutus l -> m (PlutusScript era)
L.mkPlutusScript (Plutus lang -> Maybe (PlutusScript era))
-> Plutus lang -> Maybe (PlutusScript era)
forall a b. (a -> b) -> a -> b
$ PlutusRunnable lang -> Plutus lang
forall (l :: Language). PlutusRunnable l -> Plutus l
L.plutusFromRunnable PlutusRunnable lang
runnable