1
1
{-# LANGUAGE DerivingStrategies #-}
2
- {-# LANGUAGE TemplateHaskell #-}
3
2
4
3
module Hydra.NetworkVersions where
5
4
@@ -10,19 +9,21 @@ import Data.Aeson (Value (..))
10
9
import Data.Aeson.Key qualified as Key
11
10
import Data.Aeson.KeyMap qualified as KeyMap
12
11
import Data.Aeson.Lens (members , _Object )
13
- import Data.FileEmbed (embedFile )
14
12
import Data.List qualified as List
15
13
import Data.Text (pack , splitOn , toLower , unpack )
16
14
import Data.Text.Encoding (encodeUtf8 )
17
15
import Hydra.Cardano.Api (TxId , deserialiseFromRawBytesHex )
16
+ import Paths_hydra_node qualified as Pkg
17
+ import System.IO.Unsafe (unsafePerformIO )
18
18
19
- networkVersionsFile :: ByteString
20
- networkVersionsFile = $ (embedFile " ./../networks.json" )
19
+ {-# NOINLINE networkVersions #-}
20
+ networkVersions :: ByteString
21
+ networkVersions = unsafePerformIO $ Pkg. getDataFileName " networks.json" >>= readFileBS
21
22
22
23
parseNetworkTxIds :: String -> Either String [TxId ]
23
24
parseNetworkTxIds networkString = do
24
25
let networkTxt = toLower $ pack networkString
25
- let info = networkVersionsFile ^@.. members . _Object
26
+ let info = networkVersions ^@.. members . _Object
26
27
case find (\ (n, _) -> Key. toText n == networkTxt) info of
27
28
Nothing -> Left $ " Unknown network:" <> unpack networkTxt
28
29
Just (_, t) -> getLastTxId t
0 commit comments