/glasseater

Tools that eat glass so you don't have to

Primary LanguageTypeScript

GlassEater

Tools that eat glass so you don't have to.

glass eating

Docs coming soon...

Features

  • generates the most precise and optimal getProgramAccounts queries possible
  • automatically batches queries
  • autocompletes and type checks everything it possibly can
  • enables advanced local filtering
  • accepts custom borsh deserializers and fetch functions
  • zero dependencies (for the time being)

Installation

(npm|pnpm|yarn) add glasseater @solana/web3.js

Usage

import { AccountsQuery } from "glasseater";

const proposalsQuery = new AccountsQuery(SCHEMA, Proposal);

proposalsQuery
  .for(programId)
  .select(["config"])
  .where({
    accountType,
    realm: new PublicKey(realmId),
  });

const proposals = await proposalsQuery.fetch();

Wishlist

  • tests
  • anchor IDL support
  • joins
  • simpler interface
  • caching and deduplication*

* like swr, but this and batching might be better handled with a service worker