- Notifications
You must be signed in to change notification settings - Fork10
🇬 The Hop Protocol v1 Subgraphs for The Graph
License
hop-protocol/subgraph
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The Hop Protocol Subgraph forThe Graph.
Mainnet
Goerli
npx graph auth https://api.thegraph.com/deploy/<access-token>
The access token is found on the hosted-servicedashboard.
Update
scripts/mapping_config.json
with the new chain network and subgraph name mapping.Update the
@hop-protocol/sdk
package version inpackage.json
.Add the
build-deploy
npm script inpackage.json
.Update
.gitignore
andclean.sh
(this step can probably be automated).Run
npm i
to install the latest@hop-protocol/sdk
packageRun
npm run generate-config-json
to create the updated config files
The config generation script is run automatically when building the subgraph with npmbuild-deploy
command and can also be ran withnpm run generate-config-json
.
The generation scriptscripts/generate_config_json.js
will read the chain/token config from@hop-protocol/sdk
and output/override the config JSON files toconfig/
.
After bumping the version of
@hop-protocol/sdk
inpackage.json
and pushing to github and github action finishes building thedocker image, run the following commands to build and deploy the subgraph locally or on a server using docker compose:
# change this values to deploy a different subgraph. Refer to `scripts/mapping_config.json` for the subgraph nameexport NETWORK=base-goerliexport RPC=https://goerli.base.org# download docker-compose filewget https://raw.githubusercontent.com/hop-protocol/subgraph/master/docker-compose.yml# 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 existsudo RPC=https://rpc.linea.build NETWORK=linea docker compose up --pull=always
After a minute or so the graph should be available athttp://localhost:8000/subgraphs/name/hop-protocol/hop-base-goerli/graphql
- Troubleshooting
- If your server is unreachable from outside, ensure you enabled port
8000
with UFW- Disable and enable UFW after this
These are deprecated in favor of the local Docker instructions. Only reference these if Docker is not used.
# Required for AbortControllernvm install 16.6.1nvm use 16.6.1# Various requirementssudo apt install npmsudo apt install -y jqnpm i @graphprotocol/graph-cli@0.53.0
Depending on your NPM version, oboe@2.1.4 & multiaddr@6.1.1 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
If you get the following error, you need to run comment out two lines in
buildfile.template.sh
# ErrorFailed to deploy to Graph node https://api.thegraph.com/deploy/: subgraph failure::Subgraph [hop-protocol/hop-base-mainnet] not found# Lines to commentnpx graph auth https://api.thegraph.com/deploy/ $ACCESS_TOKENnpx graph deploy --product hosted-service --ipfs https://api.thegraph.com/ipfs/ --node https://api.thegraph.com/deploy/ "$GITHUB_ORG/{{subgraphName}}"
npm run build-deploy:mainnetnpm run build-deploy:mainnet-subgraph-studionpm run build-deploy:polygonnpm run build-deploy:xdainpm run build-deploy:optimismnpm run build-deploy:arbitrum# testnetnpm run build-deploy:goerlinpm run build-deploy:mumbainpm run build-deploy:optimism-goerli# localnpm run build-deploy:arbitrum-goerlinpm run build-deploy:novanpm run build-deploy:zksyncnpm run build-deploy:base-goerlinpm run build-deploy:base-mainnetnpm run build-deploy:lineanpm run build-deploy:polygonzk
By default, it will deploy underhop-protocol
github org.
SetGITHUB_ORG
to deploy another a different account.
Example:
GITHUB_ORG=<github-username> npm run build-deploy:mainnet
The following subgraphs will need to be created on the dashboard:
hop-mainnet
hop-polygon
hop-xdai
hop-optimism
hop-arbitrum
hop-goerli
hop-mumbai
hop-optimism-goerli
npm run clean
Update networks indocker-compose.yml
:
For Optimism Regenesis:
ethereum:'optimism:https://mainnet-replica-4.optimism.io'
For Arbitrum Nova:
ethereum:'nova:https://nova.arbitrum.io/rpc'
For zkSync:
ethereum:'zksync:https://zksync2-testnet.zksync.dev'
For Base:
ethereum:'base-mainnet:https://developer-access-mainnet.base.org'
For Linea:
ethereum:'linea:https://rpc.linea.build'
For Polygonzk:
ethereum:'polygonzk:https://zkevm-rpc.com'
For Linea (Goerli):
ethereum:'linea-goerli:https://consensys-zkevm-goerli-prealpha.infura.io/v3/YOUR_PROJECT_ID'
For Base (Goerli):
ethereum:'base-goerli:https://goerli.base.org'
For Arbitrum (Goerli):
ethereum:'arbitrum-goerli:https://goerli-rollup.arbitrum.io/rpc'
Start containers:
docker-compose up
Create local subgraph (in another terminal):
For Optimism Regenesis:
npx graph create hop-protocol/hop-optimism --node http://127.0.0.1:8020
For Arbitrum Nova:
npx graph create hop-protocol/hop-nova --node http://127.0.0.1:8020
For zkSync:
npx graph create hop-protocol/hop-zksync --node http://127.0.0.1:8020
For Base:
npx graph create hop-protocol/hop-base-mainnet --node http://127.0.0.1:8020
For Base:
npx graph create hop-protocol/hop-linea --node http://127.0.0.1:8020
For Polygonzk:
npx graph create hop-protocol/hop-polygonzk --node http://127.0.0.1:8020
For Linea (Goerli):
npx graph create hop-protocol/hop-linea-goerli --node http://127.0.0.1:8020
For Base (Goerli):
npx graph create hop-protocol/hop-base-goerli --node http://127.0.0.1:8020
For Arbitrum (Goerli):
npx graph create hop-protocol/hop-arbitrum-goerli --node http://127.0.0.1:8020
Deploy subgraph after building (add this line at the bottom ofbuildfiles.template.sh
and comment out existingnpx graph deploy
line):
For Optimism Regenesis:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-optimism
For Arbitrum Nova:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-nova
For zkSync:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-zksync
For Base:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-base-mainnet
For Linea:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-linea
For Polygonzk:
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-polygonzk
For Linea (Goerli):
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-linea-goerli
For Base (Goerli):
npx graph deploy --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-base-goerli
For Arbitrum (Goerli):
npx graph deploy --debug --ipfs http://localhost:5001 --node http://localhost:8020 hop-protocol/hop-arbitrum-goerli
Build and deploy:
For Optimism Regenesis:
npm run build-deploy:optimism
For Arbitrum Nova:
npm run build-deploy:nova
For zkSync:
npm run build-deploy:zksync
For Base:
npm run build-deploy:base-mainnet
For Linea:
npm run build-deploy:linea
For Polygonzk:
npm run build-deploy:polygonzk
For Linea (Goerli):
npm run build-deploy:linea-goerli
For Base (Goerli):
npm run build-deploy:base-goerli
For Arbitrum (Goerli):
npm run build-deploy:arbitrum-goerli
Query subgraphs
For Optimism Regenesis:
http://localhost:8000/subgraphs/name/hop-protocol/hop-optimism
For Arbitrum Nova:
http://localhost:8000/subgraphs/name/hop-protocol/hop-nova
For zkSync:
http://localhost:8000/subgraphs/name/hop-protocol/hop-zksync
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
For Base (Goerli):
http://localhost:8000/subgraphs/name/hop-protocol/hop-base-goerli
For Arbitrum (Goerli):
http://localhost:8000/subgraphs/name/hop-protocol/hop-arbitrum-goerli
Run github action build locally withact:
act --workflows .github/workflows/build.yml
About
🇬 The Hop Protocol v1 Subgraphs for The Graph
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.