@setheum.js/evm-subql
v0.0.1
Published
Subquery services that index and query Setheum EVM+ transactions and logs.
Downloads
2
Readme
@setheum.js/evm-subql
Subquery services that index and query Setheum EVM+ transactions and logs.
Run
prepare
- build
eth-provider
package if haven't done it
rush update
rush build
- install project dependencies
yarn
- generate Typescript from the GraphQL schema, and build code. more details
yarn build
run all services with docker
This includes a Setheum node within Docker.
docker-compose down && docker volume prune # clean docker volume (optional)
docker-compose up # linux users
docker-compose -f macos-docker-compose.yml up # mac users
Make sure to feed some EVM transactions to setheum node, for example we can use these evm examples.
run each service seperately
- first install subql globally (recommended by the official doc)
npm i -g @subql/node @subql/query
run an Setheum node locally and listen to port 9944 (in terminal 1), and feed EVM data to it
run a postgres service and listen to port 5432 (in terminal 2)
docker run -it -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:12-alpine
- run a subquery indexer (in terminal 3)
export DB_USER=postgres
export DB_PASS=postgres
export DB_DATABASE=postgres
export DB_HOST=localhost
export DB_PORT=5432
yarn index
- run the Query service (in terminal 4)
export DB_USER=postgres
export DB_PASS=postgres
export DB_DATABASE=postgres
export DB_HOST=localhost
export DB_PORT=5432
yarn query
Now we can explorer graphql data at http://localhost:3001/ 🎉🎉
for example we can query
query {
transactionReceipts {
nodes {
id
to
from
transactionHash
transactionIndex
gasUsed
logs {
nodes {
id
}
}
}
}
logs {
nodes {
id,
blockNumber,
blockHash,
transactionIndex,
address,
data,
transactionHash,
receipt {
id
}
}
}
}
Notes
- Other packages in
setters.js
userush
to manage, but we useyarn
for this one. Sincerush update
will cause tslib import problem, becauserush
uses symlink so pacakges point to outside, butsubql/node
's NodeVM doesn't allow import from outside.