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 PolicyId
C.
s by which to filter a query. AssetName
Nothing
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 |