{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Alonzo.State.CertState () where

import Cardano.Ledger.Alonzo.Era (AlonzoEra)
import Cardano.Ledger.Shelley.State

instance EraCertState AlonzoEra where
  type CertState AlonzoEra = ShelleyCertState AlonzoEra

  certDStateL :: Lens' (CertState AlonzoEra) (DState AlonzoEra)
certDStateL = (DState AlonzoEra -> f (DState AlonzoEra))
-> CertState AlonzoEra -> f (CertState AlonzoEra)
(DState AlonzoEra -> f (DState AlonzoEra))
-> ShelleyCertState AlonzoEra -> f (ShelleyCertState AlonzoEra)
forall era (f :: * -> *).
Functor f =>
(DState era -> f (DState era))
-> ShelleyCertState era -> f (ShelleyCertState era)
shelleyCertDStateL
  {-# INLINE certDStateL #-}

  certPStateL :: Lens' (CertState AlonzoEra) (PState AlonzoEra)
certPStateL = (PState AlonzoEra -> f (PState AlonzoEra))
-> CertState AlonzoEra -> f (CertState AlonzoEra)
(PState AlonzoEra -> f (PState AlonzoEra))
-> ShelleyCertState AlonzoEra -> f (ShelleyCertState AlonzoEra)
forall era (f :: * -> *).
Functor f =>
(PState era -> f (PState era))
-> ShelleyCertState era -> f (ShelleyCertState era)
shelleyCertPStateL
  {-# INLINE certPStateL #-}

  obligationCertState :: CertState AlonzoEra -> Obligations
obligationCertState = CertState AlonzoEra -> Obligations
forall era. EraCertState era => CertState era -> Obligations
shelleyObligationCertState

  certsTotalDepositsTxBody :: EraTxBody AlonzoEra =>
PParams AlonzoEra
-> CertState AlonzoEra -> TxBody AlonzoEra -> Coin
certsTotalDepositsTxBody = PParams AlonzoEra
-> CertState AlonzoEra -> TxBody AlonzoEra -> Coin
PParams AlonzoEra
-> ShelleyCertState AlonzoEra -> TxBody AlonzoEra -> Coin
forall era.
EraTxBody era =>
PParams era -> ShelleyCertState era -> TxBody era -> Coin
shelleyCertsTotalDepositsTxBody

  certsTotalRefundsTxBody :: EraTxBody AlonzoEra =>
PParams AlonzoEra
-> CertState AlonzoEra -> TxBody AlonzoEra -> Coin
certsTotalRefundsTxBody = PParams AlonzoEra
-> CertState AlonzoEra -> TxBody AlonzoEra -> Coin
PParams AlonzoEra
-> ShelleyCertState AlonzoEra -> TxBody AlonzoEra -> Coin
forall era.
EraTxBody era =>
PParams era -> ShelleyCertState era -> TxBody era -> Coin
shelleyCertsTotalRefundsTxBody