npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wallets-indexer

v1.0.0

Published

## Setup:

Downloads

3

Readme

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