Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional query expression functions #53

Merged
merged 1 commit into from
Jun 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cardano-api/internal/Cardano/Api/Convenience/Query.hs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ queryStateForBalancedTx era allTxIns certs = runExceptT $ do
& onLeft (left . QceUnsupportedNtcVersion)
& onLeft (left . QueryEraMismatch)

pparams <- lift (queryPparams qeInMode qSbe)
pparams <- lift (queryProtocolParameters qeInMode qSbe)
& onLeft (left . QceUnsupportedNtcVersion)
& onLeft (left . QueryEraMismatch)

Expand Down
106 changes: 106 additions & 0 deletions cardano-api/internal/Cardano/Api/Query/Expr.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,23 @@
module Cardano.Api.Query.Expr
( queryChainBlockNo
, queryChainPoint
, queryCurrentEpochState
, queryCurrentEra
, queryDebugLedgerState
, queryEraHistory
, queryGenesisParameters
, queryPoolDistribution
, queryPoolState
, queryPparams
, queryProtocolParameters
, queryProtocolParametersUpdate
, queryProtocolState
, queryStakeAddresses
, queryStakeDelegDeposits
, queryStakeDistribution
, queryStakePoolParameters
, queryStakePools
, queryStakeSnapshot
, querySystemStart
, queryUtxo
, determineEraExpr
Expand All @@ -17,9 +29,12 @@ import Cardano.Api.Address
import Cardano.Api.Block
import Cardano.Api.Certificate
import Cardano.Api.Eras
import Cardano.Api.GenesisParameters
import Cardano.Api.IPC
import Cardano.Api.IPC.Monad
import Cardano.Api.Keys.Shelley
import Cardano.Api.Modes
import Cardano.Api.NetworkId
import Cardano.Api.ProtocolParameters
import Cardano.Api.Query
import Cardano.Api.Value
Expand All @@ -46,17 +61,85 @@ queryCurrentEra :: ()
queryCurrentEra =
queryExpr $ QueryCurrentEra CardanoModeIsMultiEra

queryCurrentEpochState :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (SerialisedCurrentEpochState era)))
queryCurrentEpochState qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryCurrentEpochState

queryDebugLedgerState :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (SerialisedDebugLedgerState era)))
queryDebugLedgerState qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryDebugLedgerState

queryEraHistory :: ()
=> LocalStateQueryExpr block point (QueryInMode CardanoMode) r IO (Either UnsupportedNtcVersionError (EraHistory CardanoMode))
queryEraHistory =
queryExpr $ QueryEraHistory CardanoModeIsMultiEra

queryGenesisParameters :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch GenesisParameters))
queryGenesisParameters qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryGenesisParameters

queryPoolDistribution :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> Maybe (Set PoolId)
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (SerialisedPoolDistribution era)))
queryPoolDistribution qeInMode qSbe mPoolIds =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe $ QueryPoolDistribution mPoolIds

queryPoolState :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> Maybe (Set PoolId)
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (SerialisedPoolState era)))
queryPoolState qeInMode qSbe mPoolIds =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe $ QueryPoolState mPoolIds

queryPparams :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch ProtocolParameters))
queryPparams qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryProtocolParameters
{-# DEPRECATED queryPparams "Use queryProtocolParameters instead" #-}

queryProtocolParameters :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch ProtocolParameters))
queryProtocolParameters qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryProtocolParameters

queryProtocolParametersUpdate :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (Map (Hash GenesisKey) ProtocolParametersUpdate)))
queryProtocolParametersUpdate qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryProtocolParametersUpdate

queryProtocolState :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (ProtocolState era)))
queryProtocolState qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryProtocolState

queryStakeAddresses :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> Set StakeCredential
-> NetworkId
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (Map StakeAddress Lovelace, Map StakeAddress PoolId)))
queryStakeAddresses qeInMode qSbe stakeCredentials networkId =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe $ QueryStakeAddresses stakeCredentials networkId

queryStakeDelegDeposits :: ()
=> EraInMode era mode
Expand All @@ -66,13 +149,36 @@ queryStakeDelegDeposits :: ()
queryStakeDelegDeposits qeInMode qSbe stakeCreds =
queryExpr $ QueryInEra qeInMode . QueryInShelleyBasedEra qSbe $ QueryStakeDelegDeposits stakeCreds

queryStakeDistribution :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (Map (Hash StakePoolKey) Rational)))
queryStakeDistribution qeInMode qSbe =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe QueryStakeDistribution

queryStakePoolParameters :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> Set PoolId
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (Map PoolId StakePoolParameters)))
queryStakePoolParameters qeInMode qSbe poolIds =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe $ QueryStakePoolParameters poolIds

queryStakePools :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (Set PoolId)))
queryStakePools qeInMode qSbe =
queryExpr $ QueryInEra qeInMode . QueryInShelleyBasedEra qSbe $ QueryStakePools

queryStakeSnapshot :: ()
=> EraInMode era mode
-> ShelleyBasedEra era
-> Maybe (Set PoolId)
-> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError (Either EraMismatch (SerialisedStakeSnapshots era)))
queryStakeSnapshot qeInMode qSbe mPoolIds =
queryExpr $ QueryInEra qeInMode $ QueryInShelleyBasedEra qSbe $ QueryStakeSnapshot mPoolIds

querySystemStart :: ()
=> LocalStateQueryExpr block point (QueryInMode mode) r IO (Either UnsupportedNtcVersionError SystemStart)
querySystemStart =
Expand Down
12 changes: 12 additions & 0 deletions cardano-api/src/Cardano/Api.hs
Original file line number Diff line number Diff line change
Expand Up @@ -853,11 +853,23 @@ module Cardano.Api (
-- ** Query expressions
queryChainBlockNo,
queryChainPoint,
queryCurrentEpochState,
queryCurrentEra,
queryDebugLedgerState,
queryEraHistory,
queryGenesisParameters,
queryPoolDistribution,
queryPoolState,
queryPparams,
queryProtocolParameters,
queryProtocolParametersUpdate,
queryProtocolState,
queryStakeAddresses,
queryStakeDelegDeposits,
queryStakeDistribution,
queryStakePoolParameters,
queryStakePools,
queryStakeSnapshot,
querySystemStart,
queryUtxo,
determineEraExpr,
Expand Down