Skip to content

Commit 20728b7

Browse files
committed
New --all-pools flag for query stake-snapshots command
1 parent bc19351 commit 20728b7

File tree

5 files changed

+35
-16
lines changed

5 files changed

+35
-16
lines changed

cardano-api/src/Cardano/Api/Orphans.hs

-2
Original file line numberDiff line numberDiff line change
@@ -689,8 +689,6 @@ instance Crypto.Crypto crypto => ToJSON (VMap VB VP (Shelley.Credential 'Shelley
689689
toJSON = toJSON . fmap fromCompact . VMap.toMap
690690
toEncoding = toEncoding . fmap fromCompact . VMap.toMap
691691

692-
-----
693-
694692
instance Crypto.Crypto crypto => ToJSON (Consensus.StakeSnapshots crypto) where
695693
toJSON = object . stakeSnapshotsToPair
696694
toEncoding = pairs . mconcat . stakeSnapshotsToPair

cardano-cli/src/Cardano/CLI/Shelley/Commands.hs

+4-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,10 @@ data QueryCmd =
361361
| QueryUTxO' AnyConsensusModeParams QueryUTxOFilter NetworkId (Maybe OutputFile)
362362
| QueryDebugLedgerState' AnyConsensusModeParams NetworkId (Maybe OutputFile)
363363
| QueryProtocolState' AnyConsensusModeParams NetworkId (Maybe OutputFile)
364-
| QueryStakeSnapshot' AnyConsensusModeParams NetworkId [Hash StakePoolKey]
364+
| QueryStakeSnapshot'
365+
AnyConsensusModeParams
366+
NetworkId
367+
(AllOrOnly [Hash StakePoolKey])
365368
| QueryKesPeriodInfo
366369
AnyConsensusModeParams
367370
NetworkId

cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs

+17-5
Original file line numberDiff line numberDiff line change
@@ -990,11 +990,21 @@ pQueryCmd =
990990
<*> pNetworkId
991991
<*> pMaybeOutputFile
992992

993+
pAllPoolsOrOnly :: Parser (AllOrOnly [Hash StakePoolKey])
994+
pAllPoolsOrOnly = pAll <|> pOnly
995+
where pAll :: Parser (AllOrOnly [Hash StakePoolKey])
996+
pAll = Opt.flag' All
997+
( Opt.long "all-pools"
998+
<> Opt.help "Query for all pools"
999+
)
1000+
pOnly :: Parser (AllOrOnly [Hash StakePoolKey])
1001+
pOnly = Only <$> many pStakePoolVerificationKeyHash
1002+
9931003
pQueryStakeSnapshot :: Parser QueryCmd
9941004
pQueryStakeSnapshot = QueryStakeSnapshot'
9951005
<$> pConsensusModeParams
9961006
<*> pNetworkId
997-
<*> many pStakePoolVerificationKeyHash
1007+
<*> pAllPoolsOrOnly
9981008

9991009
pQueryPoolState :: Parser QueryCmd
10001010
pQueryPoolState = QueryPoolState'
@@ -2572,10 +2582,12 @@ pStakePoolVerificationKeyHash :: Parser (Hash StakePoolKey)
25722582
pStakePoolVerificationKeyHash =
25732583
Opt.option
25742584
(pBech32StakePoolId <|> pHexStakePoolId)
2575-
( Opt.long "stake-pool-id"
2576-
<> Opt.metavar "STAKE-POOL-ID"
2577-
<> Opt.help "Stake pool ID/verification key hash (either \
2578-
\Bech32-encoded or hex-encoded)."
2585+
( Opt.long "stake-pool-id"
2586+
<> Opt.metavar "STAKE_POOL_ID"
2587+
<> Opt.help
2588+
( "Stake pool ID/verification key hash (either Bech32-encoded or hex-encoded). "
2589+
<> "Zero or more occurences of this option is allowed."
2590+
)
25792591
)
25802592
where
25812593
pHexStakePoolId :: ReadM (Hash StakePoolKey)

cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs

+11-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module Cardano.CLI.Shelley.Run.Query
2525
, executeQuery
2626
) where
2727

28-
import Cardano.Prelude
28+
import Cardano.Prelude hiding (All)
2929
import Prelude (String, id)
3030

3131
import Cardano.Api
@@ -186,8 +186,8 @@ runQueryCmd cmd =
186186
runQueryStakeAddressInfo consensusModeParams addr network mOutFile
187187
QueryDebugLedgerState' consensusModeParams network mOutFile ->
188188
runQueryLedgerState consensusModeParams network mOutFile
189-
QueryStakeSnapshot' consensusModeParams network mPoolIds ->
190-
runQueryStakeSnapshot consensusModeParams network mPoolIds
189+
QueryStakeSnapshot' consensusModeParams network allOrOnlyPoolIds ->
190+
runQueryStakeSnapshot consensusModeParams network allOrOnlyPoolIds
191191
QueryProtocolState' consensusModeParams network mOutFile ->
192192
runQueryProtocolState consensusModeParams network mOutFile
193193
QueryUTxO' consensusModeParams qFilter networkId mOutFile ->
@@ -670,9 +670,9 @@ runQueryTxMempool (AnyConsensusModeParams cModeParams) network query mOutFile =
670670
runQueryStakeSnapshot
671671
:: AnyConsensusModeParams
672672
-> NetworkId
673-
-> [Hash StakePoolKey]
673+
-> AllOrOnly [Hash StakePoolKey]
674674
-> ExceptT ShelleyQueryCmdError IO ()
675-
runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network mPoolIds = do
675+
runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network allOrOnlyPoolIds = do
676676
SocketPath sockPath <- firstExceptT ShelleyQueryCmdEnvVarSocketErr $ newExceptT readEnvSocketPath
677677
let localNodeConnInfo = LocalNodeConnectInfo cModeParams network sockPath
678678

@@ -686,9 +686,12 @@ runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network mPoolIds = do
686686
eInMode <- toEraInMode era cMode
687687
& hoistMaybe (ShelleyQueryCmdEraConsensusModeMismatch (AnyConsensusMode cMode) anyE)
688688

689-
let qInMode = QueryInEra eInMode . QueryInShelleyBasedEra sbe $ QueryStakeSnapshot $ case mPoolIds of
690-
[] -> Nothing
691-
_ -> Just $ Set.fromList mPoolIds
689+
let qInMode = QueryInEra eInMode . QueryInShelleyBasedEra sbe $ QueryStakeSnapshot $ case allOrOnlyPoolIds of
690+
All -> Nothing
691+
Only poolIds -> Just $ Set.fromList poolIds
692+
693+
liftIO $ IO.putStrLn $ "switch: " <> show allOrOnlyPoolIds
694+
692695
result <- executeQuery era cModeParams localNodeConnInfo qInMode
693696
obtainLedgerEraClassConstraints sbe writeStakeSnapshots result
694697

cardano-cli/src/Cardano/CLI/Types.hs

+3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module Cardano.CLI.Types
3838
, VerificationKeyFile (..)
3939
, Params (..)
4040
, RequiredSigner (..)
41+
, AllOrOnly(..)
4142
) where
4243

4344
import Cardano.Prelude hiding (Word64)
@@ -181,6 +182,8 @@ data OutputFormat
181182
| OutputFormatBech32
182183
deriving (Eq, Show)
183184

185+
data AllOrOnly a = All | Only a deriving (Eq, Show)
186+
184187
-- | This data structure is used to allow nicely formatted output in the query pool-params command.
185188
-- params are the current pool parameter settings, futureparams are new parameters, retiringEpoch is the
186189
-- epoch that has been set for pool retirement. Any of these may be Nothing.

0 commit comments

Comments
 (0)