| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Ledger.Plutus.Language
Description
This module provides data structures and operations for talking about Non-native Script languages. It is expected that new languages (or new versions of old languages) will be added here.
Synopsis
- newtype Plutus (l ∷ Language) = Plutus {}
- isValidPlutus ∷ ∀ (l ∷ Language). PlutusLanguage l ⇒ Version → Plutus l → Bool
- newtype PlutusBinary = PlutusBinary {}
- newtype PlutusRunnable (l ∷ Language) = PlutusRunnable {}
- plutusFromRunnable ∷ ∀ (l ∷ Language). PlutusRunnable l → Plutus l
- decodeWithPlutus ∷ (∀ si (l ∷ Language). PlutusLanguage l ⇒ Plutus l → Decoder si a) → Decoder so a
- hashPlutusScript ∷ ∀ (l ∷ Language). PlutusLanguage l ⇒ Plutus l → ScriptHash
- data Language
- mkLanguageEnum ∷ Int → Maybe Language
- languageToText ∷ Language → Text
- languageFromText ∷ MonadFail m ⇒ Text → m Language
- nonNativeLanguages ∷ [Language]
- guardPlutus ∷ Language → Decoder s ()
- data SLanguage (l ∷ Language) where
- class (Typeable l, NFData (PlutusArgs l), EncCBOR (PlutusArgs l), DecCBOR (PlutusArgs l), Pretty (PlutusArgs l), Show (PlutusArgs l), Eq (PlutusArgs l)) ⇒ PlutusLanguage (l ∷ Language) where
- data PlutusArgs (l ∷ Language)
- isLanguage ∷ SLanguage l
- plutusLanguageTag ∷ Plutus l → Word8
- decodePlutusRunnable ∷ Version → Plutus l → Either ScriptDecodeError (PlutusRunnable l)
- evaluatePlutusRunnable ∷ Version → VerboseMode → EvaluationContext → ExBudget → PlutusRunnable l → PlutusArgs l → (LogOutput, Either EvaluationError ExBudget)
- evaluatePlutusRunnableBudget ∷ Version → VerboseMode → EvaluationContext → PlutusRunnable l → PlutusArgs l → (LogOutput, Either EvaluationError ExBudget)
- mkTermToEvaluate ∷ Version → PlutusRunnable l → PlutusArgs l → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ())
- data family PlutusArgs (l ∷ Language)
- plutusLanguage ∷ ∀ (l ∷ Language) proxy. PlutusLanguage l ⇒ proxy l → Language
- plutusSLanguage ∷ ∀ (l ∷ Language) proxy. PlutusLanguage l ⇒ proxy l → SLanguage l
- toSLanguage ∷ ∀ (l ∷ Language) m. (PlutusLanguage l, MonadFail m) ⇒ Language → m (SLanguage l)
- withSLanguage ∷ Language → (∀ (l ∷ Language). PlutusLanguage l ⇒ SLanguage l → a) → a
- asSLanguage ∷ ∀ (l ∷ Language) proxy. SLanguage l → proxy l → proxy l
- withSamePlutusLanguage ∷ ∀ f1 f2 (l1 ∷ Language) (l2 ∷ Language) a. (PlutusLanguage l1, PlutusLanguage l2) ⇒ f1 l1 → f2 l2 → (∀ (l ∷ Language). PlutusLanguage l ⇒ f1 l → f2 l → a) → Maybe a
- data LegacyPlutusArgs (l ∷ Language)
- = LegacyPlutusArgs2 !Data !(PlutusScriptContext l)
- | LegacyPlutusArgs3 !Data !Data !(PlutusScriptContext l)
- type family PlutusScriptContext (l ∷ Language) = (r ∷ Type) | r → l where ...
Plutus Script
newtype Plutus (l ∷ Language) Source #
Serialized representation of a Plutus script that distinguishes the language version at the type level. When encoded in CBOR language version is also encoded.
Constructors
| Plutus | |
Fields | |
Instances
isValidPlutus ∷ ∀ (l ∷ Language). PlutusLanguage l ⇒ Version → Plutus l → Bool Source #
Verify that the binary version of the Plutus script is deserializable.
newtype PlutusBinary Source #
Binary representation of a Plutus script.
Constructors
| PlutusBinary | |
Fields | |
Instances
| FromCBOR PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| ToCBOR PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods toCBOR ∷ PlutusBinary → Encoding Source # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy PlutusBinary → Size Source # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [PlutusBinary] → Size Source # | |||||
| DecCBOR PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| EncCBOR PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods | |||||
| SafeToHash PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods originalBytes ∷ PlutusBinary → ByteString Source # originalBytesSize ∷ PlutusBinary → Int Source # makeHashWithExplicitProxys ∷ Proxy i → PlutusBinary → SafeHash i Source # | |||||
| NFData PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusBinary → () # | |||||
| Generic PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
| |||||
| Show PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods showsPrec ∷ Int → PlutusBinary → ShowS # show ∷ PlutusBinary → String # showList ∷ [PlutusBinary] → ShowS # | |||||
| Eq PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| Ord PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods compare ∷ PlutusBinary → PlutusBinary → Ordering # (<) ∷ PlutusBinary → PlutusBinary → Bool # (<=) ∷ PlutusBinary → PlutusBinary → Bool # (>) ∷ PlutusBinary → PlutusBinary → Bool # (>=) ∷ PlutusBinary → PlutusBinary → Bool # max ∷ PlutusBinary → PlutusBinary → PlutusBinary # min ∷ PlutusBinary → PlutusBinary → PlutusBinary # | |||||
| MemPack PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| NoThunks PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| DecCBOR (Annotator PlutusBinary) Source # | |||||
| type Rep PlutusBinary Source # | |||||
Defined in Cardano.Ledger.Plutus.Language type Rep PlutusBinary = D1 ('MetaData "PlutusBinary" "Cardano.Ledger.Plutus.Language" "cardano-ledger-core-1.19.0.0-inplace" 'True) (C1 ('MetaCons "PlutusBinary" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPlutusBinary") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString))) | |||||
newtype PlutusRunnable (l ∷ Language) Source #
This is a deserialized version of the Plutus type that can be used directly with
evaluation functions that rely on evaluatePlutusRunnable.
The only way to obtain this type is by the means of deserializing Plutus with
decodePlutusRunnable
Constructors
| PlutusRunnable | |
Fields | |
Instances
| PlutusLanguage l ⇒ DecCBOR (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| PlutusLanguage l ⇒ EncCBOR (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods encCBOR ∷ PlutusRunnable l → Encoding Source # | |||||
| NFData (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusRunnable l → () # | |||||
| Generic (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
Methods from ∷ PlutusRunnable l → Rep (PlutusRunnable l) x # to ∷ Rep (PlutusRunnable l) x → PlutusRunnable l # | |||||
| Show (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods showsPrec ∷ Int → PlutusRunnable l → ShowS # show ∷ PlutusRunnable l → String # showList ∷ [PlutusRunnable l] → ShowS # | |||||
| Eq (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ PlutusRunnable l → PlutusRunnable l → Bool # (/=) ∷ PlutusRunnable l → PlutusRunnable l → Bool # | |||||
| NoThunks (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| type Rep (PlutusRunnable l) Source # | |||||
Defined in Cardano.Ledger.Plutus.Language type Rep (PlutusRunnable l) = D1 ('MetaData "PlutusRunnable" "Cardano.Ledger.Plutus.Language" "cardano-ledger-core-1.19.0.0-inplace" 'True) (C1 ('MetaCons "PlutusRunnable" 'PrefixI 'True) (S1 ('MetaSel ('Just "plutusRunnable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ScriptForEvaluation))) | |||||
plutusFromRunnable ∷ ∀ (l ∷ Language). PlutusRunnable l → Plutus l Source #
Serialize the runnable version of the plutus script
decodePlutusRunnable majVer (plutusFromRunnable pr) == Right pr
decodeWithPlutus ∷ (∀ si (l ∷ Language). PlutusLanguage l ⇒ Plutus l → Decoder si a) → Decoder so a Source #
Plutus script decoder that will enforce the type level language equals the one included in the serialization
hashPlutusScript ∷ ∀ (l ∷ Language). PlutusLanguage l ⇒ Plutus l → ScriptHash Source #
Compute a ScriptHash of a Plutus script. This function is equivalent to
hashScript, except it is restricted to Plutus scripts
Value level Plutus Language version
Non-Native Plutus Script language. This is expected to be an open type. We will add new Constuctors to this type as additional Plutus language versions as are added. We use an enumerated type for two reasons.
- We can write total functions by case analysis over the constructors
- We use DataKinds to make some datatypes indexed by Language.
Note that the the serialization of Language depends on the ordering.
Instances
| FromJSON Language Source # | |||||
| FromJSONKey Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| ToJSON Language Source # | |||||
| ToJSONKey Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| FromCBOR Language Source # | |||||
| ToCBOR Language Source # | |||||
| DecCBOR Language Source # | |||||
| EncCBOR Language Source # | |||||
| NFData Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| Bounded Language Source # | |||||
| Enum Language Source # | |||||
| Generic Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
| |||||
| Ix Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| Read Language Source # | |||||
| Show Language Source # | |||||
| Eq Language Source # | |||||
| Ord Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language | |||||
| NoThunks Language Source # | |||||
| Random Language Source # | |||||
| Uniform Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Methods uniformM ∷ StatefulGen g m ⇒ g → m Language Source # | |||||
| UniformRange Language Source # | |||||
| type Rep Language Source # | |||||
Defined in Cardano.Ledger.Plutus.Language type Rep Language = D1 ('MetaData "Language" "Cardano.Ledger.Plutus.Language" "cardano-ledger-core-1.19.0.0-inplace" 'False) ((C1 ('MetaCons "PlutusV1" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "PlutusV2" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "PlutusV3" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "PlutusV4" 'PrefixI 'False) (U1 ∷ Type → Type))) | |||||
guardPlutus ∷ Language → Decoder s () Source #
Prevent decoding a version of Plutus until the appropriate protocol version.
Type level Plutus Language version
data SLanguage (l ∷ Language) where Source #
Singleton for 'Language'
Constructors
| SPlutusV1 ∷ SLanguage 'PlutusV1 | |
| SPlutusV2 ∷ SLanguage 'PlutusV2 | |
| SPlutusV3 ∷ SLanguage 'PlutusV3 | |
| SPlutusV4 ∷ SLanguage 'PlutusV4 |
class (Typeable l, NFData (PlutusArgs l), EncCBOR (PlutusArgs l), DecCBOR (PlutusArgs l), Pretty (PlutusArgs l), Show (PlutusArgs l), Eq (PlutusArgs l)) ⇒ PlutusLanguage (l ∷ Language) where Source #
For implicit reflection on 'SLanguage'
See Cardano.Ledger.Alonzo.Plutus.TxInfo for example usage
Associated Types
data PlutusArgs (l ∷ Language) Source #
Methods
isLanguage ∷ SLanguage l Source #
plutusLanguageTag ∷ Plutus l → Word8 Source #
Tag that will be used as a prefix to compute the ScriptHash
Arguments
| ∷ Version | Which major protocol version to use for deserialization and further execution |
| → Plutus l | Binary version of the script that will be deserialized |
| → Either ScriptDecodeError (PlutusRunnable l) |
evaluatePlutusRunnable Source #
Arguments
| ∷ Version | Which major protocol version to use for script execution |
| → VerboseMode | Whether to produce log output |
| → EvaluationContext | Includes the cost model to use for tallying up the execution costs |
| → ExBudget | The resource budget which must not be exceeded during evaluation |
| → PlutusRunnable l | The script to evaluate |
| → PlutusArgs l | The arguments to the script |
| → (LogOutput, Either EvaluationError ExBudget) |
evaluatePlutusRunnableBudget Source #
Arguments
| ∷ Version | Which major protocol version to use for script execution |
| → VerboseMode | Whether to produce log output |
| → EvaluationContext | Includes the cost model to use for tallying up the execution costs |
| → PlutusRunnable l | The script to evaluate |
| → PlutusArgs l | The arguments to the script |
| → (LogOutput, Either EvaluationError ExBudget) |
Similar to evaluatePlutusRunnable, except does not require ExBudget to be
provided as input and instead computes it as output. This function is meant to be
used for testing.
Arguments
| ∷ Version | Which major protocol version to use for script execution |
| → PlutusRunnable l | The script to evaluate |
| → PlutusArgs l | The arguments to the script |
| → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ()) |
Instances
| PlutusLanguage 'PlutusV1 Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
Methods isLanguage ∷ SLanguage 'PlutusV1 Source # plutusLanguageTag ∷ Plutus 'PlutusV1 → Word8 Source # decodePlutusRunnable ∷ Version → Plutus 'PlutusV1 → Either ScriptDecodeError (PlutusRunnable 'PlutusV1) Source # evaluatePlutusRunnable ∷ Version → VerboseMode → EvaluationContext → ExBudget → PlutusRunnable 'PlutusV1 → PlutusArgs 'PlutusV1 → (LogOutput, Either EvaluationError ExBudget) Source # evaluatePlutusRunnableBudget ∷ Version → VerboseMode → EvaluationContext → PlutusRunnable 'PlutusV1 → PlutusArgs 'PlutusV1 → (LogOutput, Either EvaluationError ExBudget) Source # mkTermToEvaluate ∷ Version → PlutusRunnable 'PlutusV1 → PlutusArgs 'PlutusV1 → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ()) Source # | |||||
| PlutusLanguage 'PlutusV2 Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
Methods isLanguage ∷ SLanguage 'PlutusV2 Source # plutusLanguageTag ∷ Plutus 'PlutusV2 → Word8 Source # decodePlutusRunnable ∷ Version → Plutus 'PlutusV2 → Either ScriptDecodeError (PlutusRunnable 'PlutusV2) Source # evaluatePlutusRunnable ∷ Version → VerboseMode → EvaluationContext → ExBudget → PlutusRunnable 'PlutusV2 → PlutusArgs 'PlutusV2 → (LogOutput, Either EvaluationError ExBudget) Source # evaluatePlutusRunnableBudget ∷ Version → VerboseMode → EvaluationContext → PlutusRunnable 'PlutusV2 → PlutusArgs 'PlutusV2 → (LogOutput, Either EvaluationError ExBudget) Source # mkTermToEvaluate ∷ Version → PlutusRunnable 'PlutusV2 → PlutusArgs 'PlutusV2 → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ()) Source # | |||||
| PlutusLanguage 'PlutusV3 Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
Methods isLanguage ∷ SLanguage 'PlutusV3 Source # plutusLanguageTag ∷ Plutus 'PlutusV3 → Word8 Source # decodePlutusRunnable ∷ Version → Plutus 'PlutusV3 → Either ScriptDecodeError (PlutusRunnable 'PlutusV3) Source # evaluatePlutusRunnable ∷ Version → VerboseMode → EvaluationContext → ExBudget → PlutusRunnable 'PlutusV3 → PlutusArgs 'PlutusV3 → (LogOutput, Either EvaluationError ExBudget) Source # evaluatePlutusRunnableBudget ∷ Version → VerboseMode → EvaluationContext → PlutusRunnable 'PlutusV3 → PlutusArgs 'PlutusV3 → (LogOutput, Either EvaluationError ExBudget) Source # mkTermToEvaluate ∷ Version → PlutusRunnable 'PlutusV3 → PlutusArgs 'PlutusV3 → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ()) Source # | |||||
| PlutusLanguage 'PlutusV4 Source # | |||||
Defined in Cardano.Ledger.Plutus.Language Associated Types
Methods isLanguage ∷ SLanguage 'PlutusV4 Source # plutusLanguageTag ∷ Plutus 'PlutusV4 → Word8 Source # decodePlutusRunnable ∷ Version → Plutus 'PlutusV4 → Either ScriptDecodeError (PlutusRunnable 'PlutusV4) Source # evaluatePlutusRunnable ∷ Version → VerboseMode → EvaluationContext → ExBudget → PlutusRunnable 'PlutusV4 → PlutusArgs 'PlutusV4 → (LogOutput, Either EvaluationError ExBudget) Source # evaluatePlutusRunnableBudget ∷ Version → VerboseMode → EvaluationContext → PlutusRunnable 'PlutusV4 → PlutusArgs 'PlutusV4 → (LogOutput, Either EvaluationError ExBudget) Source # mkTermToEvaluate ∷ Version → PlutusRunnable 'PlutusV4 → PlutusArgs 'PlutusV4 → Either EvaluationError (Term NamedDeBruijn DefaultUni DefaultFun ()) Source # | |||||
data family PlutusArgs (l ∷ Language) Source #
Instances
| DecCBOR (PlutusArgs 'PlutusV1) Source # | |
| DecCBOR (PlutusArgs 'PlutusV2) Source # | |
| DecCBOR (PlutusArgs 'PlutusV3) Source # | |
| DecCBOR (PlutusArgs 'PlutusV4) Source # | |
| EncCBOR (PlutusArgs 'PlutusV1) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| EncCBOR (PlutusArgs 'PlutusV2) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| EncCBOR (PlutusArgs 'PlutusV3) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| EncCBOR (PlutusArgs 'PlutusV4) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| NFData (PlutusArgs 'PlutusV1) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusArgs 'PlutusV1 → () # | |
| NFData (PlutusArgs 'PlutusV2) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusArgs 'PlutusV2 → () # | |
| NFData (PlutusArgs 'PlutusV3) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusArgs 'PlutusV3 → () # | |
| NFData (PlutusArgs 'PlutusV4) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ PlutusArgs 'PlutusV4 → () # | |
| Show (PlutusArgs 'PlutusV1) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| Show (PlutusArgs 'PlutusV2) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| Show (PlutusArgs 'PlutusV3) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| Show (PlutusArgs 'PlutusV4) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| Eq (PlutusArgs 'PlutusV1) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ PlutusArgs 'PlutusV1 → PlutusArgs 'PlutusV1 → Bool # (/=) ∷ PlutusArgs 'PlutusV1 → PlutusArgs 'PlutusV1 → Bool # | |
| Eq (PlutusArgs 'PlutusV2) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ PlutusArgs 'PlutusV2 → PlutusArgs 'PlutusV2 → Bool # (/=) ∷ PlutusArgs 'PlutusV2 → PlutusArgs 'PlutusV2 → Bool # | |
| Eq (PlutusArgs 'PlutusV3) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ PlutusArgs 'PlutusV3 → PlutusArgs 'PlutusV3 → Bool # (/=) ∷ PlutusArgs 'PlutusV3 → PlutusArgs 'PlutusV3 → Bool # | |
| Eq (PlutusArgs 'PlutusV4) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ PlutusArgs 'PlutusV4 → PlutusArgs 'PlutusV4 → Bool # (/=) ∷ PlutusArgs 'PlutusV4 → PlutusArgs 'PlutusV4 → Bool # | |
| Pretty (PlutusArgs 'PlutusV1) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods pretty ∷ PlutusArgs 'PlutusV1 → Doc ann Source # prettyList ∷ [PlutusArgs 'PlutusV1] → Doc ann Source # | |
| Pretty (PlutusArgs 'PlutusV2) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods pretty ∷ PlutusArgs 'PlutusV2 → Doc ann Source # prettyList ∷ [PlutusArgs 'PlutusV2] → Doc ann Source # | |
| Pretty (PlutusArgs 'PlutusV3) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods pretty ∷ PlutusArgs 'PlutusV3 → Doc ann Source # prettyList ∷ [PlutusArgs 'PlutusV3] → Doc ann Source # | |
| Pretty (PlutusArgs 'PlutusV4) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods pretty ∷ PlutusArgs 'PlutusV4 → Doc ann Source # prettyList ∷ [PlutusArgs 'PlutusV4] → Doc ann Source # | |
| newtype PlutusArgs 'PlutusV1 Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| newtype PlutusArgs 'PlutusV2 Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| newtype PlutusArgs 'PlutusV3 Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| newtype PlutusArgs 'PlutusV4 Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
plutusLanguage ∷ ∀ (l ∷ Language) proxy. PlutusLanguage l ⇒ proxy l → Language Source #
Construct value level laguage version from the type level
plutusSLanguage ∷ ∀ (l ∷ Language) proxy. PlutusLanguage l ⇒ proxy l → SLanguage l Source #
toSLanguage ∷ ∀ (l ∷ Language) m. (PlutusLanguage l, MonadFail m) ⇒ Language → m (SLanguage l) Source #
withSLanguage ∷ Language → (∀ (l ∷ Language). PlutusLanguage l ⇒ SLanguage l → a) → a Source #
asSLanguage ∷ ∀ (l ∷ Language) proxy. SLanguage l → proxy l → proxy l Source #
withSamePlutusLanguage ∷ ∀ f1 f2 (l1 ∷ Language) (l2 ∷ Language) a. (PlutusLanguage l1, PlutusLanguage l2) ⇒ f1 l1 → f2 l2 → (∀ (l ∷ Language). PlutusLanguage l ⇒ f1 l → f2 l → a) → Maybe a Source #
Plutus Script Context
data LegacyPlutusArgs (l ∷ Language) Source #
Constructors
| LegacyPlutusArgs2 | Scripts that require 2 arguments. |
Fields
| |
| LegacyPlutusArgs3 | Scripts that require 3 arguments. Which is only PlutusV1/V2 spending scripts |
Fields
| |
Instances
| (PlutusLanguage l, FromData (PlutusScriptContext l)) ⇒ DecCBOR (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language | |
| ToData (PlutusScriptContext l) ⇒ EncCBOR (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods encCBOR ∷ LegacyPlutusArgs l → Encoding Source # | |
| NFData (PlutusScriptContext l) ⇒ NFData (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods rnf ∷ LegacyPlutusArgs l → () # | |
| Show (PlutusScriptContext l) ⇒ Show (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods showsPrec ∷ Int → LegacyPlutusArgs l → ShowS # show ∷ LegacyPlutusArgs l → String # showList ∷ [LegacyPlutusArgs l] → ShowS # | |
| Eq (PlutusScriptContext l) ⇒ Eq (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods (==) ∷ LegacyPlutusArgs l → LegacyPlutusArgs l → Bool # (/=) ∷ LegacyPlutusArgs l → LegacyPlutusArgs l → Bool # | |
| Pretty (PlutusScriptContext l) ⇒ Pretty (LegacyPlutusArgs l) Source # | |
Defined in Cardano.Ledger.Plutus.Language Methods pretty ∷ LegacyPlutusArgs l → Doc ann Source # prettyList ∷ [LegacyPlutusArgs l] → Doc ann Source # | |
type family PlutusScriptContext (l ∷ Language) = (r ∷ Type) | r → l where ... Source #
Orphan instances
| NFData ScriptContext Source # | |
Methods rnf ∷ ScriptContext → () # | |
| NFData ScriptContext Source # | |
Methods rnf ∷ ScriptContext → () # | |
| NFData ScriptContext Source # | |
Methods rnf ∷ ScriptContext → () # | |