cardano-api:internal
Safe HaskellNone
LanguageHaskell2010

Cardano.Api.Experimental.Eras

Description

This module defines the protocol versions corresponding to the eras in the Cardano blockchain.

Synopsis

Documentation

data BabbageEra Source #

A type used as a tag to distinguish the Babbage era.

Instances

Instances details
IsAllegraBasedEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eon.AllegraEraOnwards

IsAlonzoBasedEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eon.AlonzoEraOnwards

IsBabbageBasedEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eon.BabbageEraOnwards

IsMaryBasedEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eon.MaryEraOnwards

IsShelleyBasedEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

IsCardanoEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

IsEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

HasTypeProxy BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

Associated Types

data AsType BabbageEra 
Instance details

Defined in Cardano.Api.Eras.Core

HasScriptLanguageInEra PlutusScriptV1 BabbageEra Source # 
Instance details

Defined in Cardano.Api.Script

HasScriptLanguageInEra PlutusScriptV2 BabbageEra Source # 
Instance details

Defined in Cardano.Api.Script

ToAlonzoScript PlutusScriptV1 BabbageEra Source # 
Instance details

Defined in Cardano.Api.Script

ToAlonzoScript PlutusScriptV2 BabbageEra Source # 
Instance details

Defined in Cardano.Api.Script

data AsType BabbageEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

data ConwayEra Source #

A type used as a tag to distinguish the Conway era.

Instances

Instances details
IsAllegraBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.AllegraEraOnwards

IsAlonzoBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.AlonzoEraOnwards

IsBabbageBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.BabbageEraOnwards

IsConwayBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.ConwayEraOnwards

IsMaryBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.MaryEraOnwards

IsShelleyBasedEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

IsCardanoEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

IsEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

HasTypeProxy ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

Associated Types

data AsType ConwayEra 
Instance details

Defined in Cardano.Api.Eras.Core

HasScriptLanguageInEra PlutusScriptV1 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

HasScriptLanguageInEra PlutusScriptV2 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

HasScriptLanguageInEra PlutusScriptV3 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

ToAlonzoScript PlutusScriptV1 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

ToAlonzoScript PlutusScriptV2 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

ToAlonzoScript PlutusScriptV3 ConwayEra Source # 
Instance details

Defined in Cardano.Api.Script

data AsType ConwayEra Source # 
Instance details

Defined in Cardano.Api.Eras.Core

data Era era where Source #

Represents the eras in Cardano's blockchain. This type represents eras currently on mainnet and new eras which are in development.

After a hardfork, the era from which we hardfork from gets deprecated and after deprecation period, gets removed. During deprecation period, consumers of cardano-api should update their codebase to the mainnet era.

Constructors

BabbageEra :: Era BabbageEra

The era currently active on Cardano's mainnet.

ConwayEra :: Era ConwayEra

The upcoming era in development.

Instances

Instances details
Eon Era Source #

A temporary compatibility instance, for easier conversion between experimental and old API.

Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

inEonForEra :: a -> (Era era -> a) -> CardanoEra era -> a Source #

TestEquality Era Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

testEquality :: Era a -> Era b -> Maybe (a :~: b) Source #

FromJSON (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

parseJSON :: Value -> Parser (Some Era) #

parseJSONList :: Value -> Parser [Some Era] #

omittedField :: Maybe (Some Era) #

ToJSON (Era era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

toJSON :: Era era -> Value #

toEncoding :: Era era -> Encoding #

toJSONList :: [Era era] -> Value #

toEncodingList :: [Era era] -> Encoding #

omitField :: Era era -> Bool #

ToJSON (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

toJSON :: Some Era -> Value #

toEncoding :: Some Era -> Encoding #

toJSONList :: [Some Era] -> Value #

toEncodingList :: [Some Era] -> Encoding #

omitField :: Some Era -> Bool #

Bounded (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Enum (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Show (Era era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

showsPrec :: Int -> Era era -> ShowS Source #

show :: Era era -> String Source #

showList :: [Era era] -> ShowS Source #

Eq (Era era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

(==) :: Era era -> Era era -> Bool Source #

(/=) :: Era era -> Era era -> Bool Source #

Ord (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Pretty (Era era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

pretty :: Era era -> Doc ann #

prettyList :: [Era era] -> Doc ann #

Pretty (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

pretty :: Some Era -> Doc ann #

prettyList :: [Some Era] -> Doc ann #

class IsEra era where Source #

Type class interface for the Era type.

Methods

useEra :: Era era Source #

Instances

Instances details
IsEra BabbageEra Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

IsEra ConwayEra Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

data Some (f :: Type -> Type) where Source #

An existential type for singleton types. Use to hold any era e.g. Some Era. One can then bring the era witness back into scope for example using this pattern: anyEra = Some ConwayEra -- then later in the code Some era <- pure anyEra obtainCommonConstraints era foo

Constructors

Some :: forall (f :: Type -> Type) a. (Typeable a, Typeable (f a)) => f a -> Some f 

Instances

Instances details
FromJSON (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

parseJSON :: Value -> Parser (Some Era) #

parseJSONList :: Value -> Parser [Some Era] #

omittedField :: Maybe (Some Era) #

ToJSON (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

toJSON :: Some Era -> Value #

toEncoding :: Some Era -> Encoding #

toJSONList :: [Some Era] -> Value #

toEncodingList :: [Some Era] -> Encoding #

omitField :: Some Era -> Bool #

Bounded (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Enum (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Show (Some f) Source #

Assumes that f is a singleton

Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

showsPrec :: Int -> Some f -> ShowS Source #

show :: Some f -> String Source #

showList :: [Some f] -> ShowS Source #

TestEquality f => Eq (Some f) Source #

Assumes that f is a singleton

Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

(==) :: Some f -> Some f -> Bool Source #

(/=) :: Some f -> Some f -> Bool Source #

Ord (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Pretty (Some Era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

pretty :: Some Era -> Doc ann #

prettyList :: [Some Era] -> Doc ann #

type family LedgerEra era = (r :: Type) | r -> era where ... Source #

Users typically interact with the latest features on the mainnet or experiment with features from the upcoming era. Hence, the protocol versions are limited to the current mainnet era and the next era (upcoming era).

newtype DeprecatedEra era Source #

Constructors

DeprecatedEra (ShelleyBasedEra era) 

Instances

Instances details
Show (DeprecatedEra era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Pretty (DeprecatedEra era) Source # 
Instance details

Defined in Cardano.Api.Experimental.Eras

Methods

pretty :: DeprecatedEra era -> Doc ann #

prettyList :: [DeprecatedEra era] -> Doc ann #

eraToSbe :: Era era -> ShelleyBasedEra era Source #

How to deprecate an era

  1. Add DEPRECATED pragma to the era type tag and the era constructor at the same time: {-# DEPRECATED BabbageEra "BabbageEra no longer supported, use ConwayEra" #-} data BabbageEra
  2. Update haddock for the constructor of the deprecated era, mentioning deprecation.
data Era era where
  {-# DEPRECATED BabbageEra "BabbageEra no longer supported, use ConwayEra" #-}
  BabbageEra :: Era BabbageEra
  -- | The era currently active on Cardano's mainnet.
  ConwayEra :: Era ConwayEra
  1. Add new IsEra instance and update the deprecated era instance to produce a compile-time error: @ instance TypeError ('Text "IsEra BabbageEra: Deprecated. Update to ConwayEra") => IsEra BabbageEra where useEra = error "unreachable"

instance IsEra ConwayEra where useEra = ConwayEra @