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

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

import Cardano.Ledger.Allegra.Era (AllegraEra)
import Cardano.Ledger.Shelley.State

instance EraCertState AllegraEra where
  type CertState AllegraEra = ShelleyCertState AllegraEra

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

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

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

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

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