@@ -161,9 +161,7 @@ queryEpochNo ::
161
161
IO EpochNo
162
162
queryEpochNo networkId socket queryPoint = do
163
163
runQueryExpr networkId socket queryPoint $ do
164
- (AnyCardanoEra era) <- queryCurrentEraExpr
165
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
166
- queryInShelleyBasedEraExpr sbe QueryEpoch
164
+ queryForCurrentEraInShelleyBasedEraExpr (`queryInShelleyBasedEraExpr` QueryEpoch )
167
165
168
166
-- | Query the protocol parameters at given point and convert them to Babbage
169
167
-- era protocol parameters.
@@ -178,10 +176,9 @@ queryProtocolParameters ::
178
176
IO (PParams LedgerEra )
179
177
queryProtocolParameters networkId socket queryPoint =
180
178
runQueryExpr networkId socket queryPoint $ do
181
- (AnyCardanoEra era) <- queryCurrentEraExpr
182
- sbe <- liftIO $ assumeShelleyBasedEraOrThrow era
183
- eraPParams <- queryInShelleyBasedEraExpr sbe QueryProtocolParameters
184
- liftIO $ coercePParamsToLedgerEra era eraPParams
179
+ queryForCurrentEraInShelleyBasedEraExpr $ \ sbe -> do
180
+ eraPParams <- queryInShelleyBasedEraExpr sbe QueryProtocolParameters
181
+ liftIO $ coercePParamsToLedgerEra (convert sbe) eraPParams
185
182
where
186
183
encodeToEra eraToEncode pparams =
187
184
case eitherDecode' (encode pparams) of
@@ -211,19 +208,16 @@ queryGenesisParameters ::
211
208
IO (GenesisParameters ShelleyEra )
212
209
queryGenesisParameters networkId socket queryPoint =
213
210
runQueryExpr networkId socket queryPoint $ do
214
- (AnyCardanoEra era) <- queryCurrentEraExpr
215
- sbe <- liftIO $ assumeShelleyBasedEraOrThrow era
216
- queryInShelleyBasedEraExpr sbe QueryGenesisParameters
211
+ queryForCurrentEraInShelleyBasedEraExpr (`queryInShelleyBasedEraExpr` QueryGenesisParameters )
217
212
218
213
-- | Query UTxO for all given addresses at given point.
219
214
--
220
215
-- Throws at least 'QueryException' if query fails.
221
216
queryUTxO :: NetworkId -> SocketPath -> QueryPoint -> [Address ShelleyAddr ] -> IO UTxO
222
217
queryUTxO networkId socket queryPoint addresses =
223
218
runQueryExpr networkId socket queryPoint $ do
224
- (AnyCardanoEra era) <- queryCurrentEraExpr
225
- sbe <- liftIO $ assumeShelleyBasedEraOrThrow era
226
- queryUTxOExpr sbe addresses
219
+ queryForCurrentEraInShelleyBasedEraExpr
220
+ (`queryUTxOExpr` addresses)
227
221
228
222
queryUTxOExpr :: ShelleyBasedEra era -> [Address ShelleyAddr ] -> LocalStateQueryExpr b p QueryInMode r IO UTxO
229
223
queryUTxOExpr sbe addresses = do
@@ -242,14 +236,24 @@ queryUTxOByTxIn ::
242
236
[TxIn ] ->
243
237
IO UTxO
244
238
queryUTxOByTxIn networkId socket queryPoint inputs =
245
- runQueryExpr networkId socket queryPoint $ do
246
- (AnyCardanoEra era) <- queryCurrentEraExpr
247
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
248
- eraUTxO <- queryInShelleyBasedEraExpr sbe $ QueryUTxO (QueryUTxOByTxIn (Set. fromList inputs))
249
- pure $ UTxO. fromApi eraUTxO
239
+ runQueryExpr networkId socket queryPoint $
240
+ queryForCurrentEraInShelleyBasedEraExpr
241
+ (fmap UTxO. fromApi . flip queryInShelleyBasedEraExpr (QueryUTxO (QueryUTxOByTxIn (Set. fromList inputs))))
242
+
243
+ queryForCurrentEraInEonExpr ::
244
+ Eon eon =>
245
+ (AnyCardanoEra -> IO a ) ->
246
+ (forall era . eon era -> LocalStateQueryExpr b p QueryInMode r IO a ) ->
247
+ LocalStateQueryExpr b p QueryInMode r IO a
248
+ queryForCurrentEraInEonExpr no yes = do
249
+ k@ (AnyCardanoEra era) <- queryCurrentEraExpr
250
+ inEonForEra (liftIO $ no k) yes era
250
251
251
- assumeShelleyBasedEraOrThrow :: MonadThrow m => CardanoEra era -> m (ShelleyBasedEra era )
252
- assumeShelleyBasedEraOrThrow era = inEonForEra (throwIO $ QueryNotShelleyBasedEraException $ anyCardanoEra era) pure era
252
+ queryForCurrentEraInShelleyBasedEraExpr ::
253
+ Eon eon =>
254
+ (forall era . eon era -> LocalStateQueryExpr b p QueryInMode r IO a ) ->
255
+ LocalStateQueryExpr b p QueryInMode r IO a
256
+ queryForCurrentEraInShelleyBasedEraExpr = queryForCurrentEraInEonExpr (throwIO . QueryNotShelleyBasedEraException )
253
257
254
258
-- | Query the whole UTxO from node at given point. Useful for debugging, but
255
259
-- should obviously not be used in production code.
@@ -264,10 +268,8 @@ queryUTxOWhole ::
264
268
IO UTxO
265
269
queryUTxOWhole networkId socket queryPoint = do
266
270
runQueryExpr networkId socket queryPoint $ do
267
- (AnyCardanoEra era) <- queryCurrentEraExpr
268
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
269
- eraUTxO <- queryInShelleyBasedEraExpr sbe $ QueryUTxO QueryUTxOWhole
270
- pure $ UTxO. fromApi eraUTxO
271
+ queryForCurrentEraInShelleyBasedEraExpr
272
+ (fmap UTxO. fromApi . flip queryInShelleyBasedEraExpr (QueryUTxO QueryUTxOWhole ))
271
273
272
274
-- | Query UTxO for the address of given verification key at point.
273
275
--
@@ -292,9 +294,7 @@ queryStakePools ::
292
294
IO (Set PoolId )
293
295
queryStakePools networkId socket queryPoint =
294
296
runQueryExpr networkId socket queryPoint $ do
295
- (AnyCardanoEra era) <- queryCurrentEraExpr
296
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
297
- queryInShelleyBasedEraExpr sbe QueryStakePools
297
+ queryForCurrentEraInShelleyBasedEraExpr (`queryInShelleyBasedEraExpr` QueryStakePools )
298
298
299
299
-- * Helpers
300
300
0 commit comments