@@ -199,6 +199,8 @@ runQueryCmd cmd =
199
199
runQueryKesPeriodInfo consensusModeParams network nodeOpCert mOutFile
200
200
QueryPoolState' consensusModeParams network poolid ->
201
201
runQueryPoolState consensusModeParams network poolid
202
+ QueryTxMempool consensusModeParams network op mOutFile ->
203
+ runQueryTxMempool consensusModeParams network op mOutFile
202
204
203
205
runQueryProtocolParameters
204
206
:: AnyConsensusModeParams
@@ -620,6 +622,34 @@ runQueryPoolState (AnyConsensusModeParams cModeParams) network poolIds = do
620
622
result <- executeQuery era cModeParams localNodeConnInfo qInMode
621
623
obtainLedgerEraClassConstraints sbe writePoolState result
622
624
625
+ -- | Query the local mempool state
626
+ runQueryTxMempool
627
+ :: AnyConsensusModeParams
628
+ -> NetworkId
629
+ -> TxMempoolQuery
630
+ -> Maybe OutputFile
631
+ -> ExceptT ShelleyQueryCmdError IO ()
632
+ runQueryTxMempool (AnyConsensusModeParams cModeParams) network query mOutFile = do
633
+ SocketPath sockPath <- firstExceptT ShelleyQueryCmdEnvVarSocketErr readEnvSocketPath
634
+ let localNodeConnInfo = LocalNodeConnectInfo cModeParams network sockPath
635
+
636
+ localQuery <- case query of
637
+ TxMempoolQueryTxExists tx -> do
638
+ anyE@ (AnyCardanoEra era) <- determineEra cModeParams localNodeConnInfo
639
+ let cMode = consensusModeOnly cModeParams
640
+ eInMode <- toEraInMode era cMode
641
+ & hoistMaybe (ShelleyQueryCmdEraConsensusModeMismatch (AnyConsensusMode cMode) anyE)
642
+ pure $ LocalTxMonitoringQueryTx $ TxIdInMode tx eInMode
643
+ TxMempoolQueryNextTx -> pure LocalTxMonitoringSendNextTx
644
+ TxMempoolQueryInfo -> pure LocalTxMonitoringMempoolInformation
645
+
646
+ result <- liftIO $ queryTxMonitoringLocal localNodeConnInfo localQuery
647
+ let renderedResult = encodePretty result
648
+ case mOutFile of
649
+ Nothing -> liftIO $ LBS. putStrLn renderedResult
650
+ Just (OutputFile oFp) -> handleIOExceptT (ShelleyQueryCmdWriteFileError . FileIOError oFp)
651
+ $ LBS. writeFile oFp renderedResult
652
+
623
653
624
654
-- | Obtain stake snapshot information for a pool, plus information about the total active stake.
625
655
-- This information can be used for leader slot calculation, for example, and has been requested by SPOs.
0 commit comments