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