@artblocks/abx-indexer 0.1.0-alpha.12 → 0.1.0-alpha.13

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/indexer.d.ts CHANGED
@@ -36,6 +36,7 @@ export declare class SelfHostIndexer {
36
36
  */
37
37
  reindex(address: Address, opts?: {
38
38
  full?: boolean;
39
+ readUriDocuments?: boolean;
39
40
  }): Promise<IndexResult>;
40
41
  /**
41
42
  * {@link reindex}, but concurrent calls for the same project COALESCE into one run.
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAElG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,OAAO,CAAC,OAAO,CAAmC;IAClD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAqE;gBAEzE,KAAK,CAAC,EAAE,KAAK;IAIzB,OAAO,CAAC,MAAM;IAMd;6FACyF;IACzF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAI5C;;6DAEyD;IACzD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,mBAAmB;IAO7E;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiDlF;;;;;;;;OAQG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYlF;uCACmC;IACnC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;IAU7C,OAAO,CAAC,KAAK;IAoBb,yCAAyC;IACnC,UAAU,CAAC,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQrE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAIjD;;0GAEsG;IACtG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItC,YAAY,IAAI,YAAY,EAAE;CAG/B"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAElG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,OAAO,CAAC,OAAO,CAAmC;IAClD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAqE;gBAEzE,KAAK,CAAC,EAAE,KAAK;IAIzB,OAAO,CAAC,MAAM;IAMd;6FACyF;IACzF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAI5C;;6DAEyD;IACzD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,mBAAmB;IAO7E;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyE9G;;;;;;;;OAQG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYlF;uCACmC;IACnC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;IAU7C,OAAO,CAAC,KAAK;IAoBb,yCAAyC;IACnC,UAAU,CAAC,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQrE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAIjD;;0GAEsG;IACtG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItC,YAAY,IAAI,YAAY,EAAE;CAG/B"}
package/dist/indexer.js CHANGED
@@ -65,7 +65,7 @@ export class SelfHostIndexer {
65
65
  let mode;
66
66
  try {
67
67
  if (incremental) {
68
- state = await reconstructIncremental(this.client(reg.chainKey), prior, { factory });
68
+ state = await reconstructIncremental(this.client(reg.chainKey), prior, { factory, readUriDocuments: opts.readUriDocuments });
69
69
  mode = 'incremental';
70
70
  }
71
71
  else {
@@ -73,6 +73,26 @@ export class SelfHostIndexer {
73
73
  address,
74
74
  fromBlock: BigInt(reg.fromBlock),
75
75
  factory,
76
+ readUriDocuments: opts.readUriDocuments,
77
+ });
78
+ mode = 'full';
79
+ }
80
+ // Self-heal, never loop: an incremental fold that yields FEWER events than what's already
81
+ // stored is the signature of the 2026-08-05 projection memo's (docs/11) war story — a bad fold
82
+ // silently zeroed a live projection, and nothing caught it because the watermark had already
83
+ // advanced past it. `eventCount` can only grow (append-only chain history), so a decrease is
84
+ // never legitimate — discard the bad fold before it's written, and repair with exactly ONE
85
+ // full replay from the deploy block. That result is written unconditionally, even in the
86
+ // (pathological) case where it too looks smaller: a full reconstruct from chain is
87
+ // definitionally correct, so there is nothing left to fall back to and no second attempt.
88
+ if (mode === 'incremental' && prior && state.eventCount < prior.eventCount) {
89
+ console.error(`[indexer] ${address}: an incremental fold produced ${state.eventCount} events, fewer than the ` +
90
+ `${prior.eventCount} already stored — discarding it and falling back to one full reconstruct.`);
91
+ state = await reconstructProject(this.client(reg.chainKey), {
92
+ address,
93
+ fromBlock: BigInt(reg.fromBlock),
94
+ factory,
95
+ readUriDocuments: opts.readUriDocuments,
76
96
  });
77
97
  mode = 'full';
78
98
  }
@@ -88,7 +108,9 @@ export class SelfHostIndexer {
88
108
  });
89
109
  throw err;
90
110
  }
91
- this.store.putProject(state);
111
+ // A full replay is the repair path — it purges + rebuilds the append-only event log so a
112
+ // reorg-replaced event can't survive as a stale row (incremental writes never delete).
113
+ this.store.putProject(state, { fullReplay: mode === 'full' });
92
114
  const now = new Date().toISOString();
93
115
  this.store.setIndexStatus(address, { status: 'live', error: null, attempts: 0, lastAttemptAt: now, lastIndexedAt: now });
94
116
  return { state, elapsedMs: Date.now() - started, mode };
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -165,7 +165,12 @@ export interface Store {
165
165
  /** Clear one artifact key's status — the run finished; artifact presence takes over as truth. */
166
166
  clearEffectStatus(key: string): void;
167
167
  listEffectStatuses(address: string): EffectStatusRow[];
168
- putProject(state: ProjectState): void;
168
+ /** Persist a folded projection. `fullReplay: true` (the repair path — `abx index --full`) purges
169
+ * the project's append-only event log first, so a reorg-replaced event can't survive as a stale
170
+ * row; routine incremental writes leave the log append-only. */
171
+ putProject(state: ProjectState, opts?: {
172
+ fullReplay?: boolean;
173
+ }): void;
169
174
  getProject(address: string): ProjectState | null;
170
175
  listProjects(): ProjectState[];
171
176
  /** Drop the rebuildable projection (keeps registrations). Proves replay. */
@@ -198,6 +203,24 @@ export declare class SqliteStore implements Store {
198
203
  /** Idempotently add columns introduced after a DB was first created (CREATE IF NOT
199
204
  * EXISTS won't backfill them). Keeps an existing projection working across upgrades. */
200
205
  private migrate;
206
+ /**
207
+ * One-time data migration, gated on `PRAGMA user_version` (unused before this — starts at 0 on
208
+ * every existing store). `migrate()` above only ever ADDs columns; recomputing `seq` rewrites
209
+ * VALUES in an existing column, which a `PRAGMA table_info` presence check can't gate — hence a
210
+ * separate versioned step.
211
+ *
212
+ * `events.seq` used to be the array index at write time (positional — renumbers on every re-fold).
213
+ * This recomputes every existing row to the chain-derived value `(block_number << 32) | log_index`
214
+ * — the same formula {@link eventSeq} uses going forward — so an upgraded store's history becomes
215
+ * append-only-compatible without re-indexing from chain. No collisions are possible: `(block,
216
+ * logIndex)` is already unique per project (the table's own history proves it — it was a valid
217
+ * event log before this ran), and the shift preserves that uniqueness.
218
+ *
219
+ * A fresh install has no rows yet, so the `UPDATE` is a no-op — but `user_version` still advances,
220
+ * so this never re-scans an empty table on every open. Wrapped in a transaction: a crash mid-way
221
+ * leaves `user_version` at 0 and retries the whole thing next open, never a half-migrated table.
222
+ */
223
+ private migrateSeq;
201
224
  register(reg: ProjectRegistration): void;
202
225
  listRegistrations(): ProjectRegistration[];
203
226
  getRegistration(address: string): ProjectRegistration | null;
@@ -221,11 +244,35 @@ export declare class SqliteStore implements Store {
221
244
  putEffectStatus(row: EffectStatusRow): void;
222
245
  clearEffectStatus(key: string): void;
223
246
  listEffectStatuses(address: string): EffectStatusRow[];
224
- putProject(state: ProjectState): void;
247
+ /**
248
+ * Persist a reconstructed `ProjectState`. O(delta), not O(history): the routine case — one new
249
+ * mint on an otherwise-unchanged project — writes one project row and one token row, appends
250
+ * whatever events are new, and touches nothing else. Contrast with the old delete-and-reinsert,
251
+ * which rewrote the entire projection (every token, every event) on every call
252
+ * (2026-08-05 projection memo, `docs/11`, finding #2).
253
+ *
254
+ * `contract_uri`/`token_uri` are bound NULL unconditionally regardless of what `state` carries —
255
+ * see the schema comments on those columns. This is deliberate even when a caller passed populated
256
+ * values (e.g. a reconstruct run with `readUriDocuments: true`): the store's job is never to cache
257
+ * a value with no settled state, only to serve it live when asked (finding #3, same memo).
258
+ */
259
+ putProject(state: ProjectState, opts?: {
260
+ fullReplay?: boolean;
261
+ }): void;
225
262
  getProject(address: string): ProjectState | null;
226
263
  listProjects(): ProjectState[];
227
264
  wipeProjections(): void;
228
265
  destroy(): void;
266
+ /**
267
+ * Drop one project's projection — `extensions` / `tokens` / `projects` — but deliberately NOT
268
+ * `events`. The event log is append-only and chain-derived (`seq` is `(block << 32) | logIndex`,
269
+ * so a re-fold always lands on the same rows): a re-index after this re-derives the identical
270
+ * event set from chain and re-inserts it as a no-op (`ON CONFLICT DO NOTHING`), so nothing is lost
271
+ * by leaving the rows in place, and `abx demo`'s "drop + replay" proof doesn't depend on the log
272
+ * being gone. `deregister`/forget-the-project-entirely paths delete events explicitly — this
273
+ * helper is for `dropProjection`, which keeps the registration precisely so the next reindex can
274
+ * rebuild from it.
275
+ */
229
276
  private deleteProjection;
230
277
  private hydrate;
231
278
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,UAAU,EACV,eAAe,EACf,WAAW,EAEX,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAE5B,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;iFAC6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;kGAE8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;uGACmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;2BAM2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;yFAEyF;AACzF,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,gFAAgF;IAChF,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;4CACwC;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;+FAC+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;iFAEiF;AACjF,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,iBAAiB,IAAI,mBAAmB,EAAE,CAAC;IAC3C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7D,yGAAyG;IACzG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;oGAEgG;IAChG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;gDAE4C;IAC5C,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChD,uEAAuE;IACvE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACzD;kGAC8F;IAC9F,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC3E;;;;;;;;;;;;OAYG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3H;sDACkD;IAClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACzE,4EAA4E;IAC5E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IACvD,yEAAyE;IACzE,iBAAiB,IAAI,cAAc,EAAE,CAAC;IAEtC,oFAAoF;IACpF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEpC,0FAA0F;IAC1F,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,iGAAiG;IACjG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;IAEvD,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACjD,YAAY,IAAI,YAAY,EAAE,CAAC;IAE/B,4EAA4E;IAC5E,eAAe,IAAI,IAAI,CAAC;IACxB,sDAAsD;IACtD,OAAO,IAAI,IAAI,CAAC;CACjB;AAyKD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,YAAW,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAe;gBAEb,OAAO,CAAC,EAAE,MAAM;IAU5B;;;2EAGuE;IACvE,OAAO,CAAC,UAAU;IAOlB;6FACyF;IACzF,OAAO,CAAC,OAAO;IAqCf,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IA4BxC,iBAAiB,IAAI,mBAAmB,EAAE;IAO1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAK5D,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUjC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAyB/C,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,IAAI;IAUP,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOxD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAS1E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMnC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,cAAc;IAoCxE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAKtD,iBAAiB,IAAI,cAAc,EAAE;IAQrC,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAqB3C,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAiBtD,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAgGrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKhD,YAAY,IAAI,YAAY,EAAE;IAO9B,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,OAAO;CAmEhB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,UAAU,EACV,eAAe,EACf,WAAW,EAEX,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAE5B,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;iFAC6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;kGAE8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;uGACmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;2BAM2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;yFAEyF;AACzF,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,gFAAgF;IAChF,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;4CACwC;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;+FAC+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;iFAEiF;AACjF,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,iBAAiB,IAAI,mBAAmB,EAAE,CAAC;IAC3C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7D,yGAAyG;IACzG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;oGAEgG;IAChG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;gDAE4C;IAC5C,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChD,uEAAuE;IACvE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACzD;kGAC8F;IAC9F,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC3E;;;;;;;;;;;;OAYG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3H;sDACkD;IAClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACzE,4EAA4E;IAC5E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IACvD,yEAAyE;IACzE,iBAAiB,IAAI,cAAc,EAAE,CAAC;IAEtC,oFAAoF;IACpF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEpC,0FAA0F;IAC1F,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,iGAAiG;IACjG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;IAEvD;;qEAEiE;IACjE,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC;IACrE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACjD,YAAY,IAAI,YAAY,EAAE,CAAC;IAE/B,4EAA4E;IAC5E,eAAe,IAAI,IAAI,CAAC;IACxB,sDAAsD;IACtD,OAAO,IAAI,IAAI,CAAC;CACjB;AA4MD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,YAAW,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAe;gBAEb,OAAO,CAAC,EAAE,MAAM;IAW5B;;;2EAGuE;IACvE,OAAO,CAAC,UAAU;IAOlB;6FACyF;IACzF,OAAO,CAAC,OAAO;IA2Cf;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,UAAU;IAgBlB,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IA4BxC,iBAAiB,IAAI,mBAAmB,EAAE;IAO1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAK5D,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAcjC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAyB/C,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,IAAI;IAUP,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOxD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAS1E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMnC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,cAAc;IAoCxE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAKtD,iBAAiB,IAAI,cAAc,EAAE;IAQrC,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAqB3C,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAiBtD;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI;IAsJpE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKhD,YAAY,IAAI,YAAY,EAAE;IAO9B,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,IAAI;IAQf;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,OAAO;CA+EhB"}
package/dist/store.js CHANGED
@@ -42,6 +42,11 @@ const SCHEMA = `
42
42
  PRAGMA busy_timeout = 5000;
43
43
  PRAGMA journal_mode = WAL;
44
44
  PRAGMA foreign_keys = ON;
45
+ -- Lets SQLite reclaim freed pages incrementally (via \`PRAGMA incremental_vacuum\`) instead of only on
46
+ -- a full VACUUM. Must precede the first CREATE TABLE — auto_vacuum only takes effect on a database
47
+ -- with no tables yet, so this is a no-op for a store opened from an existing file (deliberately: a
48
+ -- one-time \`VACUUM\` to convert an existing store is deferred — docs/10-backlog.md B29).
49
+ PRAGMA auto_vacuum = INCREMENTAL;
45
50
 
46
51
  CREATE TABLE IF NOT EXISTS registrations (
47
52
  address TEXT PRIMARY KEY, -- lowercased
@@ -70,7 +75,12 @@ CREATE TABLE IF NOT EXISTS projects (
70
75
  name TEXT,
71
76
  symbol TEXT,
72
77
  owner TEXT,
73
- contract_uri TEXT,
78
+ contract_uri TEXT, -- ALWAYS NULL as of the 2026-08-05 projection memo (docs/11):
79
+ -- the composed ERC-7572 document is a live read, never
80
+ -- projected (no settled value — a renderer can change it with
81
+ -- no log at all). Column kept for schema stability; nothing
82
+ -- writes it non-null. See token_uri_renderer/_locked below for
83
+ -- the settled scalars that DO stay projected.
74
84
  token_uri_renderer TEXT, -- non-null => tokenURI resolves on-chain
75
85
  token_uri_locked INTEGER, -- 0 | 1 | NULL
76
86
  contract_uri_renderer TEXT,
@@ -79,7 +89,7 @@ CREATE TABLE IF NOT EXISTS projects (
79
89
  royalty_bps INTEGER,
80
90
  collection_fields TEXT, -- JSON MetadataField[] (collection scope)
81
91
  locked_collection_fields TEXT, -- JSON string[]
82
- contract_type TEXT, -- '1of1' | 'series' (from enabled extensions)
92
+ contract_type TEXT, -- '1of1' | 'series' | 'code' | '1of1-edition' | 'edition' | 'edition-code'
83
93
  max_invocations TEXT, -- Series supply cap (decimal string) or NULL
84
94
  minter TEXT, -- the single authorized minter or NULL
85
95
  paused INTEGER, -- Paused extension: 1 | 0 | NULL (NULL/0 ⇒ unpaused)
@@ -96,7 +106,10 @@ CREATE TABLE IF NOT EXISTS tokens (
96
106
  token_id TEXT NOT NULL,
97
107
  minted INTEGER NOT NULL DEFAULT 0,
98
108
  owner TEXT,
99
- token_uri TEXT,
109
+ token_uri TEXT, -- ALWAYS NULL as of the 2026-08-05 projection memo (docs/11):
110
+ -- the composed tokenURI/uri(id) document is a live read,
111
+ -- never projected — same reasoning as contract_uri above.
112
+ -- Column kept for schema stability; nothing writes it non-null.
100
113
  fields TEXT, -- JSON MetadataField[] (on-chain token fields)
101
114
  locked_fields TEXT, -- JSON string[] (locked field names)
102
115
  PRIMARY KEY (project_address, token_id)
@@ -168,6 +181,27 @@ CREATE TABLE IF NOT EXISTS index_status (
168
181
  `;
169
182
  const b = (v) => v === null || v === undefined ? null : v ? 1 : 0;
170
183
  const lc = (address) => address.toLowerCase();
184
+ /**
185
+ * The event table's chain-derived sort key: `(blockNumber << 32) | logIndex`. Matches the schema
186
+ * comment (`seq INTEGER NOT NULL, -- chain order (block, logIndex)`), which the writer used to
187
+ * violate by storing the array index instead (positional — renumbers on every re-fold, so
188
+ * delete-and-reinsert was the only correct write). Encoding the real chain position makes `seq`
189
+ * stable across re-folds: the SAME event always computes the SAME seq, so appending is an
190
+ * `ON CONFLICT DO NOTHING` no-op rather than a rewrite (see {@link putProject}).
191
+ *
192
+ * A block's log index fits comfortably under 2^32 (a block would need billions of logs to
193
+ * overflow it), so the shift never collides. The result routinely EXCEEDS
194
+ * `Number.MAX_SAFE_INTEGER` — a Base Sepolia block height today already pushes `seq` past 2^53 —
195
+ * so this returns a `bigint`, bound directly (`node:sqlite`'s `DatabaseSync` accepts `bigint`
196
+ * params natively). Never round-trip this value through a JS `number`: reading an INTEGER column
197
+ * that large back with the driver's default (`readBigInts` off) throws
198
+ * `RangeError: Value is too large to be represented as a JavaScript number` — which is exactly why
199
+ * every reader below either selects an explicit column list that excludes `seq`, or (the migration)
200
+ * never materializes it in JS at all.
201
+ */
202
+ function eventSeq(ev) {
203
+ return (BigInt(ev.blockNumber) << 32n) | BigInt(ev.logIndex);
204
+ }
171
205
  /**
172
206
  * The reference store: a single SQLite file (`.abx-self-host/index.db`).
173
207
  *
@@ -192,6 +226,7 @@ export class SqliteStore {
192
226
  this.premigrate();
193
227
  this.db.exec(SCHEMA);
194
228
  this.migrate();
229
+ this.migrateSeq();
195
230
  }
196
231
  /** Shape changes that must land BEFORE the schema exec (its indexes reference new columns).
197
232
  * effect_artifacts pre-data-plane shape (key/address/locator only) → drop; the schema recreates
@@ -240,6 +275,46 @@ export class SqliteStore {
240
275
  // bound-output content (`effects.md → Bound vs referenced`): traits used to land in the
241
276
  // StorageBackend beside the referenced bytes; they belong with the row instead.
242
277
  add('effect_artifacts', 'bytes BLOB');
278
+ // ERC-1155 editions: per-id supply + cap (decimal strings) and current holder balances (JSON
279
+ // object address→balance, folded from TransferSingle/TransferBatch — see TokenState.holders).
280
+ // Text columns like their 721-token siblings above; absent for a 721 token, so NULL is the
281
+ // honest default rather than a fabricated '0'/'{}'.
282
+ add('tokens', 'supply TEXT');
283
+ add('tokens', 'max_supply TEXT');
284
+ add('tokens', 'holders TEXT');
285
+ }
286
+ /**
287
+ * One-time data migration, gated on `PRAGMA user_version` (unused before this — starts at 0 on
288
+ * every existing store). `migrate()` above only ever ADDs columns; recomputing `seq` rewrites
289
+ * VALUES in an existing column, which a `PRAGMA table_info` presence check can't gate — hence a
290
+ * separate versioned step.
291
+ *
292
+ * `events.seq` used to be the array index at write time (positional — renumbers on every re-fold).
293
+ * This recomputes every existing row to the chain-derived value `(block_number << 32) | log_index`
294
+ * — the same formula {@link eventSeq} uses going forward — so an upgraded store's history becomes
295
+ * append-only-compatible without re-indexing from chain. No collisions are possible: `(block,
296
+ * logIndex)` is already unique per project (the table's own history proves it — it was a valid
297
+ * event log before this ran), and the shift preserves that uniqueness.
298
+ *
299
+ * A fresh install has no rows yet, so the `UPDATE` is a no-op — but `user_version` still advances,
300
+ * so this never re-scans an empty table on every open. Wrapped in a transaction: a crash mid-way
301
+ * leaves `user_version` at 0 and retries the whole thing next open, never a half-migrated table.
302
+ */
303
+ migrateSeq() {
304
+ const CURRENT = 1;
305
+ const { user_version: version } = this.db.prepare(`PRAGMA user_version`).get();
306
+ if (version >= CURRENT)
307
+ return;
308
+ this.db.exec('BEGIN');
309
+ try {
310
+ this.db.exec(`UPDATE events SET seq = (CAST(block_number AS INTEGER) << 32) | CAST(log_index AS INTEGER)`);
311
+ this.db.exec(`PRAGMA user_version = ${CURRENT}`);
312
+ this.db.exec('COMMIT');
313
+ }
314
+ catch (err) {
315
+ this.db.exec('ROLLBACK');
316
+ throw err;
317
+ }
243
318
  }
244
319
  // ── registrations ──────────────────────────────────────────────────────────
245
320
  register(reg) {
@@ -271,6 +346,10 @@ export class SqliteStore {
271
346
  deregister(address) {
272
347
  const key = lc(address);
273
348
  this.deleteProjection(key);
349
+ // `deleteProjection` deliberately spares `events` (append-only, chain-derived — see its
350
+ // docstring); forgetting a project entirely must still remove them, or a re-`abx add` at a
351
+ // later block would resurrect old rows underneath a fresh registration.
352
+ this.db.prepare(`DELETE FROM events WHERE project_address = ?`).run(key);
274
353
  this.db.prepare(`DELETE FROM effect_artifacts WHERE address = ?`).run(key);
275
354
  this.db.prepare(`DELETE FROM effect_status WHERE address = ?`).run(key);
276
355
  this.db.prepare(`DELETE FROM index_status WHERE address = ?`).run(key);
@@ -385,11 +464,23 @@ export class SqliteStore {
385
464
  }));
386
465
  }
387
466
  // ── projection ───────────────────────────────────────────────────────────--
388
- putProject(state) {
467
+ /**
468
+ * Persist a reconstructed `ProjectState`. O(delta), not O(history): the routine case — one new
469
+ * mint on an otherwise-unchanged project — writes one project row and one token row, appends
470
+ * whatever events are new, and touches nothing else. Contrast with the old delete-and-reinsert,
471
+ * which rewrote the entire projection (every token, every event) on every call
472
+ * (2026-08-05 projection memo, `docs/11`, finding #2).
473
+ *
474
+ * `contract_uri`/`token_uri` are bound NULL unconditionally regardless of what `state` carries —
475
+ * see the schema comments on those columns. This is deliberate even when a caller passed populated
476
+ * values (e.g. a reconstruct run with `readUriDocuments: true`): the store's job is never to cache
477
+ * a value with no settled state, only to serve it live when asked (finding #3, same memo).
478
+ */
479
+ putProject(state, opts) {
389
480
  const key = lc(state.address);
390
481
  this.db.exec('BEGIN');
391
482
  try {
392
- this.deleteProjection(key);
483
+ // project row: full-column upsert, not delete-then-insert.
393
484
  this.db
394
485
  .prepare(`INSERT INTO projects (
395
486
  address, address_original, chain_id, abx_version, deploy_block, deploy_tx,
@@ -398,8 +489,27 @@ export class SqliteStore {
398
489
  royalty_receiver, royalty_bps, collection_fields, locked_collection_fields,
399
490
  contract_type, max_invocations, minter, paused, primary_payee, code_state,
400
491
  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({
492
+ ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
493
+ ON CONFLICT(address) DO UPDATE SET
494
+ address_original=excluded.address_original, chain_id=excluded.chain_id,
495
+ abx_version=excluded.abx_version, deploy_block=excluded.deploy_block,
496
+ deploy_tx=excluded.deploy_tx, factory=excluded.factory,
497
+ implementation=excluded.implementation, is_canonical=excluded.is_canonical,
498
+ name=excluded.name, symbol=excluded.symbol, owner=excluded.owner,
499
+ contract_uri=excluded.contract_uri, token_uri_renderer=excluded.token_uri_renderer,
500
+ token_uri_locked=excluded.token_uri_locked,
501
+ contract_uri_renderer=excluded.contract_uri_renderer,
502
+ contract_uri_locked=excluded.contract_uri_locked,
503
+ royalty_receiver=excluded.royalty_receiver, royalty_bps=excluded.royalty_bps,
504
+ collection_fields=excluded.collection_fields,
505
+ locked_collection_fields=excluded.locked_collection_fields,
506
+ contract_type=excluded.contract_type, max_invocations=excluded.max_invocations,
507
+ minter=excluded.minter, paused=excluded.paused, primary_payee=excluded.primary_payee,
508
+ code_state=excluded.code_state, from_block=excluded.from_block,
509
+ to_block=excluded.to_block, event_count=excluded.event_count,
510
+ reconstructed_at=excluded.reconstructed_at, rpc_url=excluded.rpc_url`)
511
+ .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
512
+ 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({
403
513
  contractParams: state.contractParams ?? null,
404
514
  paramSchemas: state.paramSchemas ?? null,
405
515
  paramHooks: state.paramHooks ?? null,
@@ -408,19 +518,53 @@ export class SqliteStore {
408
518
  script: state.script ?? null,
409
519
  dependencies: state.dependencies ?? null,
410
520
  }), 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 (?,?,?,?,?,?,?,?)`);
521
+ // tokens: upsert every token in the new state, then delete any id that's no longer present
522
+ // (a burn, or a re-fold dropping a placeholder — rare). Diffing against the STORED id list
523
+ // rather than binding the whole new-id list into a big `NOT IN (...)` keeps the delete set to
524
+ // exactly what actually vanished (usually nothing) instead of one parameter per surviving
525
+ // token, which would also risk SQLite's bound-parameter ceiling on a large collection.
526
+ const existingIds = this.db.prepare(`SELECT token_id FROM tokens WHERE project_address = ?`).all(key).map((r) => r.token_id);
527
+ const newIdSet = new Set(state.tokens.map((t) => t.tokenId));
528
+ const removedIds = existingIds.filter((id) => !newIdSet.has(id));
529
+ if (removedIds.length) {
530
+ const delToken = this.db.prepare(`DELETE FROM tokens WHERE project_address = ? AND token_id = ?`);
531
+ for (const id of removedIds)
532
+ delToken.run(key, id);
533
+ }
534
+ const upsertToken = this.db.prepare(`INSERT INTO tokens (project_address, token_id, minted, owner, token_uri, fields, locked_fields, params, supply, max_supply, holders)
535
+ VALUES (?,?,?,?,?,?,?,?,?,?,?)
536
+ ON CONFLICT(project_address, token_id) DO UPDATE SET
537
+ minted=excluded.minted, owner=excluded.owner, token_uri=excluded.token_uri,
538
+ fields=excluded.fields, locked_fields=excluded.locked_fields, params=excluded.params,
539
+ supply=excluded.supply, max_supply=excluded.max_supply, holders=excluded.holders`);
413
540
  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);
541
+ upsertToken.run(key, t.tokenId, b(t.minted), t.owner, null, // token_uri always NULL; see the schema comment
542
+ JSON.stringify(t.fields), JSON.stringify(t.lockedFields), t.params?.length ? JSON.stringify(t.params) : null,
543
+ // editions only; absent (undefined) for a 721 token stays NULL, never a fabricated '0'/'{}'.
544
+ t.supply ?? null, t.maxSupply ?? null, t.holders && Object.keys(t.holders).length ? JSON.stringify(t.holders) : null);
415
545
  }
546
+ // extensions: a handful of rows per project — delete+reinsert stays simple and cheap; not
547
+ // worth an upsert.
548
+ this.db.prepare(`DELETE FROM extensions WHERE project_address = ?`).run(key);
416
549
  const insExt = this.db.prepare(`INSERT INTO extensions (project_address, id, name, version) VALUES (?,?,?,?)`);
417
550
  for (const e of state.extensions)
418
551
  insExt.run(key, e.id, e.name, e.version);
552
+ // events: append-only. `seq` is chain-derived (see {@link eventSeq}), so the SAME event always
553
+ // lands on the SAME row — a re-fold that re-derives the whole log from chain is a no-op here
554
+ // (every insert conflicts and is skipped), not a rewrite of however many thousand rows came
555
+ // before it. The one exception is a FULL replay: it is the documented repair path (a reorg can
556
+ // replace the event at a given (block, logIndex) with different content, and DO NOTHING would
557
+ // preserve the stale row forever), so a full replay purges this project's log first and
558
+ // rebuilds it from the fresh fold — restoring exactly the guarantee `abx index --full` claims.
559
+ if (opts?.fullReplay) {
560
+ this.db.prepare(`DELETE FROM events WHERE project_address = ?`).run(key);
561
+ }
419
562
  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
- });
563
+ VALUES (?,?,?,?,?,?,?,?,?)
564
+ ON CONFLICT(project_address, seq) DO NOTHING`);
565
+ for (const ev of state.events) {
566
+ insEvent.run(key, eventSeq(ev), ev.name, ev.register, ev.what, ev.blockNumber, ev.logIndex, ev.txHash, JSON.stringify(ev.args));
567
+ }
424
568
  this.db.exec('COMMIT');
425
569
  }
426
570
  catch (err) {
@@ -449,8 +593,18 @@ export class SqliteStore {
449
593
  rmSync(f);
450
594
  }
451
595
  }
596
+ /**
597
+ * Drop one project's projection — `extensions` / `tokens` / `projects` — but deliberately NOT
598
+ * `events`. The event log is append-only and chain-derived (`seq` is `(block << 32) | logIndex`,
599
+ * so a re-fold always lands on the same rows): a re-index after this re-derives the identical
600
+ * event set from chain and re-inserts it as a no-op (`ON CONFLICT DO NOTHING`), so nothing is lost
601
+ * by leaving the rows in place, and `abx demo`'s "drop + replay" proof doesn't depend on the log
602
+ * being gone. `deregister`/forget-the-project-entirely paths delete events explicitly — this
603
+ * helper is for `dropProjection`, which keeps the registration precisely so the next reindex can
604
+ * rebuild from it.
605
+ */
452
606
  deleteProjection(key) {
453
- for (const table of ['events', 'extensions', 'tokens', 'projects']) {
607
+ for (const table of ['extensions', 'tokens', 'projects']) {
454
608
  this.db.prepare(`DELETE FROM ${table} WHERE ${table === 'projects' ? 'address' : 'project_address'} = ?`).run(key);
455
609
  }
456
610
  }
@@ -464,9 +618,21 @@ export class SqliteStore {
464
618
  fields: JSON.parse(t.fields ?? '[]'),
465
619
  lockedFields: JSON.parse(t.locked_fields ?? '[]'),
466
620
  ...(t.params ? { params: JSON.parse(t.params) } : {}),
621
+ // editions only — NULL stays absent (never fabricated as '0'/'{}'), mirroring `params` above.
622
+ ...(t.supply !== null && t.supply !== undefined ? { supply: t.supply } : {}),
623
+ ...(t.max_supply !== null && t.max_supply !== undefined ? { maxSupply: t.max_supply } : {}),
624
+ ...(t.holders ? { holders: JSON.parse(t.holders) } : {}),
467
625
  }));
468
626
  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) => ({
627
+ // Explicit column list deliberately excludes `seq`. `seq` can exceed
628
+ // `Number.MAX_SAFE_INTEGER` (see {@link eventSeq}), and this driver throws a RangeError
629
+ // materializing an INTEGER that large as a plain JS number unless the statement opts into
630
+ // `setReadBigInts(true)`. `ORDER BY seq` still sorts correctly with the column left out of the
631
+ // SELECT list — SQLite orders before projecting — and nothing downstream needs the raw value:
632
+ // `SpineEvent` orders itself by `(blockNumber, logIndex)` (see `byOrder` in the SDK), not by seq.
633
+ const events = this.db
634
+ .prepare(`SELECT name, register, what, block_number, log_index, tx_hash, args FROM events WHERE project_address = ? ORDER BY seq`)
635
+ .all(key).map((e) => ({
470
636
  name: e.name,
471
637
  register: e.register,
472
638
  what: e.what,
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@artblocks/abx-indexer",
3
- "version": "0.1.0-alpha.12",
3
+ "version": "0.1.0-alpha.13",
4
4
  "license": "MIT",
5
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.",
6
6
  "type": "module",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "viem": "^2.21.0",
41
- "@artblocks/abx-sdk": "0.1.0-alpha.11"
41
+ "@artblocks/abx-sdk": "0.1.0-alpha.12"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json"