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)
- 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
- 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)
- 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 ...
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 #
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 # |
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
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 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.
Language dependent translation
type family PlutusTxInfo (l ∷ Language) where ... Source #
Equations
PlutusTxInfo 'PlutusV1 = TxInfo | |
PlutusTxInfo 'PlutusV2 = TxInfo | |
PlutusTxInfo 'PlutusV3 = TxInfo |
type family PlutusTxCert (l ∷ Language) where ... Source #
Equations
PlutusTxCert 'PlutusV1 = DCert | |
PlutusTxCert 'PlutusV2 = DCert | |
PlutusTxCert 'PlutusV3 = TxCert |
type family PlutusScriptPurpose (l ∷ Language) where ... Source #
type family PlutusScriptContext (l ∷ Language) = (r ∷ Type) | r → l where ... Source #