Common Injective Substreams modules to extract events and transactions with indexing This package inherits from the generic Cosmos Foundational Modules.
Usually, foundational modules are directly imported and used in other Substreams. All the official foundational modules are stored in substreams.dev.
specVersion: v0.1.0
package:
name: my_project
version: v0.1.0
imports:
injective: https://spkg.io/streamingfast/injective-common-v0.2.4.spkg # Import the package from substreams.dev
modules:
- name: my_events # Define your Substreams module
use: injective:filtered_events # Use the imported package
initialBlock: 70000000
params:
my_events: "(type:message && attr:action) || (type:wasm && attr:_contract_address)" # Pass the filter as parameter to the module
To run the Substreams:
substreams build
substreams auth
substreams gui
Retrieves all the events in the Injective blockchain without any filtering.
The module create an index (a cache) to efficiently retrieve events by their type and/or attribute keys.
The module sets the keys corresponding to all event 'types' and 'attribute keys' in the block For example: type:coin_received
, attr:action
, attr:sender
...
The attribute values are never indexed because they have a high cardinality and would be too expensive to index.
The module reads from all_events
and applies a filter on the event types and attribute keys, only outputing the events that match the filter.
The filter is specificed in the parameters of the module.
...
params:
filtered_events: "(type:rewards && attr:validator)"
The module reads from all_events
and applies a filter on the event types and attribute keys, outputing all the events from transactions that have at least one event matching the filter.
params:
filtered_event_groups: "type:rewards && attr:validator"
The module reads from all_events
and applies a filter on the event types, attribute keys and values, only outputing the events that match the filter.
NOTE: This module does not use the index created by index_events
.
params:
filtered_events_by_attribute_value: "type:wasm && attr:_contract_address:inj1v77y5ttah96dc9qkcpc88ad7rce8n88e99t3m5"
The module reads from all_events
and applies a filter on the event types, attribute keys and values, outputing all the events from transactions that have at least one event matching the filter.
NOTE: This module does not use the index created by index_events
.
params:
filtered_event_groups_by_attribute_value: "type:wasm && attr:_contract_address:inj1v77y5ttah96dc9qkcpc88ad7rce8n88e99t3m5"
substreams gui injective-common@v0.2.5 all_events
substreams gui injective-common@v0.2.5 filtered_events
substreams gui injective-common@v0.2.5 filtered_event_groups
substreams gui injective-common@v0.2.5 filtered_events_by_attribute_value
substreams gui injective-common@v0.2.5 filtered_event_groups_by_attribute_value
all_events
reads from the sf.cosmos.type.v2.Block
source and outputs a list of all events in the block.
Some events are at the block level, others appear inside the transactions.
substreams gui injective-common@v0.2.5 cosmos:all_events
substreams gui injective-common@v0.2.5 cosmos:filtered_events
substreams gui injective-common@v0.2.5 cosmos:filtered_event_groups
substreams gui injective-common@v0.2.5 cosmos:filtered_events_by_attribute_value
substreams gui injective-common@v0.2.5 cosmos:filtered_event_groups_by_attribute_value
substreams gui injective-common@v0.2.5 index_events
substreams gui injective-common@v0.2.5 cosmos:index_events