1.0.0 • Published 12 months ago

wallets-indexer v1.0.0

Weekly downloads
-
License
-
Repository
-
Last release
12 months ago

Wallet balance indexer

Setup:

  1. Create .env based on .env.exameple
  2. Ensure contractAdresses are up to date in contractAddresses.ts
  3. Ensure walletAdresses are up to date in trackedWallets.ts
  4. Run pnpm install
  5. (if needed) migrate the database with prisma prisma migrate deploy
  6. (if needed) update the prisma client with pnpm run prisma:generate
  7. Run createViews.sh to create the views in the database that are used in Grafana.

Migrations

Migrating the database

  1. Migrate the database with prisma prisma migrate deploy

if you're getting an error, check Fixing migration issues or common issues

Resetting the database

  1. Clear depending views ./deleteViews.sh
  2. Run pnpm prisma migrate reset to reset the database
  3. 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

  1. Remove all views from the database deleteViews.sh
  2. (if there is a failed migration with the status pending) run pnpm prisma migrate resolve --rolled-back <migration_name>. Tip: View status with pnpm prisma migrate status
  3. Run pnpm prisma migrate deploy
  4. Run createViews.sh to re-create the views in the database that are used in Grafana.

Deploying the app

  1. Handle migrations as documented in the migrations tab; for fresh deployments make sure to rest the database
  2. From the root of ducata.io run docker compose up --force-recreate --build wallets-indexer -d to start the indexer in the background.
  3. 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:

  1. Go to the Hasura console
  2. Press settings
  3. Toggle both options and select reload
  4. Go to the data tab
  5. 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).
  6. Press the wallet schema that should have appeared
  7. Press track all / Track the tables that are relevant.
  8. Tables should now appear in the data tab.

Deploying / Redeploying

  1. For first time use, follow setup. For second time use, follow setu
  2. 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