@secondlayer/subgraphs 3.19.3 → 3.19.4

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.
@@ -2589,6 +2589,9 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
2589
2589
  continue;
2590
2590
  await targetDb.insertInto("subscription_outbox").columns([
2591
2591
  "subscription_id",
2592
+ "subgraph_name",
2593
+ "table_name",
2594
+ "block_height",
2592
2595
  "event_type",
2593
2596
  "payload",
2594
2597
  "dedup_key",
@@ -2596,6 +2599,9 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
2596
2599
  "status"
2597
2600
  ]).expression((eb) => eb.selectFrom("subscriptions").select((eb2) => [
2598
2601
  "id as subscription_id",
2602
+ eb2.val(sg.name).as("subgraph_name"),
2603
+ eb2.val(tableName).as("table_name"),
2604
+ eb2.val(blockHeight).as("block_height"),
2599
2605
  eb2.val(`${sg.name}.${tableName}.reverted`).as("event_type"),
2600
2606
  eb2.val(JSON.stringify({
2601
2607
  subgraph: sg.name,
@@ -2610,7 +2616,7 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
2610
2616
  reorgRoot: blockHeight
2611
2617
  }).as("row_pk"),
2612
2618
  eb2.val("pending").as("status")
2613
- ]).where("subgraph_name", "=", sg.name).where("table_name", "=", tableName).where("status", "=", "active")).onConflict((oc) => oc.column("dedup_key").doNothing()).execute().catch((err) => {
2619
+ ]).where("subgraph_name", "=", sg.name).where("table_name", "=", tableName).where("status", "=", "active")).onConflict((oc) => oc.columns(["subscription_id", "dedup_key"]).doNothing()).execute().catch((err) => {
2614
2620
  logger7.error("Failed to emit revert event for subscriptions", {
2615
2621
  event: "reorg_revert_emit_dropped",
2616
2622
  subgraph: sg.name,
@@ -2645,5 +2651,5 @@ export {
2645
2651
  handleSubgraphReorg
2646
2652
  };
2647
2653
 
2648
- //# debugId=045957F2F018312E64756E2164756E21
2654
+ //# debugId=283CF7962DBBE8DC64756E2164756E21
2649
2655
  //# sourceMappingURL=reorg.js.map
@@ -17,9 +17,9 @@
17
17
  "import type { Subscription } from \"@secondlayer/shared/db\";\n\n/**\n * Subscription matcher — holds the active-subscriptions cache keyed by\n * `(subgraph_name, table_name)` and evaluates each sub's scalar-only\n * JSONB filter against a row.\n *\n * Filter DSL (v1): scalar operators over string/number/boolean columns.\n * { column: value } → column === value\n * { column: { eq: value } } → column === value\n * { column: { neq: value } } → column !== value\n * { column: { gt|gte|lt|lte: N } } → numeric compare\n * { column: { in: [a, b, c] } } → column ∈ set\n * { } → match all\n *\n * Nested objects, arrays, and non-scalar values are rejected with `false`\n * (never match) — subscribers get logged warnings at sub create time.\n *\n * Multiple conditions AND together. OR is deliberately absent in v1.\n */\n\nexport type FilterPrimitive = string | number | boolean;\nexport type FilterOperator =\n\t| { eq: FilterPrimitive }\n\t| { neq: FilterPrimitive }\n\t| { gt: number | string }\n\t| { gte: number | string }\n\t| { lt: number | string }\n\t| { lte: number | string }\n\t| { in: FilterPrimitive[] };\n\nexport type FilterClause = FilterPrimitive | FilterOperator;\nexport type SubscriptionFilter = Record<string, FilterClause>;\n\nfunction isPrimitive(v: unknown): v is FilterPrimitive {\n\tconst t = typeof v;\n\treturn t === \"string\" || t === \"number\" || t === \"boolean\";\n}\n\n/**\n * Coerce a value to BigInt for arbitrary-precision compare — avoids the\n * silent precision loss of `Number()` on integers past 2^53. Returns\n * `null` for non-integer numerics, which is fine because the filter DSL\n * is documented as scalar-only + integer-amount-aware (Stacks uses\n * uint128 bigint columns everywhere).\n */\nfunction coerceBigInt(v: unknown): bigint | null {\n\tif (typeof v === \"bigint\") return v;\n\tif (typeof v === \"number\") {\n\t\tif (!Number.isFinite(v)) return null;\n\t\tif (!Number.isInteger(v)) return null;\n\t\treturn BigInt(v);\n\t}\n\tif (typeof v === \"string\" && /^-?\\d+$/.test(v)) {\n\t\ttry {\n\t\t\treturn BigInt(v);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\treturn null;\n}\n\n/**\n * Float compare fallback — used when a value isn't a clean integer\n * (rare in subgraph columns but defensible for user-supplied filters).\n */\nfunction coerceFloat(v: unknown): number | null {\n\tif (typeof v === \"number\" && Number.isFinite(v)) return v;\n\tif (typeof v === \"bigint\") return Number(v);\n\tif (typeof v === \"string\" && v !== \"\" && !Number.isNaN(Number(v))) {\n\t\treturn Number(v);\n\t}\n\treturn null;\n}\n\nfunction compareNumeric(a: unknown, b: unknown): 0 | 1 | -1 | null {\n\tconst ba = coerceBigInt(a);\n\tconst bb = coerceBigInt(b);\n\tif (ba !== null && bb !== null) {\n\t\tif (ba === bb) return 0;\n\t\treturn ba > bb ? 1 : -1;\n\t}\n\tconst fa = coerceFloat(a);\n\tconst fb = coerceFloat(b);\n\tif (fa === null || fb === null) return null;\n\tif (fa === fb) return 0;\n\treturn fa > fb ? 1 : -1;\n}\n\nfunction matchClause(rowValue: unknown, clause: FilterClause): boolean {\n\t// Reject non-primitive row values — `{ value: {...} }` should not\n\t// match `filter: { value: \"[object Object]\" }` via loose stringify.\n\t// Bigints are not primitives in the JSON sense but are supported\n\t// scalar inputs from subgraph rows.\n\tconst rowIsPrimitive = isPrimitive(rowValue) || typeof rowValue === \"bigint\";\n\n\tif (isPrimitive(clause)) {\n\t\tif (!rowIsPrimitive) return false;\n\t\tif (\n\t\t\ttypeof clause === \"number\" ||\n\t\t\ttypeof rowValue === \"number\" ||\n\t\t\ttypeof rowValue === \"bigint\"\n\t\t) {\n\t\t\tconst cmp = compareNumeric(rowValue, clause);\n\t\t\tif (cmp !== null) return cmp === 0;\n\t\t}\n\t\treturn rowValue === clause || String(rowValue) === String(clause);\n\t}\n\n\tif (clause === null || typeof clause !== \"object\" || Array.isArray(clause)) {\n\t\treturn false;\n\t}\n\n\tconst keys = Object.keys(clause);\n\tif (keys.length !== 1) return false;\n\tconst op = keys[0];\n\n\tconst c = clause as Record<string, unknown>;\n\tswitch (op) {\n\t\tcase \"eq\":\n\t\t\treturn matchClause(rowValue, c.eq as FilterPrimitive);\n\t\tcase \"neq\":\n\t\t\treturn !matchClause(rowValue, c.neq as FilterPrimitive);\n\t\tcase \"gt\":\n\t\tcase \"gte\":\n\t\tcase \"lt\":\n\t\tcase \"lte\": {\n\t\t\tif (!rowIsPrimitive) return false;\n\t\t\tconst cmp = compareNumeric(rowValue, c[op]);\n\t\t\tif (cmp === null) return false;\n\t\t\tif (op === \"gt\") return cmp > 0;\n\t\t\tif (op === \"gte\") return cmp >= 0;\n\t\t\tif (op === \"lt\") return cmp < 0;\n\t\t\treturn cmp <= 0;\n\t\t}\n\t\tcase \"in\": {\n\t\t\tconst list = c.in;\n\t\t\tif (!Array.isArray(list)) return false;\n\t\t\tif (!rowIsPrimitive) return false;\n\t\t\treturn list.some(\n\t\t\t\t(item) => isPrimitive(item) && matchClause(rowValue, item),\n\t\t\t);\n\t\t}\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport function matchesFilter(\n\tfilter: SubscriptionFilter | null | undefined,\n\trow: Record<string, unknown>,\n): boolean {\n\tif (!filter || Object.keys(filter).length === 0) return true;\n\tfor (const [col, clause] of Object.entries(filter)) {\n\t\tif (!matchClause(row[col], clause)) return false;\n\t}\n\treturn true;\n}\n\n// ── Cache keyed by (subgraph_name, table_name) ──────────────────────────\n\ntype MatcherKey = string;\n\nfunction key(subgraphName: string, tableName: string): MatcherKey {\n\treturn `${subgraphName}\u0000${tableName}`;\n}\n\nexport class SubscriptionMatcher {\n\tprivate readonly byKey = new Map<MatcherKey, Subscription[]>();\n\tprivate readonly byId = new Map<string, Subscription>();\n\n\t/** Replace the entire cache with a fresh snapshot. */\n\tsetAll(subs: Subscription[]): void {\n\t\tthis.byKey.clear();\n\t\tthis.byId.clear();\n\t\tfor (const sub of subs) {\n\t\t\tif (sub.status !== \"active\") continue;\n\t\t\t// This matcher keys on (subgraph, table) row writes; chain\n\t\t\t// subscriptions react to raw chain events and never flow through it.\n\t\t\tif (sub.kind !== \"subgraph\" || !sub.subgraph_name || !sub.table_name)\n\t\t\t\tcontinue;\n\t\t\tthis.byId.set(sub.id, sub);\n\t\t\tconst k = key(sub.subgraph_name, sub.table_name);\n\t\t\tconst arr = this.byKey.get(k);\n\t\t\tif (arr) arr.push(sub);\n\t\t\telse this.byKey.set(k, [sub]);\n\t\t}\n\t}\n\n\t/** Returns active subs for a (subgraph, table) whose filter matches the row. */\n\tmatch(\n\t\tsubgraphName: string,\n\t\ttableName: string,\n\t\trow: Record<string, unknown>,\n\t): Subscription[] {\n\t\tconst bucket = this.byKey.get(key(subgraphName, tableName));\n\t\tif (!bucket) return [];\n\t\tconst hits: Subscription[] = [];\n\t\tfor (const sub of bucket) {\n\t\t\tif (matchesFilter(sub.filter as SubscriptionFilter, row)) hits.push(sub);\n\t\t}\n\t\treturn hits;\n\t}\n\n\thas(subgraphName: string, tableName: string): boolean {\n\t\treturn this.byKey.has(key(subgraphName, tableName));\n\t}\n\n\tsize(): number {\n\t\treturn this.byId.size;\n\t}\n\n\tget(id: string): Subscription | undefined {\n\t\treturn this.byId.get(id);\n\t}\n}\n",
18
18
  "import type { Database } from \"@secondlayer/shared/db\";\nimport type { Kysely } from \"kysely\";\nimport type { ProcessBlockTiming } from \"./block-processor.ts\";\n\ninterface StatsEntry {\n\tsubgraphName: string;\n\tbucketStart: Date;\n\tblocksProcessed: number;\n\ttotalTimeMs: number;\n\thandlerTimeMs: number;\n\tflushTimeMs: number;\n\tmaxBlockTimeMs: number;\n\tmaxHandlerTimeMs: number;\n\ttotalOps: number;\n\tisCatchup: boolean;\n}\n\nconst FLUSH_INTERVAL_BLOCKS = 100;\nconst FLUSH_INTERVAL_MS = 60_000;\n\n/**\n * Accumulates per-block timing stats and flushes to DB periodically.\n * One instance per subgraph during catchup/reindex/live processing.\n */\nexport class StatsAccumulator {\n\tprivate current: StatsEntry;\n\tprivate lastFlush = Date.now();\n\n\tconstructor(\n\t\tprivate subgraphName: string,\n\t\tprivate isCatchup: boolean,\n\t) {\n\t\tthis.current = this.newEntry();\n\t}\n\n\trecord(timing: ProcessBlockTiming, opsCount: number): void {\n\t\tthis.current.blocksProcessed++;\n\t\tthis.current.totalTimeMs += timing.totalMs;\n\t\tthis.current.handlerTimeMs += timing.handlerMs;\n\t\tthis.current.flushTimeMs += timing.flushMs;\n\t\tthis.current.maxBlockTimeMs = Math.max(\n\t\t\tthis.current.maxBlockTimeMs,\n\t\t\ttiming.totalMs,\n\t\t);\n\t\tthis.current.maxHandlerTimeMs = Math.max(\n\t\t\tthis.current.maxHandlerTimeMs,\n\t\t\ttiming.handlerMs,\n\t\t);\n\t\tthis.current.totalOps += opsCount;\n\t}\n\n\tshouldFlush(): boolean {\n\t\treturn (\n\t\t\tthis.current.blocksProcessed >= FLUSH_INTERVAL_BLOCKS ||\n\t\t\tDate.now() - this.lastFlush >= FLUSH_INTERVAL_MS\n\t\t);\n\t}\n\n\tasync flush(db: Kysely<Database>): Promise<void> {\n\t\tif (this.current.blocksProcessed === 0) return;\n\n\t\tconst entry = this.current;\n\t\tthis.current = this.newEntry();\n\t\tthis.lastFlush = Date.now();\n\n\t\tconst avgOpsPerBlock =\n\t\t\tentry.blocksProcessed > 0 ? entry.totalOps / entry.blocksProcessed : 0;\n\n\t\tawait db\n\t\t\t.insertInto(\"subgraph_processing_stats\")\n\t\t\t.values({\n\t\t\t\tsubgraph_name: entry.subgraphName,\n\t\t\t\tbucket_start: entry.bucketStart,\n\t\t\t\tbucket_end: new Date(),\n\t\t\t\tblocks_processed: entry.blocksProcessed,\n\t\t\t\ttotal_time_ms: Math.round(entry.totalTimeMs),\n\t\t\t\thandler_time_ms: Math.round(entry.handlerTimeMs),\n\t\t\t\tflush_time_ms: Math.round(entry.flushTimeMs),\n\t\t\t\tmax_block_time_ms: Math.round(entry.maxBlockTimeMs),\n\t\t\t\tmax_handler_time_ms: Math.round(entry.maxHandlerTimeMs),\n\t\t\t\tavg_ops_per_block: Number.parseFloat(avgOpsPerBlock.toFixed(2)),\n\t\t\t\tis_catchup: entry.isCatchup,\n\t\t\t})\n\t\t\t.execute();\n\t}\n\n\tprivate newEntry(): StatsEntry {\n\t\treturn {\n\t\t\tsubgraphName: this.subgraphName,\n\t\t\tbucketStart: new Date(),\n\t\t\tblocksProcessed: 0,\n\t\t\ttotalTimeMs: 0,\n\t\t\thandlerTimeMs: 0,\n\t\t\tflushTimeMs: 0,\n\t\t\tmaxBlockTimeMs: 0,\n\t\t\tmaxHandlerTimeMs: 0,\n\t\t\ttotalOps: 0,\n\t\t\tisCatchup: this.isCatchup,\n\t\t};\n\t}\n}\n",
19
19
  "import { getTargetDb } from \"@secondlayer/shared/db\";\nimport { getSubgraph } from \"@secondlayer/shared/db/queries/subgraphs\";\nimport { logger } from \"@secondlayer/shared/logger\";\nimport type { SubgraphDefinition } from \"../types.ts\";\nimport { type BlockData, avgEventsPerBlock } from \"./batch-loader.ts\";\nimport {\n\ttype ProcessBlockResult,\n\tprocessBlockWithRetry,\n} from \"./block-processor.ts\";\nimport { resolveBlockSource } from \"./block-source.ts\";\nimport { StatsAccumulator } from \"./stats.ts\";\n\nconst LOG_INTERVAL = 1000;\nconst STANDARD_CATCHUP_BATCH_CONFIG = {\n\tdefaultBatchSize: 500,\n\tminBatchSize: 100,\n\tmaxBatchSize: 1000,\n\tprefetch: true,\n};\n\nconst catchingUp = new Set<string>();\n\n/**\n * f057 guard: `recordLiveProgress` (subgraphs.ts) writes `last_processed_block`\n * unconditionally — no monotonic guard — because the reorg rewind MUST be able\n * to move the cursor backward. That means a catch-up walk's forward writes and\n * a reorg's backward rewind must never interleave for the same subgraph, or\n * whichever commits last wins regardless of correctness. `catchingUp` (above)\n * only excludes concurrent catch-ups; it does nothing against a reorg.\n *\n * Both writers can only ever race within the SAME process: catch-up only ever\n * runs on the catch-up leader (processor.ts `runCatchUp`), and the reorg\n * NOTIFY listener runs on every process including that leader — so an\n * in-process guard is sufficient; no cross-process DB lock is needed.\n *\n * Two pieces, used together by catchUpSubgraph (below) and handleSubgraphReorg\n * (reorg.ts):\n *\n * - `withSubgraphBlockLock` is a per-subgraph mutex held for the duration of\n * ONE block's write — catch-up acquires it around each individual block it\n * commits (not around the whole walk), and the reorg handler acquires it\n * around its entire delete+reprocess+rewind sequence for a subgraph. So a\n * reorg only ever waits out a single in-flight block commit, never an\n * entire remaining catch-up walk — and since the lock is per-subgraph name,\n * a slow catch-up on one subgraph never stalls reorg handling for another\n * (handleSubgraphReorg processes subgraphs sequentially).\n * - `reorgEpoch` is a monotonic per-subgraph counter, bumped by\n * handleSubgraphReorg BEFORE it acquires the lock (so the bump is visible\n * immediately, independent of how long the lock wait takes, and is never\n * \"cleared\" — there's no race in un-setting a flag too early). catchUpSubgraph\n * snapshots the epoch once at the start of its walk and, after acquiring the\n * lock for each block, checks it again: a changed epoch means a reorg\n * touched this subgraph's cursor at some point during the walk, so the\n * walk's local progress state can no longer be trusted — it aborts the\n * whole tick without writing anything further. The next catch-up tick\n * re-reads `last_processed_block` fresh from the DB (line ~108) and resumes\n * correctly from the post-reorg cursor.\n */\nconst subgraphBlockLockHeld = new Set<string>();\nconst subgraphBlockLockWaiters = new Map<string, Array<() => void>>();\nconst reorgEpoch = new Map<string, number>();\n\nasync function acquireSubgraphBlockLock(name: string): Promise<() => void> {\n\tif (!subgraphBlockLockHeld.has(name)) {\n\t\tsubgraphBlockLockHeld.add(name);\n\t\treturn () => releaseSubgraphBlockLock(name);\n\t}\n\treturn new Promise<() => void>((resolve) => {\n\t\tconst waiters = subgraphBlockLockWaiters.get(name) ?? [];\n\t\twaiters.push(() => resolve(() => releaseSubgraphBlockLock(name)));\n\t\tsubgraphBlockLockWaiters.set(name, waiters);\n\t});\n}\n\nfunction releaseSubgraphBlockLock(name: string): void {\n\tconst waiters = subgraphBlockLockWaiters.get(name);\n\tif (waiters && waiters.length > 0) {\n\t\tconst next = waiters.shift() as () => void;\n\t\tif (waiters.length === 0) subgraphBlockLockWaiters.delete(name);\n\t\tnext(); // hand the lock straight to the next waiter (FIFO), stays held\n\t\treturn;\n\t}\n\tsubgraphBlockLockHeld.delete(name);\n}\n\n/** Run `fn` (a single block's write, or a reorg's whole rewind) holding the\n * per-subgraph block lock. Exported for reorg.ts. */\nexport async function withSubgraphBlockLock<T>(\n\tname: string,\n\tfn: () => Promise<T>,\n): Promise<T> {\n\tconst release = await acquireSubgraphBlockLock(name);\n\ttry {\n\t\treturn await fn();\n\t} finally {\n\t\trelease();\n\t}\n}\n\n/** Bump a subgraph's reorg epoch. Call BEFORE acquiring the block lock so the\n * bump is visible to any concurrent catch-up immediately. Exported for\n * reorg.ts. */\nexport function bumpReorgEpoch(name: string): void {\n\treorgEpoch.set(name, (reorgEpoch.get(name) ?? 0) + 1);\n}\n\nfunction getReorgEpoch(name: string): number {\n\treturn reorgEpoch.get(name) ?? 0;\n}\n\n/** Thrown inside the lock to unwind a catch-up walk when a reorg's epoch bump\n * is observed mid-walk — distinct from a real processing failure so the\n * caller aborts silently instead of marking the subgraph \"error\". */\nclass ReorgEpochChangedError extends Error {\n\tconstructor(name: string) {\n\t\tsuper(`reorg epoch changed for ${name} mid catch-up`);\n\t\tthis.name = \"ReorgEpochChangedError\";\n\t}\n}\n\ntype CatchupBatchConfig = {\n\tdefaultBatchSize: number;\n\tminBatchSize: number;\n\tmaxBatchSize: number;\n\tprefetch: boolean;\n};\n\ntype CatchupBatchEnv = {\n\tSUBGRAPH_CATCHUP_BATCH_SIZE?: string;\n\tSUBGRAPH_CATCHUP_MIN_BATCH_SIZE?: string;\n\tSUBGRAPH_CATCHUP_MAX_BATCH_SIZE?: string;\n\tSUBGRAPH_CATCHUP_PREFETCH?: string;\n};\n\nfunction parsePositiveInt(value: string | undefined): number | undefined {\n\tif (value == null || value.trim() === \"\") return undefined;\n\tconst parsed = Number.parseInt(value, 10);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction parseBoolean(value: string | undefined): boolean | undefined {\n\tif (value == null || value.trim() === \"\") return undefined;\n\tconst normalized = value.trim().toLowerCase();\n\tif (normalized === \"true\") return true;\n\tif (normalized === \"false\") return false;\n\treturn undefined;\n}\n\nexport function resolveCatchupBatchConfig(\n\tenv: CatchupBatchEnv = process.env as CatchupBatchEnv,\n): CatchupBatchConfig {\n\tconst base = STANDARD_CATCHUP_BATCH_CONFIG;\n\tconst minBatchSize =\n\t\tparsePositiveInt(env.SUBGRAPH_CATCHUP_MIN_BATCH_SIZE) ?? base.minBatchSize;\n\tconst maxBatchSize =\n\t\tparsePositiveInt(env.SUBGRAPH_CATCHUP_MAX_BATCH_SIZE) ?? base.maxBatchSize;\n\tconst defaultBatchSize =\n\t\tparsePositiveInt(env.SUBGRAPH_CATCHUP_BATCH_SIZE) ?? base.defaultBatchSize;\n\n\treturn {\n\t\tminBatchSize,\n\t\tmaxBatchSize,\n\t\tdefaultBatchSize: Math.min(\n\t\t\tMath.max(defaultBatchSize, minBatchSize),\n\t\t\tmaxBatchSize,\n\t\t),\n\t\tprefetch: parseBoolean(env.SUBGRAPH_CATCHUP_PREFETCH) ?? base.prefetch,\n\t};\n}\n\n/**\n * Adjust batch size based on event density.\n * Sparse blocks (early chain) → larger batches. Dense blocks → smaller batches.\n */\nfunction adjustBatchSize(\n\tcurrent: number,\n\tavgEvents: number,\n\tconfig: CatchupBatchConfig,\n): number {\n\tif (avgEvents > 50)\n\t\treturn Math.max(Math.round(current * 0.5), config.minBatchSize);\n\tif (avgEvents < 10)\n\t\treturn Math.min(Math.round(current * 1.5), config.maxBatchSize);\n\treturn current;\n}\n\n/**\n * Catch a subgraph up from its last_processed_block to the chain tip.\n * Uses batch loading (3 queries per batch instead of 3 per block) and\n * plan-aware pipeline prefetching.\n */\nexport async function catchUpSubgraph(\n\tsubgraph: SubgraphDefinition,\n\tsubgraphName: string,\n): Promise<number> {\n\tif (catchingUp.has(subgraphName)) return 0;\n\tcatchingUp.add(subgraphName);\n\n\ttry {\n\t\tconst source = resolveBlockSource(subgraph);\n\t\tconst targetDb = getTargetDb();\n\n\t\t// Re-read from DB to avoid stale lastProcessedBlock\n\t\tconst subgraphRow = await getSubgraph(targetDb, subgraphName);\n\t\tif (!subgraphRow) return 0;\n\t\tconst lastProcessedBlock = Number(subgraphRow.last_processed_block);\n\n\t\t// Chain tip comes from the block source (indexer DB today; Streams clock\n\t\t// once re-pointed).\n\t\tconst chainTip = await source.getTip();\n\t\tif (chainTip <= 0 || lastProcessedBlock >= chainTip) return 0;\n\n\t\tconst subgraphStart = Number(subgraphRow.start_block) || 1;\n\t\tconst startBlock = Math.max(lastProcessedBlock + 1, subgraphStart);\n\t\tconst totalBlocks = chainTip - lastProcessedBlock;\n\n\t\tlogger.info(\"Subgraph catch-up starting\", {\n\t\t\tsubgraph: subgraphName,\n\t\t\tfrom: startBlock,\n\t\t\tto: chainTip,\n\t\t\tblocks: totalBlocks,\n\t\t});\n\n\t\tconst stats = new StatsAccumulator(subgraphName, true);\n\t\tlet processed = 0;\n\t\tconst batchConfig = resolveCatchupBatchConfig();\n\t\tlet batchSize = batchConfig.defaultBatchSize;\n\t\tlet currentHeight = startBlock;\n\t\t// f057: snapshot the epoch once — see the guard comment above\n\t\t// `subgraphBlockLockHeld` for the invariant this protects.\n\t\tconst walkEpoch = getReorgEpoch(subgraphName);\n\n\t\t// Pipeline: start loading first batch and track the prefetched range.\n\t\t// batchEnd must match what was actually loaded — not recalculated from a\n\t\t// potentially resized batchSize (adaptive sizing can change it between iterations).\n\t\tlet prefetchedBatchEnd = Math.min(currentHeight + batchSize - 1, chainTip);\n\t\tlet nextBatchPromise = batchConfig.prefetch\n\t\t\t? source.loadBlockRange(currentHeight, prefetchedBatchEnd)\n\t\t\t: undefined;\n\n\t\twhile (currentHeight <= chainTip) {\n\t\t\t// Check if subgraph status changed (e.g. reindex started) — bail if so\n\t\t\tconst currentRow = await getSubgraph(targetDb, subgraphName);\n\t\t\tif (!currentRow || currentRow.status !== \"active\") {\n\t\t\t\tlogger.info(\"Subgraph status changed, stopping catch-up\", {\n\t\t\t\t\tsubgraph: subgraphName,\n\t\t\t\t\tstatus: currentRow?.status ?? \"deleted\",\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tlet batchEnd: number;\n\t\t\tlet batch: Map<number, BlockData>;\n\t\t\tif (nextBatchPromise) {\n\t\t\t\tbatch = await nextBatchPromise;\n\t\t\t\tbatchEnd = prefetchedBatchEnd;\n\n\t\t\t\t// Start prefetching next batch while we process this one.\n\t\t\t\tconst nextStart = batchEnd + 1;\n\t\t\t\tif (nextStart <= chainTip) {\n\t\t\t\t\tprefetchedBatchEnd = Math.min(nextStart + batchSize - 1, chainTip);\n\t\t\t\t\tnextBatchPromise = source.loadBlockRange(\n\t\t\t\t\t\tnextStart,\n\t\t\t\t\t\tprefetchedBatchEnd,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tnextBatchPromise = undefined;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Low-memory mode: load only the current batch, process it, then size\n\t\t\t\t// and load the next batch after this iteration completes.\n\t\t\t\tbatchEnd = Math.min(currentHeight + batchSize - 1, chainTip);\n\t\t\t\tbatch = await source.loadBlockRange(currentHeight, batchEnd);\n\t\t\t}\n\n\t\t\t// Process each block from pre-loaded data\n\t\t\tlet stopCatchup = false;\n\n\t\t\tfor (let height = currentHeight; height <= batchEnd; height++) {\n\t\t\t\tlet blockData = batch.get(height);\n\t\t\t\tif (!blockData) {\n\t\t\t\t\t// Refetch once — distinguishes a transient source hiccup from a\n\t\t\t\t\t// genuinely absent block.\n\t\t\t\t\tblockData = (await source.loadBlockRange(height, height)).get(height);\n\t\t\t\t}\n\t\t\t\tif (!blockData) {\n\t\t\t\t\t// Near the tip this is usually a reorg race (the height briefly\n\t\t\t\t\t// has no canonical block). Stop the tick with the cursor BEFORE\n\t\t\t\t\t// this height — the next catch-up re-attempts it. Skipping it\n\t\t\t\t\t// instead would silently drop its events (fix-f040 B5).\n\t\t\t\t\tlogger.warn(\"Block missing during catch-up, deferring to next tick\", {\n\t\t\t\t\t\tsubgraph: subgraphName,\n\t\t\t\t\t\tblockHeight: height,\n\t\t\t\t\t});\n\t\t\t\t\tstopCatchup = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst preloaded = blockData;\n\n\t\t\t\tlet result: ProcessBlockResult;\n\t\t\t\ttry {\n\t\t\t\t\t// f057: hold the per-subgraph block lock for this one block's\n\t\t\t\t\t// write, and bail without writing if a reorg's epoch bump landed\n\t\t\t\t\t// mid-walk — see the guard comment near subgraphBlockLockHeld.\n\t\t\t\t\tresult = await withSubgraphBlockLock(subgraphName, async () => {\n\t\t\t\t\t\tif (getReorgEpoch(subgraphName) !== walkEpoch) {\n\t\t\t\t\t\t\tthrow new ReorgEpochChangedError(subgraphName);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn processBlockWithRetry(subgraph, subgraphName, height, {\n\t\t\t\t\t\t\tpreloaded,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof ReorgEpochChangedError) {\n\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\"Reorg detected mid catch-up, aborting walk without writing further progress\",\n\t\t\t\t\t\t\t{ subgraph: subgraphName, blockHeight: height },\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstopCatchup = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t// Persistent failure: halt with the cursor before this block.\n\t\t\t\t\t// Advancing past it would bake the missing events into every\n\t\t\t\t\t// downstream row (fix-f040 B5).\n\t\t\t\t\tconst errorMsg = err instanceof Error ? err.message : String(err);\n\t\t\t\t\tlogger.error(\"Block processing failed persistently during catch-up\", {\n\t\t\t\t\t\tsubgraph: subgraphName,\n\t\t\t\t\t\tblockHeight: height,\n\t\t\t\t\t\terror: errorMsg,\n\t\t\t\t\t});\n\t\t\t\t\tconst { updateSubgraphStatus, recordSubgraphProcessed } =\n\t\t\t\t\t\tawait import(\"@secondlayer/shared/db/queries/subgraphs\");\n\t\t\t\t\tawait recordSubgraphProcessed(\n\t\t\t\t\t\ttargetDb,\n\t\t\t\t\t\tsubgraphName,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t`catch-up halted at block ${height}: ${errorMsg}`,\n\t\t\t\t\t).catch(() => {});\n\t\t\t\t\tawait updateSubgraphStatus(targetDb, subgraphName, \"error\").catch(\n\t\t\t\t\t\t() => {},\n\t\t\t\t\t);\n\t\t\t\t\tstopCatchup = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tprocessed++;\n\n\t\t\t\tif (result.timing) {\n\t\t\t\t\tstats.record(result.timing, result.processed);\n\t\t\t\t\tif (stats.shouldFlush()) {\n\t\t\t\t\t\tawait stats.flush(targetDb);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (processed % LOG_INTERVAL === 0) {\n\t\t\t\t\tlogger.info(\"Subgraph catch-up progress\", {\n\t\t\t\t\t\tsubgraph: subgraphName,\n\t\t\t\t\t\tprocessed,\n\t\t\t\t\t\ttotal: totalBlocks,\n\t\t\t\t\t\tcurrentBlock: height,\n\t\t\t\t\t\tpct: Math.round((processed / totalBlocks) * 100),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// A missing block or persistent failure stops the walk with the\n\t\t\t// cursor before the problem height — never record-and-skip.\n\t\t\tif (stopCatchup) break;\n\n\t\t\t// Adaptive batch sizing based on event density\n\t\t\tconst avg = avgEventsPerBlock(batch);\n\t\t\tbatchSize = adjustBatchSize(batchSize, avg, batchConfig);\n\n\t\t\tcurrentHeight = batchEnd + 1;\n\t\t}\n\n\t\t// Flush remaining stats\n\t\tawait stats.flush(targetDb);\n\n\t\tlogger.info(\"Subgraph catch-up complete\", {\n\t\t\tsubgraph: subgraphName,\n\t\t\tprocessed,\n\t\t});\n\n\t\treturn processed;\n\t} finally {\n\t\tcatchingUp.delete(subgraphName);\n\t}\n}\n",
20
- "import { getErrorMessage } from \"@secondlayer/shared\";\nimport { getTargetDb } from \"@secondlayer/shared/db\";\nimport type { Subgraph } from \"@secondlayer/shared/db\";\nimport {\n\tlistSubgraphs,\n\tresolveSubgraphRawClient,\n} from \"@secondlayer/shared/db/queries/subgraphs\";\nimport { logger } from \"@secondlayer/shared/logger\";\nimport { pgSchemaName } from \"../schema/utils.ts\";\nimport type { SubgraphDefinition, SubgraphSchema } from \"../types.ts\";\nimport { processBlock } from \"./block-processor.ts\";\nimport { bumpReorgEpoch, withSubgraphBlockLock } from \"./catchup.ts\";\n\n/**\n * Handle a chain reorg for all active subgraphs.\n *\n * `blockHeight` is the **shallowest** height where the chain diverged. The\n * indexer's `handleReorg` has already marked every block ≥ `blockHeight`\n * as non-canonical (a Stacks reorg can span many blocks). We mirror that\n * here: delete rows where `_block_height >= blockHeight` from every\n * subgraph table, then reprocess `blockHeight` (subsequent heights will\n * be reprocessed as the indexer ingests new-chain blocks).\n *\n * Subscription receivers that already consumed the now-reverted events\n * need to know about the rollback. We emit one `<table>.reverted` event\n * per affected table per subscription. The receiver is expected to\n * reverse any side-effects keyed on the rolled-back rows; if they ignore\n * revert events, at least we provided the signal.\n */\nexport async function handleSubgraphReorg(\n\tblockHeight: number,\n\tloadSubgraphDef: (sg: Subgraph) => Promise<SubgraphDefinition>,\n): Promise<void> {\n\t// The subgraphs registry + revert-event outbox live on the managed target\n\t// DB; the row SELECT/DELETE target each subgraph's data plane (the user's DB\n\t// for BYO), resolved per subgraph inside the loop.\n\tconst targetDb = getTargetDb();\n\tconst activeSubgraphs = (await listSubgraphs(targetDb)).filter(\n\t\t(v: Subgraph) => v.status === \"active\",\n\t);\n\n\tif (activeSubgraphs.length === 0) return;\n\n\tlogger.info(\"Propagating reorg to subgraphs\", {\n\t\tblockHeight,\n\t\tsubgraphCount: activeSubgraphs.length,\n\t});\n\n\tfor (const sg of activeSubgraphs) {\n\t\ttry {\n\t\t\tconst schema = sg.definition.schema as SubgraphSchema | undefined;\n\t\t\tif (!schema) continue;\n\n\t\t\t// f057: bump this subgraph's reorg epoch BEFORE taking the block lock\n\t\t\t// (visible immediately, however long the lock wait takes), then hold\n\t\t\t// the lock for the whole delete+reprocess+rewind sequence below. A\n\t\t\t// catch-up walk in flight either (a) is between blocks and about to\n\t\t\t// acquire the lock — it will see the bumped epoch and abort without\n\t\t\t// writing, or (b) already holds the lock for one in-flight block —\n\t\t\t// we wait for it to finish, then proceed; its NEXT block sees the\n\t\t\t// bumped epoch and aborts. Either way our rewind write below is never\n\t\t\t// clobbered by a catch-up write that doesn't know the cursor moved.\n\t\t\t// See the guard comment near `subgraphBlockLockHeld` in catchup.ts.\n\t\t\tbumpReorgEpoch(sg.name);\n\t\t\tawait withSubgraphBlockLock(sg.name, async () => {\n\t\t\t\tconst schemaName = sg.schema_name ?? pgSchemaName(sg.name);\n\t\t\t\t// Rows live on the subgraph's data plane — user DB for BYO, else target.\n\t\t\t\tconst client = resolveSubgraphRawClient(sg);\n\n\t\t\t\t// Snapshot affected rows BEFORE deletion so we can surface them\n\t\t\t\t// to subscription receivers as revert events. Cap at 1k rows\n\t\t\t\t// per (table, reorg) to bound memory; deeper reverts are rare\n\t\t\t\t// and at-volume the receiver should be reading from the table\n\t\t\t\t// directly anyway.\n\t\t\t\tconst tableNames = Object.keys(schema);\n\t\t\t\tconst revertedByTable: Record<string, unknown[]> = {};\n\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\tconst rows = await client.unsafe<unknown[]>(\n\t\t\t\t\t\t`SELECT * FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1 LIMIT 1000`,\n\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t);\n\t\t\t\t\tif (rows.length > 0) revertedByTable[tableName] = rows;\n\t\t\t\t}\n\n\t\t\t\t// Revert table state. With a journal: restore each touched row to its\n\t\t\t\t// pre-fork state (accumulators keep their history — fix-f040 B2), then\n\t\t\t\t// sweep append-only rows created at/after the fork. Without one\n\t\t\t\t// (pre-journal deploy), fall back to the height sweep alone — correct\n\t\t\t\t// only for append-only tables.\n\t\t\t\tconst hasJournal = (\n\t\t\t\t\tawait client.unsafe<{ r: unknown }[]>(\n\t\t\t\t\t\t`SELECT to_regclass('\"${schemaName}\".\"_journal\"') AS r`,\n\t\t\t\t\t)\n\t\t\t\t)[0]?.r;\n\t\t\t\tif (hasJournal) {\n\t\t\t\t\tawait client.begin(async (tx) => {\n\t\t\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\t\t\t// Pre-fork state per row = prev_row of the EARLIEST journal\n\t\t\t\t\t\t\t// entry at/after the fork (pre-images compose: the first one\n\t\t\t\t\t\t\t// captured is the state before any fork-era op touched it).\n\t\t\t\t\t\t\t// prev_row NULL = the row was created in the fork era.\n\t\t\t\t\t\t\tconst earliest = `\n\t\t\t\t\t\t\t\tSELECT DISTINCT ON (row_key) row_key, prev_row\n\t\t\t\t\t\t\t\tFROM \"${schemaName}\".\"_journal\"\n\t\t\t\t\t\t\t\tWHERE block_height >= $1 AND table_name = $2\n\t\t\t\t\t\t\t\tORDER BY row_key, _jid ASC`;\n\t\t\t\t\t\t\t// 1. Drop the current (orphaned) versions of journaled rows.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" t USING (${earliest}) e WHERE to_jsonb(t.*) @> e.row_key`,\n\t\t\t\t\t\t\t\t[blockHeight, tableName],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// 2. Sweep append-only rows born at/after the fork.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1`,\n\t\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// 3. Restore pre-fork row states (pure SQL — NUMERIC precision\n\t\t\t\t\t\t\t// never round-trips through JS). Restored rows were created\n\t\t\t\t\t\t\t// pre-fork, so step 2 cannot have matched them.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`INSERT INTO \"${schemaName}\".\"${tableName}\"\n\t\t\t\t\t\t\t\t SELECT r.* FROM (${earliest}) e\n\t\t\t\t\t\t\t\t CROSS JOIN LATERAL jsonb_populate_record(NULL::\"${schemaName}\".\"${tableName}\", e.prev_row) r\n\t\t\t\t\t\t\t\t WHERE e.prev_row IS NOT NULL`,\n\t\t\t\t\t\t\t\t[blockHeight, tableName],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"_journal\" WHERE block_height >= $1`,\n\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlogger.warn(\n\t\t\t\t\t\t\"Subgraph has no revert journal — falling back to height delete (accumulator rows may lose history)\",\n\t\t\t\t\t\t{ subgraph: sg.name, blockHeight },\n\t\t\t\t\t);\n\t\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\t\tawait client.unsafe(\n\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1`,\n\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Emit revert events to dependent subscriptions so receivers\n\t\t\t\t// know to roll back. Insert into subscription_outbox with a\n\t\t\t\t// stable dedup_key keyed on (subscription, table, height,\n\t\t\t\t// \"revert\") so a duplicate reorg notification is a no-op.\n\t\t\t\tfor (const [tableName, rows] of Object.entries(revertedByTable)) {\n\t\t\t\t\tif (rows.length === 0) continue;\n\t\t\t\t\tawait targetDb\n\t\t\t\t\t\t.insertInto(\"subscription_outbox\")\n\t\t\t\t\t\t.columns([\n\t\t\t\t\t\t\t\"subscription_id\",\n\t\t\t\t\t\t\t\"event_type\",\n\t\t\t\t\t\t\t\"payload\",\n\t\t\t\t\t\t\t\"dedup_key\",\n\t\t\t\t\t\t\t\"row_pk\",\n\t\t\t\t\t\t\t\"status\",\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.expression((eb) =>\n\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t.selectFrom(\"subscriptions\")\n\t\t\t\t\t\t\t\t.select((eb2) => [\n\t\t\t\t\t\t\t\t\t\"id as subscription_id\",\n\t\t\t\t\t\t\t\t\teb2.val(`${sg.name}.${tableName}.reverted`).as(\"event_type\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val(\n\t\t\t\t\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\t\t\t\t\treorgFromHeight: blockHeight,\n\t\t\t\t\t\t\t\t\t\t\t\trows,\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.as(\"payload\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val(`reorg:${sg.name}:${tableName}:${blockHeight}`)\n\t\t\t\t\t\t\t\t\t\t.as(\"dedup_key\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val({\n\t\t\t\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\t\t\t\treorgRoot: blockHeight,\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.as(\"row_pk\"),\n\t\t\t\t\t\t\t\t\teb2.val(\"pending\").as(\"status\"),\n\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t.where(\"subgraph_name\", \"=\", sg.name)\n\t\t\t\t\t\t\t\t.where(\"table_name\", \"=\", tableName)\n\t\t\t\t\t\t\t\t.where(\"status\", \"=\", \"active\"),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.onConflict((oc) => oc.column(\"dedup_key\").doNothing())\n\t\t\t\t\t\t.execute()\n\t\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\t\t// Don't fail the reorg cleanup if the revert event\n\t\t\t\t\t\t\t// emission errors — subscriptions can't be more\n\t\t\t\t\t\t\t// broken than they were pre-reorg.\n\t\t\t\t\t\t\tlogger.error(\"Failed to emit revert event for subscriptions\", {\n\t\t\t\t\t\t\t\tevent: \"reorg_revert_emit_dropped\",\n\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\tblockHeight,\n\t\t\t\t\t\t\t\terror: getErrorMessage(err),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tlogger.info(\"Subgraph reorg cleanup done\", {\n\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\tblockHeight,\n\t\t\t\t\ttablesAffected: Object.keys(revertedByTable).length,\n\t\t\t\t});\n\n\t\t\t\t// Reprocess the new canonical block. Subsequent blocks above\n\t\t\t\t// `blockHeight` will be reprocessed as the indexer ingests\n\t\t\t\t// them — they're already marked non-canonical by handleReorg.\n\t\t\t\tconst def = await loadSubgraphDef(sg);\n\t\t\t\tawait processBlock(def, sg.name, blockHeight);\n\n\t\t\t\tlogger.info(\"Subgraph reorg reprocessed\", {\n\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\tblockHeight,\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.error(\"Subgraph reorg handling failed\", {\n\t\t\t\tsubgraph: sg.name,\n\t\t\t\tblockHeight,\n\t\t\t\terror: getErrorMessage(err),\n\t\t\t});\n\t\t}\n\t}\n}\n"
20
+ "import { getErrorMessage } from \"@secondlayer/shared\";\nimport { getTargetDb } from \"@secondlayer/shared/db\";\nimport type { Subgraph } from \"@secondlayer/shared/db\";\nimport {\n\tlistSubgraphs,\n\tresolveSubgraphRawClient,\n} from \"@secondlayer/shared/db/queries/subgraphs\";\nimport { logger } from \"@secondlayer/shared/logger\";\nimport { pgSchemaName } from \"../schema/utils.ts\";\nimport type { SubgraphDefinition, SubgraphSchema } from \"../types.ts\";\nimport { processBlock } from \"./block-processor.ts\";\nimport { bumpReorgEpoch, withSubgraphBlockLock } from \"./catchup.ts\";\n\n/**\n * Handle a chain reorg for all active subgraphs.\n *\n * `blockHeight` is the **shallowest** height where the chain diverged. The\n * indexer's `handleReorg` has already marked every block ≥ `blockHeight`\n * as non-canonical (a Stacks reorg can span many blocks). We mirror that\n * here: delete rows where `_block_height >= blockHeight` from every\n * subgraph table, then reprocess `blockHeight` (subsequent heights will\n * be reprocessed as the indexer ingests new-chain blocks).\n *\n * Subscription receivers that already consumed the now-reverted events\n * need to know about the rollback. We emit one `<table>.reverted` event\n * per affected table per subscription. The receiver is expected to\n * reverse any side-effects keyed on the rolled-back rows; if they ignore\n * revert events, at least we provided the signal.\n */\nexport async function handleSubgraphReorg(\n\tblockHeight: number,\n\tloadSubgraphDef: (sg: Subgraph) => Promise<SubgraphDefinition>,\n): Promise<void> {\n\t// The subgraphs registry + revert-event outbox live on the managed target\n\t// DB; the row SELECT/DELETE target each subgraph's data plane (the user's DB\n\t// for BYO), resolved per subgraph inside the loop.\n\tconst targetDb = getTargetDb();\n\tconst activeSubgraphs = (await listSubgraphs(targetDb)).filter(\n\t\t(v: Subgraph) => v.status === \"active\",\n\t);\n\n\tif (activeSubgraphs.length === 0) return;\n\n\tlogger.info(\"Propagating reorg to subgraphs\", {\n\t\tblockHeight,\n\t\tsubgraphCount: activeSubgraphs.length,\n\t});\n\n\tfor (const sg of activeSubgraphs) {\n\t\ttry {\n\t\t\tconst schema = sg.definition.schema as SubgraphSchema | undefined;\n\t\t\tif (!schema) continue;\n\n\t\t\t// f057: bump this subgraph's reorg epoch BEFORE taking the block lock\n\t\t\t// (visible immediately, however long the lock wait takes), then hold\n\t\t\t// the lock for the whole delete+reprocess+rewind sequence below. A\n\t\t\t// catch-up walk in flight either (a) is between blocks and about to\n\t\t\t// acquire the lock — it will see the bumped epoch and abort without\n\t\t\t// writing, or (b) already holds the lock for one in-flight block —\n\t\t\t// we wait for it to finish, then proceed; its NEXT block sees the\n\t\t\t// bumped epoch and aborts. Either way our rewind write below is never\n\t\t\t// clobbered by a catch-up write that doesn't know the cursor moved.\n\t\t\t// See the guard comment near `subgraphBlockLockHeld` in catchup.ts.\n\t\t\tbumpReorgEpoch(sg.name);\n\t\t\tawait withSubgraphBlockLock(sg.name, async () => {\n\t\t\t\tconst schemaName = sg.schema_name ?? pgSchemaName(sg.name);\n\t\t\t\t// Rows live on the subgraph's data plane — user DB for BYO, else target.\n\t\t\t\tconst client = resolveSubgraphRawClient(sg);\n\n\t\t\t\t// Snapshot affected rows BEFORE deletion so we can surface them\n\t\t\t\t// to subscription receivers as revert events. Cap at 1k rows\n\t\t\t\t// per (table, reorg) to bound memory; deeper reverts are rare\n\t\t\t\t// and at-volume the receiver should be reading from the table\n\t\t\t\t// directly anyway.\n\t\t\t\tconst tableNames = Object.keys(schema);\n\t\t\t\tconst revertedByTable: Record<string, unknown[]> = {};\n\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\tconst rows = await client.unsafe<unknown[]>(\n\t\t\t\t\t\t`SELECT * FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1 LIMIT 1000`,\n\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t);\n\t\t\t\t\tif (rows.length > 0) revertedByTable[tableName] = rows;\n\t\t\t\t}\n\n\t\t\t\t// Revert table state. With a journal: restore each touched row to its\n\t\t\t\t// pre-fork state (accumulators keep their history — fix-f040 B2), then\n\t\t\t\t// sweep append-only rows created at/after the fork. Without one\n\t\t\t\t// (pre-journal deploy), fall back to the height sweep alone — correct\n\t\t\t\t// only for append-only tables.\n\t\t\t\tconst hasJournal = (\n\t\t\t\t\tawait client.unsafe<{ r: unknown }[]>(\n\t\t\t\t\t\t`SELECT to_regclass('\"${schemaName}\".\"_journal\"') AS r`,\n\t\t\t\t\t)\n\t\t\t\t)[0]?.r;\n\t\t\t\tif (hasJournal) {\n\t\t\t\t\tawait client.begin(async (tx) => {\n\t\t\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\t\t\t// Pre-fork state per row = prev_row of the EARLIEST journal\n\t\t\t\t\t\t\t// entry at/after the fork (pre-images compose: the first one\n\t\t\t\t\t\t\t// captured is the state before any fork-era op touched it).\n\t\t\t\t\t\t\t// prev_row NULL = the row was created in the fork era.\n\t\t\t\t\t\t\tconst earliest = `\n\t\t\t\t\t\t\t\tSELECT DISTINCT ON (row_key) row_key, prev_row\n\t\t\t\t\t\t\t\tFROM \"${schemaName}\".\"_journal\"\n\t\t\t\t\t\t\t\tWHERE block_height >= $1 AND table_name = $2\n\t\t\t\t\t\t\t\tORDER BY row_key, _jid ASC`;\n\t\t\t\t\t\t\t// 1. Drop the current (orphaned) versions of journaled rows.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" t USING (${earliest}) e WHERE to_jsonb(t.*) @> e.row_key`,\n\t\t\t\t\t\t\t\t[blockHeight, tableName],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// 2. Sweep append-only rows born at/after the fork.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1`,\n\t\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// 3. Restore pre-fork row states (pure SQL — NUMERIC precision\n\t\t\t\t\t\t\t// never round-trips through JS). Restored rows were created\n\t\t\t\t\t\t\t// pre-fork, so step 2 cannot have matched them.\n\t\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t\t`INSERT INTO \"${schemaName}\".\"${tableName}\"\n\t\t\t\t\t\t\t\t SELECT r.* FROM (${earliest}) e\n\t\t\t\t\t\t\t\t CROSS JOIN LATERAL jsonb_populate_record(NULL::\"${schemaName}\".\"${tableName}\", e.prev_row) r\n\t\t\t\t\t\t\t\t WHERE e.prev_row IS NOT NULL`,\n\t\t\t\t\t\t\t\t[blockHeight, tableName],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait tx.unsafe(\n\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"_journal\" WHERE block_height >= $1`,\n\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlogger.warn(\n\t\t\t\t\t\t\"Subgraph has no revert journal — falling back to height delete (accumulator rows may lose history)\",\n\t\t\t\t\t\t{ subgraph: sg.name, blockHeight },\n\t\t\t\t\t);\n\t\t\t\t\tfor (const tableName of tableNames) {\n\t\t\t\t\t\tawait client.unsafe(\n\t\t\t\t\t\t\t`DELETE FROM \"${schemaName}\".\"${tableName}\" WHERE \"_block_height\" >= $1`,\n\t\t\t\t\t\t\t[blockHeight],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Emit revert events to dependent subscriptions so receivers\n\t\t\t\t// know to roll back. Insert into subscription_outbox with a\n\t\t\t\t// stable dedup_key keyed on (subscription, table, height,\n\t\t\t\t// \"revert\") so a duplicate reorg notification is a no-op.\n\t\t\t\tfor (const [tableName, rows] of Object.entries(revertedByTable)) {\n\t\t\t\t\tif (rows.length === 0) continue;\n\t\t\t\t\tawait targetDb\n\t\t\t\t\t\t.insertInto(\"subscription_outbox\")\n\t\t\t\t\t\t.columns([\n\t\t\t\t\t\t\t\"subscription_id\",\n\t\t\t\t\t\t\t\"subgraph_name\",\n\t\t\t\t\t\t\t\"table_name\",\n\t\t\t\t\t\t\t\"block_height\",\n\t\t\t\t\t\t\t\"event_type\",\n\t\t\t\t\t\t\t\"payload\",\n\t\t\t\t\t\t\t\"dedup_key\",\n\t\t\t\t\t\t\t\"row_pk\",\n\t\t\t\t\t\t\t\"status\",\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.expression((eb) =>\n\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t.selectFrom(\"subscriptions\")\n\t\t\t\t\t\t\t\t.select((eb2) => [\n\t\t\t\t\t\t\t\t\t\"id as subscription_id\",\n\t\t\t\t\t\t\t\t\teb2.val(sg.name).as(\"subgraph_name\"),\n\t\t\t\t\t\t\t\t\teb2.val(tableName).as(\"table_name\"),\n\t\t\t\t\t\t\t\t\teb2.val(blockHeight).as(\"block_height\"),\n\t\t\t\t\t\t\t\t\teb2.val(`${sg.name}.${tableName}.reverted`).as(\"event_type\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val(\n\t\t\t\t\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\t\t\t\t\treorgFromHeight: blockHeight,\n\t\t\t\t\t\t\t\t\t\t\t\trows,\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.as(\"payload\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val(`reorg:${sg.name}:${tableName}:${blockHeight}`)\n\t\t\t\t\t\t\t\t\t\t.as(\"dedup_key\"),\n\t\t\t\t\t\t\t\t\teb2\n\t\t\t\t\t\t\t\t\t\t.val({\n\t\t\t\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\t\t\t\treorgRoot: blockHeight,\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.as(\"row_pk\"),\n\t\t\t\t\t\t\t\t\teb2.val(\"pending\").as(\"status\"),\n\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t.where(\"subgraph_name\", \"=\", sg.name)\n\t\t\t\t\t\t\t\t.where(\"table_name\", \"=\", tableName)\n\t\t\t\t\t\t\t\t.where(\"status\", \"=\", \"active\"),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.onConflict((oc) =>\n\t\t\t\t\t\t\toc.columns([\"subscription_id\", \"dedup_key\"]).doNothing(),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.execute()\n\t\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\t\t// Don't fail the reorg cleanup if the revert event\n\t\t\t\t\t\t\t// emission errors — subscriptions can't be more\n\t\t\t\t\t\t\t// broken than they were pre-reorg.\n\t\t\t\t\t\t\tlogger.error(\"Failed to emit revert event for subscriptions\", {\n\t\t\t\t\t\t\t\tevent: \"reorg_revert_emit_dropped\",\n\t\t\t\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\t\t\tblockHeight,\n\t\t\t\t\t\t\t\terror: getErrorMessage(err),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tlogger.info(\"Subgraph reorg cleanup done\", {\n\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\tblockHeight,\n\t\t\t\t\ttablesAffected: Object.keys(revertedByTable).length,\n\t\t\t\t});\n\n\t\t\t\t// Reprocess the new canonical block. Subsequent blocks above\n\t\t\t\t// `blockHeight` will be reprocessed as the indexer ingests\n\t\t\t\t// them — they're already marked non-canonical by handleReorg.\n\t\t\t\tconst def = await loadSubgraphDef(sg);\n\t\t\t\tawait processBlock(def, sg.name, blockHeight);\n\n\t\t\t\tlogger.info(\"Subgraph reorg reprocessed\", {\n\t\t\t\t\tsubgraph: sg.name,\n\t\t\t\t\tblockHeight,\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.error(\"Subgraph reorg handling failed\", {\n\t\t\t\tsubgraph: sg.name,\n\t\t\t\tblockHeight,\n\t\t\t\terror: getErrorMessage(err),\n\t\t\t});\n\t\t}\n\t}\n}\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "045957F2F018312E64756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "283CF7962DBBE8DC64756E2164756E21",
24
24
  "names": []
25
25
  }
@@ -3138,6 +3138,9 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
3138
3138
  continue;
3139
3139
  await targetDb.insertInto("subscription_outbox").columns([
3140
3140
  "subscription_id",
3141
+ "subgraph_name",
3142
+ "table_name",
3143
+ "block_height",
3141
3144
  "event_type",
3142
3145
  "payload",
3143
3146
  "dedup_key",
@@ -3145,6 +3148,9 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
3145
3148
  "status"
3146
3149
  ]).expression((eb) => eb.selectFrom("subscriptions").select((eb2) => [
3147
3150
  "id as subscription_id",
3151
+ eb2.val(sg.name).as("subgraph_name"),
3152
+ eb2.val(tableName).as("table_name"),
3153
+ eb2.val(blockHeight).as("block_height"),
3148
3154
  eb2.val(`${sg.name}.${tableName}.reverted`).as("event_type"),
3149
3155
  eb2.val(JSON.stringify({
3150
3156
  subgraph: sg.name,
@@ -3159,7 +3165,7 @@ async function handleSubgraphReorg(blockHeight, loadSubgraphDef) {
3159
3165
  reorgRoot: blockHeight
3160
3166
  }).as("row_pk"),
3161
3167
  eb2.val("pending").as("status")
3162
- ]).where("subgraph_name", "=", sg.name).where("table_name", "=", tableName).where("status", "=", "active")).onConflict((oc) => oc.column("dedup_key").doNothing()).execute().catch((err) => {
3168
+ ]).where("subgraph_name", "=", sg.name).where("table_name", "=", tableName).where("status", "=", "active")).onConflict((oc) => oc.columns(["subscription_id", "dedup_key"]).doNothing()).execute().catch((err) => {
3163
3169
  logger9.error("Failed to emit revert event for subscriptions", {
3164
3170
  event: "reorg_revert_emit_dropped",
3165
3171
  subgraph: sg.name,
@@ -3679,5 +3685,5 @@ var shutdown = async () => {
3679
3685
  process.on("SIGINT", shutdown);
3680
3686
  process.on("SIGTERM", shutdown);
3681
3687
 
3682
- //# debugId=2031C35EBA87F8DD64756E2164756E21
3688
+ //# debugId=AAEE9716A5BB44A264756E2164756E21
3683
3689
  //# sourceMappingURL=service.js.map