{-# LANGUAGE LambdaCase #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Alonzo.TxCert () where import Cardano.Ledger.Alonzo.Era (AlonzoEra) import Cardano.Ledger.Alonzo.PParams () import Cardano.Ledger.Shelley.TxCert instance EraTxCert AlonzoEra where type TxCert AlonzoEra = ShelleyTxCert AlonzoEra upgradeTxCert :: EraTxCert (PreviousEra AlonzoEra) => TxCert (PreviousEra AlonzoEra) -> Either (TxCertUpgradeError AlonzoEra) (TxCert AlonzoEra) upgradeTxCert = ShelleyTxCert AlonzoEra -> Either Void (ShelleyTxCert AlonzoEra) forall a b. b -> Either a b Right (ShelleyTxCert AlonzoEra -> Either Void (ShelleyTxCert AlonzoEra)) -> (ShelleyTxCert MaryEra -> ShelleyTxCert AlonzoEra) -> ShelleyTxCert MaryEra -> Either Void (ShelleyTxCert AlonzoEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyTxCert MaryEra -> ShelleyTxCert AlonzoEra forall era1 era2. ShelleyTxCert era1 -> ShelleyTxCert era2 upgradeShelleyTxCert getVKeyWitnessTxCert :: TxCert AlonzoEra -> Maybe (KeyHash Witness) getVKeyWitnessTxCert = TxCert AlonzoEra -> Maybe (KeyHash Witness) ShelleyTxCert AlonzoEra -> Maybe (KeyHash Witness) forall era. ShelleyTxCert era -> Maybe (KeyHash Witness) getVKeyWitnessShelleyTxCert getScriptWitnessTxCert :: TxCert AlonzoEra -> Maybe ScriptHash getScriptWitnessTxCert = TxCert AlonzoEra -> Maybe ScriptHash ShelleyTxCert AlonzoEra -> Maybe ScriptHash forall era. ShelleyTxCert era -> Maybe ScriptHash getScriptWitnessShelleyTxCert mkRegPoolTxCert :: StakePoolParams -> TxCert AlonzoEra mkRegPoolTxCert = PoolCert -> ShelleyTxCert AlonzoEra forall era. PoolCert -> ShelleyTxCert era ShelleyTxCertPool (PoolCert -> ShelleyTxCert AlonzoEra) -> (StakePoolParams -> PoolCert) -> StakePoolParams -> ShelleyTxCert AlonzoEra forall b c a. (b -> c) -> (a -> b) -> a -> c . StakePoolParams -> PoolCert RegPool getRegPoolTxCert :: TxCert AlonzoEra -> Maybe StakePoolParams getRegPoolTxCert (ShelleyTxCertPool (RegPool StakePoolParams poolParams)) = StakePoolParams -> Maybe StakePoolParams forall a. a -> Maybe a Just StakePoolParams poolParams getRegPoolTxCert TxCert AlonzoEra _ = Maybe StakePoolParams forall a. Maybe a Nothing mkRetirePoolTxCert :: KeyHash StakePool -> EpochNo -> TxCert AlonzoEra mkRetirePoolTxCert KeyHash StakePool poolId EpochNo epochNo = PoolCert -> ShelleyTxCert AlonzoEra forall era. PoolCert -> ShelleyTxCert era ShelleyTxCertPool (PoolCert -> ShelleyTxCert AlonzoEra) -> PoolCert -> ShelleyTxCert AlonzoEra forall a b. (a -> b) -> a -> b $ KeyHash StakePool -> EpochNo -> PoolCert RetirePool KeyHash StakePool poolId EpochNo epochNo getRetirePoolTxCert :: TxCert AlonzoEra -> Maybe (KeyHash StakePool, EpochNo) getRetirePoolTxCert (ShelleyTxCertPool (RetirePool KeyHash StakePool poolId EpochNo epochNo)) = (KeyHash StakePool, EpochNo) -> Maybe (KeyHash StakePool, EpochNo) forall a. a -> Maybe a Just (KeyHash StakePool poolId, EpochNo epochNo) getRetirePoolTxCert TxCert AlonzoEra _ = Maybe (KeyHash StakePool, EpochNo) forall a. Maybe a Nothing lookupRegStakeTxCert :: TxCert AlonzoEra -> Maybe (Credential Staking) lookupRegStakeTxCert = \case RegTxCert Credential Staking c -> Credential Staking -> Maybe (Credential Staking) forall a. a -> Maybe a Just Credential Staking c TxCert AlonzoEra _ -> Maybe (Credential Staking) forall a. Maybe a Nothing lookupUnRegStakeTxCert :: TxCert AlonzoEra -> Maybe (Credential Staking) lookupUnRegStakeTxCert = \case UnRegTxCert Credential Staking c -> Credential Staking -> Maybe (Credential Staking) forall a. a -> Maybe a Just Credential Staking c TxCert AlonzoEra _ -> Maybe (Credential Staking) forall a. Maybe a Nothing getTotalDepositsTxCerts :: forall (f :: * -> *). Foldable f => PParams AlonzoEra -> (KeyHash StakePool -> Bool) -> f (TxCert AlonzoEra) -> Coin getTotalDepositsTxCerts = PParams AlonzoEra -> (KeyHash StakePool -> Bool) -> f (TxCert AlonzoEra) -> Coin forall era (f :: * -> *). (EraPParams era, Foldable f, EraTxCert era) => PParams era -> (KeyHash StakePool -> Bool) -> f (TxCert era) -> Coin shelleyTotalDepositsTxCerts getTotalRefundsTxCerts :: forall (f :: * -> *). Foldable f => PParams AlonzoEra -> (Credential Staking -> Maybe Coin) -> (Credential DRepRole -> Maybe Coin) -> f (TxCert AlonzoEra) -> Coin getTotalRefundsTxCerts PParams AlonzoEra pp Credential Staking -> Maybe Coin lookupStakeDeposit Credential DRepRole -> Maybe Coin _ = PParams AlonzoEra -> (Credential Staking -> Maybe Coin) -> f (TxCert AlonzoEra) -> Coin forall era (f :: * -> *). (EraPParams era, Foldable f, EraTxCert era) => PParams era -> (Credential Staking -> Maybe Coin) -> f (TxCert era) -> Coin shelleyTotalRefundsTxCerts PParams AlonzoEra pp Credential Staking -> Maybe Coin lookupStakeDeposit instance ShelleyEraTxCert AlonzoEra where mkRegTxCert :: Credential Staking -> TxCert AlonzoEra mkRegTxCert = ShelleyDelegCert -> ShelleyTxCert AlonzoEra forall era. ShelleyDelegCert -> ShelleyTxCert era ShelleyTxCertDelegCert (ShelleyDelegCert -> ShelleyTxCert AlonzoEra) -> (Credential Staking -> ShelleyDelegCert) -> Credential Staking -> ShelleyTxCert AlonzoEra forall b c a. (b -> c) -> (a -> b) -> a -> c . Credential Staking -> ShelleyDelegCert ShelleyRegCert getRegTxCert :: TxCert AlonzoEra -> Maybe (Credential Staking) getRegTxCert (ShelleyTxCertDelegCert (ShelleyRegCert Credential Staking c)) = Credential Staking -> Maybe (Credential Staking) forall a. a -> Maybe a Just Credential Staking c getRegTxCert TxCert AlonzoEra _ = Maybe (Credential Staking) forall a. Maybe a Nothing mkUnRegTxCert :: Credential Staking -> TxCert AlonzoEra mkUnRegTxCert = ShelleyDelegCert -> ShelleyTxCert AlonzoEra forall era. ShelleyDelegCert -> ShelleyTxCert era ShelleyTxCertDelegCert (ShelleyDelegCert -> ShelleyTxCert AlonzoEra) -> (Credential Staking -> ShelleyDelegCert) -> Credential Staking -> ShelleyTxCert AlonzoEra forall b c a. (b -> c) -> (a -> b) -> a -> c . Credential Staking -> ShelleyDelegCert ShelleyUnRegCert getUnRegTxCert :: TxCert AlonzoEra -> Maybe (Credential Staking) getUnRegTxCert (ShelleyTxCertDelegCert (ShelleyUnRegCert Credential Staking c)) = Credential Staking -> Maybe (Credential Staking) forall a. a -> Maybe a Just Credential Staking c getUnRegTxCert TxCert AlonzoEra _ = Maybe (Credential Staking) forall a. Maybe a Nothing mkDelegStakeTxCert :: Credential Staking -> KeyHash StakePool -> TxCert AlonzoEra mkDelegStakeTxCert Credential Staking c KeyHash StakePool kh = ShelleyDelegCert -> ShelleyTxCert AlonzoEra forall era. ShelleyDelegCert -> ShelleyTxCert era ShelleyTxCertDelegCert (ShelleyDelegCert -> ShelleyTxCert AlonzoEra) -> ShelleyDelegCert -> ShelleyTxCert AlonzoEra forall a b. (a -> b) -> a -> b $ Credential Staking -> KeyHash StakePool -> ShelleyDelegCert ShelleyDelegCert Credential Staking c KeyHash StakePool kh getDelegStakeTxCert :: TxCert AlonzoEra -> Maybe (Credential Staking, KeyHash StakePool) getDelegStakeTxCert (ShelleyTxCertDelegCert (ShelleyDelegCert Credential Staking c KeyHash StakePool kh)) = (Credential Staking, KeyHash StakePool) -> Maybe (Credential Staking, KeyHash StakePool) forall a. a -> Maybe a Just (Credential Staking c, KeyHash StakePool kh) getDelegStakeTxCert TxCert AlonzoEra _ = Maybe (Credential Staking, KeyHash StakePool) forall a. Maybe a Nothing mkGenesisDelegTxCert :: AtMostEra "Babbage" AlonzoEra => GenesisDelegCert -> TxCert AlonzoEra mkGenesisDelegTxCert = GenesisDelegCert -> TxCert AlonzoEra GenesisDelegCert -> ShelleyTxCert AlonzoEra forall era. GenesisDelegCert -> ShelleyTxCert era ShelleyTxCertGenesisDeleg getGenesisDelegTxCert :: AtMostEra "Babbage" AlonzoEra => TxCert AlonzoEra -> Maybe GenesisDelegCert getGenesisDelegTxCert (ShelleyTxCertGenesisDeleg GenesisDelegCert c) = GenesisDelegCert -> Maybe GenesisDelegCert forall a. a -> Maybe a Just GenesisDelegCert c getGenesisDelegTxCert TxCert AlonzoEra _ = Maybe GenesisDelegCert forall a. Maybe a Nothing mkMirTxCert :: AtMostEra "Babbage" AlonzoEra => MIRCert -> TxCert AlonzoEra mkMirTxCert = MIRCert -> TxCert AlonzoEra MIRCert -> ShelleyTxCert AlonzoEra forall era. MIRCert -> ShelleyTxCert era ShelleyTxCertMir getMirTxCert :: AtMostEra "Babbage" AlonzoEra => TxCert AlonzoEra -> Maybe MIRCert getMirTxCert (ShelleyTxCertMir MIRCert c) = MIRCert -> Maybe MIRCert forall a. a -> Maybe a Just MIRCert c getMirTxCert TxCert AlonzoEra _ = Maybe MIRCert forall a. Maybe a Nothing