Skip to content

Commit 29ae41f

Browse files
committed
Change the type of psDeposits to CompactForm Coin
1 parent 7cb77b5 commit 29ae41f

File tree

25 files changed

+138
-86
lines changed

25 files changed

+138
-86
lines changed

eras/alonzo/impl/src/Cardano/Ledger/Alonzo/PParams.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ import Cardano.Ledger.Binary (
8686
encodePreEncoded,
8787
serialize',
8888
)
89-
import Cardano.Ledger.Coin (Coin (..))
89+
import Cardano.Ledger.Coin (Coin (..), CompactForm (..))
9090
import Cardano.Ledger.Core (EraPParams (..))
9191
import Cardano.Ledger.HKD (HKDFunctor (..))
9292
import Cardano.Ledger.Mary.Core
@@ -237,7 +237,7 @@ data AlonzoPParams f era = AlonzoPParams
237237
-- ^ Maximal block header size
238238
, appKeyDeposit :: !(HKD f Coin)
239239
-- ^ The amount of a key registration deposit
240-
, appPoolDeposit :: !(HKD f Coin)
240+
, appPoolDeposit :: !(HKD f (CompactForm Coin))
241241
-- ^ The amount of a pool registration deposit
242242
, appEMax :: !(HKD f EpochInterval)
243243
-- ^ Maximum number of epochs in the future a pool retirement is allowed to
@@ -465,7 +465,7 @@ emptyAlonzoPParams =
465465
, appMaxTxSize = 2048
466466
, appMaxBHSize = 0
467467
, appKeyDeposit = Coin 0
468-
, appPoolDeposit = Coin 0
468+
, appPoolDeposit = CompactCoin 0
469469
, appEMax = EpochInterval 0
470470
, appNOpt = 100
471471
, appA0 = minBound

eras/babbage/impl/src/Cardano/Ledger/Babbage/PParams.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import Cardano.Ledger.Binary (
6060
DecCBOR (..),
6161
EncCBOR (..),
6262
)
63-
import Cardano.Ledger.Coin (Coin (..))
63+
import Cardano.Ledger.Coin (Coin (..), CompactForm (..))
6464
import Cardano.Ledger.Core (EraPParams (..))
6565
import Cardano.Ledger.HKD (HKDFunctor (..))
6666
import Cardano.Ledger.Orphans ()
@@ -113,7 +113,7 @@ data BabbagePParams f era = BabbagePParams
113113
-- ^ Maximal block header size
114114
, bppKeyDeposit :: !(HKD f Coin)
115115
-- ^ The amount of a key registration deposit
116-
, bppPoolDeposit :: !(HKD f Coin)
116+
, bppPoolDeposit :: !(HKD f (CompactForm Coin))
117117
-- ^ The amount of a pool registration deposit
118118
, bppEMax :: !(HKD f EpochInterval)
119119
-- ^ Maximum number of epochs in the future a pool retirement is allowed to
@@ -274,7 +274,7 @@ emptyBabbagePParams =
274274
, bppMaxTxSize = 2048
275275
, bppMaxBHSize = 0
276276
, bppKeyDeposit = Coin 0
277-
, bppPoolDeposit = Coin 0
277+
, bppPoolDeposit = CompactCoin 0
278278
, bppEMax = EpochInterval 0
279279
, bppNOpt = 100
280280
, bppA0 = minBound

