Skip to content

Commit

Permalink
Reduce export surface area
Browse files Browse the repository at this point in the history
  • Loading branch information
newhoggy committed Feb 26, 2021
1 parent 784789a commit 1498334
Show file tree
Hide file tree
Showing 19 changed files with 164 additions and 225 deletions.
22 changes: 9 additions & 13 deletions cardano-api/cardano-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,8 @@ library

exposed-modules: Cardano.Api
Cardano.Api.Byron
Cardano.Api.Shelley

Cardano.Api.Crypto.Ed25519Bip32

Cardano.Api.IPC
Cardano.Api.Shelley

-- TODO: Eliminate in the future when
-- we create wrapper types for the ledger types
Expand All @@ -34,27 +31,22 @@ library
Cardano.Api.Protocol.Shelley
Cardano.Api.Protocol.Types

-- TODO Review this. Made public to compile cardano-rest
Cardano.Api.TxBody
Cardano.Api.Modes
Cardano.Api.TxSubmit.Types
Cardano.Api.TxInMode
Cardano.Api.Eras
Cardano.Api.TxSubmit.ErrorRender

other-modules:
-- Splitting up the big Typed module:
Cardano.Api.Address
Cardano.Api.Block
Cardano.Api.Certificate
Cardano.Api.Eras
Cardano.Api.Error
Cardano.Api.Fees
Cardano.Api.Hash
Cardano.Api.HasTypeProxy
Cardano.Api.IPC
Cardano.Api.Key
Cardano.Api.KeysByron
Cardano.Api.KeysShelley
Cardano.Api.KeysPraos
Cardano.Api.KeysShelley
Cardano.Api.Modes
Cardano.Api.NetworkId
Cardano.Api.OperationalCertificate
Cardano.Api.ProtocolParameters
Expand All @@ -69,7 +61,11 @@ library
Cardano.Api.SpecialByron
Cardano.Api.StakePoolMetadata
Cardano.Api.Tx
Cardano.Api.TxBody
Cardano.Api.TxInMode
Cardano.Api.TxMetadata
Cardano.Api.TxSubmit.ErrorRender
Cardano.Api.TxSubmit.Types
Cardano.Api.Utils
Cardano.Api.Value

