Package Logo
cosmos_common
cosmos-common@v0.1.0
Total Downloads
166
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

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