eras/conway/impl/src/Cardano/Ledger/Conway/PParams.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ import Cardano.Ledger.Binary (
113113
encodeListLen,
114114
)
115115
import Cardano.Ledger.Binary.Coders
116-
import Cardano.Ledger.Coin (Coin (Coin))
116+
import Cardano.Ledger.Coin (Coin (Coin), CompactForm (..))
117117
import Cardano.Ledger.Conway.Era (ConwayEra, hardforkConwayBootstrapPhase)
118118
import Cardano.Ledger.Core (EraPParams (..))
119119
import Cardano.Ledger.HKD (
@@ -612,7 +612,7 @@ data ConwayPParams f era = ConwayPParams
612612
-- ^ Maximal block header size
613613
, cppKeyDeposit :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
614614
-- ^ The amount of a key registration deposit
615-
, cppPoolDeposit :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
615+
, cppPoolDeposit :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f (CompactForm Coin))
616616
-- ^ The amount of a pool registration deposit
617617
, cppEMax :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval)
618618
-- ^ Maximum number of epochs in the future a pool retirement is allowed to
@@ -883,7 +883,7 @@ instance ConwayEraPParams ConwayEra where
883883
, isValid (/= EpochInterval 0) ppuCommitteeMaxTermLengthL
884884
, isValid (/= EpochInterval 0) ppuGovActionLifetimeL
885885
, -- Coins
886-
isValid (/= zero) ppuPoolDepositL
886+
isValid (/= CompactCoin 0) ppuPoolDepositCompactL
887887
, isValid (/= zero) ppuGovActionDepositL
888888
, isValid (/= zero) ppuDRepDepositL
889889
, hardforkConwayBootstrapPhase pv
@@ -929,7 +929,7 @@ emptyConwayPParams =
929929
, cppMaxTxSize = THKD 2048
930930
, cppMaxBHSize = THKD 0
931931
, cppKeyDeposit = THKD (Coin 0)
932-
, cppPoolDeposit = THKD (Coin 0)
932+
, cppPoolDeposit = THKD (CompactCoin 0)
933933
, cppEMax = THKD (EpochInterval 0)
934934
, cppNOpt = THKD 100
935935
, cppA0 = THKD minBound

eras/conway/impl/testlib/Test/Cardano/Ledger/Conway/Imp/GovSpec.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Test.Cardano.Ledger.Conway.Imp.GovSpec (spec) where
1313

1414
import Cardano.Ledger.Address (RewardAccount (..))
1515
import Cardano.Ledger.BaseTypes
16-
import Cardano.Ledger.Coin (Coin (Coin))
16+
import Cardano.Ledger.Coin (Coin (..))
1717
import Cardano.Ledger.Conway (hardforkConwayDisallowUnelectedCommitteeFromVoting)
1818
import Cardano.Ledger.Conway.Core
1919
import Cardano.Ledger.Conway.Governance
@@ -223,7 +223,7 @@ pparamUpdateSpec =
223223
testMalformedProposal
224224
"ppuPoolDepositL cannot be 0"
225225
ppuPoolDepositL
226-
zero
226+
$ Coin 0
227227
testMalformedProposal
228228
"ppuGovActionDepositL cannot be 0"
229229
ppuGovActionDepositL

eras/dijkstra/src/Cardano/Ledger/Dijkstra/PParams.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ instance ConwayEraPParams DijkstraEra where
139139
, isValid (/= EpochInterval 0) ppuCommitteeMaxTermLengthL
140140
, isValid (/= EpochInterval 0) ppuGovActionLifetimeL
141141
, -- Coins
142-
isValid (/= zero) ppuPoolDepositL
142+
isValid (/= mempty) ppuPoolDepositL
143143
, isValid (/= zero) ppuGovActionDepositL
144144
, isValid (/= zero) ppuDRepDepositL
145145
, isValid ((/= zero) . unCoinPerByte) ppuCoinsPerUTxOByteL

eras/shelley/impl/src/Cardano/Ledger/Shelley/PParams.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ import Cardano.Ledger.Binary (
6767
encodeListLen,
6868
)
6969
import Cardano.Ledger.Binary.Coders (Decode (From, RecD), decode, (<!))
70-
import Cardano.Ledger.Coin (Coin (..))
70+
import Cardano.Ledger.Coin (Coin (..), CompactForm (..))
71+
import Cardano.Ledger.Compactible (Compactible (..))
7172
import Cardano.Ledger.Core
7273
import Cardano.Ledger.HKD (HKD)
7374
import Cardano.Ledger.Hashes (GenDelegs)
@@ -103,7 +104,7 @@ data ShelleyPParams f era = ShelleyPParams
103104
-- ^ Maximal block header size
104105
, sppKeyDeposit :: !(HKD f Coin)
105106
-- ^ The amount of a key registration deposit
106-
, sppPoolDeposit :: !(HKD f Coin)
107+
, sppPoolDeposit :: !(HKD f (CompactForm Coin))
107108
-- ^ The amount of a pool registration deposit
108109
, sppEMax :: !(HKD f EpochInterval)
109110
-- ^ epoch bound on pool retirement
@@ -194,7 +195,7 @@ emptyShelleyPParams =
194195
, sppMaxTxSize = 2048
195196
, sppMaxBHSize = 0
196197
, sppKeyDeposit = Coin 0
197-
, sppPoolDeposit = Coin 0
198+
, sppPoolDeposit = CompactCoin 0
198199
, sppEMax = EpochInterval 0
199200
, sppNOpt = 100
200201
, sppA0 = minBound

