Nabarun Gogoi
d39e2e959e
* Fix env variable overriding in sushiswap contract deployment containers * Add steps for generating sushiswap events * Remove pool swap event
112 lines
3.1 KiB
Markdown
112 lines
3.1 KiB
Markdown
# SushiSwap Graph
|
|
|
|
## Setup
|
|
|
|
Clone required repositories:
|
|
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph setup-repositories
|
|
```
|
|
|
|
Build the container images:
|
|
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph build-containers
|
|
```
|
|
|
|
## Deploy
|
|
|
|
Deploy the stack:
|
|
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph deploy --cluster sushigraph up
|
|
```
|
|
|
|
After all services have started, wait and check that the subgraph has been deployed to graph-node
|
|
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph deploy --cluster sushigraph logs -f sushiswap-subgraph-v3
|
|
|
|
# Expected end output
|
|
# ...
|
|
# sushigraph-sushiswap-subgraph-v3-1 | - Deploying to Graph node http://graph-node:8020/
|
|
# sushigraph-sushiswap-subgraph-v3-1 | Deployed to http://graph-node:8000/subgraphs/name/sushiswap/v3-lotus/graphql
|
|
# sushigraph-sushiswap-subgraph-v3-1 |
|
|
# sushigraph-sushiswap-subgraph-v3-1 | Subgraph endpoints:
|
|
# sushigraph-sushiswap-subgraph-v3-1 | Queries (HTTP): http://graph-node:8000/subgraphs/name/sushiswap/v3-lotus
|
|
# sushigraph-sushiswap-subgraph-v3-1 |
|
|
# sushigraph-sushiswap-subgraph-v3-1 | Done
|
|
```
|
|
|
|
## Run
|
|
|
|
To check graph-node logs:
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph deploy --cluster sushigraph logs -f graph-node
|
|
```
|
|
|
|
To deploy tokens run:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-periphery-1 yarn hardhat --network docker deploy --tags TestERC20
|
|
```
|
|
This can be run multiple times to deploy ERC20 tokens
|
|
|
|
Take note of the deployed token addresses to use later
|
|
|
|
Get contract address of factory deployed:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-core-1 jq -r '.address' /app/deployments/docker/UniswapV3Factory.json
|
|
```
|
|
Set it to environment variable `FACTORY_ADDRESS` to use later
|
|
|
|
To create a pool:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-core-1 pnpm run pool:create:docker --factory $FACTORY_ADDRESS --token0 $TOKEN1_ADDRESS --token1 $TOKEN2_ADDRESS --fee 500
|
|
```
|
|
|
|
Set the created pool address to environment variable `POOL_ADDRESS` to use later
|
|
|
|
To initialize pool:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-core-1 pnpm run pool:initialize:docker --sqrt-price 4295128939 --pool $POOL_ADDRESS
|
|
```
|
|
|
|
Set the recipient address to the contract deployer:
|
|
```bash
|
|
export RECIPIENT=0xD375B03bd3A2434A9f675bEC4Ccd68aC5e67C743
|
|
```
|
|
|
|
Trigger pool mint event:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-core-1 pnpm run pool:mint:docker --pool $POOL_ADDRESS --recipient $RECIPIENT --amount 10
|
|
```
|
|
|
|
Trigger pool burn event:
|
|
```bash
|
|
docker exec -it sushigraph-sushiswap-v3-core-1 pnpm run pool:burn:docker --pool $POOL_ADDRESS --amount 10
|
|
```
|
|
|
|
## Clean up
|
|
|
|
Stop all the services running in background run:
|
|
|
|
```bash
|
|
laconic-so --stack sushiswap-subgraph deploy --cluster sushigraph down
|
|
```
|
|
|
|
Clear volumes created by this stack:
|
|
|
|
```bash
|
|
# List all relevant volumes
|
|
docker volume ls -q --filter "name=sushigraph"
|
|
|
|
# Remove all the listed volumes
|
|
docker volume rm $(docker volume ls -q --filter "name=sushigraph")
|
|
|
|
# WARNING: After removing volumes with Lotus params
|
|
# They will be downloaded again on restart
|
|
|
|
# To remove volumes that do not contain Lotus params
|
|
docker volume rm $(docker volume ls -q --filter "name=sushigraph" | grep -v "params$")
|
|
```
|