{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Babbage.State.Stake () where import Cardano.Ledger.Babbage.Core () import Cardano.Ledger.Babbage.Era (BabbageEra) import Cardano.Ledger.Babbage.State.Account () import Cardano.Ledger.Shelley.State ( EraStake (..), ShelleyInstantStake, addShelleyInstantStake, deleteShelleyInstantStake, resolveShelleyInstantStake, shelleyInstantStakeCredentialsL, ) instance EraStake BabbageEra where type InstantStake BabbageEra = ShelleyInstantStake BabbageEra instantStakeCredentialsL :: Lens' (InstantStake BabbageEra) (Map (Credential 'Staking) (CompactForm Coin)) instantStakeCredentialsL = (Map (Credential 'Staking) (CompactForm Coin) -> f (Map (Credential 'Staking) (CompactForm Coin))) -> InstantStake BabbageEra -> f (InstantStake BabbageEra) (Map (Credential 'Staking) (CompactForm Coin) -> f (Map (Credential 'Staking) (CompactForm Coin))) -> ShelleyInstantStake BabbageEra -> f (ShelleyInstantStake BabbageEra) forall era (f :: * -> *). Functor f => (Map (Credential 'Staking) (CompactForm Coin) -> f (Map (Credential 'Staking) (CompactForm Coin))) -> ShelleyInstantStake era -> f (ShelleyInstantStake era) shelleyInstantStakeCredentialsL addInstantStake :: UTxO BabbageEra -> InstantStake BabbageEra -> InstantStake BabbageEra addInstantStake = UTxO BabbageEra -> InstantStake BabbageEra -> InstantStake BabbageEra UTxO BabbageEra -> ShelleyInstantStake BabbageEra -> ShelleyInstantStake BabbageEra forall era. EraTxOut era => UTxO era -> ShelleyInstantStake era -> ShelleyInstantStake era addShelleyInstantStake deleteInstantStake :: UTxO BabbageEra -> InstantStake BabbageEra -> InstantStake BabbageEra deleteInstantStake = UTxO BabbageEra -> InstantStake BabbageEra -> InstantStake BabbageEra UTxO BabbageEra -> ShelleyInstantStake BabbageEra -> ShelleyInstantStake BabbageEra forall era. EraTxOut era => UTxO era -> ShelleyInstantStake era -> ShelleyInstantStake era deleteShelleyInstantStake resolveInstantStake :: InstantStake BabbageEra -> Accounts BabbageEra -> Stake resolveInstantStake = InstantStake BabbageEra -> Accounts BabbageEra -> Stake ShelleyInstantStake BabbageEra -> ShelleyAccounts BabbageEra -> Stake forall era. (EraStake era, InstantStake era ~ ShelleyInstantStake era, AccountState era ~ ShelleyAccountState era, Accounts era ~ ShelleyAccounts era) => ShelleyInstantStake era -> ShelleyAccounts era -> Stake resolveShelleyInstantStake