eras/shelley/impl/src/Cardano/Ledger/Shelley/Rules/PoolReap.hs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module Cardano.Ledger.Shelley.Rules.PoolReap (
2222

2323
import Cardano.Ledger.Address (RewardAccount, raCredential)
2424
import Cardano.Ledger.BaseTypes (ShelleyBase)
25-
import Cardano.Ledger.Coin (Coin)
25+
import Cardano.Ledger.Coin (Coin, CompactForm)
2626
import Cardano.Ledger.Core
2727
import Cardano.Ledger.Credential (Credential)
2828
import Cardano.Ledger.PoolParams (ppRewardAccount)
@@ -35,7 +35,7 @@ import Cardano.Ledger.Shelley.LedgerState (
3535
import Cardano.Ledger.Shelley.LedgerState.Types (potEqualsObligation)
3636
import Cardano.Ledger.Slot (EpochNo (..))
3737
import Cardano.Ledger.State
38-
import Cardano.Ledger.UMap (UView (RewDepUView, SPoolUView), compactCoinOrError)
38+
import Cardano.Ledger.UMap (UView (RewDepUView, SPoolUView), compactCoinOrError, fromCompact)
3939
import qualified Cardano.Ledger.UMap as UM
4040
import Cardano.Ledger.Val ((<+>), (<->))
4141
import Control.DeepSeq (NFData)
@@ -49,6 +49,7 @@ import Control.State.Transition (
4949
judgmentContext,
5050
tellEvent,
5151
)
52+
import Data.Bifunctor (Bifunctor (..))
5253
import Data.Default (Default, def)
5354
import Data.Foldable (fold)
5455
import qualified Data.Map.Strict as Map
@@ -74,9 +75,9 @@ instance NFData (ShelleyPoolreapPredFailure era)
7475

7576
data ShelleyPoolreapEvent era = RetiredPools
7677
{ refundPools ::
77-
Map.Map (Credential 'Staking) (Map.Map (KeyHash 'StakePool) Coin)
78+
Map.Map (Credential 'Staking) (Map.Map (KeyHash 'StakePool) (CompactForm Coin))
7879
, unclaimedPools ::
79-
Map.Map (Credential 'Staking) (Map.Map (KeyHash 'StakePool) Coin)
80+
Map.Map (Credential 'Staking) (Map.Map (KeyHash 'StakePool) (CompactForm Coin))
8081
, epochNo :: EpochNo
8182
}
8283
deriving (Generic)
@@ -136,18 +137,19 @@ poolReapTransition = do
136137
retired :: Set (KeyHash 'StakePool)
137138
retired = eval (dom (psRetiring ps setSingleton e))
138139
-- The Map of pools (retiring this epoch) to their deposits
139-
retiringDeposits, remainingDeposits :: Map.Map (KeyHash 'StakePool) Coin
140+
retiringDeposits, remainingDeposits :: Map.Map (KeyHash 'StakePool) (CompactForm Coin)
140141
(retiringDeposits, remainingDeposits) =
141142
Map.partitionWithKey (\k _ -> Set.member k retired) (psDeposits ps)
142143
rewardAccounts :: Map.Map (KeyHash 'StakePool) RewardAccount
143144
rewardAccounts = Map.map ppRewardAccount $ eval (retired psStakePoolParams ps)
144145
rewardAccounts_ ::
145-
Map.Map (KeyHash 'StakePool) (RewardAccount, Coin)
146+
Map.Map (KeyHash 'StakePool) (RewardAccount, CompactForm Coin)
146147
rewardAccounts_ = Map.intersectionWith (,) rewardAccounts retiringDeposits
147148
rewardAccounts' :: Map.Map RewardAccount Coin
148149
rewardAccounts' =
149150
Map.fromListWith (<+>)
150151
. Map.elems
152+
. fmap (second fromCompact)
151153
$ rewardAccounts_
152154
refunds :: Map.Map (Credential 'Staking) Coin
153155
mRefunds :: Map.Map (Credential 'Staking) Coin
@@ -187,7 +189,7 @@ poolReapTransition = do
187189
& certPStateL . psStakePoolParamsL %~ (eval . (retired ))
188190
& certPStateL . psFutureStakePoolParamsL %~ (eval . (retired ))
189191
& certPStateL . psRetiringL %~ (eval . (retired ))
190-
& certPStateL . psDepositsL .~ remainingDeposits
192+
& certPStateL . psDepositsCompactL .~ remainingDeposits
191193
)
192194

193195
renderPoolReapViolation ::

eras/shelley/test-suite/src/Test/Cardano/Ledger/Shelley/Rules/AdaPreservation.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ adaPreservationProps =
151151
, map feesNonDecreasing noEpochBoundarySsts
152152
]
153153

154-
infoRetire :: Map (KeyHash 'StakePool) Coin -> KeyHash 'StakePool -> String
154+
infoRetire :: Show a => Map (KeyHash 'StakePool) a -> KeyHash 'StakePool -> String
155155
infoRetire deposits keyhash = showKeyHash keyhash ++ extra
156156
where
157157
extra = case Map.lookup keyhash deposits of

eras/shelley/test-suite/src/Test/Cardano/Ledger/Shelley/Rules/Deposits.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Cardano.Ledger.Shelley.LedgerState (
2121
)
2222
import Cardano.Ledger.Shelley.Rules.Reports (synopsisCoinMap)
2323
import Cardano.Ledger.Shelley.State
24-
import Cardano.Ledger.UMap (depositMap)
24+
import Cardano.Ledger.UMap (depositMap, fromCompact)
2525
import qualified Cardano.Ledger.UMap as UM
2626
import Cardano.Ledger.Val ((<+>))
2727
import qualified Data.Map.Strict as Map
@@ -87,14 +87,14 @@ depositInvariant SourceSignalTarget {source = chainSt} =
8787
allDeposits = utxosDeposited utxost
8888
sumCoin = Map.foldl' (<+>) (Coin 0)
8989
keyDeposits = (UM.fromCompact . UM.sumDepositUView . UM.RewDepUView . dsUnified) dstate
90-
poolDeposits = sumCoin (psDeposits pstate)
90+
poolDeposits = sumCoin (fromCompact <$> psDeposits pstate)
9191
in counterexample
9292
( ansiDocToString . Pretty.vsep $
9393
[ "Deposit invariant fails:"
9494
, Pretty.indent 2 . Pretty.vsep . map Pretty.pretty $
9595
[ "All deposits = " ++ show allDeposits
9696
, "Key deposits = " ++ synopsisCoinMap (Just (depositMap (dsUnified dstate)))
97-
, "Pool deposits = " ++ synopsisCoinMap (Just (psDeposits pstate))
97+
, "Pool deposits = " ++ synopsisCoinMap (Just (fromCompact <$> psDeposits pstate))
9898
]
9999
]
100100
)

eras/shelley/test-suite/test/Test/Cardano/Ledger/Shelley/Examples/Combinators.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,10 @@ feesAndDeposits ppEx newFees stakes pools cs = cs {chainNes = nes'}
191191
accum n x = if Map.member (ppId x) (psDeposits pstate) then (n :: Integer) else n + 1
192192
newDeposits =
193193
Map.fromList (map (\cred -> (cred, compactCoinOrError (ppEx ^. ppKeyDepositL))) stakes)
194-
newPools = Map.fromList (map (\p -> (ppId p, ppEx ^. ppPoolDepositL)) pools)
194+
newPools = Map.fromList (map (\p -> (ppId p, ppEx ^. ppPoolDepositCompactL)) pools)
195195
dpstate' =
196196
mkShelleyCertState
197-
(pstate & psDepositsL %~ Map.unionWith (\old _new -> old) newPools)
197+
(pstate & psDepositsCompactL %~ Map.unionWith (\old _new -> old) newPools)
198198
(dstate & dsUnifiedL .~ UM.unionKeyDeposits (RewDepUView (dstate ^. dsUnifiedL)) newDeposits)
199199
es' = es {esLState = ls'}
200200
nes' = nes {nesEs = es'}
@@ -473,7 +473,7 @@ reapPool pool cs = cs {chainNes = nes'}
473473
Just (UM.RDPair ccoin dep) ->
474474
( UM.insert'
475475
rewardAddr
476-
(UM.RDPair (addCompactCoin ccoin (compactCoinOrError (pp ^. ppPoolDepositL))) dep)
476+
(UM.RDPair (addCompactCoin ccoin (pp ^. ppPoolDepositCompactL)) dep)
477477
(rewards ds)
478478
, Coin 0
479479
)

0 commit comments

Comments
 (0)