plutus-ledger-api-1.0.0.0.0.0.0.0.1: Interface to the Plutus ledger for the Cardano ledger.
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusLedgerApi.Common.Versions

Synopsis

Documentation

data ProtocolVersion Source #

This represents the Cardano protocol version, with its major and minor components. This relies on careful understanding between us and the ledger as to what this means.

Constructors

ProtocolVersion 

Fields

Instances

Instances details
Generic ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

Associated Types

type Rep ProtocolVersion :: Type -> Type Source #

Show ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

Eq ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

Ord ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

Pretty ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

Serialise ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

type Rep ProtocolVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.ProtocolVersions

type Rep ProtocolVersion = D1 ('MetaData "ProtocolVersion" "PlutusLedgerApi.Common.ProtocolVersions" "plutus-ledger-api-1.0.0.0.0.0.0.0.1-62zX2BmwjkDFan4zfGhQ4n" 'False) (C1 ('MetaCons "ProtocolVersion" 'PrefixI 'True) (S1 ('MetaSel ('Just "pvMajor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "pvMinor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

data LedgerPlutusVersion Source #

The plutus language version as seen from the ledger's side. Note: the ordering of constructors matters for deriving Ord

Constructors

PlutusV1 
PlutusV2 
PlutusV3 

Instances

Instances details
Bounded LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Enum LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Generic LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Associated Types

type Rep LedgerPlutusVersion :: Type -> Type Source #

Show LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Eq LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Ord LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

Pretty LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

type Rep LedgerPlutusVersion Source # 
Instance details

Defined in PlutusLedgerApi.Common.Versions

type Rep LedgerPlutusVersion = D1 ('MetaData "LedgerPlutusVersion" "PlutusLedgerApi.Common.Versions" "plutus-ledger-api-1.0.0.0.0.0.0.0.1-62zX2BmwjkDFan4zfGhQ4n" '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)))

languageIntroducedIn :: LedgerPlutusVersion -> ProtocolVersion Source #

Query the protocol version that a specific ledger plutus version was first introduced in. Introduction in this context means the enablement/allowance of scripts of that language version to be executed on-chain.

languagesAvailableIn :: ProtocolVersion -> Set LedgerPlutusVersion Source #

Given a protocol version return a set of all available plutus languages that are enabled/allowed to run. Assumes that languages once introduced/enabled, will never be disabled in the future.

builtinsIntroducedIn :: Map (LedgerPlutusVersion, ProtocolVersion) (Set DefaultFun) Source #

A map indicating which builtin functions were introduced in which ProtocolVersion. Each builtin function should appear at most once.

This *must* be updated when new builtins are added. See Note [New builtins and protocol versions]

builtinsAvailableIn :: LedgerPlutusVersion -> ProtocolVersion -> Set DefaultFun Source #

Which builtin functions are available in the given ProtocolVersion?

See Note [New builtins and protocol versions]