@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/CHANGELOG.md +160 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer.d.ts +81 -10
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +120 -8
- package/dist/indexer.js.map +1 -1
- package/dist/store.d.ts +100 -10
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +291 -26
- package/dist/store.js.map +1 -1
- package/package.json +7 -6
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
|
-
* (`
|
|
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 (`
|
|
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'
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
199
|
-
*
|
|
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',
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
400
|
-
from_block, to_block, event_count, reconstructed_at, rpc_url
|
|
401
|
-
) VALUES (
|
|
402
|
-
|
|
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
|
-
|
|
412
|
-
|
|
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
|
-
|
|
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
|
-
|
|
422
|
-
|
|
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 ['
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"description": "ABX
|
|
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.
|
|
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://
|
|
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.
|
|
41
|
-
"@artblocks/abx-sdk": "0.1.0
|
|
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"
|