{-# LANGUAGE NumericUnderscores #-}
module Blockfrost.Types.Cardano.Genesis
( Genesis (..)
) where
import Deriving.Aeson
import Servant.Docs (ToSample (..), singleSample)
import Blockfrost.Types.Shared
data Genesis = Genesis
{ Genesis -> Rational
_genesisActiveSlotsCoefficient :: Rational
, Genesis -> Integer
_genesisUpdateQuorum :: Integer
, Genesis -> Lovelaces
_genesisMaxLovelaceSupply :: Lovelaces
, Genesis -> Integer
_genesisNetworkMagic :: Integer
, Genesis -> Integer
_genesisEpochLength :: Integer
, Genesis -> POSIXTime
_genesisSystemStart :: POSIXTime
, Genesis -> Integer
_genesisSlotsPerKesPeriod :: Integer
, Genesis -> Integer
_genesisSlotLength :: Integer
, Genesis -> Integer
_genesisMaxKesEvolutions :: Integer
, Genesis -> Integer
_genesisSecurityParam :: Integer
}
deriving stock (Int -> Genesis -> ShowS
[Genesis] -> ShowS
Genesis -> String
(Int -> Genesis -> ShowS)
-> (Genesis -> String) -> ([Genesis] -> ShowS) -> Show Genesis
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Genesis -> ShowS
showsPrec :: Int -> Genesis -> ShowS
$cshow :: Genesis -> String
show :: Genesis -> String
$cshowList :: [Genesis] -> ShowS
showList :: [Genesis] -> ShowS
Show, Genesis -> Genesis -> Bool
(Genesis -> Genesis -> Bool)
-> (Genesis -> Genesis -> Bool) -> Eq Genesis
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Genesis -> Genesis -> Bool
== :: Genesis -> Genesis -> Bool
$c/= :: Genesis -> Genesis -> Bool
/= :: Genesis -> Genesis -> Bool
Eq, (forall x. Genesis -> Rep Genesis x)
-> (forall x. Rep Genesis x -> Genesis) -> Generic Genesis
forall x. Rep Genesis x -> Genesis
forall x. Genesis -> Rep Genesis x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Genesis -> Rep Genesis x
from :: forall x. Genesis -> Rep Genesis x
$cto :: forall x. Rep Genesis x -> Genesis
to :: forall x. Rep Genesis x -> Genesis
Generic)
deriving (Maybe Genesis
Value -> Parser [Genesis]
Value -> Parser Genesis
(Value -> Parser Genesis)
-> (Value -> Parser [Genesis]) -> Maybe Genesis -> FromJSON Genesis
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser Genesis
parseJSON :: Value -> Parser Genesis
$cparseJSONList :: Value -> Parser [Genesis]
parseJSONList :: Value -> Parser [Genesis]
$comittedField :: Maybe Genesis
omittedField :: Maybe Genesis
FromJSON, [Genesis] -> Value
[Genesis] -> Encoding
Genesis -> Bool
Genesis -> Value
Genesis -> Encoding
(Genesis -> Value)
-> (Genesis -> Encoding)
-> ([Genesis] -> Value)
-> ([Genesis] -> Encoding)
-> (Genesis -> Bool)
-> ToJSON Genesis
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: Genesis -> Value
toJSON :: Genesis -> Value
$ctoEncoding :: Genesis -> Encoding
toEncoding :: Genesis -> Encoding
$ctoJSONList :: [Genesis] -> Value
toJSONList :: [Genesis] -> Value
$ctoEncodingList :: [Genesis] -> Encoding
toEncodingList :: [Genesis] -> Encoding
$comitField :: Genesis -> Bool
omitField :: Genesis -> Bool
ToJSON)
via CustomJSON '[FieldLabelModifier '[StripPrefix "_genesis", CamelToSnake]] Genesis
instance ToSample Genesis where
toSamples :: Proxy Genesis -> [(Text, Genesis)]
toSamples Proxy Genesis
_ = Genesis -> [(Text, Genesis)]
forall a. a -> [(Text, a)]
singleSample (Genesis -> [(Text, Genesis)]) -> Genesis -> [(Text, Genesis)]
forall a b. (a -> b) -> a -> b
$
Genesis
{ $sel:_genesisActiveSlotsCoefficient:Genesis :: Rational
_genesisActiveSlotsCoefficient = Rational
0.05
, $sel:_genesisUpdateQuorum:Genesis :: Integer
_genesisUpdateQuorum = Integer
5
, $sel:_genesisMaxLovelaceSupply:Genesis :: Lovelaces
_genesisMaxLovelaceSupply = Discrete' "ADA" '(1000000, 1)
Lovelaces
45_000_000_000_000_000
, $sel:_genesisNetworkMagic:Genesis :: Integer
_genesisNetworkMagic = Integer
764824073
, $sel:_genesisEpochLength:Genesis :: Integer
_genesisEpochLength = Integer
432_000
, $sel:_genesisSystemStart:Genesis :: POSIXTime
_genesisSystemStart = POSIXTime
1506203091
, $sel:_genesisSlotsPerKesPeriod:Genesis :: Integer
_genesisSlotsPerKesPeriod = Integer
129600
, $sel:_genesisSlotLength:Genesis :: Integer
_genesisSlotLength = Integer
1
, $sel:_genesisMaxKesEvolutions:Genesis :: Integer
_genesisMaxKesEvolutions = Integer
62
, $sel:_genesisSecurityParam:Genesis :: Integer
_genesisSecurityParam = Integer
2160
}