cardano-api-8.36.1.1: The cardano api
Safe HaskellNone
LanguageHaskell2010

Cardano.Api.Eon.ShelleyBasedEra

Synopsis

Shelley-based eras

data ShelleyBasedEra era where Source #

While the Byron and Shelley eras are quite different, there are several eras that are based on Shelley with only minor differences. It is useful to be able to treat the Shelley-based eras in a mostly-uniform way.

Values of this type witness the fact that the era is Shelley-based. This can be used to constrain the era to being a Shelley-based on. It allows non-uniform handling making case distinctions on the constructor.

Instances

Instances details
ToCardanoEra ShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Eon ShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Methods

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

Eq (ShelleyBasedEra era) Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Ord (ShelleyBasedEra era) Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Show (ShelleyBasedEra era) Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

NFData (ShelleyBasedEra era) Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Methods

rnf :: ShelleyBasedEra era -> () Source #

ToJSON (ShelleyBasedEra era) Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Methods

toJSON :: ShelleyBasedEra era -> Value #

toEncoding :: ShelleyBasedEra era -> Encoding #

toJSONList :: [ShelleyBasedEra era] -> Value #

toEncodingList :: [ShelleyBasedEra era] -> Encoding #

omitField :: ShelleyBasedEra era -> Bool #

TestEquality ShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Methods

testEquality :: forall (a :: k) (b :: k). ShelleyBasedEra a -> ShelleyBasedEra b -> Maybe (a :~: b) Source #

class IsCardanoEra era => IsShelleyBasedEra era where Source #

The class of eras that are based on Shelley. This allows uniform handling of Shelley-based eras, but also non-uniform by making case distinctions on the ShelleyBasedEra constructors.

data AnyShelleyBasedEra where Source #

Instances

Instances details
Bounded AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Enum AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Eq AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

Show AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

FromJSON AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

ToJSON AnyShelleyBasedEra Source # 
Instance details

Defined in Cardano.Api.Eon.ShelleyBasedEra

data InAnyShelleyBasedEra thing where Source #

This pairs up some era-dependent type with a ShelleyBasedEra value that tells us what era it is, but hides the era type. This is useful when the era is not statically known, for example when deserialising from a file.

Constructors

InAnyShelleyBasedEra :: Typeable era => ShelleyBasedEra era -> thing era -> InAnyShelleyBasedEra thing 

inEonForShelleyBasedEra :: Eon eon => a -> (eon era -> a) -> ShelleyBasedEra era -> a Source #

Determine the value to use for a feature in a given ShelleyBasedEra.

inEonForShelleyBasedEraMaybe :: Eon eon => (eon era -> a) -> ShelleyBasedEra era -> Maybe a Source #

forShelleyBasedEraInEon :: Eon eon => ShelleyBasedEra era -> a -> (eon era -> a) -> a Source #

forShelleyBasedEraInEonMaybe :: Eon eon => ShelleyBasedEra era -> (eon era -> a) -> Maybe a Source #

Assertions on era

Mapping to era types from the Shelley ledger library

type family ShelleyLedgerEra era = ledgerera | ledgerera -> era where ... Source #

A type family that connects our era type tags to equivalent type tags used in the Shelley ledger library.

This type mapping connect types from this API with types in the Shelley ledger library which allows writing conversion functions in a more generic way.

Equations

ShelleyLedgerEra ShelleyEra = StandardShelley 
ShelleyLedgerEra AllegraEra = StandardAllegra 
ShelleyLedgerEra MaryEra = StandardMary 
ShelleyLedgerEra AlonzoEra = StandardAlonzo 
ShelleyLedgerEra BabbageEra = StandardBabbage 
ShelleyLedgerEra ConwayEra = StandardConway 

eraProtVerLow :: ShelleyBasedEra era -> Version Source #

Lookup the lower major protocol version for the shelley based era. In other words this is the major protocol version that the era has started in.

type ShelleyBasedEraConstraints era = (HashAlgorithm (HASH (EraCrypto (ShelleyLedgerEra era))), Signable (VRF (EraCrypto (ShelleyLedgerEra era))) Seed, PraosProtocolSupportsNode (ConsensusProtocol era), ShelleyBlock (ConsensusProtocol era) (ShelleyLedgerEra era) ~ ConsensusBlockForEra era, ShelleyCompatible (ConsensusProtocol era) (ShelleyLedgerEra era), ADDRHASH (PraosProtocolSupportsNodeCrypto (ConsensusProtocol era)) ~ Blake2b_224, Crypto (EraCrypto (ShelleyLedgerEra era)), Era (ShelleyLedgerEra era), EraCrypto (ShelleyLedgerEra era) ~ StandardCrypto, EraPParams (ShelleyLedgerEra era), EraTx (ShelleyLedgerEra era), EraTxBody (ShelleyLedgerEra era), EraTxOut (ShelleyLedgerEra era), EraUTxO (ShelleyLedgerEra era), HashAnnotated (TxBody (ShelleyLedgerEra era)) EraIndependentTxBody StandardCrypto, ShelleyEraTxBody (ShelleyLedgerEra era), ShelleyEraTxCert (ShelleyLedgerEra era), FromCBOR (ChainDepState (ConsensusProtocol era)), IsCardanoEra era, IsShelleyBasedEra era, ToJSON (ChainDepState (ConsensusProtocol era)), ToJSON (PredicateFailure (EraRule "LEDGER" (ShelleyLedgerEra era))), ToJSON (PredicateFailure (EraRule "UTXOW" (ShelleyLedgerEra era))), Typeable era) Source #