Query Node Manifest
Overview
The query node manifest specifies the extract-transform-load processes run by a query node. A query node ingests raw events and data from a substrate chain and transforms and loads to the downstream sink sources as specified by the manifest. The manifest loosely follows the subgraph manifest of by the graph protocol.
Top Level API
Field | Type | Description |
specVersion | String | A Semver version indicating which version of this API is being used. |
description | String | An optional description of the substrate chain. |
repository | String | An optional link to where the subgraph lives. |
dataSources | Data Source Spec | Each data source spec defines the data that will be ingested |
schema | [String] | Path to the GraphQL schema augmented with directives supporting e.g. elasticsearch indices |
Schema
Schema is a GraphQL spec
Data Source
Field | Type | Description |
kind | String | The type of data source. Possible values: substrate/index. |
name | String | The name of the source data. Will be used to generate APIs in the mapping and also for self-documentation purposes. |
network | String | For blockchains, this describes which network the subgraph targets. For substrate network, this should specify substrate network name, e.g. 'joystream/constaninople' |
source | [Source] | The source data on a substrate blockchain. |
startBlock | integer | Block height to start from |
Mapping
The mapping
field may be one of the following supported mapping manifests:
Field | Type | Description |
kind | String | Must be "substrate/bootstrap" for Substrate Bootstrap Mapping. |
apiVersion | String | Semver string of the version of the Mappings API that will be used by the mapping script. |
language | String | The language of the runtime for the Mapping API. Possible values: wasm/assemblyscript. |
file | The path of the mapping script. |
Note: Each mapping is required to supply one or more handler type, available types:
EventHandler
,CallHandler
,BlockHandler
orBootHandler
.
BootHandler
Field | Type | Description |
entity | String | Entity that should be loaded |
handler | String | Function name to be called |
EventHandler
Field | Type | Description |
event | String | An identifier for an event that will be handled in the mapping script. For Ethereum contracts, this must be the full event signature to distinguish from events that may share the same name. No alias types can be used. For example, uint will not work, uint256 must be used. |
handler | String | The name of an exported function in the mapping script that should handle the specified event. |
topic0 | optional String | A |
CallHandler
Field | Type | Description |
function | String | An identifier for a function that will be handled in the mapping script. For Ethereum contracts, this is the normalized function signature to filter calls by. |
handler | String | The name of an exported function in the mapping script that should handle the specified event. |
BlockHandler
Field | Type | Description |
handler | String | The name of an exported function in the mapping script that should handle the specified event. |
filter | optional String | The name of the filter that will be applied to decide on which blocks will trigger the mapping. If none is supplied, the handler will be called on every block. |
Last updated