From d23bb88e779e08a0a9c4bac2b44fa06abc466993 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Mon, 11 Oct 2021 13:38:30 +0000 Subject: [PATCH] Factor out serialisation of envelopes --- hydra-plutus/exe/inspect-script/Main.hs | 28 +++++++++++-------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/hydra-plutus/exe/inspect-script/Main.hs b/hydra-plutus/exe/inspect-script/Main.hs index 889f1a614d6..bfa7c91c5ca 100644 --- a/hydra-plutus/exe/inspect-script/Main.hs +++ b/hydra-plutus/exe/inspect-script/Main.hs @@ -2,7 +2,7 @@ module Main where import Hydra.Prelude -import Cardano.Api (serialiseToTextEnvelope) +import Cardano.Api (HasTextEnvelope, serialiseToTextEnvelope) import qualified Data.Aeson as Aeson import qualified Data.ByteString.Lazy as BL import Data.Text (pack) @@ -28,26 +28,22 @@ main = do assetClass (currencySymbol $ encodeUtf8 currency) (tokenName $ encodeUtf8 token) ) putTextLn "Serialise scripts:" - forM_ (scripts policyId) $ \(script, scriptName) -> do - let scriptFile = scriptName <> ".plutus" - serialised = Aeson.encode $ serialiseToTextEnvelope (Just $ fromString scriptName) script - BL.writeFile scriptFile serialised - putTextLn $ " " <> pack scriptFile <> ": " <> sizeInKb serialised + writeEnvelopes (scripts policyId) putTextLn "Serialise datums:" - forM_ datums $ \(aDatum, datumName) -> do - let datumFile = datumName <> ".plutus" - serialised = Aeson.encode $ serialiseToTextEnvelope (Just $ fromString datumName) aDatum - BL.writeFile datumFile serialised - putTextLn $ " " <> pack datumFile <> ": " <> sizeInKb serialised + writeEnvelopes datums putTextLn "Serialise redeemers:" - forM_ redeemers $ \(aRedeemer, redeemerName) -> do - let redeemerFile = redeemerName <> ".plutus" - serialised = Aeson.encode $ serialiseToTextEnvelope (Just $ fromString redeemerName) aRedeemer - BL.writeFile redeemerFile serialised - putTextLn $ " " <> pack redeemerFile <> ": " <> sizeInKb serialised + writeEnvelopes redeemers where + writeEnvelopes :: HasTextEnvelope item => [(item, String)] -> IO () + writeEnvelopes plutus = + forM_ plutus $ \(item, itemName) -> do + let itemFile = itemName <> ".plutus" + serialised = Aeson.encode $ serialiseToTextEnvelope (Just $ fromString itemName) item + BL.writeFile itemFile serialised + putTextLn $ " " <> pack itemFile <> ": " <> sizeInKb serialised + sizeInKb = (<> " KB") . show . (`div` 1024) . BL.length scripts policyId =