Package Logo
cosmos_common
cosmos-common@v0.1.0
Total Downloads
104
Published
1 months ago
Publisher
User Avatar streamingfast

Readme

cosmos-common

The Cosmos Foundational modules are Substreams modules extracting common data from different Cosmos blockchains (e.g. Injective or Mantra).

Usage

This module is a general Cosmos foundational module, so it can be run within any Cosmos blockchain. For example, to run it against the Injective endpoint:

substreams gui cosmos-common-v0.0.1.spkg all_events -e mainnet.injective.streamingfast.io:443

However, StreamingFast recommends using the blockchain-specific foundational modules specified (for example, injective-common for Injective or mantra-common for Mantra), instead of this generic Cosmos package.

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:
  cosmos: https://spkg.io/streamingfast/cosmos-common-v0.0.1.spkg # Import the package from substreams.dev

modules:
  - name: my_events # Define your Substreams module
    use: cosmos: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

For a full example of importing the SPKG, take a look at the derived-substreams.yaml file, which defines a Substreams that imports the Cosmos foundational module.

Modules

all_events (map)

Retrieves all the events in the Cosmos blockchain without any filtering.

index_events (index)

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.

filtered_events (map)

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)"

filtered_event_groups (map)

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"

filtered_events_by_attribute_value (map)

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:rewards && attr:validator:any_validator"

filtered_event_groups_by_attribute_value (map)

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:rewards && attr:validator:any_validator"

Documentation

Modules

Maps icon
Maps

map
all_events

e6789527fab90caa67cdf81b81c8ed8a0013cb3d
map all_events (
blocksf.cosmos.type.v2.Block
)  -> sf.substreams.cosmos.v1.EventList

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 cosmos-common@v0.1.0 all_events

map
filtered_events

8440f1c02467940f2c27b0ab106f1aba327f9c18
Default param : (type:message && attr:action) || (type:wasm && attr:_contract_address)
substreams gui cosmos-common@v0.1.0 filtered_events

map
filtered_event_groups

bf36921328c30ec6d879d2444c3fa561256b5ff1
Default param : type:wasm && attr:_contract_address
substreams gui cosmos-common@v0.1.0 filtered_event_groups

map
filtered_events_by_attribute_value

841924ea4cd884a8b60bfdb30be0fd252e7f82a1
map filtered_events_by_attribute_value (
paramsstring
)  -> sf.substreams.cosmos.v1.EventList
Default param : type:wasm && attr:_contract_address:inj1v77y5ttah96dc9qkcpc88ad7rce8n88e99t3m5
substreams gui cosmos-common@v0.1.0 filtered_events_by_attribute_value

map
filtered_event_groups_by_attribute_value

134bc6fe848c6b59c597b6bb60b72c959b38425a
map filtered_event_groups_by_attribute_value (
paramsstring
)  -> sf.substreams.cosmos.v1.EventList
Default param : type:wasm && attr:_contract_address:inj1v77y5ttah96dc9qkcpc88ad7rce8n88e99t3m5
substreams gui cosmos-common@v0.1.0 filtered_event_groups_by_attribute_value
Block Indexes icon
Block Indexes

blockIndex
index_events

0d0e90210ce048a30e50747536bf611d6c2edc0e
substreams gui cosmos-common@v0.1.0 index_events
Protobuf

Protobuf Docs Explorer

ibc.core.channel.v1
ibc.core.client.v1
injective.wasmx.v1
sf.cosmos.type.v2
cosmos.tx.v1beta1
injective.auction.v1beta1
cosmos.evidence.v1beta1
injective.oracle.v1beta1
cosmos_proto
cosmos.msg.v1
cosmos.slashing.v1beta1
injective.exchange.v1beta1
cosmos.bank.v1beta1
cosmos.crypto.multisig.v1beta1
injective.peggy.v1
cosmos.upgrade.v1beta1
amino
cosmos.distribution.v1beta1
cosmos.authz.v1beta1
cosmos.crisis.v1beta1
cosmos.gov.v1beta1
cosmos.tx.signing.v1beta1
cosmwasm.wasm.v1
injective.crypto.v1beta1.ethsecp256k1
gogoproto
cosmos.base.v1beta1