wallets-indexer
v1.0.0
Published
## Setup:
Downloads
3
Readme
Wallet balance indexer
Setup:
- Create .env based on .env.exameple
- Ensure contractAdresses are up to date in contractAddresses.ts
- Ensure walletAdresses are up to date in trackedWallets.ts
- Run
pnpm install
- (if needed) migrate the database with prisma
prisma migrate deploy
- (if needed) update the prisma client with
pnpm run prisma:generate
- Run
createViews.sh
to create the views in the database that are used in Grafana.
Migrations
Migrating the database
- Migrate the database with prisma
prisma migrate deploy
if you're getting an error, check Fixing migration issues or common issues
Resetting the database
- Clear depending views
./deleteViews.sh
- Run
pnpm prisma migrate reset
to reset the database - Run
createViews.sh
to create the views in the database that are used in Grafana.
Fixing migration issues
If you've made migrations that drop/rename any columns or tables, odds are you will run into depending views. In this case
- Remove all views from the database
deleteViews.sh
- (if there is a failed migration with the status pending) run
pnpm prisma migrate resolve --rolled-back <migration_name>
. Tip: View status withpnpm prisma migrate status
- Run
pnpm prisma migrate deploy
- Run
createViews.sh
to re-create the views in the database that are used in Grafana.
Deploying the app
- Handle migrations as documented in the migrations tab; for fresh deployments make sure to rest the database
- From the root of ducata.io run
docker compose up --force-recreate --build wallets-indexer -d
to start the indexer in the background. - Verify everything is OK with
docker compose logs -f
Seeing the changes in Hasura
The indexer works in a different schema than the envio indexer because envio deletes all data on restart with envio dev. To see the changes in Hasura:
- Go to the Hasura console
- Press settings
- Toggle both options and select reload
- Go to the data tab
- Click on default, and create any schema. This forces hasura to reload the schema. (I have not yet found a better way to force this).
- Press the wallet schema that should have appeared
- Press track all / Track the tables that are relevant.
- Tables should now appear in the data tab.
Deploying / Redeploying
- For first time use, follow setup. For second time use, follow setu
- TODO
Migrations
Common issues
- Seeing something like ENVIRONMENT_VARIABLE_NOT_FOUND when running Prisma? Make sure to source the .env, alternatively inspect the .env copy the variable and run it. For instance:
INDEXER_DATABASE_URL=1234 pnpm prisma migrate status