Skip to content

Commit

Permalink
Update cli query commands to handle Allega/Mary eras
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimbo4350 committed Nov 30, 2020
1 parent 13cc50b commit 8b7cb71
Show file tree
Hide file tree
Showing 6 changed files with 352 additions and 209 deletions.
5 changes: 3 additions & 2 deletions cardano-api/src/Cardano/Api/Address.hs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}

-- | Cardano addresses: payment and stake addresses.
Expand Down Expand Up @@ -53,6 +53,7 @@ module Cardano.Api.Address (
fromShelleyStakeAddr,
fromShelleyStakeCredential,
fromShelleyStakeReference,
coerceShelleyStakeCredential,

-- * Serialising addresses
SerialiseAddress(..),
Expand All @@ -64,10 +65,10 @@ module Cardano.Api.Address (

import Prelude

import qualified Data.ByteString.Base58 as Base58
import Data.Coerce
import Data.Text (Text)
import qualified Data.Text.Encoding as Text
import qualified Data.ByteString.Base58 as Base58

import Control.Applicative

Expand Down
4 changes: 2 additions & 2 deletions cardano-api/src/Cardano/Api/Typed.hs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ module Cardano.Api.Typed (
makeStakeAddress,
StakeKey,
StakeExtendedKey,
coerceShelleyStakeCredential,

-- * Currency values
-- ** Ada \/ Lovelace
Expand Down Expand Up @@ -556,7 +557,7 @@ import qualified Cardano.Chain.Slotting as Byron
--
-- Shelley imports
--
import Ouroboros.Consensus.Shelley.Eras (StandardAllegra, StandardShelley, StandardMary)
import Ouroboros.Consensus.Shelley.Eras (StandardAllegra, StandardMary, StandardShelley)
import Ouroboros.Consensus.Shelley.Protocol.Crypto (StandardCrypto)

import qualified Shelley.Spec.Ledger.Address as Shelley
Expand Down Expand Up @@ -663,7 +664,6 @@ withNodeProtocolClient (ByronMode epochSlots) f =
f (mkNodeClientProtocolByron epochSlots)

withNodeProtocolClient ShelleyMode f = f mkNodeClientProtocolShelley

withNodeProtocolClient (CardanoMode epochSlots) f =
f (mkNodeClientProtocolCardano epochSlots)

Expand Down
14 changes: 7 additions & 7 deletions cardano-cli/src/Cardano/CLI/Shelley/Commands.hs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ module Cardano.CLI.Shelley.Commands
import Data.Text (Text)
import Prelude

import Cardano.Api.Typed hiding (PoolId)
import Cardano.Api.Protocol (Protocol)
import Cardano.Api.Typed hiding (PoolId)

import Ouroboros.Consensus.BlockchainTime (SystemStart (..))

Expand Down Expand Up @@ -270,13 +270,13 @@ renderPoolCmd cmd =
PoolMetaDataHash {} -> "stake-pool metadata-hash"

data QueryCmd =
QueryProtocolParameters Protocol NetworkId (Maybe OutputFile)
QueryProtocolParameters AnyCardanoEra Protocol NetworkId (Maybe OutputFile)
| QueryTip Protocol NetworkId (Maybe OutputFile)
| QueryStakeDistribution Protocol NetworkId (Maybe OutputFile)
| QueryStakeAddressInfo Protocol StakeAddress NetworkId (Maybe OutputFile)
| QueryUTxO Protocol QueryFilter NetworkId (Maybe OutputFile)
| QueryLedgerState Protocol NetworkId (Maybe OutputFile)
| QueryProtocolState Protocol NetworkId (Maybe OutputFile)
| QueryStakeDistribution AnyCardanoEra Protocol NetworkId (Maybe OutputFile)
| QueryStakeAddressInfo AnyCardanoEra Protocol StakeAddress NetworkId (Maybe OutputFile)
| QueryUTxO AnyCardanoEra Protocol QueryFilter NetworkId (Maybe OutputFile)
| QueryLedgerState AnyCardanoEra Protocol NetworkId (Maybe OutputFile)
| QueryProtocolState AnyCardanoEra Protocol NetworkId (Maybe OutputFile)
deriving (Eq, Show)

renderQueryCmd :: QueryCmd -> Text
Expand Down
45 changes: 28 additions & 17 deletions cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ module Cardano.CLI.Shelley.Parsers
import Cardano.Prelude hiding (All, Any, option)
import Prelude (String)

import Cardano.Api.Typed hiding (PoolId)
import Cardano.Api.Protocol (Protocol (..))
import Cardano.Api.Typed hiding (PoolId)

import Cardano.Chain.Slotting (EpochSlots (..))
import Cardano.CLI.Shelley.Commands
Expand Down Expand Up @@ -663,41 +663,52 @@ pQueryCmd =
pQueryProtocolParameters :: Parser QueryCmd
pQueryProtocolParameters =
QueryProtocolParameters
<$> pProtocol
<$> pCardanoEra
<*> pProtocol
<*> pNetworkId
<*> pMaybeOutputFile

pQueryTip :: Parser QueryCmd
pQueryTip = QueryTip <$> pProtocol <*> pNetworkId <*> pMaybeOutputFile
pQueryTip = QueryTip
<$> pProtocol
<*> pNetworkId
<*> pMaybeOutputFile

pQueryUTxO :: Parser QueryCmd
pQueryUTxO =
QueryUTxO
<$> pProtocol
<$> pCardanoEra
<*> pProtocol
<*> pQueryFilter
<*> pNetworkId
<*> pMaybeOutputFile

pQueryStakeDistribution :: Parser QueryCmd
pQueryStakeDistribution =
QueryStakeDistribution
<$> pProtocol
<$> pCardanoEra
<*> pProtocol
<*> pNetworkId
<*> pMaybeOutputFile

pQueryStakeAddressInfo :: Parser QueryCmd
pQueryStakeAddressInfo =
QueryStakeAddressInfo
<$> pProtocol
<$> pCardanoEra
<*> pProtocol
<*> pFilterByStakeAddress
<*> pNetworkId
<*> pMaybeOutputFile

pQueryLedgerState :: Parser QueryCmd
pQueryLedgerState = QueryLedgerState <$> pProtocol <*> pNetworkId <*> pMaybeOutputFile
pQueryLedgerState = QueryLedgerState <$> pCardanoEra <*> pProtocol <*> pNetworkId <*> pMaybeOutputFile

pQueryProtocolState :: Parser QueryCmd
pQueryProtocolState = QueryProtocolState <$> pProtocol <*> pNetworkId <*> pMaybeOutputFile
pQueryProtocolState = QueryProtocolState
<$> pCardanoEra
<*> pProtocol
<*> pNetworkId
<*> pMaybeOutputFile

pGovernanceCmd :: Parser GovernanceCmd
pGovernanceCmd =
Expand Down Expand Up @@ -2266,36 +2277,36 @@ pProtocol =
( Opt.long "shelley-mode"
<> Opt.help "For talking to a node running in Shelley-only mode."
)
*> pShelley
*> pShelleyMode
)
<|>
( Opt.flag' ()
( Opt.long "byron-mode"
<> Opt.help "For talking to a node running in Byron-only mode."
)
*> pByron
*> pByronMode
)
<|>
( Opt.flag' ()
( Opt.long "cardano-mode"
<> Opt.help "For talking to a node running in full Cardano mode (default)."
)
*> pCardano
*> pCardanoMode
)
<|>
-- Default to the Cardano protocol.
pure
(CardanoProtocol
(EpochSlots defaultByronEpochSlots))
where
pByron :: Parser Protocol
pByron = ByronProtocol <$> pEpochSlots
pByronMode :: Parser Protocol
pByronMode = ByronProtocol <$> pEpochSlots

pShelley :: Parser Protocol
pShelley = pure ShelleyProtocol
pShelleyMode :: Parser Protocol
pShelleyMode = pure ShelleyProtocol

pCardano :: Parser Protocol
pCardano = CardanoProtocol <$> pEpochSlots
pCardanoMode :: Parser Protocol
pCardanoMode = CardanoProtocol <$> pEpochSlots

pEpochSlots :: Parser EpochSlots
pEpochSlots =
Expand Down

0 comments on commit 8b7cb71

Please sign in to comment.