Manifest
A manifest serves as the YAML configuration file for a given index. A proper manifest has the following structure:
namespace: fuel
identifier: index1
abi: path/to/my/contract-abi.json
contract_id: "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051"
graphql_schema: path/to/my/schema.graphql
start_block: 1564
module:
wasm: path/to/my/wasm_module.wasm
report_metrics: true
namespace
- Think of the
namespace
as an organization identifier. If you're familiar with say, Java package naming, then think of an index'snamespace
as being its domain name. Thenamespace
is unique to a given index operator -- i.e., index operators will not be able to support more than onenamespace
of the same name.
identifier
- The
identifier
field is used to (quite literally) identify the given index. Ifnamespace
is the organization/domain name, then think ofidentifier
as the name of an index within that organization/domain. - As an example, if a provided
namespace
is"fuel"
and a providedidentifier
is"index1"
, then the unique identifier for the given index will befuel.index1
.
abi
- The
abi
option is used to provide a link to the Sway JSON application binary interface (JSON ABI) that is generated when you build your Sway project. This generated ABI contains all types, type IDs, and logged types used in your Sway contract.
contract_id
- The
contract_id
specifies which particular contract you would like your index to subscribe to.
graphql_schema
- The
graphql_schema
field contains the file path that points to the GraphQL schema for the given index. This schema file holds the structures of the data that will eventually reside in your database. You can read more about the format of the schema file here.
Important: The objects defined in your GraphQL schema are called 'entities'. These entities are what will be eventually be stored in the database.
start_block
- The particular start block after which you'd like your indexer to start indexing events.
module
- The
module
field contains a file path that points to code that will be run as an executor inside of the indexer. - There are two available options for modules/execution:
wasm
andnative
.- When specifying a
wasm
module, the provided path must lead to a compiled WASM binary.
- When specifying a
Important: At this time,
wasm
is the preferred method of execution.
report_metrics
- Whether or not to report Prometheus metrics to the Fuel backend