Expand Down
2 changes: 1 addition & 1 deletion cardano-api/src/Cardano/Api.hs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ module Cardano.Api (
TxBodyError(..),

-- ** Transaction Ids
TxId,
TxId(..),
getTxId,

-- ** Transaction inputs
Expand Down
2 changes: 1 addition & 1 deletion cardano-submit-api/LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 2021 Input Output (Hong Kong) Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
8 changes: 4 additions & 4 deletions cardano-submit-api/cardano-submit-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ name: cardano-submit-api
version: 3.1.2
synopsis: A web server that allows transactions to be POSTed to the cardano chain
description:
homepage: https://github.com/input-output-hk/cardano-explorer
bug-reports: https://github.com/input-output-hk/cardano-explorer/issues
homepage: https://github.com/input-output-hk/cardano-node
bug-reports: https://github.com/input-output-hk/cardano-node/issues
license: Apache-2.0
license-file: LICENSE
author: IOHK Engineering Team
Expand Down Expand Up @@ -45,6 +45,7 @@ common ouroboros-consensus-shelley { build-depends: ouroboros-consensus-shelley
common ouroboros-network { build-depends: ouroboros-network >= 0.1.0.0 }
common ouroboros-network-framework { build-depends: ouroboros-network-framework >= 0.1.0.0 }
common prometheus { build-depends: prometheus >= 2.2.2 }
common protolude { build-depends: protolude >= 0.3.0 }
common servant { build-depends: servant >= 0.18.2 }
common servant-server { build-depends: servant-server >= 0.18.2 }
common shelley-spec-ledger { build-depends: shelley-spec-ledger >= 0.1.0.0 }
Expand Down Expand Up @@ -98,6 +99,7 @@ library
, ouroboros-network
, ouroboros-network-framework
, prometheus
, protolude
, servant
, servant-server
, shelley-spec-ledger
Expand All @@ -116,13 +118,11 @@ library
, Cardano.TxSubmit.CLI.Types
, Cardano.TxSubmit.Config
, Cardano.TxSubmit.ErrorRender
, Cardano.TxSubmit.JsonOrphans
, Cardano.TxSubmit.Metrics
, Cardano.TxSubmit.Rest.Parsers
, Cardano.TxSubmit.Rest.Types
, Cardano.TxSubmit.Rest.Web
, Cardano.TxSubmit.Tracing.ToObjectOrphans
, Cardano.TxSubmit.Tx
, Cardano.TxSubmit.Types
, Cardano.TxSubmit.Util
, Cardano.TxSubmit.Web
Expand Down
30 changes: 17 additions & 13 deletions cardano-submit-api/src/Cardano/TxSubmit.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@
{-# LANGUAGE OverloadedStrings #-}

module Cardano.TxSubmit
( module X
, runTxSubmitWebapi
( runTxSubmitWebapi
, opts
) where

import Cardano.BM.Trace (Trace, logInfo)
import Cardano.Prelude
import Cardano.TxSubmit.CLI.Parsers as X
import Cardano.TxSubmit.CLI.Types as X
import Cardano.TxSubmit.Config as Xq
import Cardano.TxSubmit.CLI.Parsers (opts)
import Cardano.TxSubmit.CLI.Types (ConfigFile (unConfigFile), TxSubmitNodeParams (..))
import Cardano.TxSubmit.Config (GenTxSubmitNodeConfig (..), ToggleLogging (..),
TxSubmitNodeConfig, readTxSubmitNodeConfig)
import Cardano.TxSubmit.Metrics (registerMetricsServer)
import Cardano.TxSubmit.Types as X
import Cardano.TxSubmit.Util as X
import Cardano.TxSubmit.Web as X
import Cardano.TxSubmit.Web (runTxSubmitServer)
import Control.Applicative (Applicative (..))
import Control.Monad (void)
import Control.Monad.IO.Class (MonadIO (liftIO))
import Data.Either (Either (..))
import Data.Function (($))
import Data.Text (Text)
import System.IO (IO)

import qualified Cardano.BM.Setup as Logging
import qualified Cardano.BM.Trace as Logging
Expand All @@ -42,7 +47,6 @@ runTxSubmitWebapi tsnp = do
} = tsnp

mkTracer :: TxSubmitNodeConfig -> IO (Trace IO Text)
mkTracer enc =
if not (tscEnableLogging enc)
then pure Logging.nullTracer
else liftIO $ Logging.setupTrace (Right $ tscLoggingConfig enc) "cardano-tx-submit"
mkTracer enc = case tscToggleLogging enc of
LoggingOn -> liftIO $ Logging.setupTrace (Right $ tscLoggingConfig enc) "cardano-tx-submit"
LoggingOff -> pure Logging.nullTracer
28 changes: 14 additions & 14 deletions cardano-submit-api/src/Cardano/TxSubmit/CLI/Parsers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@ module Cardano.TxSubmit.CLI.Parsers
, pSocketPath
) where

import Cardano.Prelude

import Cardano.Api.Modes
import Cardano.Api
( NetworkId (..), NetworkMagic (..) )
import Cardano.TxSubmit.CLI.Types
( ConfigFile (..), SocketPath (..), TxSubmitNodeParams (..) )
import Cardano.TxSubmit.Rest.Parsers
( pWebserverConfig )
import Options.Applicative
( Parser, ParserInfo )
import Cardano.Api (AnyConsensusModeParams (..), ConsensusModeParams (..),
EpochSlots (..), NetworkId (..), NetworkMagic (..))
import Cardano.TxSubmit.CLI.Types (ConfigFile (..), SocketPath (..),
TxSubmitNodeParams (..))
import Cardano.TxSubmit.Rest.Parsers (pWebserverConfig)
import Control.Applicative (Alternative (..), Applicative (..), (<**>))
import Data.Function ((.))
import Data.Functor (Functor (fmap), (<$>))
import Data.Semigroup (Semigroup ((<>)))
import Data.Word (Word64)
import Options.Applicative (Parser, ParserInfo)

import qualified Options.Applicative as Opt

opts :: ParserInfo TxSubmitNodeParams
opts =
Opt.info (pTxSubmitNodeParams <**> Opt.helper)
( Opt.fullDesc
( Opt.fullDesc
<> Opt.progDesc "Cardano transaction submission web API."
)

Expand All @@ -43,7 +43,7 @@ pTxSubmitNodeParams =
pConfigFile :: Parser ConfigFile
pConfigFile =
ConfigFile <$> Opt.strOption
( Opt.long "config"
( Opt.long "config"
<> Opt.help "Path to the tx-submit web API configuration file"
<> Opt.completer (Opt.bashCompleter "file")
<> Opt.metavar "FILEPATH"
Expand Down Expand Up @@ -130,7 +130,7 @@ pProtocol =
pSocketPath :: Parser SocketPath
pSocketPath =
SocketPath <$> Opt.strOption
( Opt.long "socket-path"
( Opt.long "socket-path"
<> Opt.help "Path to a cardano-node socket"
<> Opt.completer (Opt.bashCompleter "file")
<> Opt.metavar "FILEPATH"
Expand Down
10 changes: 2 additions & 8 deletions cardano-submit-api/src/Cardano/TxSubmit/CLI/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,8 @@ module Cardano.TxSubmit.CLI.Types
, TxSubmitNodeParams (..)
) where

-- import Cardano.Api.Protocol
-- ( Protocol (..) )
-- import Cardano.Node.Protocol.Types (Protocol (..))
import Cardano.Api.Modes
import Cardano.Api
( NetworkId (..) )
import Cardano.TxSubmit.Rest.Types
( WebserverConfig )
import Cardano.Api (AnyConsensusModeParams, NetworkId (..))
import Cardano.TxSubmit.Rest.Types (WebserverConfig)

-- | The product type of all command line arguments
data TxSubmitNodeParams = TxSubmitNodeParams
Expand Down
28 changes: 22 additions & 6 deletions cardano-submit-api/src/Cardano/TxSubmit/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,26 @@ module Cardano.TxSubmit.Config
( TxSubmitNodeConfig
, GenTxSubmitNodeConfig (..)
, readTxSubmitNodeConfig
, ToggleLogging(..)
, ToggleMetrics(..)
) where


import Cardano.Prelude
import Cardano.TxSubmit.Util
import Cardano.TxSubmit.Util (textShow)
import Control.Applicative (Applicative (pure, (<*>)))
import Control.Exception (IOException, catch)
import Data.Aeson (FromJSON (..), Object, Value (..), (.:))
import Data.Aeson.Types (Parser)
import Data.Bool (bool)
import Data.ByteString (ByteString)
import Data.Either (Either (Left, Right))
import Data.Eq (Eq)
import Data.Function (($))
import Data.Functor (Functor (..), (<$>))
import Data.Semigroup (Semigroup ((<>)))
import Protolude.Panic (panic)
import System.IO (FilePath, IO)
import Text.Show (Show)

import qualified Cardano.BM.Configuration as Logging
import qualified Cardano.BM.Configuration.Model as Logging
Expand All @@ -25,10 +38,13 @@ import qualified Data.Yaml as Yaml

type TxSubmitNodeConfig = GenTxSubmitNodeConfig Logging.Configuration

data ToggleLogging = LoggingOn | LoggingOff deriving (Eq, Show)
data ToggleMetrics = MetricsOn | MetricsOff deriving (Eq, Show)

data GenTxSubmitNodeConfig a = GenTxSubmitNodeConfig
{ tscLoggingConfig :: !a
, tscEnableLogging :: !Bool
, tscEnableMetrics :: !Bool
, tscToggleLogging :: !ToggleLogging
, tscToggleMetrics :: !ToggleMetrics
}

readTxSubmitNodeConfig :: FilePath -> IO TxSubmitNodeConfig
Expand Down Expand Up @@ -58,5 +74,5 @@ parseGenTxSubmitNodeConfig :: Object -> Parser (GenTxSubmitNodeConfig Logging.Re
parseGenTxSubmitNodeConfig o =
GenTxSubmitNodeConfig
<$> parseJSON (Object o)
<*> o .: "EnableLogging"
<*> o .: "EnableLogMetrics"
<*> fmap (bool LoggingOff LoggingOn) (o .: "EnableLogging")
<*> fmap (bool MetricsOff MetricsOn) (o .: "EnableLogMetrics")
18 changes: 6 additions & 12 deletions cardano-submit-api/src/Cardano/TxSubmit/ErrorRender.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,12 @@ module Cardano.TxSubmit.ErrorRender
-- They will be defined here for now and then moved where they are supposed to be once they
-- are working.

import Cardano.Chain.Byron.API
( ApplyMempoolPayloadErr (..) )
import Cardano.Chain.UTxO.UTxO
( UTxOError (..) )
import Cardano.Chain.UTxO.Validation
( TxValidationError (..), UTxOValidationError (..) )
import Data.Text
( Text )
import Formatting
( build, sformat, stext, (%) )
import Ouroboros.Consensus.Cardano.Block
( EraMismatch (..) )
import Cardano.Chain.Byron.API (ApplyMempoolPayloadErr (..))
import Cardano.Chain.UTxO.UTxO (UTxOError (..))
import Cardano.Chain.UTxO.Validation (TxValidationError (..), UTxOValidationError (..))
import Data.Text (Text)
import Formatting (build, sformat, stext, (%))
import Ouroboros.Consensus.Cardano.Block (EraMismatch (..))

import qualified Data.Text as T

Expand Down
14 changes: 0 additions & 14 deletions cardano-submit-api/src/Cardano/TxSubmit/JsonOrphans.hs

This file was deleted.

17 changes: 9 additions & 8 deletions cardano-submit-api/src/Cardano/TxSubmit/Metrics.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@ module Cardano.TxSubmit.Metrics
, registerMetricsServer
) where

import Cardano.Prelude

import Control.Applicative (Applicative (pure), (<$>))
import Control.Concurrent.Async (Async, async)
import Control.Monad.Reader (MonadIO (liftIO), MonadReader (ask), ReaderT (runReaderT))
import Data.Function (($), (.))
import Data.Monoid (Monoid (mempty))
import System.IO (IO)
import System.Metrics.Prometheus.Concurrent.RegistryT (RegistryT (..), registerGauge,
runRegistryT, unRegistryT)
import System.Metrics.Prometheus.Metric.Gauge (Gauge)
runRegistryT, unRegistryT)
import System.Metrics.Prometheus.Http.Scrape (serveMetricsT)

import System.Metrics.Prometheus.Metric.Gauge (Gauge)

newtype TxSubmitMetrics = TxSubmitMetrics
{ tsmCount :: Gauge
Expand All @@ -28,6 +31,4 @@ registerMetricsServer =
pure (metrics, server)

makeMetrics :: RegistryT IO TxSubmitMetrics
makeMetrics =
TxSubmitMetrics
<$> registerGauge "tx_submit_count" mempty
makeMetrics = TxSubmitMetrics <$> registerGauge "tx_submit_count" mempty
23 changes: 5 additions & 18 deletions cardano-submit-api/src/Cardano/TxSubmit/Rest/Parsers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,11 @@ module Cardano.TxSubmit.Rest.Parsers
( pWebserverConfig
) where

import Cardano.TxSubmit.Rest.Types
( WebserverConfig (..) )
import Data.String
( fromString )
import Network.Wai.Handler.Warp
( HostPreference, Port )
import Options.Applicative
( Parser
, auto
, help
, long
, metavar
, option
, showDefault
, strOption
, switch
, value
)
import Cardano.TxSubmit.Rest.Types (WebserverConfig (..))
import Data.String (fromString)
import Network.Wai.Handler.Warp (HostPreference, Port)
import Options.Applicative (Parser, auto, help, long, metavar, option, showDefault,
strOption, switch, value)

pWebserverConfig :: Port -> Parser WebserverConfig
pWebserverConfig defaultPort = do
Expand Down
2 changes: 1 addition & 1 deletion cardano-submit-api/src/Cardano/TxSubmit/Rest/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Cardano.TxSubmit.Rest.Types
, toWarpSettings
) where

import Data.Function ( (&) )
import Data.Function ((&))

import qualified Network.Wai.Handler.Warp as Warp

Expand Down
Loading

0 comments on commit 1498334

Please sign in to comment.