{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module Test.Cardano.Chain.Config (
readMainetCfg,
) where
import qualified Cardano.Chain.Genesis as Genesis
import Cardano.Crypto.Hashing (Hash, decodeHash)
import Cardano.Crypto.ProtocolMagic (RequiresNetworkMagic (..))
import Cardano.Crypto.Raw (Raw)
import Cardano.Prelude
import Paths_cardano_ledger_byron (getDataFileName)
readMainetCfg :: MonadIO m => m Genesis.Config
readMainetCfg :: forall (m :: * -> *). MonadIO m => m Config
readMainetCfg = do
String
mainnetGenesisJson <- IO String -> m String
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO String -> m String) -> IO String -> m String
forall a b. (a -> b) -> a -> b
$ String -> IO String
getDataFileName String
"test/mainnet-genesis.json"
let genHash :: Hash Raw
genHash =
(Text -> Hash Raw)
-> (Hash Raw -> Hash Raw) -> Either Text (Hash Raw) -> Hash Raw
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either
(Text -> Hash Raw
forall a. HasCallStack => Text -> a
panic (Text -> Hash Raw) -> (Text -> Text) -> Text -> Hash Raw
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ConfigurationError -> Text
forall a b. (Show a, ConvertText String b) => a -> b
show (ConfigurationError -> Text)
-> (Text -> ConfigurationError) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> ConfigurationError
Genesis.GenesisHashDecodeError)
Hash Raw -> Hash Raw
forall (cat :: * -> * -> *) a. Category cat => cat a a
identity
( Text -> Either Text (Hash Raw)
forall a. Text -> Either Text (Hash a)
decodeHash
Text
"5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb"
) ::
Hash Raw
(ConfigurationError -> Config)
-> (Config -> Config) -> Either ConfigurationError Config -> Config
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Text -> Config
forall a. HasCallStack => Text -> a
panic (Text -> Config)
-> (ConfigurationError -> Text) -> ConfigurationError -> Config
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ConfigurationError -> Text
forall a b. (Show a, ConvertText String b) => a -> b
show) Config -> Config
forall (cat :: * -> * -> *) a. Category cat => cat a a
identity
(Either ConfigurationError Config -> Config)
-> m (Either ConfigurationError Config) -> m Config
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ExceptT ConfigurationError m Config
-> m (Either ConfigurationError Config)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT
(RequiresNetworkMagic
-> String -> Hash Raw -> ExceptT ConfigurationError m Config
forall (m :: * -> *).
(MonadError ConfigurationError m, MonadIO m) =>
RequiresNetworkMagic -> String -> Hash Raw -> m Config
Genesis.mkConfigFromFile RequiresNetworkMagic
RequiresNoMagic String
mainnetGenesisJson Hash Raw
genHash)