From 8bc319b4b75d397f7fe0a21782bce1dfc2769aa1 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Wed, 11 Dec 2019 21:16:02 +0100 Subject: [PATCH] do not use a Map for pool owners! We need to preserve the list order for zipping correctly! --- lib/core/src/Cardano/Pool/Metrics.hs | 6 +++--- lib/core/test/unit/Cardano/Pool/MetricsSpec.hs | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/core/src/Cardano/Pool/Metrics.hs b/lib/core/src/Cardano/Pool/Metrics.hs index 55756b41a26..18f7ba13d06 100644 --- a/lib/core/src/Cardano/Pool/Metrics.hs +++ b/lib/core/src/Cardano/Pool/Metrics.hs @@ -304,7 +304,7 @@ newStakePoolLayer db@DBLayer{..} nl tr = StakePoolLayer pure $ replicate (length poolIds) Nothing Right metas -> do let res = associateMetadata - (Map.fromList $ zip poolIds owners) + (zip poolIds owners) (zip owners' metas) mapM_ (logTrace tr . fst) res pure $ map snd res @@ -546,13 +546,13 @@ count = Map.map (Quantity . fromIntegral . length) -- -- It also provides a log message for each association. associateMetadata - :: Map PoolId [PoolOwner] + :: [(PoolId, [PoolOwner])] -- ^ Ordered mapping from pool to owner(s). -> [(PoolOwner, Maybe StakePoolMetadata)] -- ^ Association between owner and metadata -> [(StakePoolLayerMsg, Maybe StakePoolMetadata)] associateMetadata poolOwners ownerMeta = - map (uncurry getResult . fmap associate) $ Map.toList poolOwners + map (uncurry getResult . fmap associate) poolOwners where -- Filter the metadata to just the entries which were submitted by the given -- owners. diff --git a/lib/core/test/unit/Cardano/Pool/MetricsSpec.hs b/lib/core/test/unit/Cardano/Pool/MetricsSpec.hs index 1134f3187d6..d5b9f943bbd 100644 --- a/lib/core/test/unit/Cardano/Pool/MetricsSpec.hs +++ b/lib/core/test/unit/Cardano/Pool/MetricsSpec.hs @@ -504,7 +504,7 @@ arbitraryChunks xs = do associateMetadataSpec :: Spec associateMetadataSpec = describe "associateMetadata" $ do - let mkMetadata owner@(PoolOwner bs) tckr = StakePoolMetadata + let mkMetadata owner tckr = StakePoolMetadata { owner = owner , ticker = unsafeFromText tckr , name = tckr @@ -519,14 +519,14 @@ associateMetadataSpec = describe "associateMetadata" $ do let pid = PoolId "1" let res = associateMetadata - (Map.fromList [(pid, [owner])]) + [(pid, [owner])] [(owner, Just md)] res `shouldBe` [(MsgMetadataUsing pid owner md, Just md)] it "missing metadata" $ do let res = associateMetadata - (Map.fromList [(PoolId "1", [PoolOwner "a"])]) + [(PoolId "1", [PoolOwner "a"])] [(PoolOwner "a", Nothing)] res `shouldBe` [(MsgMetadataMissing (PoolId "1"), Nothing)] @@ -535,7 +535,7 @@ associateMetadataSpec = describe "associateMetadata" $ do let mda = mkMetadata (PoolOwner "a") "AAAA" let mdb = mkMetadata (PoolOwner "b") "AAAA" let [(msg, res)] = associateMetadata - (Map.fromList [(PoolId "1", [PoolOwner "a", PoolOwner "b"])]) + [(PoolId "1", [PoolOwner "a", PoolOwner "b"])] [ (PoolOwner "a", Just mda) , (PoolOwner "b", Just mdb) ] @@ -555,7 +555,7 @@ associateMetadataSpec = describe "associateMetadata" $ do let mdb = mkMetadata (PoolOwner "b") "BBBB" let res = associateMetadata - (Map.fromList [(PoolId "1", [PoolOwner "a", PoolOwner "b"])]) + [(PoolId "1", [PoolOwner "a", PoolOwner "b"])] [ (PoolOwner "a", Just mda) , (PoolOwner "b", Just mdb) ]