@@ -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 :: ToJSON a => CardanoEra era -> a -> IO (PParams LedgerEra )
187
184
encodeToEra eraToEncode pparams =
@@ -212,19 +209,16 @@ queryGenesisParameters ::
212
209
IO (GenesisParameters ShelleyEra )
213
210
queryGenesisParameters networkId socket queryPoint =
214
211
runQueryExpr networkId socket queryPoint $ do
215
- (AnyCardanoEra era) <- queryCurrentEraExpr
216
- sbe <- liftIO $ assumeShelleyBasedEraOrThrow era
217
- queryInShelleyBasedEraExpr sbe QueryGenesisParameters
212
+ queryForCurrentEraInShelleyBasedEraExpr (`queryInShelleyBasedEraExpr` QueryGenesisParameters )
218
213
219
214
-- | Query UTxO for all given addresses at given point.
220
215
--
221
216
-- Throws at least 'QueryException' if query fails.
222
217
queryUTxO :: NetworkId -> SocketPath -> QueryPoint -> [Address ShelleyAddr ] -> IO UTxO
223
218
queryUTxO networkId socket queryPoint addresses =
224
219
runQueryExpr networkId socket queryPoint $ do
225
- (AnyCardanoEra era) <- queryCurrentEraExpr
226
- sbe <- liftIO $ assumeShelleyBasedEraOrThrow era
227
- queryUTxOExpr sbe addresses
220
+ queryForCurrentEraInShelleyBasedEraExpr
221
+ (`queryUTxOExpr` addresses)
228
222
229
223
queryUTxOExpr :: ShelleyBasedEra era -> [Address ShelleyAddr ] -> LocalStateQueryExpr b p QueryInMode r IO UTxO
230
224
queryUTxOExpr sbe addresses = do
@@ -243,14 +237,24 @@ queryUTxOByTxIn ::
243
237
[TxIn ] ->
244
238
IO UTxO
245
239
queryUTxOByTxIn networkId socket queryPoint inputs =
246
- runQueryExpr networkId socket queryPoint $ do
247
- (AnyCardanoEra era) <- queryCurrentEraExpr
248
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
249
- eraUTxO <- queryInShelleyBasedEraExpr sbe $ QueryUTxO (QueryUTxOByTxIn (Set. fromList inputs))
250
- pure $ UTxO. fromApi eraUTxO
240
+ runQueryExpr networkId socket queryPoint $
241
+ queryForCurrentEraInShelleyBasedEraExpr
242
+ (fmap UTxO. fromApi . flip queryInShelleyBasedEraExpr (QueryUTxO (QueryUTxOByTxIn (Set. fromList inputs))))
243
+
244
+ queryForCurrentEraInEonExpr ::
245
+ Eon eon =>
246
+ (AnyCardanoEra -> IO a ) ->
247
+ (forall era . eon era -> LocalStateQueryExpr b p QueryInMode r IO a ) ->
248
+ LocalStateQueryExpr b p QueryInMode r IO a
249
+ queryForCurrentEraInEonExpr no yes = do
250
+ k@ (AnyCardanoEra era) <- queryCurrentEraExpr
251
+ inEonForEra (liftIO $ no k) yes era
251
252
252
- assumeShelleyBasedEraOrThrow :: MonadThrow m => CardanoEra era -> m (ShelleyBasedEra era )
253
- assumeShelleyBasedEraOrThrow era = inEonForEra (throwIO $ QueryNotShelleyBasedEraException $ anyCardanoEra era) pure era
253
+ queryForCurrentEraInShelleyBasedEraExpr ::
254
+ Eon eon =>
255
+ (forall era . eon era -> LocalStateQueryExpr b p QueryInMode r IO a ) ->
256
+ LocalStateQueryExpr b p QueryInMode r IO a
257
+ queryForCurrentEraInShelleyBasedEraExpr = queryForCurrentEraInEonExpr (throwIO . QueryNotShelleyBasedEraException )
254
258
255
259
-- | Query the whole UTxO from node at given point. Useful for debugging, but
256
260
-- should obviously not be used in production code.
@@ -265,10 +269,8 @@ queryUTxOWhole ::
265
269
IO UTxO
266
270
queryUTxOWhole networkId socket queryPoint = do
267
271
runQueryExpr networkId socket queryPoint $ do
268
- (AnyCardanoEra era) <- queryCurrentEraExpr
269
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
270
- eraUTxO <- queryInShelleyBasedEraExpr sbe $ QueryUTxO QueryUTxOWhole
271
- pure $ UTxO. fromApi eraUTxO
272
+ queryForCurrentEraInShelleyBasedEraExpr
273
+ (fmap UTxO. fromApi . flip queryInShelleyBasedEraExpr (QueryUTxO QueryUTxOWhole ))
272
274
273
275
-- | Query UTxO for the address of given verification key at point.
274
276
--
@@ -293,9 +295,7 @@ queryStakePools ::
293
295
IO (Set PoolId )
294
296
queryStakePools networkId socket queryPoint =
295
297
runQueryExpr networkId socket queryPoint $ do
296
- (AnyCardanoEra era) <- queryCurrentEraExpr
297
- (sbe :: ShelleyBasedEra e ) <- liftIO $ assumeShelleyBasedEraOrThrow era
298
- queryInShelleyBasedEraExpr sbe QueryStakePools
298
+ queryForCurrentEraInShelleyBasedEraExpr (`queryInShelleyBasedEraExpr` QueryStakePools )
299
299
300
300
-- * Helpers
301
301
0 commit comments