@@ -11,11 +11,21 @@ module Cardano.Mock.Query (
11
11
queryGovActionCounts ,
12
12
queryConstitutionAnchor ,
13
13
queryRewardRests ,
14
+ queryCollateralTxOutCount ,
15
+ queryMultiAssetMetadataPolicy ,
16
+ queryPoolUpdateCount ,
17
+ queryStakeAddressCount ,
18
+ queryStakeAddressHashRaw ,
19
+ queryStakeDeRegCount ,
20
+ queryStakeRegCount ,
14
21
queryTreasuryDonations ,
22
+ countTxOutNonNullStakeAddrIds ,
15
23
) where
16
24
17
25
import qualified Cardano.Db as Db
18
- import Cardano.Prelude hiding (from , on )
26
+ import Cardano.Prelude hiding (from , isNothing , on )
27
+ import qualified Data.ByteString.Base16 as Base16
28
+ import Data.ByteString.Short (ShortByteString , toShort )
19
29
import Database.Esqueleto.Experimental
20
30
import Prelude ()
21
31
@@ -162,3 +172,60 @@ queryTreasuryDonations = do
162
172
163
173
let total = join (unValue <$> res)
164
174
pure $ maybe 0 Db. unDbLovelace total
175
+
176
+ queryMultiAssetMetadataPolicy :: MonadIO io => ReaderT SqlBackend io (Maybe ShortByteString )
177
+ queryMultiAssetMetadataPolicy = do
178
+ res <- selectOne $ do
179
+ metadataPolicy <- from $ table @ Db. MultiAsset
180
+ pure $ metadataPolicy ^. Db. MultiAssetPolicy
181
+ pure $ toShort . Base16. encode . unValue <$> res
182
+
183
+ queryStakeAddressHashRaw :: MonadIO io => ReaderT SqlBackend io (Maybe ShortByteString )
184
+ queryStakeAddressHashRaw = do
185
+ res <- selectOne $ do
186
+ stakeAddress <- from $ table @ Db. StakeAddress
187
+ pure $ stakeAddress ^. Db. StakeAddressHashRaw
188
+ pure $ toShort . Base16. encode . unValue <$> res
189
+
190
+ queryStakeAddressCount :: MonadIO io => ReaderT SqlBackend io Word
191
+ queryStakeAddressCount = do
192
+ res <- selectOne $ do
193
+ _ <- from (table @ Db. StakeAddress )
194
+ pure countRows
195
+ pure $ maybe 0 unValue res
196
+
197
+ queryCollateralTxOutCount :: MonadIO io => ReaderT SqlBackend io Word
198
+ queryCollateralTxOutCount = do
199
+ res <- selectOne $ do
200
+ _ <- from (table @ Db. CollateralTxOut )
201
+ pure countRows
202
+ pure $ maybe 0 unValue res
203
+
204
+ queryPoolUpdateCount :: MonadIO io => ReaderT SqlBackend io Word
205
+ queryPoolUpdateCount = do
206
+ res <- selectOne $ do
207
+ _ <- from (table @ Db. PoolUpdate )
208
+ pure countRows
209
+ pure $ maybe 0 unValue res
210
+
211
+ queryStakeDeRegCount :: MonadIO io => ReaderT SqlBackend io Word
212
+ queryStakeDeRegCount = do
213
+ res <- selectOne $ do
214
+ _ <- from (table @ Db. StakeDeregistration )
215
+ pure countRows
216
+ pure $ maybe 0 unValue res
217
+
218
+ queryStakeRegCount :: MonadIO io => ReaderT SqlBackend io Word
219
+ queryStakeRegCount = do
220
+ res <- selectOne $ do
221
+ _ <- from (table @ Db. StakeRegistration )
222
+ pure countRows
223
+ pure $ maybe 0 unValue res
224
+
225
+ countTxOutNonNullStakeAddrIds :: (MonadIO m ) => SqlPersistT m Word
226
+ countTxOutNonNullStakeAddrIds = do
227
+ result <- selectOne $ do
228
+ txOut <- from $ table @ Db. TxOut
229
+ where_ $ not_ (isNothing $ txOut ^. Db. TxOutStakeAddressId )
230
+ pure countRows
231
+ pure $ maybe 0 unValue result
0 commit comments