| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Marconi.Cardano.Indexers.MintTokenEvent
Description
Mint/burn event indexer, the result of which is an sqlite database 'minttokenevent.db' which has a
table minting_policy_events with the following fields:
( slotNo INT NOT NULL , blockHeaderHash BLOB NOT NULL , blockNo INT NOT NULL , txId BLOB NOT NULL , txIndexInBlock INT NOT NULL , policyId BLOB NOT NULL , assetName TEXT NOT NULL , quantity INT NOT NULL , redeemerHash BLOB , redeemerData BLOB )
Synopsis
- newtype MintTokenBlockEvents = MintTokenBlockEvents (NonEmpty MintTokenEvent)
- mintTokenEvents :: Iso' MintTokenBlockEvents (NonEmpty MintTokenEvent)
- data MintTokenEvent = MintTokenEvent !MintTokenEventLocation !MintAsset
- mintTokenEventLocation :: Lens' MintTokenEvent MintTokenEventLocation
- mintTokenEventAsset :: Lens' MintTokenEvent MintAsset
- data MintTokenEventLocation = MintTokenEventLocation !BlockNo !TxId !TxIndexInBlock
- mintTokenEventBlockNo :: Lens' MintTokenEventLocation BlockNo
- mintTokenEventIndexInBlock :: Lens' MintTokenEventLocation TxIndexInBlock
- mintTokenEventTxId :: Lens' MintTokenEventLocation TxId
- data MintAsset = MintAsset !PolicyId !AssetName !Quantity !(Maybe MintAssetRedeemer)
- mintAssetAssetId :: Lens' MintAsset AssetId
- mintAssetPolicyId :: Lens' MintAsset PolicyId
- mintAssetAssetName :: Lens' MintAsset AssetName
- mintAssetQuantity :: Lens' MintAsset Quantity
- mintAssetRedeemer :: Lens' MintAsset (Maybe MintAssetRedeemer)
- data MintAssetRedeemer = MintAssetRedeemer !ScriptData !(Hash ScriptData)
- mintAssetRedeemerData :: Lens' MintAssetRedeemer ScriptData
- mintAssetRedeemerHash :: Lens' MintAssetRedeemer (Hash ScriptData)
- type MintTokenEventIndexer = SQLiteIndexer MintTokenBlockEvents
- type StandardMintTokenEventIndexer m = StandardSQLiteIndexer m MintTokenBlockEvents
- newtype MintTokenEventConfig = MintTokenEventConfig {}
- configTrackedAssetIds :: Iso' MintTokenEventConfig (Maybe (NonEmpty (PolicyId, Maybe AssetName)))
- catchupConfigEventHook :: Text -> Trace IO Text -> FilePath -> CatchupEvent -> IO ()
- mkMintTokenIndexer :: (MonadIO m, MonadError IndexerError m) => SQLiteDBLocation -> m MintTokenEventIndexer
- mintTokenEventWorker :: (MonadIO n, MonadError IndexerError n, MonadIO m) => StandardWorkerConfig m input MintTokenBlockEvents -> MintTokenEventConfig -> SQLiteDBLocation -> n (StandardWorker m input MintTokenBlockEvents SQLiteIndexer)
- mintTokenEventBuilder :: (MonadIO n, MonadError IndexerError n) => SecurityParam -> CatchupConfig -> MintTokenEventConfig -> Trace IO Text -> FilePath -> n (StandardWorker IO [AnyTxBody] MintTokenBlockEvents SQLiteIndexer)
- filterByTargetAssetIds :: NonEmpty (PolicyId, Maybe AssetName) -> MintTokenBlockEvents -> Maybe MintTokenBlockEvents
- extractEventsFromTx :: BlockNo -> TxIndexInBlock -> TxBody era -> [MintTokenEvent]
- data MintTokenEventsMatchingQuery event
- newtype ByTargetAssetIdsArgs = ByTargetAssetIdsArgs (NonEmpty (PolicyId, Maybe AssetName))
- evalMintTokenEventsMatchingQuery :: MintTokenEventsMatchingQuery MintTokenBlockEvents -> MintTokenBlockEvents -> Maybe MintTokenBlockEvents
- data QueryByAssetId event = QueryByAssetId {}
- queryByAssetIdPolicyId :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) PolicyId PolicyId
- queryByAssetIdAssetName :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe AssetName) (Maybe AssetName)
- queryByAssetIdEventType :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe EventType) (Maybe EventType)
- queryByAssetIdUpperSlotNo :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe SlotNo) (Maybe SlotNo)
- queryByAssetIdLowerTxId :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe TxId) (Maybe TxId)
- data EventType
- toTimedMintEvents :: [Timed ChainPoint MintTokenEvent] -> [Timed ChainPoint MintTokenBlockEvents]
Events
newtype MintTokenBlockEvents #
Minting events given for each block.
Constructors
| MintTokenBlockEvents (NonEmpty MintTokenEvent) |
Instances
data MintTokenEvent #
Single minting event. This is the datatype was will be used to store the events in the database
(not MintTokenBlockEvents). More specifically, we will store 'Core.Timed (Core.Point
MintTokenEvent) MintTokenEvent)'.
Constructors
| MintTokenEvent !MintTokenEventLocation !MintAsset |
Instances
mintTokenEventAsset :: Lens' MintTokenEvent MintAsset #
data MintTokenEventLocation #
Constructors
| MintTokenEventLocation !BlockNo !TxId !TxIndexInBlock |
Instances
mintTokenEventTxId :: Lens' MintTokenEventLocation TxId #
Instances
| Generic MintAsset # | |
| Show MintAsset # | |
| Eq MintAsset # | |
| Ord MintAsset # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent | |
| FromRow MintAsset # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent | |
| ToRow MintAsset # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent | |
| type Rep MintAsset # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent type Rep MintAsset = D1 ('MetaData "MintAsset" "Marconi.Cardano.Indexers.MintTokenEvent" "marconi-cardano-indexers-1.2.0.0-inplace" 'False) (C1 ('MetaCons "MintAsset" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_mintAssetPolicyId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PolicyId) :*: S1 ('MetaSel ('Just "_mintAssetAssetName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AssetName)) :*: (S1 ('MetaSel ('Just "_mintAssetQuantity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Quantity) :*: S1 ('MetaSel ('Just "_mintAssetRedeemer") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe MintAssetRedeemer))))) | |
mintAssetAssetId :: Lens' MintAsset AssetId #
mintAssetPolicyId :: Lens' MintAsset PolicyId #
mintAssetAssetName :: Lens' MintAsset AssetName #
mintAssetQuantity :: Lens' MintAsset Quantity #
mintAssetRedeemer :: Lens' MintAsset (Maybe MintAssetRedeemer) #
data MintAssetRedeemer #
Constructors
| MintAssetRedeemer !ScriptData !(Hash ScriptData) |
Instances
| Show MintAssetRedeemer # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent | |
| Eq MintAssetRedeemer # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent Methods (==) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # (/=) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # | |
| Ord MintAssetRedeemer # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent Methods compare :: MintAssetRedeemer -> MintAssetRedeemer -> Ordering Source # (<) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # (<=) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # (>) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # (>=) :: MintAssetRedeemer -> MintAssetRedeemer -> Bool Source # max :: MintAssetRedeemer -> MintAssetRedeemer -> MintAssetRedeemer Source # min :: MintAssetRedeemer -> MintAssetRedeemer -> MintAssetRedeemer Source # | |
mintAssetRedeemerHash :: Lens' MintAssetRedeemer (Hash ScriptData) #
Indexer and worker
type MintTokenEventIndexer = SQLiteIndexer MintTokenBlockEvents #
A raw SQLite indexer for MintTokenBlockEvents
type StandardMintTokenEventIndexer m = StandardSQLiteIndexer m MintTokenBlockEvents #
A SQLite MintTokenBlockEvents indexer with Catchup
newtype MintTokenEventConfig #
MintTokenEventConfig allows for specifying a list of C.s and
possibly PolicyIdC.s by which to filter a query. AssetNameNothing represents the case
in which no filtering should occur.
Constructors
| MintTokenEventConfig | |
Instances
configTrackedAssetIds :: Iso' MintTokenEventConfig (Maybe (NonEmpty (PolicyId, Maybe AssetName))) #
catchupConfigEventHook :: Text -> Trace IO Text -> FilePath -> CatchupEvent -> IO () #
mkMintTokenIndexer :: (MonadIO m, MonadError IndexerError m) => SQLiteDBLocation -> m MintTokenEventIndexer #
Arguments
| :: (MonadIO n, MonadError IndexerError n, MonadIO m) | |
| => StandardWorkerConfig m input MintTokenBlockEvents | General configuration of the indexer (mostly for logging purpose) |
| -> MintTokenEventConfig | Specific configuration of the indexer (mostly for logging purpose and filtering for target asset ids) |
| -> SQLiteDBLocation | |
| -> n (StandardWorker m input MintTokenBlockEvents SQLiteIndexer) |
Create a worker for the MintTokenEvent indexer
mintTokenEventBuilder :: (MonadIO n, MonadError IndexerError n) => SecurityParam -> CatchupConfig -> MintTokenEventConfig -> Trace IO Text -> FilePath -> n (StandardWorker IO [AnyTxBody] MintTokenBlockEvents SQLiteIndexer) #
Convenience wrapper around mkMintTokenEventWorker with some defaults for
creating StandardWorkerConfig, including a preprocessor.
filterByTargetAssetIds :: NonEmpty (PolicyId, Maybe AssetName) -> MintTokenBlockEvents -> Maybe MintTokenBlockEvents #
Only keep the MintTokenEvents at a block if they mint a target AssetId.
Extract events
extractEventsFromTx :: BlockNo -> TxIndexInBlock -> TxBody era -> [MintTokenEvent] #
Queries
data MintTokenEventsMatchingQuery event #
Defunctionalisation of queries
Instances
newtype ByTargetAssetIdsArgs #
Constructors
| ByTargetAssetIdsArgs (NonEmpty (PolicyId, Maybe AssetName)) |
Instances
| Show ByTargetAssetIdsArgs # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent | |
| Eq ByTargetAssetIdsArgs # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent Methods (==) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # (/=) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # | |
| Ord ByTargetAssetIdsArgs # | |
Defined in Marconi.Cardano.Indexers.MintTokenEvent Methods compare :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Ordering Source # (<) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # (<=) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # (>) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # (>=) :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> Bool Source # max :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs Source # min :: ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs -> ByTargetAssetIdsArgs Source # | |
evalMintTokenEventsMatchingQuery :: MintTokenEventsMatchingQuery MintTokenBlockEvents -> MintTokenBlockEvents -> Maybe MintTokenBlockEvents #
Evaluator for MintTokenEventsMatchingQuery
data QueryByAssetId event #
Constructors
| QueryByAssetId | |
Fields | |
Instances
queryByAssetIdPolicyId :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) PolicyId PolicyId #
queryByAssetIdAssetName :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe AssetName) (Maybe AssetName) #
queryByAssetIdEventType :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe EventType) (Maybe EventType) #
queryByAssetIdUpperSlotNo :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe SlotNo) (Maybe SlotNo) #
queryByAssetIdLowerTxId :: forall event event. Lens (QueryByAssetId event) (QueryByAssetId event) (Maybe TxId) (Maybe TxId) #
Constructors
| MintEventType | |
| BurnEventType |