@@ -98,7 +98,9 @@ import Cardano.Ledger.HKD (HKD, HKDApplicative, HKDFunctor (..), NoUpdate (..))
98
98
import Cardano.Ledger.Plutus.ToPlutusData (ToPlutusData (.. ))
99
99
import Control.DeepSeq (NFData )
100
100
import Control.Monad.Identity (Identity )
101
- import Data.Aeson (FromJSON , ToJSON )
101
+ import Data.Aeson (FromJSON , ToJSON (.. ), object , pairs , (.=) )
102
+ import qualified Data.Aeson as Aeson (KeyValue )
103
+ import qualified Data.Aeson.Key as Aeson (fromText )
102
104
import Data.Default (Default (.. ))
103
105
import qualified Data.Foldable as F (foldMap' , foldl' , foldlM )
104
106
import Data.IntMap (IntMap )
@@ -136,8 +138,9 @@ deriving newtype instance
136
138
deriving stock instance
137
139
Show (PParamsHKD Identity era ) => Show (PParams era )
138
140
139
- deriving newtype instance
140
- ToJSON (PParamsHKD Identity era ) => ToJSON (PParams era )
141
+ instance EraPParams era => ToJSON (PParams era ) where
142
+ toJSON = object . jsonPairsPParams
143
+ toEncoding = pairs . mconcat . jsonPairsPParams
141
144
142
145
deriving newtype instance
143
146
FromJSON (PParamsHKD Identity era ) => FromJSON (PParams era )
@@ -228,8 +231,9 @@ instance EraPParams era => ToCBOR (PParamsUpdate era) where
228
231
instance EraPParams era => FromCBOR (PParamsUpdate era ) where
229
232
fromCBOR = fromEraCBOR @ era
230
233
231
- deriving newtype instance
232
- ToJSON (PParamsHKD StrictMaybe era ) => ToJSON (PParamsUpdate era )
234
+ instance EraPParams era => ToJSON (PParamsUpdate era ) where
235
+ toJSON = object . jsonPairsPParamsUpdate
236
+ toEncoding = pairs . mconcat . jsonPairsPParamsUpdate
233
237
234
238
deriving newtype instance
235
239
FromJSON (PParamsHKD StrictMaybe era ) => FromJSON (PParamsUpdate era )
@@ -283,14 +287,12 @@ class
283
287
, Show (PParamsHKD Identity era )
284
288
, NFData (PParamsHKD Identity era )
285
289
, NoThunks (PParamsHKD Identity era )
286
- , ToJSON (PParamsHKD Identity era )
287
290
, FromJSON (PParamsHKD Identity era )
288
291
, Eq (PParamsHKD StrictMaybe era )
289
292
, Ord (PParamsHKD StrictMaybe era )
290
293
, Show (PParamsHKD StrictMaybe era )
291
294
, NFData (PParamsHKD StrictMaybe era )
292
295
, NoThunks (PParamsHKD StrictMaybe era )
293
- , ToJSON (PParamsHKD StrictMaybe era )
294
296
) =>
295
297
EraPParams era
296
298
where
@@ -557,6 +559,22 @@ ppuMinUTxOValueL = ppuLensHKD . hkdMinUTxOValueL @era @StrictMaybe
557
559
ppuMinPoolCostL :: forall era . EraPParams era => Lens' (PParamsUpdate era ) (StrictMaybe Coin )
558
560
ppuMinPoolCostL = ppuLensHKD . hkdMinPoolCostL @ era @ StrictMaybe
559
561
562
+ jsonPairsPParams :: forall era e a . EraPParams era => Aeson. KeyValue e a => PParams era -> [a ]
563
+ jsonPairsPParams pp =
564
+ [ Aeson. fromText ppName .= toJSON (pp ^. ppLens)
565
+ | PParam' {ppName, ppLens} <- eraPParams @ era
566
+ ]
567
+
568
+ jsonPairsPParamsUpdate ::
569
+ forall era e a .
570
+ (EraPParams era , Aeson. KeyValue e a ) =>
571
+ PParamsUpdate era -> [a ]
572
+ jsonPairsPParamsUpdate ppu =
573
+ [ Aeson. fromText ppName .= toJSON v
574
+ | PParam' {ppName, ppUpdate = Just (PParamUpdate {ppuLens})} <- eraPParams @ era
575
+ , SJust v <- [ppu ^. ppuLens]
576
+ ]
577
+
560
578
mapPParams :: (PParamsHKD Identity era1 -> PParamsHKD Identity era2 ) -> PParams era1 -> PParams era2
561
579
mapPParams f (PParams pp) = PParams $ f pp
562
580
0 commit comments