Skip to content

Commit

Permalink
Fix code formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
abailly-iohk committed Feb 9, 2023
1 parent 07bd31d commit 481d86e
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 125 deletions.
24 changes: 6 additions & 18 deletions ouroboros-consensus-cardano-tools/app/block-tool.hs
@@ -1,21 +1,9 @@
import Cardano.Tools.Block (BlockOptions (..), readChainPoint, run)
import Options.Applicative (
Parser,
execParser,
fullDesc,
help,
helper,
info,
long,
maybeReader,
metavar,
option,
optional,
progDesc,
strOption,
(<**>),
(<|>),
)
module Main where

import Cardano.Tools.Block (BlockOptions (..), readChainPoint, run)
import Options.Applicative (Parser, execParser, fullDesc, help,
helper, info, long, maybeReader, metavar, option, optional,
progDesc, strOption, (<**>), (<|>))

main :: IO ()
main = parseOptions >>= run
Expand Down
68 changes: 34 additions & 34 deletions ouroboros-consensus-cardano-tools/src/Cardano/Tools/Block.hs
@@ -1,57 +1,57 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-partial-fields #-}

-- | A tool to inspect the content of a block from various sources.
module Cardano.Tools.Block (BlockOptions (..), run, readChainPoint) where
module Cardano.Tools.Block (
BlockOptions (..)
, readChainPoint
, run
) where

import Cardano.Chain.Slotting (EpochSlots (..))
import Cardano.Ledger.Crypto (StandardCrypto)
import Cardano.Tools.Block.JSON ()
import Cardano.Tools.DB (withImmutableDB)
import Cardano.Chain.Slotting (EpochSlots (..))
import Cardano.Ledger.Crypto (StandardCrypto)
import Cardano.Tools.Block.JSON ()
import Cardano.Tools.DB (withImmutableDB)
import qualified Codec.CBOR.Read as CBOR
import Control.Monad (void)
import Control.Monad (void)
import qualified Data.Aeson as Aeson
import qualified Data.ByteString.Base16 as SHex
import qualified Data.ByteString.Base16.Lazy as Hex
import qualified Data.ByteString.Lazy as LBS
import Data.Either (fromRight)
import Data.Proxy (Proxy (Proxy))
import Data.Either (fromRight)
import Data.Proxy (Proxy (Proxy))
import qualified Data.Text as Text
import Data.Text.Encoding (encodeUtf8)
import Ouroboros.Consensus.Block (
CodecConfig,
Point (..),
SlotNo (SlotNo),
WithOrigin (..),
fromRawHash,
pointToWithOriginRealPoint,
)
import Data.Text.Encoding (encodeUtf8)
import Ouroboros.Consensus.Block (CodecConfig, Point (..),
SlotNo (SlotNo), WithOrigin (..), fromRawHash,
pointToWithOriginRealPoint)
import qualified Ouroboros.Consensus.Byron.Ledger as Byron
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Cardano.Block (CodecConfig (..))
import Ouroboros.Consensus.Protocol.Praos.Translate ()
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Cardano.Block (CodecConfig (..))
import Ouroboros.Consensus.Protocol.Praos.Translate ()
import qualified Ouroboros.Consensus.Shelley.Ledger as Shelley
import Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol ()
import Ouroboros.Consensus.Storage.Common (BlockComponent (GetBlock))
import Ouroboros.Consensus.Storage.ImmutableDB.API (getBlockComponent)
import Ouroboros.Consensus.Storage.Serialisation (decodeDisk)
import Ouroboros.Consensus.Util.IOLike (Exception, MonadThrow (throwIO))
import System.IO (Handle, IOMode (ReadMode), stdin, stdout, withFile)
import Text.Read (readMaybe)
import Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol ()
import Ouroboros.Consensus.Storage.Common (BlockComponent (GetBlock))
import Ouroboros.Consensus.Storage.ImmutableDB.API (getBlockComponent)
import Ouroboros.Consensus.Storage.Serialisation (decodeDisk)
import Ouroboros.Consensus.Util.IOLike (Exception,
MonadThrow (throwIO))
import System.IO (Handle, IOMode (ReadMode), stdin, stdout, withFile)
import Text.Read (readMaybe)

