The Graph is a indexing protocol and be used to create subgraphs on SKALE Chain data. You can reach out to the Graph community to request a Graph node, or you may run your own Graph node. These instructions assume you are using a Testnet or Mainnet SKALE Chain and are running your own graph node.
For proper compatibility, you must point a Graph node to a SKALE Archive node.
Install Prerequisites
docker
docker-compose
nodejs
npm
yarn
truffle
Get a SKALE Endpoint
Get the SKALE chain endpoint assigned to your project here OR use your your own dedicated chain as available.
Configure a Graph Node
git clone https://github.com/graphprotocol/graph-node/
cd graph-node/docker
truffle test --network skale test/myToken.test.forgraph.js
Expected output:
MyToken
...
✓ In the test (237ms)
1 passing (242ms)
Execute token test
truffle test --network skale test/myToken.test.js
Output:
...
MyBalance
✓ enough account balance
MyToken
✓ deploys a contract
✓ has a default token value (1042ms)
✓ can update token value (1042ms)
4 passing (3s)
The Graph
The Graph is a indexing protocol and be used to create subgraphs on SKALE Chain data. You can reach out to the Graph community to request a Graph node, or you may run your own Graph node. These instructions assume you are using a Testnet or Mainnet SKALE Chain and are running your own graph node.
For proper compatibility, you must point a Graph node to a SKALE Archive node.
Install Prerequisites
Get a SKALE Endpoint Get the SKALE chain endpoint assigned to your project here OR use your your own dedicated chain as available.
Configure a Graph Node
Then modify the
<1> Replace with your SKALE Chain endpoint if not using the SKALE-IMA-SDK. <2> Add this if using `host.docker.internal` on a Linux machine.docker-compose.yml
file:Start the Graph Node
To follow the container output, run
docker logs docker_graph-node_1 --follow
Prepare the Subgraph test In another terminal on the same machine, execute:
Modify the .env file.
<1> You will add the contract address in step 7.Deploy Test contract
Add deployed MyToken Contract address to subgraph.yaml
<1> Change from `mainnet` to `skale` to match docker-compose.yml in graph-node. <2> Replace with deployed contract address.Add deployed MyToken contract address to .env file
Execute yarn
Create local Subgraph
Expected output:
Expected output in Graph-node container:
Deploy to Local
Verify graph-node terminal Expected output in graph-node container:
Execute graph test
Expected output:
Execute token test
Output:
http://localhost:8000/subgraphs/name/skaleToken/graphql
Expected output: