Squid structure
A squid is expected to follow the folder structure conventions listed below.
/db
-- (Required) The designated folder with the database migrations./lib
-- The output folder for the compiled squid code./src
-- (Required) The source folder for the squid processor./src/processor.ts
-- The entry point of the squid processor (EVM or Substrate)./src/model/generated
-- The folder for the TypeORM entities generated fromschema.graphql
./src/model
-- The module exporting the entity classes./src/server-extension/resolvers
-- An (optional) folder for user-defined GraphQL resolvers./src/types
-- An (optional) output folder for typescript definitions of the Substrate data generated withsquid-substrate-typegen
./src/abi
-- An (optional) output folder for the EVM typegen and WASM typegen tools that generate type definitions and the decoding boilerplate.
/assets
-- (optional) A designated folder for custom user-provided files (e.g. static data files to seed the squid processor with)./abi
-- (optional) A designated folder for JSON ABI files used as input by the EVM typegen when it's called viasqd typegen
.schema.graphql
-- (Required for GraphQL API) The schema definition file.squid.yaml
-- (Required) A manifest file for deploying the squid to Aquarium. See Deploy squid for details.docker-compose.yml
-- A Docker compose file for local runs. Has a Postgres service definition by default. Ignored by Aquarium..env
-- Defines environment variables used bydocker-compose.yml
and when the squid is run locally. Ignored by Aquarium.typegen.json
-- (optional) The config file forsquid-substrate-typegen
. Ignored by Aquarium.Makefile
-- (optional) Script definitions forMake
. Ignored by Aquarium.tsconfig.json
,package-lock.json
,package.json
-- (Required) Thenpm
andtsc
configs.archive
-- An (optional) folder for running a local Archive. Ignored by Aquarium.
The templates also defines the following auxiliary scripts (optional):
build
to build the squid.update
to update the squid packages to the latest version.