data BlockOptions
= ViewBlock
{ blockFile :: Maybe FilePath
}
| ExtractBlock
{ dbDirectory :: FilePath
{ dbDirectory :: FilePath
, cardanoConfigPath :: FilePath
, point :: Point CBlock
, point :: Point CBlock
}

run :: BlockOptions -> IO ()
Expand All @@ -60,7 +60,7 @@ run options = do
ViewBlock{blockFile} -> do
case blockFile of
Just file -> withFile file ReadMode $ viewBlock
Nothing -> viewBlock stdin
Nothing -> viewBlock stdin
ExtractBlock{dbDirectory, cardanoConfigPath, point} ->
Aeson.encode <$> readBlockFromDB dbDirectory cardanoConfigPath point
void $ LBS.hPut stdout block
Expand Down
119 changes: 57 additions & 62 deletions ouroboros-consensus-cardano-tools/src/Cardano/Tools/Block/JSON.hs
@@ -1,90 +1,85 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Tools.Block.JSON () where

import Cardano.Binary (
ToCBOR (..),
encodeListLen,
encodeWord,
serialize',
serializeEncoding',
)
import Cardano.Binary (ToCBOR (..), encodeListLen, encodeWord,
serialize', serializeEncoding')
import qualified Cardano.Crypto.Hash.Class as Crypto
import qualified Cardano.Ledger.Address as Ledger
import Cardano.Ledger.Alonzo (AlonzoAuxiliaryData, AlonzoEra, AlonzoScript, MaryValue)
import Cardano.Ledger.Alonzo.Data (binaryDataToData)
import Cardano.Ledger.Alonzo (AlonzoAuxiliaryData, AlonzoEra,
AlonzoScript, MaryValue)
import Cardano.Ledger.Alonzo.Data (binaryDataToData)
import qualified Cardano.Ledger.Alonzo.Data as Ledger.Alonzo
import Cardano.Ledger.Alonzo.Tx (AlonzoTx (..), AlonzoTxBody)
import Cardano.Ledger.Alonzo.Tx (AlonzoTx (..), AlonzoTxBody)
import qualified Cardano.Ledger.Alonzo.Tx as Ledger.Alonzo
import Cardano.Ledger.Alonzo.TxSeq (txSeqTxns)
import Cardano.Ledger.Alonzo.TxSeq (txSeqTxns)
import qualified Cardano.Ledger.Alonzo.TxWitness as Ledger.Alonzo
import qualified Cardano.Ledger.AuxiliaryData as Ledger
import qualified Cardano.Ledger.Babbage as Ledger
import Cardano.Ledger.Babbage.Scripts (AlonzoScript (..))
import Cardano.Ledger.Babbage.Scripts (AlonzoScript (..))
import qualified Cardano.Ledger.Babbage.Tx as Ledger.Babbage
import Cardano.Ledger.Babbage.TxBody (BabbageTxBody, BabbageTxOut (..), Datum (..))
import Cardano.Ledger.Babbage.TxBody (BabbageTxBody,
BabbageTxOut (..), Datum (..))
import qualified Cardano.Ledger.Babbage.TxBody as Ledger.Babbage
import Cardano.Ledger.Block (bbody)
import Cardano.Ledger.Block (bbody)
import qualified Cardano.Ledger.Block as Block
import Cardano.Ledger.Core (ScriptHash (..))
import Cardano.Ledger.Core (ScriptHash (..))
import qualified Cardano.Ledger.Core as Core
import Cardano.Ledger.Crypto (Crypto, StandardCrypto)
import Cardano.Ledger.Era (Era)
import Cardano.Ledger.Crypto (Crypto, StandardCrypto)
import Cardano.Ledger.Era (Era)
import qualified Cardano.Ledger.Era as Ledger
import qualified Cardano.Ledger.Hashes as Ledger
import qualified Cardano.Ledger.Keys as Ledger
import Cardano.Ledger.Mary.Value (AssetName (AssetName), MaryValue (..), PolicyID (PolicyID))
import Cardano.Ledger.Mary.Value (AssetName (AssetName),
MaryValue (..), PolicyID (PolicyID))
import qualified Cardano.Ledger.SafeHash as Ledger
import Cardano.Ledger.Shelley.API (Metadata (Metadata), MultiSig (..), ShelleyTxBody (..), ShelleyTxOut (..))
import Cardano.Ledger.Shelley.API (Metadata (Metadata), MultiSig (..),
ShelleyTxBody (..), ShelleyTxOut (..))
import qualified Cardano.Ledger.Shelley.API as Ledger
import Cardano.Ledger.Shelley.BlockChain (txSeqTxns')
import Cardano.Ledger.Shelley.BlockChain (txSeqTxns')
import qualified Cardano.Ledger.Shelley.Metadata as Metadata
import Cardano.Ledger.Shelley.Tx (WitnessSetHKD (WitnessSet))
import Cardano.Ledger.ShelleyMA (MAAuxiliaryData, MATxBody, MaryOrAllegra (..), ShelleyMAEra)
import Cardano.Ledger.Shelley.Tx (WitnessSetHKD (WitnessSet))
import Cardano.Ledger.ShelleyMA (MAAuxiliaryData, MATxBody,
MaryOrAllegra (..), ShelleyMAEra)
import qualified Cardano.Ledger.ShelleyMA.Timelocks as Ledger.Mary
import Cardano.Ledger.ShelleyMA.TxBody (MATxBody (..))
import Data.Aeson (
ToJSON (..),
ToJSONKey,
Value (..),
object,
toJSONKey,
(.=),
)
import Cardano.Ledger.ShelleyMA.TxBody (MATxBody (..))
import Data.Aeson (ToJSON (..), ToJSONKey, Value (..), object,
toJSONKey, (.=))
import qualified Data.Aeson as Aeson
import Data.Aeson.Types (
Pair,
toJSONKeyText,
)
import Data.Aeson.Types (Pair, toJSONKeyText)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Base16 as Base16
import qualified Data.ByteString.Base16 as SHex
import Data.ByteString.Short (fromShort)
import Data.Foldable (toList)
import Data.ByteString.Short (fromShort)
import Data.Foldable (toList)
import qualified Data.Map as Map
import Data.Maybe.Strict (StrictMaybe (..), isSJust)
import Data.Text (Text, pack)
import Data.Maybe.Strict (StrictMaybe (..), isSJust)
import Data.Text (Text, pack)
import qualified Data.Text.Encoding as SE
import Data.Typeable (Typeable)
import Ouroboros.Consensus.Block (HeaderFields (..), getHeader, getHeaderFields, unBlockNo)
import Ouroboros.Consensus.Byron.Ledger (ByronBlock (..))
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Cardano.Block (HardForkBlock (..), Header, ShelleyEra)
import Ouroboros.Consensus.HardFork.Combinator (OneEraBlock (getOneEraBlock), OneEraHash, getHardForkBlock, getOneEraHash)
import Ouroboros.Consensus.Protocol.Praos.Translate ()
import Ouroboros.Consensus.Shelley.Ledger (ShelleyBlock (..))
import Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol ()
import Ouroboros.Consensus.Util.SOP (nsToIndex)
import Data.Typeable (Typeable)
import Ouroboros.Consensus.Block (HeaderFields (..), getHeader,
getHeaderFields, unBlockNo)
import Ouroboros.Consensus.Byron.Ledger (ByronBlock (..))
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Cardano.Block (HardForkBlock (..), Header,
ShelleyEra)
import Ouroboros.Consensus.HardFork.Combinator
(OneEraBlock (getOneEraBlock), OneEraHash,
getHardForkBlock, getOneEraHash)
import Ouroboros.Consensus.Protocol.Praos.Translate ()
import Ouroboros.Consensus.Shelley.Ledger (ShelleyBlock (..))
import Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol ()
import Ouroboros.Consensus.Util.SOP (nsToIndex)

type CBlock = CardanoBlock StandardCrypto

Expand Down Expand Up @@ -352,7 +347,7 @@ instance ToJSON (Ledger.TxIn StandardCrypto) where
toJSON (Ledger.TxIn ti ti') =
case toJSON ti of
String txt -> String $ txt <> "#" <> pack (show ti')
other -> error $ "Invalid encoding for txId: " <> show other
other -> error $ "Invalid encoding for txId: " <> show other

-- TxOut
instance ToJSON (Ledger.Babbage.BabbageTxOut LedgerEra) where
Expand All @@ -367,9 +362,9 @@ instance ToJSON (Ledger.Babbage.BabbageTxOut LedgerEra) where
-- Datum

instance ToJSON (Ledger.Babbage.Datum LedgerEra) where
toJSON NoDatum = Null
toJSON NoDatum = Null
toJSON (DatumHash sh) = toJSON sh
toJSON (Datum sbs) = String $ pack $ show $ binaryDataToData sbs
toJSON (Datum sbs) = String $ pack $ show $ binaryDataToData sbs

-- Value

Expand Down Expand Up @@ -645,4 +640,4 @@ onlyIf predicate k v =
isOpenInterval :: Ledger.Mary.ValidityInterval -> Bool
isOpenInterval = \case
Ledger.Mary.ValidityInterval SNothing SNothing -> True
_ -> False
_ -> False
26 changes: 15 additions & 11 deletions ouroboros-consensus-cardano-tools/src/Cardano/Tools/DB.hs
@@ -1,22 +1,26 @@
module Cardano.Tools.DB (withImmutableDB) where

import Cardano.Tools.DBAnalyser.Block.Cardano (Args (CardanoBlockArgs))
import Cardano.Tools.DBAnalyser.HasAnalysis (mkProtocolInfo)
import Cardano.Tools.DBAnalyser.Types ()
import Control.Tracer (nullTracer)
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Config (configSecurityParam, configStorage)
import Cardano.Tools.DBAnalyser.Block.Cardano
(Args (CardanoBlockArgs))
import Cardano.Tools.DBAnalyser.HasAnalysis (mkProtocolInfo)
import Cardano.Tools.DBAnalyser.Types ()
import Control.Tracer (nullTracer)
import Ouroboros.Consensus.Cardano (CardanoBlock)
import Ouroboros.Consensus.Config (configSecurityParam, configStorage)
import qualified Ouroboros.Consensus.Fragment.InFuture as InFuture
import qualified Ouroboros.Consensus.Node as Node
import qualified Ouroboros.Consensus.Node.InitStorage as InitStorage
import Ouroboros.Consensus.Node.ProtocolInfo (ProtocolInfo (..))
import Ouroboros.Consensus.Shelley.Crypto (StandardCrypto)
import Ouroboros.Consensus.Node.ProtocolInfo (ProtocolInfo (..))
import Ouroboros.Consensus.Shelley.Crypto (StandardCrypto)
import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB
import Ouroboros.Consensus.Storage.ChainDB.Impl.Args (fromChainDbArgs)
import Ouroboros.Consensus.Storage.ChainDB.Impl.Args (fromChainDbArgs)
import qualified Ouroboros.Consensus.Storage.ImmutableDB as ImmutableDB
import Ouroboros.Consensus.Storage.LedgerDB.DiskPolicy (SnapshotInterval (DefaultSnapshotInterval), defaultDiskPolicy)
import Ouroboros.Consensus.Storage.LedgerDB.DiskPolicy
(SnapshotInterval (DefaultSnapshotInterval),
defaultDiskPolicy)
import qualified Ouroboros.Consensus.Storage.VolatileDB as VolatileDB
import Ouroboros.Consensus.Util.ResourceRegistry (runWithTempRegistry, withRegistry)
import Ouroboros.Consensus.Util.ResourceRegistry (runWithTempRegistry,
withRegistry)

withImmutableDB ::
FilePath ->
Expand Down

0 comments on commit 481d86e

Please sign in to comment.