The main subgraph repo that houses all of the data associated with the KlimaDAO protocol (except the tokenized carbon subgraphs which live here).
npm installfrom root to fetch dependencies- Review the Unit Testing Guide to get any missing deps for WSL/Linux/MacOS
First, deploy a Graph node locally. The most straightforward option is to use
docker-compose from the graph-node repo.
Make sure to update the ethereum environment variable of graph-node in docker/docker-compose.yml to matic:https://polygon-rpc.com/.
For information on getting started with a Graph Node see this link: https://github.com/graphprotocol/graph-node/blob/master/docs/getting-started.md
Install any needed packages.
# from root
npm installCreate the subgraph instance. Use -w {workspace_name}.
npm run -w polygon-digital-carbon create-localFinally run codegen and deploy the subgraph and start indexing.
npm run -w polygon-digital-carbon codegen && npm run -w polygon-digital-carbon deploy-localAfter the subgraph is deployed, navigate to http://127.0.01:8000/subgraphs/name/name-of-subgraph. You can then create GraphQL queries and view the returned data.
- Protocol Metrics: Staging | Production
- Bonds: Staging | Production
- Vesting: Staging | Production
- Carbon Users: Staging | Production
- Token Pairs: Staging | Production
- Polygon Digital Carbon: Staging | Production
- Ethereum Bridged Carbon: Staging | Production
- Celo Bridged Carbon: Staging | Production
Adding credits definitions normally requires updating the lib/projects/Projects.ts file and recompiling and redeploying the Marketplace and Polygon Digital Carbon subgraphs.
This process is not optimal because the subgraphs deployments are tedious and long.
Projects can be added on the fly (without redeploying the contracts) by updating the CreditManager contract.
- update the
lib/projects/Projects.tsfile with the new project's definitions - set your
ALCHEMY_API_KEYenvironment variable - set your
PRIVATE_KEYenvironment variable - execute
npm run addCredits-polygon <creditId>
To deploy a new subgraph version:
- Make the desired changes to the subgraph source files
- Update the subgraph version with
npm version patchfor instance. The deployment script will not deployed subgraph whose version has not changed even if the source code was updated. - Make a pull request against the main branch
- Once merged the github workflow will deploy the subgraph on both The Graph Studio and Goldsky See the deployment script: https://github.com/KlimaDAO/klima-subgraph/blob/main/.github/workflows/deploy.yaml
Once the new versions of the subgraph have been deployed and synced, you have to promote them
- Connect to the Graph studio using the multisig wallet
- Select the subgraph
- Select the version
- Click on publish
- Confirm the publication
- Have another signer confirm the transaction in the safe
- Connect to Goldsky
- Select the subgraph
- Select the version
- Click on Add tag
- Add the tag 'latest'