@valve-tech/tx-tracker 0.10.0 → 0.11.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 CHANGED
@@ -6,6 +6,86 @@ this file.
6
6
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
7
7
  and this project adheres to [Semantic Versioning](https://semver.org/).
8
8
 
9
+ ## [0.11.0] — 2026-05-11
10
+
11
+ ### Added
12
+
13
+ - `TxTracker.ready(): Promise<void>` — resolves when the
14
+ durable-subscription rehydration triggered by the most recent
15
+ `start()` has completed. Indexer / relay consumers should
16
+ `await tracker.ready()` before assuming the tracked-set is fully
17
+ restored from the store. Resolves cleanly even on listDurable
18
+ errors (which are routed through `onError`).
19
+ - `CreateTxTrackerOptions.retentionBlocks?: number` — default `64`,
20
+ spec §10. How many blocks past a terminal state (`replaced-by` or
21
+ `unseen-for-N-blocks` emitted) the tracker keeps a record before
22
+ emitting `Stopped({ reason: 'retention-expired' })` and dropping
23
+ it. Pass the same value to your store implementation so persisted
24
+ retention matches in-memory.
25
+ - `TxStatus.terminalAtBlockNumber: bigint | null` — populated when a
26
+ hash reaches a terminal-and-finalized state. Anchors the retention
27
+ countdown per spec §10. Null while the hash is still in flight.
28
+ - `findBulkSubBySelector(bulkSubs, selector)` exported from the
29
+ package root (extracted from the tracker's runBulkOnBlock /
30
+ Mempool path; pure, unit-tested in isolation).
31
+
32
+ ### Fixed
33
+
34
+ - **Durable subscriptions are now rehydrated on start() (audit #1).**
35
+ Records persisted via `subscribe(hash, cb, { durable: true })` are
36
+ re-registered against the source when a fresh tracker starts up
37
+ against the same store — fixes silent data loss across process
38
+ restart for indexer / relay consumers. Previously, the write side
39
+ of durable persistence worked but the read side was missing
40
+ entirely.
41
+ - **Retention enforcement now actually fires (audit #2).** The
42
+ `'retention-expired'` reason on `Stopped` was declared but never
43
+ emitted; durable records grew unbounded in both `tracked` and the
44
+ store. Records past `terminalAtBlockNumber + retentionBlocks` are
45
+ now reaped on each block tick with `Stopped({ reason:
46
+ 'retention-expired' })` emitted to per-hash subs + globalSubs,
47
+ followed by `store.delete`.
48
+ - **Bulk subscriptions are torn down cleanly on tracker.stop()
49
+ (audit #3 lock-in).** Bulks' `stopped` flag is set during stop,
50
+ making their async iterators yield `done: true` on the next
51
+ `next()`. Most of the original audit-#3 concern about leaked
52
+ per-hash subscriptions is subsumed by the retention fix (audit
53
+ #2): auto-tracked records now reach retention-expired cleanup
54
+ rather than persisting forever.
55
+ - **`replaced-by` no longer fires twice for one logical replacement
56
+ (audit #4).** Previously the mempool side emitted with
57
+ `replacementBlockNumber: null`, then the block side re-emitted
58
+ with the inclusion block. The block path now patches status with
59
+ the now-known blockNumber but suppresses the duplicate event when
60
+ the replacement hash matches what mempool already surfaced.
61
+ - **Receipt-poll-fallback identity race (audit #6).** Records
62
+ unsubscribed AND re-subscribed (under the same hash) while
63
+ `getReceipt` was in-flight no longer leak phantom `seen-in-block`
64
+ events onto `subscribeAll`. Post-await check now compares record
65
+ identity (`tracked.get(hash) === record`), not just presence
66
+ (`tracked.has(hash)`).
67
+ - **Defensive null-on-miss in bulk-sub lookup (audit #7
68
+ hardening).** `findBulkSubBySelector` returns `null` instead of
69
+ throwing when the registry is mutated mid-fanout. Currently
70
+ unreachable from the public API (matchSubs has no sync
71
+ subscribers), but a future internal change that adds one would
72
+ otherwise crash the entire emit loop.
73
+
74
+ ### Documented
75
+
76
+ - `subscribeAll` callbacks deliberately survive `stop()`/`start()`
77
+ cycles (audit #8 lock-in). Long-lived analytics consumers wire
78
+ one callback at construction and continue receiving events across
79
+ restart. Comment added in `stop()`; behavior locked in by test.
80
+
81
+ ## [0.10.1] — 2026-05-08
82
+
83
+ Synchronized release — no changes to this package. Republished at
84
+ 0.10.1 alongside the rest of the toolkit; v0.10.0 only got
85
+ trueblocks-sdk publishing wrong (missing `repository` field tripped
86
+ provenance validation), so the rest of the line had to bump to
87
+ re-sync.
88
+
9
89
  ## [0.10.0] — 2026-05-08
10
90
 
11
91
  Synchronized release — no changes to this package. Republished at
package/README.md CHANGED
@@ -11,22 +11,10 @@ See
11
11
  [`docs/tx-tracker-spec.md`](https://github.com/valve-tech/evm-toolkit/blob/main/docs/tx-tracker-spec.md)
12
12
  for the full design contract.
13
13
 
14
- ```ts
15
- import { createChainSource } from '@valve-tech/chain-source'
16
- import { createTxTracker } from '@valve-tech/tx-tracker'
17
-
18
- const source = createChainSource({ client })
19
- const tracker = createTxTracker({ source, chainId: 1 })
20
- source.start(); tracker.start()
21
-
22
- for await (const event of tracker.track('0xabc...')) {
23
- if (event.kind === 'seen-in-block' && event.confirmations >= 6) break
24
- }
25
- ```
26
-
27
14
  ## Why this exists
28
15
 
29
16
  Tx-tracking on EVM is unforgiving:
17
+
30
18
  - **Three different consumer shapes** (wallet UI, indexer, relay) want
31
19
  the same underlying observations but very different consumption
32
20
  ergonomics.
@@ -38,7 +26,9 @@ Tx-tracking on EVM is unforgiving:
38
26
  - **No silent downgrade** — a tracker that says "your tx is mined"
39
27
  when the WS dropped and the receipt poll happens to still see the
40
28
  old block is lying. Every event in this package carries a `source`
41
- discriminator so consumers know how authoritative it is.
29
+ discriminator (`'subscription'` / `'block-poll'` /
30
+ `'mempool-snapshot'` / `'receipt-poll'`) so consumers know how
31
+ authoritative it is.
42
32
 
43
33
  This package handles all of it as one push-based core with three thin
44
34
  adapters (callback / async iterator / snapshot).
@@ -49,15 +39,266 @@ adapters (callback / async iterator / snapshot).
49
39
  yarn add @valve-tech/tx-tracker @valve-tech/chain-source viem
50
40
  ```
51
41
 
42
+ `@valve-tech/chain-source` is a runtime dependency — the tracker
43
+ consumes its block + mempool stream rather than re-implementing the
44
+ poll loop. `viem ^2.0.0` is the only external peer.
45
+
46
+ ## Quick start
47
+
48
+ ```ts
49
+ import { createPublicClient, http } from 'viem'
50
+ import { mainnet } from 'viem/chains'
51
+ import { createChainSource } from '@valve-tech/chain-source'
52
+ import { createTxTracker } from '@valve-tech/tx-tracker'
53
+
54
+ const client = createPublicClient({ chain: mainnet, transport: http() })
55
+ const source = createChainSource({ client })
56
+ const tracker = createTxTracker({ source, chainId: 1 })
57
+
58
+ source.start(); tracker.start()
59
+
60
+ // Async iterator — recommended for new code:
61
+ for await (const event of tracker.track('0xabc...')) {
62
+ if (event.kind === 'seen-in-block' && event.confirmations >= 6) break
63
+ }
64
+ ```
65
+
66
+ ## Three consumption shapes
67
+
68
+ All three back the same internal `Subscriptions<TxEvent>` per hash, so
69
+ they see consistent state. Pick whichever fits the call site.
70
+
71
+ ### 1. Snapshot — sub-millisecond, returns `null` if not tracked
72
+
73
+ ```ts
74
+ const status = tracker.getTxStatus(hash)
75
+ if (status?.lastSeenInBlock?.confirmations >= 6) {
76
+ // do confirmed-thing
77
+ }
78
+ ```
79
+
80
+ ### 2. Callback — returns an unsubscribe handle
81
+
82
+ ```ts
83
+ const unsub = tracker.subscribe(hash, (event) => {
84
+ if (event.kind === 'seen-in-block') showConfirmation(event)
85
+ if (event.kind === 'replaced-by') showReplacement(event)
86
+ if (event.kind === 'unseen-for-N-blocks' && event.blocks >= 30) showStuckHint()
87
+ })
88
+ // later
89
+ unsub()
90
+ ```
91
+
92
+ ### 3. Async iterator — recommended for new code
93
+
94
+ ```ts
95
+ for await (const event of tracker.track(hash)) {
96
+ switch (event.kind) {
97
+ case 'seen-in-block':
98
+ if (event.confirmations >= 6) return // exits the loop
99
+ break
100
+ case 'replaced-by':
101
+ reportReplacement(event.replacementHash)
102
+ return
103
+ case 'stopped':
104
+ return // tracker shut down or retention expired
105
+ }
106
+ }
107
+ ```
108
+
109
+ The iterator stops cleanly on tracker shutdown, retention expiry, or
110
+ explicit `unsubscribe`. No event-listener leaks — `for await` cleanup
111
+ runs the iterator's `return()` automatically when the loop exits.
112
+
113
+ ## What you'll likely want to do
114
+
115
+ ### "Confirm a tx"
116
+
117
+ ```ts
118
+ for await (const event of tracker.track(hash)) {
119
+ if (event.kind === 'seen-in-block' && event.confirmations >= confirmsRequired) {
120
+ return event // confirmed
121
+ }
122
+ if (event.kind === 'replaced-by' || event.kind === 'unseen-for-N-blocks') {
123
+ throw new Error(`tx didn't confirm: ${event.kind}`)
124
+ }
125
+ }
126
+ ```
127
+
128
+ `waitForTransaction(hash, { confirmations, source })` ships as a
129
+ one-shot helper if you don't need the per-event control:
130
+
131
+ ```ts
132
+ import { waitForTransaction } from '@valve-tech/tx-tracker'
133
+
134
+ const event = await waitForTransaction(hash, { source, chainId: 1, confirmations: 6 })
135
+ ```
136
+
137
+ ### "Detect a stuck tx and prompt the user to bump"
138
+
139
+ ```ts
140
+ const unsub = tracker.subscribe(hash, (event) => {
141
+ if (event.kind === 'unseen-for-N-blocks' && event.blocks >= 30) {
142
+ promptUserToBump() // 30 blocks ≈ 6 min on Ethereum
143
+ }
144
+ })
145
+ ```
146
+
147
+ `unseenThresholdBlocks` (default 30) controls when the
148
+ `unseen-for-N-blocks` event fires. Tune lower for fast L2s, higher
149
+ for slow chains.
150
+
151
+ ### "Watch all txs from an address (indexer-style bulk)"
152
+
153
+ ```ts
154
+ const sub = tracker.trackFromAddress(treasuryAddress, { durable: true })
155
+
156
+ // Raw match stream:
157
+ for await (const m of sub.events()) {
158
+ console.log('match', m.hash, m.bucket)
159
+ }
160
+
161
+ // Per-hash event stream (auto-tracked by default):
162
+ sub.subscribe((event) => {
163
+ if (event.kind === 'seen-in-block') ingestConfirmed(event)
164
+ })
165
+
166
+ sub.stop() // stops match stream; does NOT stop already-auto-tracked per-hash subs
167
+ ```
168
+
169
+ `trackFromAddress` / `trackToAddress` / `trackPredicate` — capped at
170
+ `maxBulkSubscriptions: 16` by default. Per-hash auto-tracking can be
171
+ disabled via `{ autoTrack: false }` for replay-only consumers.
172
+
173
+ ### "Detect a replacement (speed-up / cancel)"
174
+
175
+ ```ts
176
+ for await (const event of tracker.track(hash)) {
177
+ if (event.kind === 'replaced-by') {
178
+ // event.replacementHash is the new tx; event.replacementBlockNumber
179
+ // is null until the replacement itself mines.
180
+ console.log(`replaced by ${event.replacementHash}`)
181
+ break
182
+ }
183
+ }
184
+ ```
185
+
186
+ Replacement detection runs nonce-watching on the same sender + nonce.
187
+ Works for both speed-up (same nonce, higher tip) and cancel
188
+ (self-send to clear the slot).
189
+
190
+ ## Configuration patterns
191
+
192
+ | Setting | Default | Tune up for | Tune down for |
193
+ |---|---|---|---|
194
+ | `reorgDepthBlocks` | 12 | Weak-finality chains (PoW, small validator sets) | High-finality chains; only care about shallow reorgs |
195
+ | `unseenThresholdBlocks` | 30 | Slow chains (Ethereum: ~6 min) | Fast L2s |
196
+ | `lostSignalPolicy` | `'emit-uncertain'` | (default — loud is correct) | `'silent'` for wallets that don't want capability-churn UI flicker |
197
+ | `createInMemoryStore({ retentionBlocks })` | 64 | Indexers replaying long windows | Wallet UIs |
198
+ | `createInMemoryStore({ eventLogCapacity })` | 256 | Heavy catch-up on restart | Memory-constrained mobile / edge |
199
+
200
+ `reorgDepthBlocks` and retention are in **block-units, not seconds** —
201
+ reorg safety is a depth invariant. See spec §10.1.
202
+
203
+ ## Composing with `@valve-tech/gas-oracle`
204
+
205
+ One `ChainSource` shared across both — one upstream RPC poll cycle:
206
+
207
+ ```ts
208
+ import { createChainSource } from '@valve-tech/chain-source'
209
+ import { createGasOracle } from '@valve-tech/gas-oracle'
210
+ import { createTxTracker } from '@valve-tech/tx-tracker'
211
+
212
+ const source = createChainSource({ client })
213
+ const oracle = createGasOracle({ source, chainId: 1 })
214
+ const tracker = createTxTracker({ source, chainId: 1 })
215
+
216
+ source.start(); oracle.start(); tracker.start()
217
+ // ↑ ONE upstream poll cycle. Two derived views.
218
+ ```
219
+
220
+ Each surface owns its own lifecycle — `oracle.stop()` does not stop
221
+ the source or the tracker. The owner of the source (whoever called
222
+ `createChainSource`) calls `source.stop()` when the process shuts
223
+ down.
224
+
225
+ For React in-flight tx UIs, `@valve-tech/tx-flight-react` wraps
226
+ tracker + wallet-adapter into a Provider + headless components, so
227
+ you don't have to wire any of this by hand for the UI side.
228
+
229
+ ## Capability disclosure (the no-silent-downgrade rule)
230
+
231
+ `tracker.capabilities()` forwards the source's snapshot:
232
+
233
+ ```ts
234
+ {
235
+ newHeads: 'subscription' | 'poll-only' | 'unavailable'
236
+ newPendingTransactions: 'subscription' | 'poll-only' | 'unavailable'
237
+ txpoolContent: 'available' | 'gated'
238
+ receiptByHash: 'available' | 'unavailable'
239
+ reprobeOnReconnect: boolean
240
+ }
241
+ ```
242
+
243
+ When capabilities change mid-tracking (WS dropped, txpool gated, etc.),
244
+ the tracker emits `signal-degraded` / `signal-recovered` per affected
245
+ key. Consumers that need hard inclusion guarantees filter to
246
+ `event.source === 'subscription'`. Consumers that just want "best
247
+ available" data ignore the discriminator.
248
+
249
+ `lostSignalPolicy: 'emit-uncertain'` (the default) is the loud-is-right
250
+ choice — UI consumers want to surface "we lost push to the chain;
251
+ falling back to poll" so the user knows the bar might be lagging.
252
+ Switch to `'silent'` when you genuinely don't care about capability
253
+ churn (some indexers, server-side relays).
254
+
255
+ ## Wire format
256
+
257
+ All numeric fields are `bigint` (block numbers, fees, timestamps).
258
+ `JSON.stringify(event)` will throw without hex-encoding at the wire
259
+ boundary. Durable store implementers MUST hex-encode (`'0x' +
260
+ n.toString(16)`) on write and decode on read. The default in-memory
261
+ store keeps `bigint` end-to-end.
262
+
263
+ ## Examples
264
+
265
+ Runnable scripts (live under the gas-oracle examples directory — the
266
+ toolkit hosts shared examples there):
267
+
268
+ - `examples/07-tx-tracker.ts` — minimal tracker, no oracle (async iterator)
269
+ - `examples/08-tx-tracker-with-oracle.ts` — shared `ChainSource` between gas-oracle + tracker
270
+ - `examples/09-bulk-from-address.ts` — indexer-style bulk subscription
271
+
272
+ Run with `yarn tsx examples/07-tx-tracker.ts`.
273
+
52
274
  ## For AI agents
53
275
 
54
- This package ships an [`AGENTS.md`](AGENTS.md) reference and a
276
+ This package ships an [`AGENTS.md`](AGENTS.md) reference (full surface
277
+ in tabular form, capability matrix, every event variant) and a
55
278
  [`skills/`](skills/) directory for Claude Code / Cursor skill files
56
279
  shipped in the npm tarball. After install, both are reachable at:
57
280
 
58
281
  - `node_modules/@valve-tech/tx-tracker/AGENTS.md`
59
282
  - `node_modules/@valve-tech/tx-tracker/skills/tx-tracker-integration/SKILL.md`
60
283
 
284
+ The skill triggers on imports of `@valve-tech/tx-tracker` and on
285
+ phrases like "track this transaction", "watch tx hash", "detect stuck
286
+ transactions", "watch for replaced txs". It includes a decision tree
287
+ for picking among the three consumption shapes, anti-patterns to flag
288
+ in user code, and the canonical composition pattern with gas-oracle.
289
+
290
+ ## Verifying provenance
291
+
292
+ v0.6.0+ ships with SLSA provenance attestation:
293
+
294
+ ```bash
295
+ npm view @valve-tech/tx-tracker@latest --json | jq .dist.attestations
296
+ npm audit signatures
297
+ ```
298
+
299
+ The attestation links the published tarball to the GitHub Actions
300
+ workflow run that built it.
301
+
61
302
  ## License
62
303
 
63
304
  MIT
package/dist/events.d.ts CHANGED
@@ -238,6 +238,17 @@ export interface TxStatus {
238
238
  firstObservedAtBlock: bigint | null;
239
239
  /** Most recent observation block number — used by retention. */
240
240
  lastObservedAtBlock: bigint | null;
241
+ /**
242
+ * Block at which this hash reached a terminal-and-finalized state
243
+ * (`replaced-by` emitted, or `unseen-for-N-blocks` emitted). Null
244
+ * while the hash is still in flight. Retention countdown starts
245
+ * here per spec §10 — the tracker drops records and emits
246
+ * `Stopped({ reason: 'retention-expired' })` once
247
+ * `currentBlock > terminalAtBlockNumber + retentionBlocks`. Null
248
+ * means the record is still in flight and is not subject to
249
+ * retention-driven cleanup.
250
+ */
251
+ terminalAtBlockNumber: bigint | null;
241
252
  /** Capabilities at the most recent emit. */
242
253
  capabilities: Capabilities;
243
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js CHANGED
@@ -127,6 +127,7 @@ export const buildInitialStatus = (input) => ({
127
127
  unseenStreak: 0,
128
128
  firstObservedAtBlock: null,
129
129
  lastObservedAtBlock: null,
130
+ terminalAtBlockNumber: null,
130
131
  capabilities: input.capabilities,
131
132
  });
132
133
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAuQH;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,KAAe,EAAY,EAAE,CAAC,CAAC;IACnD,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE;CACzE,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAgD,EAChC,EAAE,CAAC,CAAC;IACpB,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,KAAK,CAAC,YAAY;CACjC,CAAC,CAAA;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAA6D,EACvC,EAAE,CAAC,CAAC;IAC1B,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,EAAE,EAAE,KAAK,CAAC,EAAE;CACb,CAAC,CAAA;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAe,EAAsB,EAAE,CAAC,CAAC;IACxE,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAA;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAMC,EACmB,EAAE,CAAC,CAAC;IACxB,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAIC,EACyB,EAAE;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC1D,sDAAsD,CACzD,CAAA;IACH,CAAC;IACD,OAAO;QACL,GAAG,YAAY,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,qBAAqB;QAC3B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAA;AACH,CAAC,CAAA;AAED,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAGC,EACkB,EAAE,CAAC,CAAC;IACvB,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,aAAa;IACnB,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;CACrD,CAAC,CAAA;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAoC,EACX,EAAE,CAAC,CAAC;IAC7B,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAGC,EACsB,EAAE,CAAC,CAAC;IAC3B,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,iBAAiB;IACvB,cAAc,EAAE,KAAK,CAAC,cAAc;IACpC,cAAc,EAAE,KAAK,CAAC,cAAc;CACrC,CAAC,CAAA;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAA4D,EACpC,EAAE,CAAC,CAAC;IAC5B,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,kBAAkB;IACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;CAC7C,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAEC,EACe,EAAE,CAAC,CAAC;IACpB,GAAG,YAAY,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAIlC,EAAY,EAAE,CAAC,CAAC;IACf,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,CAAC;IACf,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,IAAI;IAC3B,YAAY,EAAE,KAAK,CAAC,YAAY;CACjC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAEtF,OAAO,EAML,KAAK,EAAE,EACP,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAChD,qBAAqB,EAAE,OAAO,CAAA;IAC9B,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,uEAAuE;IACvE,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAaD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,EAAE,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,qBAAqB,KAC3B,iBAkJF,CAAA;AAMD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE;QAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D;;;;;OAKG;IACH,oBAAoB,EAAE,KAAK,GAAG,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,EAAE,CAAA;IACZ;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,OAAO,uBAAuB,KAC7B,iBAqFF,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzC,cAAc,IAAI,EAClB,KAAK,aAAa,CAAC,KAAK,CAAC,KACxB,KAAK,GAAG,IAUV,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC/C,IAAI,KAAK,KACR,aAAa,GAAG,IAIlB,CAAA"}
1
+ {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAEtF,OAAO,EAML,KAAK,EAAE,EACP,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAChD,qBAAqB,EAAE,OAAO,CAAA;IAC9B,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,uEAAuE;IACvE,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAaD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,EAAE,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,qBAAqB,KAC3B,iBAuKF,CAAA;AAMD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE;QAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D;;;;;OAKG;IACH,oBAAoB,EAAE,KAAK,GAAG,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,EAAE,CAAA;IACZ;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,OAAO,uBAAuB,KAC7B,iBA4FF,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzC,cAAc,IAAI,EAClB,KAAK,aAAa,CAAC,KAAK,CAAC,KACxB,KAAK,GAAG,IAUV,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC/C,IAAI,KAAK,KACR,aAAa,GAAG,IAIlB,CAAA"}
@@ -124,24 +124,36 @@ export const decideBlockObservation = (input) => {
124
124
  inMempoolPatch: null,
125
125
  };
126
126
  }
127
- // Path 3: replacement detection
127
+ // Path 3: replacement detection. When the mempool path already
128
+ // detected the same replacement (status.replacedBy.hash matches),
129
+ // patch status with the now-known blockNumber but do NOT re-fire
130
+ // `replaced-by` — the consumer already received the event from
131
+ // the mempool side and the replacement is one logical event.
132
+ // Mirrors the `!record.status.replacedBy` gate the mempool path
133
+ // uses to avoid duplicate emits in the other direction.
128
134
  if (record.identity) {
129
135
  const replacement = findReplacementInBlock(record.identity, record.hash, txs);
130
136
  if (replacement && replacement.hash) {
137
+ const isNewReplacement = record.status.replacedBy?.hash !== replacement.hash;
131
138
  return {
132
- events: [
133
- buildReplacedBy({
134
- hash: record.hash,
135
- chainId,
136
- source: eventSource,
137
- at: envelope,
138
- replacementHash: replacement.hash,
139
- replacementBlockNumber: blockNumber,
140
- }),
141
- ],
139
+ events: isNewReplacement
140
+ ? [
141
+ buildReplacedBy({
142
+ hash: record.hash,
143
+ chainId,
144
+ source: eventSource,
145
+ at: envelope,
146
+ replacementHash: replacement.hash,
147
+ replacementBlockNumber: blockNumber,
148
+ }),
149
+ ]
150
+ : [],
142
151
  statusPatch: {
143
152
  replacedBy: { hash: replacement.hash, blockNumber },
144
153
  lastObservedAtBlock: blockNumber,
154
+ // Terminal: replacement included on-chain. Retention
155
+ // countdown starts from this block (audit #2).
156
+ terminalAtBlockNumber: record.status.terminalAtBlockNumber ?? blockNumber,
145
157
  },
146
158
  identityPatch: null,
147
159
  inMempoolPatch: null,
@@ -154,7 +166,8 @@ export const decideBlockObservation = (input) => {
154
166
  return EMPTY_RESULT;
155
167
  }
156
168
  const nextStreak = record.status.unseenStreak + 1;
157
- const events = nextStreak === record.unseenThresholdBlocks
169
+ const reachedTerminal = nextStreak === record.unseenThresholdBlocks;
170
+ const events = reachedTerminal
158
171
  ? [
159
172
  buildUnseenForNBlocks({
160
173
  hash: record.hash,
@@ -167,7 +180,14 @@ export const decideBlockObservation = (input) => {
167
180
  : [];
168
181
  return {
169
182
  events,
170
- statusPatch: { unseenStreak: nextStreak },
183
+ statusPatch: {
184
+ unseenStreak: nextStreak,
185
+ // Terminal: unseen-for-N-blocks emitted at this block.
186
+ // Retention countdown starts here (audit #2).
187
+ ...(reachedTerminal && record.status.terminalAtBlockNumber === null
188
+ ? { terminalAtBlockNumber: blockNumber }
189
+ : {}),
190
+ },
171
191
  identityPatch: null,
172
192
  inMempoolPatch: null,
173
193
  };
@@ -236,6 +256,13 @@ export const decideMempoolObservation = (input) => {
236
256
  statusPatch = {
237
257
  ...statusPatch,
238
258
  replacedBy: { hash: replacementInMempool.hash, blockNumber: null },
259
+ // Terminal: replacement seen in mempool. Retention countdown
260
+ // starts from the current poll's block (audit #2). The block
261
+ // path may later patch this with the replacement's inclusion
262
+ // block, but the terminal anchor stays at the first observation.
263
+ ...(record.status.terminalAtBlockNumber === null
264
+ ? { terminalAtBlockNumber: envelope.blockNumber }
265
+ : {}),
239
266
  };
240
267
  events.push(buildReplacedBy({
241
268
  hash: record.hash,
@@ -1 +1 @@
1
- {"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"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"}
@@ -75,4 +75,21 @@ export declare const matchAll: (txs: ReadonlyArray<RawTx>, compiled: ReadonlyArr
75
75
  * running an indexer-shaped store rather than the in-memory default.
76
76
  */
77
77
  export declare const defaultMaxBulkSubscriptions = 16;
78
+ /**
79
+ * Reverse-lookup: find the bulk subscription whose compiled selector
80
+ * is the same reference as `selector`. Returns `null` on miss.
81
+ *
82
+ * Pure / data-flow only — exported here so the tracker's
83
+ * runBulkOn{Block,Mempool} paths can resolve match→bulk without
84
+ * exposing the bulk registry, and so the defensive null-on-miss
85
+ * branch is unit-testable (audit #7 hardening). The current public
86
+ * API can't reach a miss in fanout (matchSubs has no sync subscribers,
87
+ * so a sub can't be deleted between the `compiled` snapshot and the
88
+ * lookup), but future internal changes that add synchronous matchSubs
89
+ * subscribers, or any other path that mutates the registry mid-fanout,
90
+ * would otherwise crash the entire emit loop.
91
+ */
92
+ export declare const findBulkSubBySelector: <T extends {
93
+ compiled: CompiledSelector;
94
+ }>(bulkSubs: ReadonlyMap<string, T>, selector: BulkSelector) => T | null;
78
95
  //# sourceMappingURL=selectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,EAAE,EAAE,KAAK,CAAA;CACV;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,YAAY,KAAG,gBAwCxD,CAAA;AAeD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,aAAa,CAAC,KAAK,CAAC,EACzB,UAAU,aAAa,CAAC,gBAAgB,CAAC,KACxC,gBAAgB,EAelB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAA"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,EAAE,EAAE,KAAK,CAAA;CACV;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,YAAY,KAAG,gBAwCxD,CAAA;AAeD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,aAAa,CAAC,KAAK,CAAC,EACzB,UAAU,aAAa,CAAC,gBAAgB,CAAC,KACxC,gBAAgB,EAelB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS;IAAE,QAAQ,EAAE,gBAAgB,CAAA;CAAE,EAC5E,UAAU,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAChC,UAAU,YAAY,KACrB,CAAC,GAAG,IAKN,CAAA"}
package/dist/selectors.js CHANGED
@@ -116,4 +116,25 @@ export const matchAll = (txs, compiled) => {
116
116
  * running an indexer-shaped store rather than the in-memory default.
117
117
  */
118
118
  export const defaultMaxBulkSubscriptions = 16;
119
+ /**
120
+ * Reverse-lookup: find the bulk subscription whose compiled selector
121
+ * is the same reference as `selector`. Returns `null` on miss.
122
+ *
123
+ * Pure / data-flow only — exported here so the tracker's
124
+ * runBulkOn{Block,Mempool} paths can resolve match→bulk without
125
+ * exposing the bulk registry, and so the defensive null-on-miss
126
+ * branch is unit-testable (audit #7 hardening). The current public
127
+ * API can't reach a miss in fanout (matchSubs has no sync subscribers,
128
+ * so a sub can't be deleted between the `compiled` snapshot and the
129
+ * lookup), but future internal changes that add synchronous matchSubs
130
+ * subscribers, or any other path that mutates the registry mid-fanout,
131
+ * would otherwise crash the entire emit loop.
132
+ */
133
+ export const findBulkSubBySelector = (bulkSubs, selector) => {
134
+ for (const sub of bulkSubs.values()) {
135
+ if (sub.compiled.selector === selector)
136
+ return sub;
137
+ }
138
+ return null;
139
+ };
119
140
  //# sourceMappingURL=selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
package/dist/tracker.d.ts CHANGED
@@ -139,6 +139,17 @@ export interface CreateTxTrackerOptions {
139
139
  unseenThresholdBlocks?: number;
140
140
  /** Cap on simultaneous bulk subscriptions (spec §11.3). */
141
141
  maxBulkSubscriptions?: number;
142
+ /**
143
+ * How many blocks past a terminal-and-finalized state (`replaced-by`
144
+ * or `unseen-for-N-blocks` emitted) before the tracker drops a
145
+ * record and emits `Stopped({ reason: 'retention-expired' })`.
146
+ * Default `64` (spec §10). Pass the same value to your store
147
+ * implementation so persisted retention matches in-memory.
148
+ * Records still in flight (no terminal observation) are not subject
149
+ * to retention; they live until their last subscriber leaves AND
150
+ * they have no durable subscription (cleanupRecord path).
151
+ */
152
+ retentionBlocks?: number;
142
153
  onError?: (method: string, err: unknown) => void;
143
154
  lifecycle?: 'eager' | 'lazy';
144
155
  }
@@ -174,6 +185,26 @@ export interface TxGroupSubscription {
174
185
  export interface TxTracker {
175
186
  start(): void;
176
187
  stop(): void;
188
+ /**
189
+ * Promise that resolves when durable-subscription rehydration
190
+ * triggered by the most recent `start()` has completed. For
191
+ * in-memory stores this typically resolves on the next microtask;
192
+ * for cross-process restart with Redis / SQLite / etc, this is the
193
+ * gate indexer / relay consumers should `await` before assuming
194
+ * the tracked-set is fully restored:
195
+ *
196
+ * tracker.start()
197
+ * await tracker.ready()
198
+ * // safe to begin processing — durable records from previous run
199
+ * // are now registered against the source.
200
+ *
201
+ * Returns an already-resolved promise when `start()` has not been
202
+ * called or the previous rehydration already finished. Resolves to
203
+ * `void` — errors during rehydration are routed through `onError`
204
+ * and don't reject this promise (one bad store call shouldn't
205
+ * crash consumer flow that's waiting for ready).
206
+ */
207
+ ready(): Promise<void>;
177
208
  getTxStatus(hash: Hash): TxStatus | null;
178
209
  track(hash: Hash, options?: TrackOptions): AsyncIterable<TxEvent>;
179
210
  subscribe(hash: Hash, cb: (event: TxEvent) => void, options?: TrackOptions): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
package/dist/tracker.js CHANGED
@@ -40,7 +40,7 @@ import { createTxGroup } from './group.js';
40
40
  import { buildSeenInBlock, buildSignalDegraded, buildSignalRecovered, buildStarted, buildStopped, buildVanishedFromBlock, buildInitialStatus, } from './events.js';
41
41
  import { decideBlockObservation, decideMempoolObservation, } from './observations.js';
42
42
  import { appendBlock, defaultReorgDepthBlocks, detectDivergences, } from './reorg.js';
43
- import { compileSelector, defaultMaxBulkSubscriptions, matchAll, } from './selectors.js';
43
+ import { compileSelector, defaultMaxBulkSubscriptions, findBulkSubBySelector, matchAll, } from './selectors.js';
44
44
  import { computeRetentionExpiry, createInMemoryStore, defaultRetentionBlocks, } from './store.js';
45
45
  // -----------------------------------------------------------------
46
46
  // Internals
@@ -117,7 +117,7 @@ const mempoolEventSource = (caps) => caps.newPendingTransactions === 'subscripti
117
117
  * }
118
118
  */
119
119
  export const createTxTracker = (options) => {
120
- const { source, chainId, store = createInMemoryStore(), lostSignalPolicy: defaultLostSignalPolicy = 'emit-uncertain', reorgDepthBlocks = defaultReorgDepthBlocks, unseenThresholdBlocks = DEFAULT_UNSEEN_THRESHOLD_BLOCKS, maxBulkSubscriptions = defaultMaxBulkSubscriptions, onError, lifecycle = 'eager', } = options;
120
+ const { source, chainId, store = createInMemoryStore(), lostSignalPolicy: defaultLostSignalPolicy = 'emit-uncertain', reorgDepthBlocks = defaultReorgDepthBlocks, unseenThresholdBlocks = DEFAULT_UNSEEN_THRESHOLD_BLOCKS, maxBulkSubscriptions = defaultMaxBulkSubscriptions, retentionBlocks = defaultRetentionBlocks, onError, lifecycle = 'eager', } = options;
121
121
  const tracked = new Map();
122
122
  const bulkSubs = new Map();
123
123
  const globalSubs = new Subscriptions();
@@ -164,9 +164,14 @@ export const createTxTracker = (options) => {
164
164
  };
165
165
  /**
166
166
  * Project an internal `TrackedRecord` onto the persisted shape.
167
- * Retention expiry is recomputed from the latest observed block
168
- * each time so a long-lived hash that keeps moving stays in the
169
- * store rather than getting GC'd mid-flight.
167
+ * Retention expiry is anchored on `terminalAtBlockNumber` (audit #2)
168
+ * the spec block at which the record reached a terminal state. For
169
+ * records still in flight (terminal === null), expiry rolls with
170
+ * `lastObservedAtBlock` so a long-lived hash that keeps moving
171
+ * stays in the store rather than getting GC'd mid-flight; once the
172
+ * record goes terminal, the anchor is fixed and the chain advancing
173
+ * past `terminal + retentionBlocks` triggers cleanup via the
174
+ * enforcement loop in `onBlock`.
170
175
  */
171
176
  const toRecord = (record) => {
172
177
  const lastBlock = record.status.lastObservedAtBlock ??
@@ -174,13 +179,14 @@ export const createTxTracker = (options) => {
174
179
  latestTip?.number ??
175
180
  0n;
176
181
  const firstBlock = record.status.firstObservedAtBlock ?? latestTip?.number ?? 0n;
182
+ const expiryAnchor = record.status.terminalAtBlockNumber ?? lastBlock;
177
183
  return {
178
184
  chainId,
179
185
  hash: record.hash,
180
186
  status: record.status,
181
187
  firstSeenBlockNumber: firstBlock,
182
188
  lastObservedBlockNumber: lastBlock,
183
- retentionExpiresAtBlockNumber: computeRetentionExpiry(lastBlock, defaultRetentionBlocks),
189
+ retentionExpiresAtBlockNumber: computeRetentionExpiry(expiryAnchor, retentionBlocks),
184
190
  subscriptions: record.persisted,
185
191
  };
186
192
  };
@@ -294,9 +300,14 @@ export const createTxTracker = (options) => {
294
300
  if (existingBlock && existingBlock.blockNumber >= receiptBlockNumber) {
295
301
  return;
296
302
  }
297
- // Record was unsubscribed while getReceipt was in-flight; bail out rather
298
- // than emit on an orphaned record.
299
- if (!tracked.has(record.hash))
303
+ // Record was unsubscribed (and possibly re-subscribed) while
304
+ // getReceipt was in-flight; bail rather than emit on an orphaned
305
+ // record. Identity check, not presence — re-subscribe under the
306
+ // same hash creates a new TrackedRecord, and emitting via the old
307
+ // closure would fire a phantom event on globalSubs that the new
308
+ // per-hash subscribers never see (silent inconsistency between
309
+ // global and per-hash streams). Audit finding #6.
310
+ if (tracked.get(record.hash) !== record)
300
311
  return;
301
312
  emit(record, buildSeenInBlock({
302
313
  hash: record.hash,
@@ -455,6 +466,37 @@ export const createTxTracker = (options) => {
455
466
  for (const event of result.events)
456
467
  emit(record, event);
457
468
  }
469
+ // Retention enforcement (spec §10, audit #2). Records that have
470
+ // reached a terminal state (`replaced-by` or `unseen-for-N-blocks`
471
+ // emitted) carry `terminalAtBlockNumber`. Once the chain has
472
+ // moved `retentionBlocks` past that point, drop the record and
473
+ // emit `Stopped({ reason: 'retention-expired' })`. Records still
474
+ // in flight (terminalAtBlockNumber === null) are NOT subject to
475
+ // retention here — they live until cleanupRecord drops them
476
+ // (no subs + no durable persistence). Iterates a snapshot so
477
+ // emit + delete during the walk is safe.
478
+ const expired = [];
479
+ for (const record of tracked.values()) {
480
+ const t = record.status.terminalAtBlockNumber;
481
+ if (t !== null && blockNumber > t + BigInt(retentionBlocks)) {
482
+ expired.push(record);
483
+ }
484
+ }
485
+ for (const record of expired) {
486
+ const stoppedEvent = buildStopped({
487
+ hash: record.hash,
488
+ chainId,
489
+ source: blockEventSource(source.capabilities()),
490
+ at: buildAt(),
491
+ reason: 'retention-expired',
492
+ });
493
+ emit(record, stoppedEvent);
494
+ tracked.delete(record.hash);
495
+ blocksSinceLastReceiptPoll.delete(record.hash);
496
+ void store.delete(chainId, record.hash).catch((err) => {
497
+ onError?.('store.delete', err);
498
+ });
499
+ }
458
500
  // Receipt-poll-fallback: dispatch non-blocking per-record receipt
459
501
  // fetches. These run AFTER the synchronous block-observation loop
460
502
  // so any block-poll inclusion emitted above is already reflected in
@@ -685,24 +727,18 @@ export const createTxTracker = (options) => {
685
727
  const txs = [...byHash.values()].map((v) => v.tx);
686
728
  fanOutBulkMatches(matchAll(txs, compiled), 'mempool-snapshot');
687
729
  };
688
- /**
689
- * Reverse-lookup: given a compiled selector reference, find its
690
- * owning bulk sub. The `compiled.selector` reference is the same
691
- * object the consumer registered, and every sub in `bulkSubs`
692
- * carries it — so a miss here would mean the registry was
693
- * mutated mid-fanout, which doesn't happen.
694
- */
695
- const findBulkSubBySelector = (selector) => {
696
- for (const sub of bulkSubs.values()) {
697
- if (sub.compiled.selector === selector)
698
- return sub;
699
- }
700
- /* c8 ignore next */
701
- throw new Error('tx-tracker: invariant violated — selector ref missing from bulkSubs');
702
- };
703
730
  const fanOutBulkMatches = (matches, matchSource) => {
704
731
  for (const match of matches) {
705
- const sub = findBulkSubBySelector(match.selector);
732
+ // findBulkSubBySelector is a pure helper from `selectors.ts`;
733
+ // its defensive null-on-miss branch covers audit #7 and is
734
+ // unit-tested in selectors.test.ts. The current public API
735
+ // can't reach a miss in fanout (matchSubs has no synchronous
736
+ // subscribers that could mutate `bulkSubs` between the
737
+ // `compiled` snapshot and this lookup), so we assert non-null
738
+ // here. A future internal change that adds a sync matchSubs
739
+ // subscriber + stops the bulk during emit would need to add a
740
+ // defensive null check back here.
741
+ const sub = findBulkSubBySelector(bulkSubs, match.selector);
706
742
  const event = {
707
743
  kind: 'matched',
708
744
  hash: match.hash,
@@ -920,11 +956,68 @@ export const createTxTracker = (options) => {
920
956
  // -------------------------------------------------------------
921
957
  // Lifecycle
922
958
  // -------------------------------------------------------------
959
+ /**
960
+ * Rehydrate durable subscriptions from the store on start. Spec
961
+ * §13.1 + audit #1: any record persisted with `durable: true`
962
+ * (whether the persistence happened in the current process or a
963
+ * prior one — Redis / SQLite / etc. cross-process restart) must
964
+ * be re-registered against the source on `tracker.start()`. The
965
+ * pre-fix code wrote durable records to the store but never read
966
+ * them back, silently abandoning indexer/relay state across
967
+ * restarts.
968
+ *
969
+ * Async because the store interface is Promise-typed (must support
970
+ * Redis et al). `start()` itself stays synchronous and kicks off
971
+ * the rehydration; production consumers (indexers, relays) that
972
+ * need to be sure rehydration completed before they begin
973
+ * processing should `await tracker.ready()`. Block / mempool
974
+ * handlers do **not** await this — synchronous test patterns
975
+ * (`source.emitBlock(...); expect(events)...`) need to keep
976
+ * working. The trade-off: an in-memory store that resolves on the
977
+ * next microtask, plus a block emitted in the same sync stack as
978
+ * `start()`, may miss the rehydrated record for that one block;
979
+ * subsequent observations see it. That's an acceptable race for
980
+ * the in-memory case (no cross-process state anyway). For
981
+ * cross-process restart with Redis et al, `ready()` is the right
982
+ * gate.
983
+ */
984
+ let rehydrationPromise = null;
985
+ const doRehydration = async () => {
986
+ let durableRecords;
987
+ try {
988
+ durableRecords = await store.listDurable(chainId);
989
+ }
990
+ catch (err) {
991
+ onError?.('store.listDurable', err);
992
+ return;
993
+ }
994
+ for (const persisted of durableRecords) {
995
+ // Skip if a fresh subscribe under the same hash already
996
+ // re-created the record between start() and rehydration
997
+ // resolving.
998
+ if (tracked.has(persisted.hash))
999
+ continue;
1000
+ const record = {
1001
+ hash: persisted.hash,
1002
+ status: persisted.status,
1003
+ subs: new Subscriptions(),
1004
+ identity: null, // re-established by subsequent observations
1005
+ inLastMempoolSnapshot: false,
1006
+ unseenThresholdBlocks,
1007
+ lostSignalPolicy: null,
1008
+ hasDurableSub: true,
1009
+ persisted: persisted.subscriptions,
1010
+ withReceipts: false,
1011
+ };
1012
+ tracked.set(persisted.hash, record);
1013
+ }
1014
+ };
923
1015
  const start = () => {
924
1016
  if (started)
925
1017
  return;
926
1018
  started = true;
927
1019
  lastCaps = source.capabilities();
1020
+ rehydrationPromise = doRehydration();
928
1021
  unsubBlocks = source.subscribeBlocks(onBlock);
929
1022
  unsubMempool = source.subscribeMempool(onMempool);
930
1023
  };
@@ -959,6 +1052,14 @@ export const createTxTracker = (options) => {
959
1052
  receiptPollGateWarned = false;
960
1053
  // Reset withReceipts gate so a subsequent start() begins clean.
961
1054
  withReceiptsGateWarned = false;
1055
+ // Drop the rehydration handle so a subsequent start() re-reads
1056
+ // the store (audit #1).
1057
+ rehydrationPromise = null;
1058
+ // NOTE: globalSubs is deliberately NOT reset. Long-lived analytics /
1059
+ // logging consumers that wire `subscribeAll` once at construction
1060
+ // continue receiving events across stop()/start() cycles. Locked
1061
+ // in by tracker.test.ts:'subscribeAll callbacks survive
1062
+ // stop()/start() cycle (audit #8 lock-in)'.
962
1063
  };
963
1064
  // Eager lifecycle: subscribe immediately on construction. Lazy
964
1065
  // waits for the first track/getStatus call. The capability probe
@@ -970,6 +1071,7 @@ export const createTxTracker = (options) => {
970
1071
  const trackerSurface = {
971
1072
  start,
972
1073
  stop,
1074
+ ready: () => rehydrationPromise ?? Promise.resolve(),
973
1075
  getTxStatus: (hash) => {
974
1076
  const record = tracked.get(hash);
975
1077
  return record ? record.status : null;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valve-tech/tx-tracker",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Per-tx state machine for EVM chains: emits neutral observations (`seen-in-mempool`, `seen-in-block`, `replaced-by`, `vanished-from-block`, `unseen-for-N-blocks`, etc.) so wallet UIs, indexers, and relays can write their own interpretations on top. Three consumption shapes (callback, async iterator, snapshot) over one push-based core. Per-method capability detection — works on HTTP, WS, both, or neither. Part of the valve-tech/evm-toolkit synchronized release line — implementation lands in subsequent 0.3.x releases per docs/tx-tracker-spec.md.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/valve-tech/evm-toolkit/tree/main/packages/tx-tracker#readme",
@@ -49,7 +49,7 @@
49
49
  "prepare": "yarn build"
50
50
  },
51
51
  "dependencies": {
52
- "@valve-tech/chain-source": "^0.10.0"
52
+ "@valve-tech/chain-source": "^0.11.0"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "viem": "^2.0.0"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: tx-tracker-integration
3
- description: Integrate `@valve-tech/tx-tracker` into a wallet UI, indexer, or relay. Use when the user wants to "track this transaction," "watch tx hash," "know when my tx confirms," "detect stuck transactions," "watch for replaced txs," "follow this address's txs," or asks about reorg / replacement / dropped-tx detection on EVM. Also use when seeing imports from `@valve-tech/tx-tracker` and the user asks for help with `createTxTracker`, `track`, `subscribe`, `getTxStatus`, `trackFromAddress` / `trackToAddress` / `trackPredicate`, `TxEvent`, `TxTrackerStore`, `createInMemoryStore`, `lostSignalPolicy`, or capability disclosure (`subscription` / `block-poll` / `mempool-snapshot` / `receipt-poll` event sources). Also applies when the user asks how to compose tx-tracker with `@valve-tech/gas-oracle` via a shared `ChainSource`.
3
+ description: Integrate `@valve-tech/tx-tracker` into a wallet UI, indexer, or relay. Use when the user wants to "track this transaction," "watch tx hash," "know when my tx confirms," "detect stuck transactions," "watch for replaced txs," "follow this address's txs," or asks about reorg / replacement / dropped-tx detection on EVM. Also use when seeing imports from `@valve-tech/tx-tracker` and the user asks for help with `createTxTracker`, `track`, `subscribe`, `getTxStatus`, `trackFromAddress` / `trackToAddress` / `trackPredicate`, `TxEvent`, `TxTrackerStore`, `createInMemoryStore`, `lostSignalPolicy`, or capability disclosure (`subscription` / `block-poll` / `mempool-snapshot` / `receipt-poll` event sources). Also applies when the user asks how to compose tx-tracker with `@valve-tech/gas-oracle` via a shared `ChainSource`. Skip when the user only wants gas-tier math without per-tx state (delegate to gas-oracle-integration), only wants the raw block/mempool stream with no per-tx logic (delegate to chain-source-integration), or wants a React UI strip for in-flight txs (delegate to tx-flight-react-integration — that package wraps tx-tracker for React consumers).
4
4
  ---
5
5
 
6
6
  # Integrating `@valve-tech/tx-tracker`