Este tutorial mostrará como inicializar, criar e publicar seu subgrafo no Subgraph Studio.
1. Instalar a CLI do Protocolo The Graph
Você precisa ter o yarn ou o npm instalado.
# NPM$
npm install -g @graphprotocol/graph-cli
# Yarn$
yarn global add @graphprotocol/graph-cli
2. Crie uma conta para seu subgrafo
Acesse o link do The Graph abaixo e crie um subgrafo digitando o nome do subgrafo e selecione uma cadeia na qual deseja implantá-lo.
3. Criando o subgrafo a partir de um contrato existente
Um subgrafo que será criado e encarregado de indexar todos os eventos em um contrato inteligente existente.
O subgrafo tentará buscar a ABI do contrato do Etherscan. Se não for bem-sucedido, ele retornará à solicitação de um caminho de arquivo local. Um formulário interativo o guiará pelo processo caso algum dos argumentos opcionais esteja ausente.
graph init -- studio <SUBGRAPH_SLUG>
SUBGRAPH_SLUG
: o nome do seu subgrafo.
4. Criando um manifesto de subgrafo
O manifesto do subgrafo é armazenado em subgraph.yaml
. Ele especifica quais contratos inteligentes seu subgrafo indexa, quais eventos observar e como transferir os dados de evento para as entidades que o nó The Graph mantém.
Nós vamos utilizar o contrato Gravity. O contrato inteligente gerencia avatares de usuários. Sempre que avatares são criados ou atualizados, o contrato emite eventos NewGravatar
ou UpdateGravatar
.
Este é o arquivo subgraph.yaml
do subgrafo de exemplo que indexa o contrato Gravity:
# specVersion: 0.0.1
description: Gravatar for Ethereum
repository: https://github.com/graphprotocol/example-subgraph
schema:
file: ./schema.graphql
dataSources:
- kind: ethereum/contract
name: Gravity
network: mainnet
source:
address: '0x2E645469f354BB4F5c8a05B3b30A929361cf77eC'
abi: Gravity
startBlock: 6175244
mapping:
kind: ethereum/events
apiVersion: 0.0.1
language: wasm/assemblyscript
entities:
- Gravatar
abis:
- name: Gravity
file: ./abis/Gravity.json
eventHandlers:
- event: NewGravatar(uint256,address,string,string)
handler: handleNewGravatar
- event: UpdatedGravatar(uint256,address,string,string)
handler: handleUpdatedGravatar
callHandlers:
- function: createGravatar(string,string)
handler: handleCreateGravatar
blockHandlers:
- function: handleBlock
- function: handleBlockWithCall
filter:
kind: call
file: ./src/mapping.ts
5. O esquema GraphQL
O esquema do subgrafo está localizado em schema.graphql
. Para definir o esquema GraphQL, utilize a linguagem de especificação da interface do GraphQL.
6. Compilando e Construindo
$ graph codegen
$ graph build
7. Autentique e implante seu subgrafo
- A chave de implantação pode ser encontrada na página do subgrafo no Subgraph Studio.
$ graph auth --studio <CHAVE_DE_IMPLANTAÇÃO>
$ graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ <USERNAME_DO_GITHUB>/<SUBGRAPH_SLUG>
Você será solicitado a dar um nome à versão. É altamente recomendável usar as seguintes convenções para nomear suas versões. Exemplo: 0.0.1, v1, version1.
Conclusão
Com estes sete passos, você deve ser capaz de encontrar o caminho para implantar um subgrafo na rede do The Graph. Se você ficar preso, pode entrar em contato através do meu e-mail "emmanuel.adeojo.ibk@gmail" e eu ficarei feliz em ajudar.
Feliz codificação!
Artigo original publicado por Adeojo Emmanuel. Traduzido por Paulinho Giovannini.
Oldest comments (0)