{-# LANGUAGE MultiParamTypeClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Consensus.Shelley.HFEras
( StandardAllegraBlock
, StandardAlonzoBlock
, StandardBabbageBlock
, StandardConwayBlock
, StandardDijkstraBlock
, StandardMaryBlock
, StandardShelleyBlock
) where
import Cardano.Ledger.Dijkstra.Era (DijkstraEraBlockHeader (..))
import Cardano.Protocol.Crypto
import Cardano.Protocol.Praos.BlockHeader (Header)
import Ouroboros.Consensus.Protocol.Praos (Praos)
import qualified Ouroboros.Consensus.Protocol.Praos as Praos
import Ouroboros.Consensus.Protocol.TPraos (TPraos)
import qualified Ouroboros.Consensus.Protocol.TPraos as TPraos
import Ouroboros.Consensus.Shelley.Eras
( AllegraEra
, AlonzoEra
, BabbageEra
, ConwayEra
, DijkstraEra
, MaryEra
, ShelleyEra
)
import Ouroboros.Consensus.Shelley.Ledger.Block
( ShelleyBlock
, ShelleyCompatible
)
import Ouroboros.Consensus.Shelley.Ledger.Protocol ()
import Ouroboros.Consensus.Shelley.Protocol.Praos ()
import Ouroboros.Consensus.Shelley.Protocol.TPraos ()
import Ouroboros.Consensus.Shelley.ShelleyHFC ()
type StandardShelleyBlock = ShelleyBlock (TPraos StandardCrypto) ShelleyEra
type StandardAllegraBlock = ShelleyBlock (TPraos StandardCrypto) AllegraEra
type StandardMaryBlock = ShelleyBlock (TPraos StandardCrypto) MaryEra
type StandardAlonzoBlock = ShelleyBlock (TPraos StandardCrypto) AlonzoEra
type StandardBabbageBlock = ShelleyBlock (Praos StandardCrypto) BabbageEra
type StandardConwayBlock = ShelleyBlock (Praos StandardCrypto) ConwayEra
type StandardDijkstraBlock = ShelleyBlock (Praos StandardCrypto) DijkstraEra
instance
TPraos.PraosCrypto c =>
ShelleyCompatible (TPraos c) ShelleyEra
instance
TPraos.PraosCrypto c =>
ShelleyCompatible (TPraos c) AllegraEra
instance
TPraos.PraosCrypto c =>
ShelleyCompatible (TPraos c) MaryEra
instance
TPraos.PraosCrypto c =>
ShelleyCompatible (TPraos c) AlonzoEra
instance Praos.PraosCrypto c => ShelleyCompatible (Praos c) BabbageEra
instance Praos.PraosCrypto c => ShelleyCompatible (Praos c) ConwayEra
instance Praos.PraosCrypto c => ShelleyCompatible (Praos c) DijkstraEra
instance Crypto c => DijkstraEraBlockHeader (Header c) DijkstraEra where
prevNonceBlockHeaderL :: Lens' (Block (Header c) DijkstraEra) Nonce
prevNonceBlockHeaderL = [Char]
-> (Nonce -> f Nonce)
-> Block (Header c) DijkstraEra
-> f (Block (Header c) DijkstraEra)
forall a. HasCallStack => [Char] -> a
error [Char]
"Not implemented. Peras placeholder"