@ocap/indexdb-sqlite
v1.29.14
Published
OCAP indexdb adapter that uses SQLite as backend
Readme
@ocap/indexdb-sqlite
OCAP indexdb adapter that uses SQLite as backend via Kysely
Install
npm install @ocap/indexdb-sqlite
// or
bun install @ocap/indexdb-sqliteUsage
In-Memory Mode
For testing or ephemeral data:
const SqliteIndexDB = require('@ocap/indexdb-sqlite').default;
const indexdb = new SqliteIndexDB({ filename: ':memory:' });
await indexdb.initialize();
// Use indexdb...
await indexdb.tx.insert({ hash: 'abc123', sender: 'z1...' });
// Close when done
await indexdb.close();File Mode
For persistent storage:
const SqliteIndexDB = require('@ocap/indexdb-sqlite').default;
const indexdb = new SqliteIndexDB({ filename: '/path/to/indexdb.sqlite' });
await indexdb.initialize();
// Data persists across restartsFeatures
- WAL mode enabled by default for better concurrent read performance
- Automatic migrations on initialization
- Generated columns for big number sorting (balances up to 24+ digits)
- Full-featured list methods with filtering, pagination, and sorting
- All 12 index tables: tx, account, asset, token, factory, stake, delegation, rollup, etc.
Big Number Sorting
SQLite cannot natively sort numeric strings as numbers. This adapter uses generated columns to handle large balance values (commonly found in blockchain applications):
-- Accounts with balances like "99999999999999999999" sort correctly
SELECT * FROM account ORDER BY balance_sort DESC;API
Constructor Options
interface SqliteIndexDBOptions {
filename: string; // ':memory:' or file path
}Methods
initialize()- Run migrations and prepare databaseclose()- Close database connectionlistTransactions(params)- Query transactions with filterslistTopAccounts(params)- Get accounts sorted by balancelistAssets(params)- Query assets by owner/factorylistTokens(params)- List all tokenslistFactories(params)- List asset factorieslistStakes(params)- Query stake recordslistDelegations(params)- Query delegationslistRollups(params)- List rollup configurationsgetRelatedAddresses(address)- Find related addresses
