@artblocks/abx-indexer 0.1.0-alpha.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/store.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { DatabaseSync } from 'node:sqlite';
2
2
  import { existsSync, mkdirSync, rmSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
+ import { resolveDataDir } from '@artblocks/abx-sdk/node';
4
5
  /** The cap a serving node MUST accept per bound output, and MUST refuse above
5
- * (`specs/self-host-toolkit/remote-services.md → The mode is decided by the binding`). ~100× a real
6
+ * (`site/content/docs/protocol/effects.mdx#metadata-binding`). ~100× a real
6
7
  * traits payload: generous for what it is for, far too small to become blob storage. */
7
8
  export const BOUND_ARTIFACT_MAX_BYTES = 64 * 1024;
8
- // The data plane's effect-artifact registry (`specs/protocol/data-plane.md`): one row per declared
9
+ // The data plane's effect-artifact registry (`site/content/docs/protocol/data-plane.mdx`): one row per declared
9
10
  // output a runner produced, keyed by renderArtifactKey at the CURRENT settled inputsHash (a param
10
11
  // change re-addresses → old rows go silently unlisted). Effect-agnostic — producers declare the
11
12
  // (effect_key, output_key, content_type); the store never interprets them. locator NULL = nothing to
@@ -40,6 +41,21 @@ const SCHEMA = `
40
41
  -- alongside the resolver) could fail outright with "database is locked" instead of waiting the moment
41
42
  -- out. Setting the journal mode itself takes a write lock, which is exactly the collision.
42
43
  PRAGMA busy_timeout = 5000;
44
+ -- Lets SQLite reclaim freed pages incrementally (via \`PRAGMA incremental_vacuum\`, see
45
+ -- SqliteStore.runIncrementalVacuum / \`abx vacuum\`) instead of only on a full VACUUM. Must precede
46
+ -- the first CREATE TABLE — auto_vacuum only takes effect on a database with no schema objects yet,
47
+ -- so this is a no-op for a store opened from an existing file (deliberately: a one-time \`VACUUM\` to
48
+ -- converting an existing store requires the explicit \`abx vacuum convert\`).
49
+ --
50
+ -- It must ALSO precede \`PRAGMA journal_mode = WAL\` below, not just the CREATE TABLEs — verified
51
+ -- empirically (\`packages/indexer/test/vacuum.test.ts\`): switching an empty database to WAL first and
52
+ -- only then requesting INCREMENTAL leaves \`PRAGMA auto_vacuum\` silently reporting 'none' forever
53
+ -- after, on this connection AND on every later reopen of the same file, even though no table has
54
+ -- been created yet and the pragma's own precondition ("database is empty") still holds. Whatever
55
+ -- SQLite's internal reason, the fix is this order; getting it backwards is indistinguishable from
56
+ -- the bug this whole file exists to fix — a store that LOOKS like it enabled incremental vacuum but
57
+ -- never actually did, and only \`SqliteStore.autoVacuumMode()\` would catch it.
58
+ PRAGMA auto_vacuum = INCREMENTAL;
43
59
  PRAGMA journal_mode = WAL;
44
60
  PRAGMA foreign_keys = ON;
45
61
 
@@ -70,7 +86,12 @@ CREATE TABLE IF NOT EXISTS projects (
70
86
  name TEXT,
71
87
  symbol TEXT,
72
88
  owner TEXT,
73
- contract_uri TEXT,
89
+ contract_uri TEXT, -- ALWAYS NULL:
90
+ -- the composed ERC-7572 document is a live read, never
91
+ -- projected (no settled value — a renderer can change it with
92
+ -- no log at all). Column kept for schema stability; nothing
93
+ -- writes it non-null. See token_uri_renderer/_locked below for
94
+ -- the settled scalars that DO stay projected.
74
95
  token_uri_renderer TEXT, -- non-null => tokenURI resolves on-chain
75
96
  token_uri_locked INTEGER, -- 0 | 1 | NULL
76
97
  contract_uri_renderer TEXT,
@@ -79,7 +100,7 @@ CREATE TABLE IF NOT EXISTS projects (
79
100
  royalty_bps INTEGER,
80
101
  collection_fields TEXT, -- JSON MetadataField[] (collection scope)
81
102
  locked_collection_fields TEXT, -- JSON string[]
82
- contract_type TEXT, -- '1of1' | 'series' (from enabled extensions)
103
+ contract_type TEXT, -- '1of1' | 'series' | 'code' | '1of1-edition' | 'edition' | 'edition-code'
83
104
  max_invocations TEXT, -- Series supply cap (decimal string) or NULL
84
105
  minter TEXT, -- the single authorized minter or NULL
85
106
  paused INTEGER, -- Paused extension: 1 | 0 | NULL (NULL/0 ⇒ unpaused)
@@ -94,9 +115,12 @@ CREATE TABLE IF NOT EXISTS projects (
94
115
  CREATE TABLE IF NOT EXISTS tokens (
95
116
  project_address TEXT NOT NULL,
96
117
  token_id TEXT NOT NULL,
97
- minted INTEGER NOT NULL DEFAULT 0,
118
+ lifecycle TEXT NOT NULL DEFAULT 'unminted', -- 'unminted' | 'live' | 'burned'; see TokenState
98
119
  owner TEXT,
99
- token_uri TEXT,
120
+ token_uri TEXT, -- ALWAYS NULL:
121
+ -- the composed tokenURI/uri(id) document is a live read,
122
+ -- never projected — same reasoning as contract_uri above.
123
+ -- Column kept for schema stability; nothing writes it non-null.
100
124
  fields TEXT, -- JSON MetadataField[] (on-chain token fields)
101
125
  locked_fields TEXT, -- JSON string[] (locked field names)
102
126
  PRIMARY KEY (project_address, token_id)
@@ -168,6 +192,27 @@ CREATE TABLE IF NOT EXISTS index_status (
168
192
  `;
169
193
  const b = (v) => v === null || v === undefined ? null : v ? 1 : 0;
170
194
  const lc = (address) => address.toLowerCase();
195
+ /**
196
+ * The event table's chain-derived sort key: `(blockNumber << 32) | logIndex`. Matches the schema
197
+ * comment (`seq INTEGER NOT NULL, -- chain order (block, logIndex)`), which the writer used to
198
+ * violate by storing the array index instead (positional — renumbers on every re-fold, so
199
+ * delete-and-reinsert was the only correct write). Encoding the real chain position makes `seq`
200
+ * stable across re-folds: the SAME event always computes the SAME seq, so appending is an
201
+ * `ON CONFLICT DO NOTHING` no-op rather than a rewrite (see {@link putProject}).
202
+ *
203
+ * A block's log index fits comfortably under 2^32 (a block would need billions of logs to
204
+ * overflow it), so the shift never collides. The result routinely EXCEEDS
205
+ * `Number.MAX_SAFE_INTEGER` — a Base Sepolia block height today already pushes `seq` past 2^53 —
206
+ * so this returns a `bigint`, bound directly (`node:sqlite`'s `DatabaseSync` accepts `bigint`
207
+ * params natively). Never round-trip this value through a JS `number`: reading an INTEGER column
208
+ * that large back with the driver's default (`readBigInts` off) throws
209
+ * `RangeError: Value is too large to be represented as a JavaScript number` — which is exactly why
210
+ * every reader below either selects an explicit column list that excludes `seq`, or (the migration)
211
+ * never materializes it in JS at all.
212
+ */
213
+ function eventSeq(ev) {
214
+ return (BigInt(ev.blockNumber) << 32n) | BigInt(ev.logIndex);
215
+ }
171
216
  /**
172
217
  * The reference store: a single SQLite file (`.abx-self-host/index.db`).
173
218
  *
@@ -185,18 +230,22 @@ export class SqliteStore {
185
230
  path;
186
231
  db;
187
232
  constructor(dataDir) {
188
- const dir = dataDir ?? process.env.ABX_DATA_DIR ?? resolve(process.cwd(), '.abx-self-host');
233
+ // Centralized in the SDK — see resolveDataDir's doc comment: this and four other
234
+ // call sites each carried an independent copy of this fallback, which is exactly the setup
235
+ // that can silently split a project's SQLite projection from its managed Arweave key.
236
+ const dir = dataDir ?? resolveDataDir().dir;
189
237
  mkdirSync(dir, { recursive: true });
190
238
  this.path = resolve(dir, 'index.db');
191
239
  this.db = new DatabaseSync(this.path);
192
240
  this.premigrate();
193
241
  this.db.exec(SCHEMA);
194
242
  this.migrate();
243
+ this.migrateSeq();
195
244
  }
196
245
  /** Shape changes that must land BEFORE the schema exec (its indexes reference new columns).
197
246
  * effect_artifacts pre-data-plane shape (key/address/locator only) → drop; the schema recreates
198
- * it. Dropping is safe pre-release: rows are producer-published and self-heal from a runner's
199
- * next sweep (record-on-skip / republish) — no chain data is lost. */
247
+ * it. Dropping is safe: rows are producer-published and self-heal from a runner's next sweep
248
+ * (record-on-skip / republish) — no chain data is lost. */
200
249
  premigrate() {
201
250
  const cols = this.db.prepare(`PRAGMA table_info(effect_artifacts)`).all();
202
251
  if (cols.length > 0 && !cols.some((c) => c.name === 'token_id')) {
@@ -219,7 +268,7 @@ export class SqliteStore {
219
268
  add('registrations', 'attributes TEXT');
220
269
  add('registrations', 'token_attributes TEXT');
221
270
  add('registrations', 'content_locators TEXT');
222
- add('tokens', 'minted INTEGER NOT NULL DEFAULT 0');
271
+ add('tokens', "lifecycle TEXT NOT NULL DEFAULT 'unminted'");
223
272
  add('tokens', 'fields TEXT');
224
273
  add('tokens', 'locked_fields TEXT');
225
274
  add('projects', 'collection_fields TEXT');
@@ -240,6 +289,51 @@ export class SqliteStore {
240
289
  // bound-output content (`effects.md → Bound vs referenced`): traits used to land in the
241
290
  // StorageBackend beside the referenced bytes; they belong with the row instead.
242
291
  add('effect_artifacts', 'bytes BLOB');
292
+ // ERC-1155 editions: per-id supply + cap (decimal strings) and current holder balances (JSON
293
+ // object address→balance, folded from TransferSingle/TransferBatch — see TokenState.holders).
294
+ // Text columns like their 721-token siblings above; absent for a 721 token, so NULL is the
295
+ // honest default rather than a fabricated '0'/'{}'.
296
+ add('tokens', 'supply TEXT');
297
+ add('tokens', 'max_supply TEXT');
298
+ add('tokens', 'holders TEXT');
299
+ // The collection-wide per-id default (`DefaultMaxSupplySet`) — the 1155 analogue of
300
+ // `max_invocations` above, and what makes a stored `max_supply` of '0' readable: with the
301
+ // override flag beside it, '0' is "closed forever" rather than "open".
302
+ add('projects', 'default_max_supply TEXT');
303
+ add('tokens', 'max_supply_overridden INTEGER');
304
+ }
305
+ /**
306
+ * One-time data migration, gated on `PRAGMA user_version` (unused before this — starts at 0 on
307
+ * every existing store). `migrate()` above only ever ADDs columns; recomputing `seq` rewrites
308
+ * VALUES in an existing column, which a `PRAGMA table_info` presence check can't gate — hence a
309
+ * separate versioned step.
310
+ *
311
+ * `events.seq` used to be the array index at write time (positional — renumbers on every re-fold).
312
+ * This recomputes every existing row to the chain-derived value `(block_number << 32) | log_index`
313
+ * — the same formula {@link eventSeq} uses going forward — so an upgraded store's history becomes
314
+ * append-only-compatible without re-indexing from chain. No collisions are possible: `(block,
315
+ * logIndex)` is already unique per project (the table's own history proves it — it was a valid
316
+ * event log before this ran), and the shift preserves that uniqueness.
317
+ *
318
+ * A fresh install has no rows yet, so the `UPDATE` is a no-op — but `user_version` still advances,
319
+ * so this never re-scans an empty table on every open. Wrapped in a transaction: a crash mid-way
320
+ * leaves `user_version` at 0 and retries the whole thing next open, never a half-migrated table.
321
+ */
322
+ migrateSeq() {
323
+ const CURRENT = 1;
324
+ const { user_version: version } = this.db.prepare(`PRAGMA user_version`).get();
325
+ if (version >= CURRENT)
326
+ return;
327
+ this.db.exec('BEGIN');
328
+ try {
329
+ this.db.exec(`UPDATE events SET seq = (CAST(block_number AS INTEGER) << 32) | CAST(log_index AS INTEGER)`);
330
+ this.db.exec(`PRAGMA user_version = ${CURRENT}`);
331
+ this.db.exec('COMMIT');
332
+ }
333
+ catch (err) {
334
+ this.db.exec('ROLLBACK');
335
+ throw err;
336
+ }
243
337
  }
244
338
  // ── registrations ──────────────────────────────────────────────────────────
245
339
  register(reg) {
@@ -271,6 +365,10 @@ export class SqliteStore {
271
365
  deregister(address) {
272
366
  const key = lc(address);
273
367
  this.deleteProjection(key);
368
+ // `deleteProjection` deliberately spares `events` (append-only, chain-derived — see its
369
+ // docstring); forgetting a project entirely must still remove them, or a re-`abx add` at a
370
+ // later block would resurrect old rows underneath a fresh registration.
371
+ this.db.prepare(`DELETE FROM events WHERE project_address = ?`).run(key);
274
372
  this.db.prepare(`DELETE FROM effect_artifacts WHERE address = ?`).run(key);
275
373
  this.db.prepare(`DELETE FROM effect_status WHERE address = ?`).run(key);
276
374
  this.db.prepare(`DELETE FROM index_status WHERE address = ?`).run(key);
@@ -385,21 +483,52 @@ export class SqliteStore {
385
483
  }));
386
484
  }
387
485
  // ── projection ───────────────────────────────────────────────────────────--
388
- putProject(state) {
486
+ /**
487
+ * Persist a reconstructed `ProjectState`. O(delta), not O(history): the routine case — one new
488
+ * mint on an otherwise-unchanged project — writes one project row and one token row, appends
489
+ * whatever events are new, and touches nothing else. A delete-and-reinsert approach would rewrite
490
+ * the entire projection (every token, every event) on every call.
491
+ *
492
+ * `contract_uri`/`token_uri` are bound NULL unconditionally regardless of what `state` carries —
493
+ * see the schema comments on those columns. This is deliberate even when a caller passed populated
494
+ * values (e.g. a reconstruct run with `readUriDocuments: true`): the store's job is never to cache
495
+ * a value with no settled state, only to serve it live when asked.
496
+ */
497
+ putProject(state, opts) {
389
498
  const key = lc(state.address);
390
499
  this.db.exec('BEGIN');
391
500
  try {
392
- this.deleteProjection(key);
501
+ // project row: full-column upsert, not delete-then-insert.
393
502
  this.db
394
503
  .prepare(`INSERT INTO projects (
395
504
  address, address_original, chain_id, abx_version, deploy_block, deploy_tx,
396
505
  factory, implementation, is_canonical, name, symbol, owner, contract_uri,
397
506
  token_uri_renderer, token_uri_locked, contract_uri_renderer, contract_uri_locked,
398
507
  royalty_receiver, royalty_bps, collection_fields, locked_collection_fields,
399
- contract_type, max_invocations, minter, paused, primary_payee, code_state,
400
- from_block, to_block, event_count, reconstructed_at, rpc_url
401
- ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`)
402
- .run(key, state.address, state.chainId, state.abxVersion, state.deployBlock, state.deployTx, state.factory, state.implementation, b(state.isCanonical), state.name, state.symbol, state.owner, state.contractURI, state.tokenURIRenderer, b(state.tokenURILocked), state.contractURIRenderer, b(state.contractURILocked), state.royalty?.receiver ?? null, state.royalty?.bps ?? null, JSON.stringify(state.collectionFields), JSON.stringify(state.lockedCollectionFields), state.contractType ?? null, state.maxInvocations ?? null, state.minter ?? null, b(state.paused), state.primaryPayee ?? null, JSON.stringify({
508
+ contract_type, max_invocations, default_max_supply, minter, paused, primary_payee,
509
+ code_state, from_block, to_block, event_count, reconstructed_at, rpc_url
510
+ ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
511
+ ON CONFLICT(address) DO UPDATE SET
512
+ address_original=excluded.address_original, chain_id=excluded.chain_id,
513
+ abx_version=excluded.abx_version, deploy_block=excluded.deploy_block,
514
+ deploy_tx=excluded.deploy_tx, factory=excluded.factory,
515
+ implementation=excluded.implementation, is_canonical=excluded.is_canonical,
516
+ name=excluded.name, symbol=excluded.symbol, owner=excluded.owner,
517
+ contract_uri=excluded.contract_uri, token_uri_renderer=excluded.token_uri_renderer,
518
+ token_uri_locked=excluded.token_uri_locked,
519
+ contract_uri_renderer=excluded.contract_uri_renderer,
520
+ contract_uri_locked=excluded.contract_uri_locked,
521
+ royalty_receiver=excluded.royalty_receiver, royalty_bps=excluded.royalty_bps,
522
+ collection_fields=excluded.collection_fields,
523
+ locked_collection_fields=excluded.locked_collection_fields,
524
+ contract_type=excluded.contract_type, max_invocations=excluded.max_invocations,
525
+ default_max_supply=excluded.default_max_supply,
526
+ minter=excluded.minter, paused=excluded.paused, primary_payee=excluded.primary_payee,
527
+ code_state=excluded.code_state, from_block=excluded.from_block,
528
+ to_block=excluded.to_block, event_count=excluded.event_count,
529
+ reconstructed_at=excluded.reconstructed_at, rpc_url=excluded.rpc_url`)
530
+ .run(key, state.address, state.chainId, state.abxVersion, state.deployBlock, state.deployTx, state.factory, state.implementation, b(state.isCanonical), state.name, state.symbol, state.owner, null, // contract_uri — always NULL; see the schema comment
531
+ state.tokenURIRenderer, b(state.tokenURILocked), state.contractURIRenderer, b(state.contractURILocked), state.royalty?.receiver ?? null, state.royalty?.bps ?? null, JSON.stringify(state.collectionFields), JSON.stringify(state.lockedCollectionFields), state.contractType ?? null, state.maxInvocations ?? null, state.defaultMaxSupply ?? null, state.minter ?? null, b(state.paused), state.primaryPayee ?? null, JSON.stringify({
403
532
  contractParams: state.contractParams ?? null,
404
533
  paramSchemas: state.paramSchemas ?? null,
405
534
  paramHooks: state.paramHooks ?? null,
@@ -408,19 +537,56 @@ export class SqliteStore {
408
537
  script: state.script ?? null,
409
538
  dependencies: state.dependencies ?? null,
410
539
  }), state.fromBlock, state.toBlock, state.eventCount, state.reconstructedAt, state.rpcUrl ?? null);
411
- const insToken = this.db.prepare(`INSERT INTO tokens (project_address, token_id, minted, owner, token_uri, fields, locked_fields, params)
412
- VALUES (?,?,?,?,?,?,?,?)`);
540
+ // tokens: upsert every token in the new state, then delete any id that's no longer present
541
+ // (a burn, or a re-fold dropping a placeholder — rare). Diffing against the STORED id list
542
+ // rather than binding the whole new-id list into a big `NOT IN (...)` keeps the delete set to
543
+ // exactly what actually vanished (usually nothing) instead of one parameter per surviving
544
+ // token, which would also risk SQLite's bound-parameter ceiling on a large collection.
545
+ const existingIds = this.db.prepare(`SELECT token_id FROM tokens WHERE project_address = ?`).all(key).map((r) => r.token_id);
546
+ const newIdSet = new Set(state.tokens.map((t) => t.tokenId));
547
+ const removedIds = existingIds.filter((id) => !newIdSet.has(id));
548
+ if (removedIds.length) {
549
+ const delToken = this.db.prepare(`DELETE FROM tokens WHERE project_address = ? AND token_id = ?`);
550
+ for (const id of removedIds)
551
+ delToken.run(key, id);
552
+ }
553
+ const upsertToken = this.db.prepare(`INSERT INTO tokens (project_address, token_id, lifecycle, owner, token_uri, fields, locked_fields, params, supply, max_supply, max_supply_overridden, holders)
554
+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
555
+ ON CONFLICT(project_address, token_id) DO UPDATE SET
556
+ lifecycle=excluded.lifecycle, owner=excluded.owner, token_uri=excluded.token_uri,
557
+ fields=excluded.fields, locked_fields=excluded.locked_fields, params=excluded.params,
558
+ supply=excluded.supply, max_supply=excluded.max_supply,
559
+ max_supply_overridden=excluded.max_supply_overridden, holders=excluded.holders`);
413
560
  for (const t of state.tokens) {
414
- insToken.run(key, t.tokenId, b(t.minted), t.owner, t.tokenURI, JSON.stringify(t.fields), JSON.stringify(t.lockedFields), t.params?.length ? JSON.stringify(t.params) : null);
561
+ upsertToken.run(key, t.tokenId, t.lifecycle, t.owner, null, // token_uri — always NULL; see the schema comment
562
+ JSON.stringify(t.fields), JSON.stringify(t.lockedFields), t.params?.length ? JSON.stringify(t.params) : null,
563
+ // editions only; absent (undefined) for a 721 token stays NULL, never a fabricated '0'/'{}'.
564
+ t.supply ?? null, t.maxSupply ?? null,
565
+ // `undefined` (a 721 token) stays NULL; only an id with its own MaxSupplyUpdated writes 1.
566
+ t.maxSupplyOverridden === undefined ? null : b(t.maxSupplyOverridden), t.holders && Object.keys(t.holders).length ? JSON.stringify(t.holders) : null);
415
567
  }
568
+ // extensions: a handful of rows per project — delete+reinsert stays simple and cheap; not
569
+ // worth an upsert.
570
+ this.db.prepare(`DELETE FROM extensions WHERE project_address = ?`).run(key);
416
571
  const insExt = this.db.prepare(`INSERT INTO extensions (project_address, id, name, version) VALUES (?,?,?,?)`);
417
572
  for (const e of state.extensions)
418
573
  insExt.run(key, e.id, e.name, e.version);
574
+ // events: append-only. `seq` is chain-derived (see {@link eventSeq}), so the SAME event always
575
+ // lands on the SAME row — a re-fold that re-derives the whole log from chain is a no-op here
576
+ // (every insert conflicts and is skipped), not a rewrite of however many thousand rows came
577
+ // before it. The one exception is a FULL replay: it is the documented repair path (a reorg can
578
+ // replace the event at a given (block, logIndex) with different content, and DO NOTHING would
579
+ // preserve the stale row forever), so a full replay purges this project's log first and
580
+ // rebuilds it from the fresh fold — restoring exactly the guarantee `abx index --full` claims.
581
+ if (opts?.fullReplay) {
582
+ this.db.prepare(`DELETE FROM events WHERE project_address = ?`).run(key);
583
+ }
419
584
  const insEvent = this.db.prepare(`INSERT INTO events (project_address, seq, name, register, what, block_number, log_index, tx_hash, args)
420
- VALUES (?,?,?,?,?,?,?,?,?)`);
421
- state.events.forEach((ev, i) => {
422
- insEvent.run(key, i, ev.name, ev.register, ev.what, ev.blockNumber, ev.logIndex, ev.txHash, JSON.stringify(ev.args));
423
- });
585
+ VALUES (?,?,?,?,?,?,?,?,?)
586
+ ON CONFLICT(project_address, seq) DO NOTHING`);
587
+ for (const ev of state.events) {
588
+ insEvent.run(key, eventSeq(ev), ev.name, ev.register, ev.what, ev.blockNumber, ev.logIndex, ev.txHash, JSON.stringify(ev.args));
589
+ }
424
590
  this.db.exec('COMMIT');
425
591
  }
426
592
  catch (err) {
@@ -449,8 +615,89 @@ export class SqliteStore {
449
615
  rmSync(f);
450
616
  }
451
617
  }
618
+ // ── SQLite maintenance ───────────────────────────────────────────────────────
619
+ // Deliberately NOT on the `Store` interface above: vacuuming is a SQLite-specific concern (a
620
+ // Postgres-backed implementation has its own manual VACUUM story, run outside this codebase), so
621
+ // callers that need it (the CLI's `abx vacuum`, `SelfHostIndexer.runIncrementalVacuum`) narrow to
622
+ // `SqliteStore` first rather than this leaking into the generic contract every backend implements.
623
+ /**
624
+ * This store's actual `PRAGMA auto_vacuum` mode, right now. A store opened from a file created
625
+ * before `SCHEMA` started setting `PRAGMA auto_vacuum = INCREMENTAL` BEFORE its first `CREATE
626
+ * TABLE` (see the comment on that pragma above) is permanently stuck at `'none'` — the pragma
627
+ * silently no-ops on a database that already has tables — until {@link vacuumConvert} runs. This
628
+ * is the detection half of the two-part approach: every other read/write path in this class is
629
+ * indifferent to the mode, so nothing breaks for a store still at `'none'`; only reclamation cares.
630
+ */
631
+ autoVacuumMode() {
632
+ const { auto_vacuum } = this.db.prepare(`PRAGMA auto_vacuum`).get();
633
+ return auto_vacuum === 2 ? 'incremental' : auto_vacuum === 1 ? 'full' : 'none';
634
+ }
635
+ /** Diagnostics behind `abx vacuum status`: {@link autoVacuumMode} alongside the raw page/freelist
636
+ * counts a caller (or a test) can watch move as maintenance runs. */
637
+ vacuumStats() {
638
+ const { freelist_count: freelistPages } = this.db.prepare(`PRAGMA freelist_count`).get();
639
+ const { page_count: pageCount } = this.db.prepare(`PRAGMA page_count`).get();
640
+ return { mode: this.autoVacuumMode(), freelistPages, pageCount };
641
+ }
642
+ /**
643
+ * The one-time, EXPLICIT conversion for a store stuck at `auto_vacuum='none'`: sets the pragma —
644
+ * on its own a no-op here, same as it was at construction, since the database already has tables
645
+ * — and then runs a full `VACUUM`, the only operation that actually rebuilds the file under the
646
+ * new mode. This is deliberately not run automatically anywhere in this class or in
647
+ * {@link SelfHostIndexer}: a full `VACUUM` rewrites the ENTIRE database file and can briefly need
648
+ * up to ~2x its on-disk size while it runs, so it must be an operator's explicit choice, made with
649
+ * that cost understood — `abx vacuum convert` (and the docs it points at) is that explicit surface.
650
+ * A no-op, returning the mode unchanged, once the store is already `'full'` or `'incremental'`.
651
+ */
652
+ vacuumConvert() {
653
+ if (this.autoVacuumMode() !== 'none')
654
+ return this.autoVacuumMode();
655
+ this.db.exec(`PRAGMA auto_vacuum = INCREMENTAL`);
656
+ this.db.exec(`VACUUM`);
657
+ return this.autoVacuumMode();
658
+ }
659
+ /**
660
+ * Bounded `PRAGMA incremental_vacuum(N)`: reclaims at most `maxPages` freed pages THIS call, never
661
+ * the whole freelist at once. `node:sqlite`'s `DatabaseSync` is SYNCHRONOUS and shares this process
662
+ * with token-api reads on a co-located `abx serve` — an unbounded reclaim would block every request
663
+ * in flight for however long a large freelist takes to drain. Bounding it is what makes it safe to
664
+ * call automatically between watch-loop ticks (see {@link SelfHostIndexer.runIncrementalVacuum})
665
+ * rather than only from the explicit `abx vacuum convert` command above.
666
+ *
667
+ * A no-op (returns 0, touches nothing) before the store has been converted to `'incremental'` mode
668
+ * — `incremental_vacuum` only does anything in that mode, and running it blind on a `'none'` store
669
+ * would be silent maintenance with no effect, which is worse than an honest no-op.
670
+ *
671
+ * Returns the number of pages actually REQUESTED of SQLite this call (capped by the freelist's
672
+ * current size), not a guarantee it moved exactly that many — draining an already-small freelist
673
+ * legitimately returns fewer than `maxPages`.
674
+ */
675
+ runIncrementalVacuum(maxPages) {
676
+ if (this.autoVacuumMode() !== 'incremental')
677
+ return 0;
678
+ const { freelist_count: freelistPages } = this.db.prepare(`PRAGMA freelist_count`).get();
679
+ if (freelistPages <= 0)
680
+ return 0;
681
+ const n = Math.min(maxPages, freelistPages);
682
+ if (n <= 0)
683
+ return 0;
684
+ // PRAGMA statements don't take bound parameters — `n` is computed internally above (never
685
+ // user input), so inlining it is safe.
686
+ this.db.exec(`PRAGMA incremental_vacuum(${n})`);
687
+ return n;
688
+ }
689
+ /**
690
+ * Drop one project's projection — `extensions` / `tokens` / `projects` — but deliberately NOT
691
+ * `events`. The event log is append-only and chain-derived (`seq` is `(block << 32) | logIndex`,
692
+ * so a re-fold always lands on the same rows): a re-index after this re-derives the identical
693
+ * event set from chain and re-inserts it as a no-op (`ON CONFLICT DO NOTHING`), so nothing is lost
694
+ * by leaving the rows in place, and `abx demo`'s "drop + replay" proof doesn't depend on the log
695
+ * being gone. `deregister`/forget-the-project-entirely paths delete events explicitly — this
696
+ * helper is for `dropProjection`, which keeps the registration precisely so the next reindex can
697
+ * rebuild from it.
698
+ */
452
699
  deleteProjection(key) {
453
- for (const table of ['events', 'extensions', 'tokens', 'projects']) {
700
+ for (const table of ['extensions', 'tokens', 'projects']) {
454
701
  this.db.prepare(`DELETE FROM ${table} WHERE ${table === 'projects' ? 'address' : 'project_address'} = ?`).run(key);
455
702
  }
456
703
  }
@@ -458,15 +705,32 @@ export class SqliteStore {
458
705
  const key = p.address;
459
706
  const tokens = this.db.prepare(`SELECT * FROM tokens WHERE project_address = ? ORDER BY CAST(token_id AS INTEGER)`).all(key).map((t) => ({
460
707
  tokenId: t.token_id,
461
- minted: !!t.minted,
708
+ // A row written before the burn fold landed carries no lifecycle; treat the projection as
709
+ // stale rather than inventing a state — a re-index rewrites it from the log.
710
+ lifecycle: t.lifecycle ?? 'unminted',
462
711
  owner: t.owner ?? null,
463
712
  tokenURI: t.token_uri ?? null,
464
713
  fields: JSON.parse(t.fields ?? '[]'),
465
714
  lockedFields: JSON.parse(t.locked_fields ?? '[]'),
466
715
  ...(t.params ? { params: JSON.parse(t.params) } : {}),
716
+ // editions only — NULL stays absent (never fabricated as '0'/'{}'), mirroring `params` above.
717
+ ...(t.supply !== null && t.supply !== undefined ? { supply: t.supply } : {}),
718
+ ...(t.max_supply !== null && t.max_supply !== undefined ? { maxSupply: t.max_supply } : {}),
719
+ ...(t.max_supply_overridden !== null && t.max_supply_overridden !== undefined
720
+ ? { maxSupplyOverridden: !!t.max_supply_overridden }
721
+ : {}),
722
+ ...(t.holders ? { holders: JSON.parse(t.holders) } : {}),
467
723
  }));
468
724
  const extensions = this.db.prepare(`SELECT * FROM extensions WHERE project_address = ? ORDER BY name`).all(key).map((e) => ({ id: e.id, name: e.name, version: e.version }));
469
- const events = this.db.prepare(`SELECT * FROM events WHERE project_address = ? ORDER BY seq`).all(key).map((e) => ({
725
+ // Explicit column list — deliberately excludes `seq`. `seq` can exceed
726
+ // `Number.MAX_SAFE_INTEGER` (see {@link eventSeq}), and this driver throws a RangeError
727
+ // materializing an INTEGER that large as a plain JS number unless the statement opts into
728
+ // `setReadBigInts(true)`. `ORDER BY seq` still sorts correctly with the column left out of the
729
+ // SELECT list — SQLite orders before projecting — and nothing downstream needs the raw value:
730
+ // `SpineEvent` orders itself by `(blockNumber, logIndex)` (see `byOrder` in the SDK), not by seq.
731
+ const events = this.db
732
+ .prepare(`SELECT name, register, what, block_number, log_index, tx_hash, args FROM events WHERE project_address = ? ORDER BY seq`)
733
+ .all(key).map((e) => ({
470
734
  name: e.name,
471
735
  register: e.register,
472
736
  what: e.what,
@@ -497,6 +761,7 @@ export class SqliteStore {
497
761
  lockedCollectionFields: JSON.parse(p.locked_collection_fields ?? '[]'),
498
762
  contractType: p.contract_type ?? undefined,
499
763
  maxInvocations: p.max_invocations ?? null,
764
+ defaultMaxSupply: p.default_max_supply ?? null,
500
765
  minter: p.minter ?? null,
501
766
  paused: !!p.paused,
502
767
  primaryPayee: p.primary_payee ?? null,
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@artblocks/abx-indexer",
3
- "version": "0.1.0-alpha.9",
3
+ "version": "0.1.0",
4
4
  "license": "MIT",
5
- "description": "ABX Self-Host Toolkit (Layer 3) — the reference indexer. Replays the event spine from chain into a disposable, rebuildable projection. The canonical re-index.",
5
+ "description": "Reference ABX indexer that rebuilds project state from on-chain events.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "exports": {
@@ -13,18 +13,19 @@
13
13
  },
14
14
  "files": [
15
15
  "dist",
16
+ "CHANGELOG.md",
16
17
  "LICENSE"
17
18
  ],
18
19
  "sideEffects": false,
19
20
  "engines": {
20
- "node": ">=22.5.0"
21
+ "node": ">=22.13.0"
21
22
  },
22
23
  "repository": {
23
24
  "type": "git",
24
25
  "url": "git+https://github.com/ArtBlocks/abx.git",
25
26
  "directory": "packages/indexer"
26
27
  },
27
- "homepage": "https://github.com/ArtBlocks/abx#readme",
28
+ "homepage": "https://docs.abx.io",
28
29
  "bugs": "https://github.com/ArtBlocks/abx/issues",
29
30
  "keywords": [
30
31
  "abx",
@@ -37,8 +38,8 @@
37
38
  "access": "public"
38
39
  },
39
40
  "dependencies": {
40
- "viem": "^2.21.0",
41
- "@artblocks/abx-sdk": "0.1.0-alpha.8"
41
+ "viem": "^2.56.5",
42
+ "@artblocks/abx-sdk": "0.1.0"
42
43
  },
43
44
  "scripts": {
44
45
  "build": "tsc -b tsconfig.build.json"