-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:hop-protocol/hop-subgraph
- Loading branch information
Showing
10 changed files
with
10,281 additions
and
6,291 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,41 +2,6 @@ | |
|
||
> The Hop Protocol Subgraph for [The Graph](https://thegraph.com/). | ||
## Pre-setup notes | ||
|
||
```bash | ||
# Required for AbortController | ||
nvm install 16.6.1 | ||
nvm use 16.6.1 | ||
|
||
# Various requirements | ||
sudo apt install npm | ||
sudo apt install -y jq | ||
npm i @graphprotocol/[email protected] | ||
`````` | ||
|
||
#### Troubleshooting | ||
|
||
- Depending on your NPM version, [email protected] & [email protected] appears to hang when installing NPM packages. In reality, they just take a long time to install (up to or over an hour, depending on the instance type & resources). | ||
|
||
- Auth key starts with 70cc | ||
|
||
- When setting it up locally and running a load balancer, each of these should work for debugging at various stages | ||
- http://ec2...com:8000/subgraphs/name/hop-protocol/hop-base-mainnet | ||
- http://lb...com/subgraphs/name/hop-protocol/hop-base-mainnet | ||
- https://base.subgraph.hop.exchange/subgraphs/name/hop-protocol/hop-base | ||
|
||
|
||
- If you get the following error, you need to run comment out two lines in `buildfile.template.sh` | ||
|
||
``` | ||
# Error | ||
Failed to deploy to Graph node https://api.thegraph.com/deploy/: subgraph failure::Subgraph [hop-protocol/hop-base-mainnet] not found | ||
|
||
# Lines to comment | ||
npx graph auth https://api.thegraph.com/deploy/ $ACCESS_TOKEN | ||
npx graph deploy --product hosted-service --ipfs https://api.thegraph.com/ipfs/ --node https://api.thegraph.com/deploy/ "$GITHUB_ORG/{{subgraphName}}" | ||
``` | ||
|
||
## Subgraphs | ||
|
||
|
@@ -65,21 +30,27 @@ npx graph auth https://api.thegraph.com/deploy/ <access-token> | |
|
||
The access token is found on the hosted-service [dashboard](https://thegraph.com/hosted-service/dashboard). | ||
|
||
### Add new chain config or new addresses | ||
## Instructions to Add new chain config or new addresses | ||
|
||
1. Update `scripts/mapping_config.json` with the new chain network and subgraph name mapping. | ||
|
||
2. Update the `@hop-protocol/core` package version in `package.json`. | ||
|
||
Update `scripts/mapping_config.json` with the new chain network and subgraph name mapping. | ||
3. Add the `build-deploy` npm script in `package.json`. | ||
|
||
If not adding a new chain, and only new addresses, then only update the `@hop-protocol/core` package version and run build/deploy commands as usual. | ||
4. Update `.gitignore` and `clean.sh` (this step can probably be automated). | ||
|
||
5. Run `npm i` to install the latest `@hop-protocol/core` package | ||
|
||
6. Run `npm run generate-config-json` to create the updated config files | ||
|
||
The config generation script is run automatically when building the subgraph with npm `build-deploy` command and can also be ran with `npm run generate-config-json`. | ||
|
||
The generation script `scripts/generate_config_json.js` will read the chain/token config from `@hop-protocol/core` and output/override the config JSON files to `config/`. | ||
|
||
When adding new chain, make sure to update `.gitignore` and `clean.sh` (this step can probably be automated). | ||
7. [Install Docker](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) | ||
|
||
### Running local graph node with Docker | ||
|
||
After bumping the version of `@hop-protocol/core` in `package.json` and pushing to github and CircleCI finishes building the [docker image](https://hub.docker.com/r/hopprotocol/subgraph), run the following commands to build and deploy the subgraph locally or on a server using docker compose: | ||
8. After bumping the version of `@hop-protocol/core` in `package.json` and pushing to github and CircleCI finishes building the [docker image](https://hub.docker.com/r/hopprotocol/subgraph), run the following commands to build and deploy the subgraph locally or on a server using docker compose: | ||
|
||
```bash | ||
# change this values to deploy a different subgraph. Refer to `scripts/mapping_config.json` for the subgraph name | ||
|
@@ -89,12 +60,58 @@ export RPC=https://goerli.base.org | |
# download docker-compose file | ||
wget https://raw.githubusercontent.com/hop-protocol/subgraph/master/docker-compose.yml | ||
|
||
# start services (use `-d` to run in background) | ||
docker compose up --pull=always | ||
# start services | ||
# the `-d` is used to run in background | ||
# the `--pull=always` is used to update the image when there is one available | ||
|
||
# NOTE: The NETWORK and RPC are redundant, but sometimes cause issues if they do not exist | ||
sudo RPC=https://rpc.linea.build NETWORK=linea docker compose up --pull=always | ||
``` | ||
|
||
After a minute or so the graph should be available at http://localhost:8000/subgraphs/name/hop-protocol/hop-base-goerli/graphql | ||
|
||
9. Troubleshooting | ||
|
||
* If your server is unreachable from outside, ensure you enabled port `8000` with UFW | ||
* Disable and enable UFW after this | ||
|
||
## Pre-setup notes | ||
|
||
_**These are deprecated in favor of the local Docker instructions. Only reference these if Docker is not used.**_ | ||
|
||
```bash | ||
# Required for AbortController | ||
nvm install 16.6.1 | ||
nvm use 16.6.1 | ||
|
||
# Various requirements | ||
sudo apt install npm | ||
sudo apt install -y jq | ||
npm i @graphprotocol/[email protected] | ||
`````` | ||
|
||
#### Troubleshooting | ||
|
||
- Depending on your NPM version, [email protected] & [email protected] appears to hang when installing NPM packages. In reality, they just take a long time to install (up to or over an hour, depending on the instance type & resources). | ||
|
||
- Auth key starts with 70cc | ||
|
||
- When setting it up locally and running a load balancer, each of these should work for debugging at various stages | ||
- http://ec2...com:8000/subgraphs/name/hop-protocol/hop-base-mainnet | ||
- http://lb...com/subgraphs/name/hop-protocol/hop-base-mainnet | ||
- https://base.subgraph.hop.exchange/subgraphs/name/hop-protocol/hop-base | ||
|
||
|
||
- If you get the following error, you need to run comment out two lines in `buildfile.template.sh` | ||
|
||
``` | ||
# Error | ||
Failed to deploy to Graph node https://api.thegraph.com/deploy/: subgraph failure::Subgraph [hop-protocol/hop-base-mainnet] not found | ||
|
||
# Lines to comment | ||
npx graph auth https://api.thegraph.com/deploy/ $ACCESS_TOKEN | ||
npx graph deploy --product hosted-service --ipfs https://api.thegraph.com/ipfs/ --node https://api.thegraph.com/deploy/ "$GITHUB_ORG/{{subgraphName}}" | ||
``` | ||
### Build and deploy | ||
```bash | ||
|
@@ -116,6 +133,8 @@ npm run build-deploy:nova | |
npm run build-deploy:zksync | ||
npm run build-deploy:base-goerli | ||
npm run build-deploy:base-mainnet | ||
npm run build-deploy:linea | ||
npm run build-deploy:polygonzk | ||
``` | ||
|
||
By default, it will deploy under `hop-protocol` github org. | ||
|
@@ -173,6 +192,18 @@ For Base: | |
ethereum: 'base-mainnet:https://developer-access-mainnet.base.org' | ||
``` | ||
For Linea: | ||
```yml | ||
ethereum: 'linea:https://rpc.linea.build' | ||
``` | ||
For Polygonzk: | ||
```yml | ||
ethereum: 'polygonzk:https://zkevm-rpc.com' | ||
``` | ||
For Linea (Goerli): | ||
```yml | ||
|
@@ -223,6 +254,18 @@ For Base: | |
npx graph create hop-protocol/hop-base-mainnet --node http://127.0.0.1:8020 | ||
``` | ||
|
||
For Base: | ||
|
||
```bash | ||
npx graph create hop-protocol/hop-linea --node http://127.0.0.1:8020 | ||
``` | ||
|
||
For Polygonzk: | ||
|
||
```bash | ||
npx graph create hop-protocol/hop-polygonzk --node http://127.0.0.1:8020 | ||
``` | ||
|
||
For Linea (Goerli): | ||
|
||
```bash | ||
|
@@ -267,6 +310,18 @@ For Base: | |
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-base-mainnet | ||
``` | ||
|
||
For Linea: | ||
|
||
```bash | ||
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-linea | ||
``` | ||
|
||
For Polygonzk: | ||
|
||
```bash | ||
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-polygonzk | ||
``` | ||
|
||
For Linea (Goerli): | ||
|
||
```bash | ||
|
@@ -311,6 +366,18 @@ For Base: | |
npm run build-deploy:base-mainnet | ||
``` | ||
|
||
For Linea: | ||
|
||
```bash | ||
npm run build-deploy:linea | ||
``` | ||
|
||
For Polygonzk: | ||
|
||
```bash | ||
npm run build-deploy:polygonzk | ||
``` | ||
|
||
For Linea (Goerli): | ||
|
||
```bash | ||
|
@@ -347,6 +414,14 @@ For Base: | |
|
||
http://localhost:8000/subgraphs/name/hop-protocol/hop-base-mainnet | ||
|
||
For Linea: | ||
|
||
http://localhost:8000/subgraphs/name/hop-protocol/hop-linea | ||
|
||
For Polygonzk: | ||
|
||
http://localhost:8000/subgraphs/name/hop-protocol/hop-polygonzk | ||
|
||
For Linea (Goerli): | ||
|
||
http://localhost:8000/subgraphs/name/hop-protocol/hop-linea-goerli | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.