| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Cardano.Ledger.Alonzo.Plutus.Context
Contents
Synopsis
- data LedgerTxInfo era = LedgerTxInfo {
- ltiProtVer ∷ !ProtVer
- ltiEpochInfo ∷ !(EpochInfo (Either Text))
- ltiSystemStart ∷ !SystemStart
- ltiUTxO ∷ !(UTxO era)
- ltiTx ∷ !(Tx era)
- class (PlutusLanguage l, EraPlutusContext era) ⇒ EraPlutusTxInfo (l ∷ Language) era where
- toPlutusTxCert ∷ proxy l → ProtVer → TxCert era → Either (ContextError era) (PlutusTxCert l)
- toPlutusScriptPurpose ∷ proxy l → ProtVer → PlutusPurpose AsIxItem era → Either (ContextError era) (PlutusScriptPurpose l)
- toPlutusTxInfo ∷ proxy l → LedgerTxInfo era → Either (ContextError era) (PlutusTxInfo l)
- toPlutusArgs ∷ proxy l → ProtVer → PlutusTxInfo l → PlutusPurpose AsIxItem era → Maybe (Data era) → Data era → Either (ContextError era) (PlutusArgs l)
- toPlutusTxInInfo ∷ proxy l → UTxO era → TxIn → Either (ContextError era) (PlutusTxInInfo era l)
- class (AlonzoEraScript era, Eq (ContextError era), Show (ContextError era), NFData (ContextError era), NoThunks (ContextError era), EncCBOR (ContextError era), DecCBOR (ContextError era), ToJSON (ContextError era)) ⇒ EraPlutusContext era where
- type ContextError era = (r ∷ Type) | r → era
- data TxInfoResult era ∷ Type
- mkSupportedLanguage ∷ Language → Maybe (SupportedLanguage era)
- mkTxInfoResult ∷ LedgerTxInfo era → TxInfoResult era
- lookupTxInfoResult ∷ EraPlutusTxInfo l era ⇒ SLanguage l → TxInfoResult era → Either (ContextError era) (PlutusTxInfo l)
- mkPlutusWithContext ∷ PlutusScript era → ScriptHash → PlutusPurpose AsIxItem era → LedgerTxInfo era → TxInfoResult era → (Data era, ExUnits) → CostModel → Either (ContextError era) PlutusWithContext
- toPlutusWithContext ∷ ∀ l era. (EraPlutusTxInfo l era, AlonzoEraUTxO era) ⇒ Either (Plutus l) (PlutusRunnable l) → ScriptHash → PlutusPurpose AsIxItem era → LedgerTxInfo era → TxInfoResult era → (Data era, ExUnits) → CostModel → Either (ContextError era) PlutusWithContext
- lookupTxInfoResultImpossible ∷ (HasCallStack, EraPlutusTxInfo l era) ⇒ SLanguage l → Either (ContextError era) (PlutusTxInfo l)
- data SupportedLanguage era where
- SupportedLanguage ∷ EraPlutusTxInfo l era ⇒ SLanguage l → SupportedLanguage era
- mkSupportedLanguageM ∷ ∀ era m. (EraPlutusContext era, MonadFail m) ⇒ Language → m (SupportedLanguage era)
- supportedLanguages ∷ ∀ era. (HasCallStack, EraPlutusContext era) ⇒ NonEmpty (SupportedLanguage era)
- mkSupportedPlutusScript ∷ ∀ l era. (HasCallStack, EraPlutusTxInfo l era) ⇒ Plutus l → PlutusScript era
- mkSupportedBinaryPlutusScript ∷ ∀ era. (HasCallStack, AlonzoEraScript era) ⇒ SupportedLanguage era → PlutusBinary → PlutusScript era
- type family PlutusTxInfo (l ∷ Language) where ...
- type family PlutusTxCert (l ∷ Language) where ...
- type family PlutusScriptPurpose (l ∷ Language) where ...
- type family PlutusScriptContext (l ∷ Language) = (r ∷ Type) | r → l where ...
- type family PlutusTxInInfo era (l ∷ Language) where ...
Documentation
data LedgerTxInfo era Source #
All information that is necessary from the ledger to construct Plutus' TxInfo.
Constructors
| LedgerTxInfo | |
Fields
| |
class (PlutusLanguage l, EraPlutusContext era) ⇒ EraPlutusTxInfo (l ∷ Language) era where Source #
Methods
toPlutusTxCert ∷ proxy l → ProtVer → TxCert era → Either (ContextError era) (PlutusTxCert l) Source #
toPlutusScriptPurpose ∷ proxy l → ProtVer → PlutusPurpose AsIxItem era → Either (ContextError era) (PlutusScriptPurpose l) Source #
toPlutusTxInfo ∷ proxy l → LedgerTxInfo era → Either (ContextError era) (PlutusTxInfo l) Source #
toPlutusArgs ∷ proxy l → ProtVer → PlutusTxInfo l → PlutusPurpose AsIxItem era → Maybe (Data era) → Data era → Either (ContextError era) (PlutusArgs l) Source #
toPlutusTxInInfo ∷ proxy l → UTxO era → TxIn → Either (ContextError era) (PlutusTxInInfo era l) Source #
Instances
| EraPlutusTxInfo 'PlutusV1 AlonzoEra Source # | |
Defined in Cardano.Ledger.Alonzo.Plutus.TxInfo Methods toPlutusTxCert ∷ proxy 'PlutusV1 → ProtVer → TxCert AlonzoEra → Either (ContextError AlonzoEra) (PlutusTxCert 'PlutusV1) Source # toPlutusScriptPurpose ∷ proxy 'PlutusV1 → ProtVer → PlutusPurpose AsIxItem AlonzoEra → Either (ContextError AlonzoEra) (PlutusScriptPurpose 'PlutusV1) Source # toPlutusTxInfo ∷ proxy 'PlutusV1 → LedgerTxInfo AlonzoEra → Either (ContextError AlonzoEra) (PlutusTxInfo 'PlutusV1) Source # toPlutusArgs ∷ proxy 'PlutusV1 → ProtVer → PlutusTxInfo 'PlutusV1 → PlutusPurpose AsIxItem AlonzoEra → Maybe (Data AlonzoEra) → Data AlonzoEra → Either (ContextError AlonzoEra) (PlutusArgs 'PlutusV1) Source # toPlutusTxInInfo ∷ proxy 'PlutusV1 → UTxO AlonzoEra → TxIn → Either (ContextError AlonzoEra) (PlutusTxInInfo AlonzoEra 'PlutusV1) Source # | |
class (AlonzoEraScript era, Eq (ContextError era), Show (ContextError era), NFData (ContextError era), NoThunks (ContextError era), EncCBOR (ContextError era), DecCBOR (ContextError era), ToJSON (ContextError era)) ⇒ EraPlutusContext era where Source #
Associated Types
type ContextError era = (r ∷ Type) | r → era Source #
data TxInfoResult era ∷ Type Source #
This data type family is used to memoize the results of toPlutusTxInfo, so the outcome can
be shared between execution of different scripts with the same language version.
Methods
mkSupportedLanguage ∷ Language → Maybe (SupportedLanguage era) Source #
mkTxInfoResult ∷ LedgerTxInfo era → TxInfoResult era Source #
Construct PlutusTxInfo for all supported languages in this era.
lookupTxInfoResult ∷ EraPlutusTxInfo l era ⇒ SLanguage l → TxInfoResult era → Either (ContextError era) (PlutusTxInfo l) Source #
TxInfo for the same language can be shared between executions of every script of the same
version in a single transaction.
Note - The EraPlutusTxInfo is here only to enforce this function is not called with an
unsupported plutus language version.
mkPlutusWithContext ∷ PlutusScript era → ScriptHash → PlutusPurpose AsIxItem era → LedgerTxInfo era → TxInfoResult era → (Data era, ExUnits) → CostModel → Either (ContextError era) PlutusWithContext Source #
Instances
| EraPlutusContext AlonzoEra Source # | |
Defined in Cardano.Ledger.Alonzo.Plutus.TxInfo Associated Types type ContextError AlonzoEra = (r ∷ Type) Source # data TxInfoResult AlonzoEra Source # Methods mkSupportedLanguage ∷ Language → Maybe (SupportedLanguage AlonzoEra) Source # mkTxInfoResult ∷ LedgerTxInfo AlonzoEra → TxInfoResult AlonzoEra Source # lookupTxInfoResult ∷ ∀ (l ∷ Language). EraPlutusTxInfo l AlonzoEra ⇒ SLanguage l → TxInfoResult AlonzoEra → Either (ContextError AlonzoEra) (PlutusTxInfo l) Source # mkPlutusWithContext ∷ PlutusScript AlonzoEra → ScriptHash → PlutusPurpose AsIxItem AlonzoEra → LedgerTxInfo AlonzoEra → TxInfoResult AlonzoEra → (Data AlonzoEra, ExUnits) → CostModel → Either (ContextError AlonzoEra) PlutusWithContext Source # | |
toPlutusWithContext ∷ ∀ l era. (EraPlutusTxInfo l era, AlonzoEraUTxO era) ⇒ Either (Plutus l) (PlutusRunnable l) → ScriptHash → PlutusPurpose AsIxItem era → LedgerTxInfo era → TxInfoResult era → (Data era, ExUnits) → CostModel → Either (ContextError era) PlutusWithContext Source #
lookupTxInfoResultImpossible ∷ (HasCallStack, EraPlutusTxInfo l era) ⇒ SLanguage l → Either (ContextError era) (PlutusTxInfo l) Source #
Helper function to use when implementing lookupTxInfoResult for plutus languages that are not
supported by the era.
data SupportedLanguage era where Source #
Constructors
| SupportedLanguage ∷ EraPlutusTxInfo l era ⇒ SLanguage l → SupportedLanguage era |
Instances
mkSupportedLanguageM ∷ ∀ era m. (EraPlutusContext era, MonadFail m) ⇒ Language → m (SupportedLanguage era) Source #
supportedLanguages ∷ ∀ era. (HasCallStack, EraPlutusContext era) ⇒ NonEmpty (SupportedLanguage era) Source #
mkSupportedPlutusScript ∷ ∀ l era. (HasCallStack, EraPlutusTxInfo l era) ⇒ Plutus l → PlutusScript era Source #
This is just like mkPlutusScript, except it is guaranteed to be total through the enforcement
of support by the type system and EraPlutusTxInfo type class instances for supported plutus
versions.
mkSupportedBinaryPlutusScript ∷ ∀ era. (HasCallStack, AlonzoEraScript era) ⇒ SupportedLanguage era → PlutusBinary → PlutusScript era Source #
This is just like mkBinaryPlutusScript, except it is guaranteed to be total through the enforcement
of support by the type system and EraPlutusTxInfo type class instances (via calling `mkSupportedPlutusScript) for supported plutus
versions.
Language dependent translation
type family PlutusTxInfo (l ∷ Language) where ... Source #
Equations
| PlutusTxInfo 'PlutusV1 = TxInfo | |
| PlutusTxInfo 'PlutusV2 = TxInfo | |
| PlutusTxInfo 'PlutusV3 = TxInfo | |
| PlutusTxInfo 'PlutusV4 = TxInfo |
type family PlutusTxCert (l ∷ Language) where ... Source #
Equations
| PlutusTxCert 'PlutusV1 = DCert | |
| PlutusTxCert 'PlutusV2 = DCert | |
| PlutusTxCert 'PlutusV3 = TxCert | |
| PlutusTxCert 'PlutusV4 = TxCert |
type family PlutusScriptPurpose (l ∷ Language) where ... Source #
type family PlutusScriptContext (l ∷ Language) = (r ∷ Type) | r → l where ... Source #
type family PlutusTxInInfo era (l ∷ Language) where ... Source #
Equations