@valve-tech/tx-tracker 0.14.0 → 0.15.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 +87 -0
- package/dist/events.d.ts +22 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +6 -0
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/local-storage-store.d.ts +98 -0
- package/dist/local-storage-store.d.ts.map +1 -0
- package/dist/local-storage-store.js +208 -0
- package/dist/local-storage-store.js.map +1 -0
- package/dist/observations.d.ts +9 -0
- package/dist/observations.d.ts.map +1 -1
- package/dist/observations.js +53 -17
- package/dist/observations.js.map +1 -1
- package/dist/store.d.ts +12 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js.map +1 -1
- package/dist/tracker.d.ts +39 -0
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +109 -12
- package/dist/tracker.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,93 @@ 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.15.0] — 2026-05-14
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`CreateTxTrackerOptions.confirmationsForTerminal: number | null`**
|
|
14
|
+
(default `null`). When set to a positive integer, a record
|
|
15
|
+
transitions to terminal (`terminalAtBlockNumber` set to the current
|
|
16
|
+
block) the first block its `lastSeenInBlock.confirmations` reaches
|
|
17
|
+
the threshold. Closes the long-standing gap where a normally-mined
|
|
18
|
+
tx never went terminal — retention enforcement only fired on
|
|
19
|
+
replacement and unseen-for-N-blocks paths, so successful txs
|
|
20
|
+
accumulated in long-lived stores forever. Records with 5,000+
|
|
21
|
+
confirmations were observed in production localStorage dumps; the
|
|
22
|
+
new option lets consumers opt in to retire them via the normal
|
|
23
|
+
retention pipeline. Recommended value: `≥ reorgDepthBlocks` (default
|
|
24
|
+
12) so a same-height reorg can't briefly unmine a "terminal" tx.
|
|
25
|
+
Validation: must be a positive integer or null/undefined; zero,
|
|
26
|
+
negative, and non-integer values throw at construction.
|
|
27
|
+
- **`TxEventConfirmedTerminal` event kind** — `{ kind: 'confirmed-terminal',
|
|
28
|
+
confirmations }` fires once when the threshold is reached. Consumer-
|
|
29
|
+
facing signal that the record is now safe to forget. Carries the
|
|
30
|
+
triggering confirmations count for downstream gating.
|
|
31
|
+
- **`TrackOptions.subscriptionId?: string`** — caller-provided stable
|
|
32
|
+
identifier for the persisted subscription (only meaningful when
|
|
33
|
+
`durable: true`). Repeated calls with the same id are idempotent.
|
|
34
|
+
Without an explicit id, the tracker auto-dedups by `(durable,
|
|
35
|
+
selector)`: a second subscribe on the same hash with `durable: true`
|
|
36
|
+
reuses the prior persisted entry rather than appending. Closes the
|
|
37
|
+
bug where React component remounts and page reloads accumulated
|
|
38
|
+
structurally-identical persisted entries across reloads, each
|
|
39
|
+
driving the same downstream fan-out N times.
|
|
40
|
+
- **`createLocalStorageTrackerStore({ keyPrefix, storage?, eventLogCapacity?,
|
|
41
|
+
cleanupLegacyPrefixes? })`** — first-party TxTrackerStore implementation
|
|
42
|
+
backed by `localStorage` (or any `Storage`-shaped object). Records
|
|
43
|
+
stored under `{keyPrefix}:{chainId}:{hash}`; eventlogs under
|
|
44
|
+
`{keyPrefix}:eventlog:{chainId}:{hash}`. Bigint fields round-trip
|
|
45
|
+
losslessly via a sentinel-tagged JSON replacer/reviver.
|
|
46
|
+
**`delete()` clears BOTH the record AND the eventlog** — the
|
|
47
|
+
canonical bug class consumer-side localStorage stores routinely got
|
|
48
|
+
wrong, leaving orphaned eventlogs that never expired.
|
|
49
|
+
`cleanupLegacyPrefixes` deletes prior-prefix keys on construction for
|
|
50
|
+
prefix-bump migrations. Defensive against `setItem` failures (quota
|
|
51
|
+
exceeded, browser disabled storage) — surfaces as a rejected promise
|
|
52
|
+
so the tracker's `onError` can route it cleanly.
|
|
53
|
+
- **`deleteKeysStartingWith(storage, prefix)`** — standalone helper for
|
|
54
|
+
prefix cleanup without instantiating the full store.
|
|
55
|
+
- **Self-healing rehydration dedup.** On `tracker.start()`,
|
|
56
|
+
`dedupPersistedSubscriptions` runs on the rehydrated record's
|
|
57
|
+
subscription list; when the count shrinks (legacy duplicates
|
|
58
|
+
collapsed), the cleaned record is immediately written back via
|
|
59
|
+
`store.put`. Defensive against legacy flat-shape entries (pre-current
|
|
60
|
+
`selector` nesting) — those pass through untouched rather than
|
|
61
|
+
crashing the dedup helper.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- **`runReceiptPollFallback` skips silently when `caps.ready === false`**.
|
|
66
|
+
Pre-v0.15, the conservative pre-probe `receiptByHash: 'unavailable'`
|
|
67
|
+
default tripped the "permanently unavailable" warning gate, firing
|
|
68
|
+
once per tracker instance even when the RPC ultimately supported the
|
|
69
|
+
method. The warning now waits for probe completion (`caps.ready === true`)
|
|
70
|
+
before deciding; pre-probe ticks no-op.
|
|
71
|
+
- **`TxTrackerStore.delete` docstring tightened** to make explicit that
|
|
72
|
+
implementations must clear ALL state associated with the hash — the
|
|
73
|
+
record, the eventlog, any other per-hash keys. The first-party
|
|
74
|
+
`createInMemoryStore` and `createLocalStorageTrackerStore` already
|
|
75
|
+
enforce this; consumer implementations must do the same to avoid the
|
|
76
|
+
orphan-eventlog leak class.
|
|
77
|
+
|
|
78
|
+
### Notes
|
|
79
|
+
|
|
80
|
+
- The `confirmationsForTerminal` transition fires from both Path 1
|
|
81
|
+
(fresh inclusion at confirmations=1, relevant only when threshold=1)
|
|
82
|
+
and Path 2 (confirmation bump from prior block) in
|
|
83
|
+
`decideBlockObservation`. Terminal is anchored on the current block
|
|
84
|
+
(matching the existing terminal arms which all anchor on
|
|
85
|
+
detection-block, not origin-block) — retention math is consistent
|
|
86
|
+
across all four arms.
|
|
87
|
+
- The status-poll path's mined emit (added in v0.14) hardcodes
|
|
88
|
+
`confirmations: 1` and doesn't participate in the new transition.
|
|
89
|
+
This is correct: status-poll mined observations are one-shot per
|
|
90
|
+
inclusion-block; confirmation accrual happens via block-poll's
|
|
91
|
+
Path 2, which is where the threshold is checked.
|
|
92
|
+
- 40 new tests across `tracker.test.ts`, `local-storage-store.test.ts`,
|
|
93
|
+
and `events.test.ts`. 334 total tx-tracker tests (was 294). Coverage
|
|
94
|
+
remains 100/100/100/100.
|
|
95
|
+
|
|
9
96
|
## [0.14.0] — 2026-05-14
|
|
10
97
|
|
|
11
98
|
### Added
|
package/dist/events.d.ts
CHANGED
|
@@ -153,6 +153,23 @@ export interface TxEventUnseenForNBlocks extends Envelope {
|
|
|
153
153
|
kind: 'unseen-for-N-blocks';
|
|
154
154
|
blocks: number;
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Mined-and-confirmed terminal — fires when an included tx's
|
|
158
|
+
* `confirmations` reaches the `confirmationsForTerminal` threshold
|
|
159
|
+
* configured on the tracker. Marks the record as terminal for
|
|
160
|
+
* retention purposes (the existing terminal anchors are
|
|
161
|
+
* replacement and unseen-for-N-blocks; v0.15 closes the gap where a
|
|
162
|
+
* normally-mined tx never goes terminal and leaks records in
|
|
163
|
+
* long-lived stores). Carries the confirmations count that triggered
|
|
164
|
+
* the transition so consumers can gate downstream UI cleanup off the
|
|
165
|
+
* same event. Fires exactly once per record — the
|
|
166
|
+
* `terminalAtBlockNumber == null` gate on the decision arm dedups
|
|
167
|
+
* subsequent confirmation bumps.
|
|
168
|
+
*/
|
|
169
|
+
export interface TxEventConfirmedTerminal extends Envelope {
|
|
170
|
+
kind: 'confirmed-terminal';
|
|
171
|
+
confirmations: number;
|
|
172
|
+
}
|
|
156
173
|
/**
|
|
157
174
|
* A capability the tracker had been relying on for this hash is
|
|
158
175
|
* no longer authoritative — typically because the WS subscription
|
|
@@ -192,7 +209,7 @@ export interface TxEventStopped extends Envelope {
|
|
|
192
209
|
* Discriminated union of every event variant. Narrow on `kind` to
|
|
193
210
|
* access variant-specific fields.
|
|
194
211
|
*/
|
|
195
|
-
export type TxEvent = TxEventStarted | TxEventSeenInMempool | TxEventLeftMempool | TxEventSeenInBlock | TxEventVanishedFromBlock | TxEventReplacedBy | TxEventUnseenForNBlocks | TxEventSignalDegraded | TxEventSignalRecovered | TxEventStopped;
|
|
212
|
+
export type TxEvent = TxEventStarted | TxEventSeenInMempool | TxEventLeftMempool | TxEventSeenInBlock | TxEventVanishedFromBlock | TxEventReplacedBy | TxEventUnseenForNBlocks | TxEventConfirmedTerminal | TxEventSignalDegraded | TxEventSignalRecovered | TxEventStopped;
|
|
196
213
|
/**
|
|
197
214
|
* `TxStatus` — cached snapshot the state machine maintains per
|
|
198
215
|
* tracked hash. `getTxStatus(hash)` returns this; the iterator and
|
|
@@ -292,6 +309,10 @@ export declare const buildReplacedBy: (input: Envelope & {
|
|
|
292
309
|
export declare const buildUnseenForNBlocks: (input: Envelope & {
|
|
293
310
|
blocks: number;
|
|
294
311
|
}) => TxEventUnseenForNBlocks;
|
|
312
|
+
/** Build a `confirmed-terminal` event. */
|
|
313
|
+
export declare const buildConfirmedTerminal: (input: Envelope & {
|
|
314
|
+
confirmations: number;
|
|
315
|
+
}) => TxEventConfirmedTerminal;
|
|
295
316
|
/** Build a `signal-degraded` event. */
|
|
296
317
|
export declare const buildSignalDegraded: (input: Envelope & {
|
|
297
318
|
capabilityLost: keyof Capabilities;
|
package/dist/events.d.ts.map
CHANGED
|
@@ -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
|
@@ -91,6 +91,12 @@ export const buildUnseenForNBlocks = (input) => ({
|
|
|
91
91
|
kind: 'unseen-for-N-blocks',
|
|
92
92
|
blocks: input.blocks,
|
|
93
93
|
});
|
|
94
|
+
/** Build a `confirmed-terminal` event. */
|
|
95
|
+
export const buildConfirmedTerminal = (input) => ({
|
|
96
|
+
...makeEnvelope(input),
|
|
97
|
+
kind: 'confirmed-terminal',
|
|
98
|
+
confirmations: input.confirmations,
|
|
99
|
+
});
|
|
94
100
|
/** Build a `signal-degraded` event. */
|
|
95
101
|
export const buildSignalDegraded = (input) => ({
|
|
96
102
|
...makeEnvelope(input),
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,9 +40,11 @@
|
|
|
40
40
|
* source.stop()
|
|
41
41
|
*/
|
|
42
42
|
export { createTxTracker } from './tracker.js';
|
|
43
|
-
export type { CreateTxTrackerOptions, TxTracker, TrackOptions, BulkTrackOptions, TxMatchEvent, TxSubscription, LostSignalPolicy, GroupOptions, TxGroupSubscription, } from './tracker.js';
|
|
44
|
-
export {
|
|
45
|
-
export type {
|
|
43
|
+
export type { CreateTxTrackerOptions, TxTracker, TrackOptions, BulkTrackOptions, TxMatchEvent, TxSubscription, LostSignalPolicy, ProbeMined, ProbeMinedResult, ProbeTransaction, GroupOptions, TxGroupSubscription, } from './tracker.js';
|
|
44
|
+
export { createLocalStorageTrackerStore, deleteKeysStartingWith, } from './local-storage-store.js';
|
|
45
|
+
export type { LocalStorageLike, LocalStorageTrackerStoreOptions, } from './local-storage-store.js';
|
|
46
|
+
export { buildStarted, buildSeenInMempool, buildLeftMempool, buildSeenInBlock, buildVanishedFromBlock, buildReplacedBy, buildUnseenForNBlocks, buildConfirmedTerminal, buildSignalDegraded, buildSignalRecovered, buildStopped, buildInitialStatus, } from './events.js';
|
|
47
|
+
export type { Address, At, Envelope, Hash, TxEvent, TxEventStarted, TxEventSeenInMempool, TxEventLeftMempool, TxEventSeenInBlock, TxEventVanishedFromBlock, TxEventReplacedBy, TxEventUnseenForNBlocks, TxEventConfirmedTerminal, TxEventSignalDegraded, TxEventSignalRecovered, TxEventStopped, TxStatus, } from './events.js';
|
|
46
48
|
export { createInMemoryStore, computeRetentionExpiry, defaultRetentionBlocks, } from './store.js';
|
|
47
49
|
export type { BulkSelector, HashSelector, InMemoryStoreOptions, PersistedSubscription, TrackedTxRecord, TxTrackerStore, } from './store.js';
|
|
48
50
|
export { appendBlock, defaultReorgDepthBlocks, detectDivergences, } from './reorg.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,OAAO,EACP,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,QAAQ,GACT,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EACd,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,OAAO,EACP,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,QAAQ,GACT,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EACd,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
* source.stop()
|
|
41
41
|
*/
|
|
42
42
|
export { createTxTracker } from './tracker.js';
|
|
43
|
-
export {
|
|
43
|
+
export { createLocalStorageTrackerStore, deleteKeysStartingWith, } from './local-storage-store.js';
|
|
44
|
+
export { buildStarted, buildSeenInMempool, buildLeftMempool, buildSeenInBlock, buildVanishedFromBlock, buildReplacedBy, buildUnseenForNBlocks, buildConfirmedTerminal, buildSignalDegraded, buildSignalRecovered, buildStopped, buildInitialStatus, } from './events.js';
|
|
44
45
|
export { createInMemoryStore, computeRetentionExpiry, defaultRetentionBlocks, } from './store.js';
|
|
45
46
|
export { appendBlock, defaultReorgDepthBlocks, detectDivergences, } from './reorg.js';
|
|
46
47
|
export { compileSelector, defaultMaxBulkSubscriptions, matchAll, } from './selectors.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAgB9C,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAA;AAqBpB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAUnB,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAM9D,OAAO,EACL,cAAc,EACd,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAU1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createLocalStorageTrackerStore` — first-party `TxTrackerStore`
|
|
3
|
+
* implementation backed by `localStorage` (or any `Storage`-shaped
|
|
4
|
+
* object). Targeted at browser dApps that need durable per-hash
|
|
5
|
+
* subscriptions surviving page reloads but don't want to maintain
|
|
6
|
+
* their own custom store.
|
|
7
|
+
*
|
|
8
|
+
* Key layout (under the consumer-supplied `keyPrefix`):
|
|
9
|
+
*
|
|
10
|
+
* {keyPrefix}:{chainId}:{hash} → the TrackedTxRecord JSON
|
|
11
|
+
* {keyPrefix}:eventlog:{chainId}:{hash} → the per-hash event log JSON
|
|
12
|
+
*
|
|
13
|
+
* The eventlog is a separate key from the record so put/get can avoid
|
|
14
|
+
* paying read-and-rewrite for the (potentially-large) log on every
|
|
15
|
+
* status update.
|
|
16
|
+
*
|
|
17
|
+
* **`delete()` clears BOTH keys.** This is the contract the
|
|
18
|
+
* `TxTrackerStore.delete` docstring requires; we lock it in here so
|
|
19
|
+
* consumers don't accumulate orphan eventlogs when records expire
|
|
20
|
+
* (the canonical bug that motivated this first-party store —
|
|
21
|
+
* consumer-implemented localStorage stores routinely forgot to clear
|
|
22
|
+
* the eventlog key).
|
|
23
|
+
*
|
|
24
|
+
* Browser-safety: `localStorage` is browser-only. The factory accepts
|
|
25
|
+
* a `storage` override (defaults to `globalThis.localStorage`) so
|
|
26
|
+
* (a) tests can inject a fake and (b) consumers running in
|
|
27
|
+
* server-rendered contexts can supply a no-op implementation rather
|
|
28
|
+
* than throwing at construction.
|
|
29
|
+
*/
|
|
30
|
+
import type { PersistedSubscription, TxTrackerStore } from './store.js';
|
|
31
|
+
/**
|
|
32
|
+
* Storage-shaped interface — the subset of the DOM `Storage` API the
|
|
33
|
+
* store needs. `localStorage` and `sessionStorage` both satisfy this;
|
|
34
|
+
* consumers can supply any object with the same shape (in-memory fake,
|
|
35
|
+
* server-rendered no-op, IndexedDB-backed polyfill, etc.).
|
|
36
|
+
*/
|
|
37
|
+
export interface LocalStorageLike {
|
|
38
|
+
getItem(key: string): string | null;
|
|
39
|
+
setItem(key: string, value: string): void;
|
|
40
|
+
removeItem(key: string): void;
|
|
41
|
+
readonly length: number;
|
|
42
|
+
key(index: number): string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface LocalStorageTrackerStoreOptions {
|
|
45
|
+
/**
|
|
46
|
+
* Namespace prefix for all keys this store writes. Required. Use
|
|
47
|
+
* a versioned prefix (e.g. `'myapp.tx-tracker.v1'`) and bump the
|
|
48
|
+
* version suffix when the persisted shape changes — the prior-
|
|
49
|
+
* prefix keys can then be cleaned up via `cleanupLegacyPrefixes`.
|
|
50
|
+
*/
|
|
51
|
+
keyPrefix: string;
|
|
52
|
+
/**
|
|
53
|
+
* Storage backend. Defaults to `globalThis.localStorage` when
|
|
54
|
+
* available; throws at construction otherwise (server-rendered or
|
|
55
|
+
* Node contexts must supply an explicit `storage` parameter, even
|
|
56
|
+
* if it's a no-op).
|
|
57
|
+
*/
|
|
58
|
+
storage?: LocalStorageLike;
|
|
59
|
+
/**
|
|
60
|
+
* Cap on the per-hash event log. When `appendEvent` would push the
|
|
61
|
+
* log past this length, the oldest entries are dropped. Default 256
|
|
62
|
+
* (matches `InMemoryStoreOptions.eventLogCapacity`).
|
|
63
|
+
*/
|
|
64
|
+
eventLogCapacity?: number;
|
|
65
|
+
/**
|
|
66
|
+
* On construction, delete every key in `storage` that starts with
|
|
67
|
+
* any of these prefixes followed by `:`. Use to clean up records
|
|
68
|
+
* orphaned by a prior `keyPrefix` bump. Pass the OLD prefix (or
|
|
69
|
+
* prefixes), not the current one — passing the current one would
|
|
70
|
+
* wipe live state.
|
|
71
|
+
*/
|
|
72
|
+
cleanupLegacyPrefixes?: string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Build a localStorage-backed `TxTrackerStore`. See module docstring
|
|
76
|
+
* for the key layout and serialization details.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* import {
|
|
80
|
+
* createTxTracker,
|
|
81
|
+
* createLocalStorageTrackerStore,
|
|
82
|
+
* } from '@valve-tech/tx-tracker'
|
|
83
|
+
*
|
|
84
|
+
* const store = createLocalStorageTrackerStore({
|
|
85
|
+
* keyPrefix: 'myapp.tx-tracker.v1',
|
|
86
|
+
* cleanupLegacyPrefixes: ['myapp.tx-tracker.v0'],
|
|
87
|
+
* })
|
|
88
|
+
* const tracker = createTxTracker({ source, chainId: 1, store })
|
|
89
|
+
*/
|
|
90
|
+
export declare const createLocalStorageTrackerStore: (options: LocalStorageTrackerStoreOptions) => TxTrackerStore;
|
|
91
|
+
/**
|
|
92
|
+
* Delete every key in `storage` whose name starts with `prefix`.
|
|
93
|
+
* Exported so consumers can run prefix cleanup without instantiating
|
|
94
|
+
* the full store — e.g., on app boot before constructing the tracker.
|
|
95
|
+
*/
|
|
96
|
+
export declare const deleteKeysStartingWith: (storage: LocalStorageLike, prefix: string) => void;
|
|
97
|
+
export type { PersistedSubscription };
|
|
98
|
+
//# sourceMappingURL=local-storage-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-storage-store.d.ts","sourceRoot":"","sources":["../src/local-storage-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EACV,qBAAqB,EAErB,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,+BAA+B;IAC9C;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAE1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;CACjC;AAwDD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,8BAA8B,GACzC,SAAS,+BAA+B,KACvC,cA2GF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,gBAAgB,EACzB,QAAQ,MAAM,KACb,IASF,CAAA;AAMD,YAAY,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createLocalStorageTrackerStore` — first-party `TxTrackerStore`
|
|
3
|
+
* implementation backed by `localStorage` (or any `Storage`-shaped
|
|
4
|
+
* object). Targeted at browser dApps that need durable per-hash
|
|
5
|
+
* subscriptions surviving page reloads but don't want to maintain
|
|
6
|
+
* their own custom store.
|
|
7
|
+
*
|
|
8
|
+
* Key layout (under the consumer-supplied `keyPrefix`):
|
|
9
|
+
*
|
|
10
|
+
* {keyPrefix}:{chainId}:{hash} → the TrackedTxRecord JSON
|
|
11
|
+
* {keyPrefix}:eventlog:{chainId}:{hash} → the per-hash event log JSON
|
|
12
|
+
*
|
|
13
|
+
* The eventlog is a separate key from the record so put/get can avoid
|
|
14
|
+
* paying read-and-rewrite for the (potentially-large) log on every
|
|
15
|
+
* status update.
|
|
16
|
+
*
|
|
17
|
+
* **`delete()` clears BOTH keys.** This is the contract the
|
|
18
|
+
* `TxTrackerStore.delete` docstring requires; we lock it in here so
|
|
19
|
+
* consumers don't accumulate orphan eventlogs when records expire
|
|
20
|
+
* (the canonical bug that motivated this first-party store —
|
|
21
|
+
* consumer-implemented localStorage stores routinely forgot to clear
|
|
22
|
+
* the eventlog key).
|
|
23
|
+
*
|
|
24
|
+
* Browser-safety: `localStorage` is browser-only. The factory accepts
|
|
25
|
+
* a `storage` override (defaults to `globalThis.localStorage`) so
|
|
26
|
+
* (a) tests can inject a fake and (b) consumers running in
|
|
27
|
+
* server-rendered contexts can supply a no-op implementation rather
|
|
28
|
+
* than throwing at construction.
|
|
29
|
+
*/
|
|
30
|
+
const DEFAULT_EVENT_LOG_CAPACITY = 256;
|
|
31
|
+
const recordKey = (prefix, chainId, hash) => `${prefix}:${chainId}:${hash}`;
|
|
32
|
+
const eventLogKey = (prefix, chainId, hash) => `${prefix}:eventlog:${chainId}:${hash}`;
|
|
33
|
+
/**
|
|
34
|
+
* JSON replacer that round-trips `bigint` losslessly. The toolkit's
|
|
35
|
+
* persisted shapes carry block numbers and other on-chain quantities
|
|
36
|
+
* as bigint; native `JSON.stringify` throws on them. We tag with a
|
|
37
|
+
* sentinel discriminator so the reviver can rehydrate to bigint
|
|
38
|
+
* without ambiguity against arbitrary user strings.
|
|
39
|
+
*/
|
|
40
|
+
const SENTINEL = '$tx-tracker:bigint';
|
|
41
|
+
const bigintReplacer = (_key, value) => {
|
|
42
|
+
if (typeof value === 'bigint') {
|
|
43
|
+
return { [SENTINEL]: value.toString() };
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
const bigintReviver = (_key, value) => {
|
|
48
|
+
if (value !== null &&
|
|
49
|
+
typeof value === 'object' &&
|
|
50
|
+
SENTINEL in value &&
|
|
51
|
+
typeof value[SENTINEL] === 'string') {
|
|
52
|
+
try {
|
|
53
|
+
return BigInt(value[SENTINEL]);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Malformed sentinel — fall back to the raw object; downstream
|
|
57
|
+
// type guards (typeof === 'bigint') will treat as missing.
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
};
|
|
63
|
+
const stringifyRecord = (value) => JSON.stringify(value, bigintReplacer);
|
|
64
|
+
const parseRecord = (raw) => {
|
|
65
|
+
if (raw === null)
|
|
66
|
+
return null;
|
|
67
|
+
try {
|
|
68
|
+
return JSON.parse(raw, bigintReviver);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Build a localStorage-backed `TxTrackerStore`. See module docstring
|
|
76
|
+
* for the key layout and serialization details.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* import {
|
|
80
|
+
* createTxTracker,
|
|
81
|
+
* createLocalStorageTrackerStore,
|
|
82
|
+
* } from '@valve-tech/tx-tracker'
|
|
83
|
+
*
|
|
84
|
+
* const store = createLocalStorageTrackerStore({
|
|
85
|
+
* keyPrefix: 'myapp.tx-tracker.v1',
|
|
86
|
+
* cleanupLegacyPrefixes: ['myapp.tx-tracker.v0'],
|
|
87
|
+
* })
|
|
88
|
+
* const tracker = createTxTracker({ source, chainId: 1, store })
|
|
89
|
+
*/
|
|
90
|
+
export const createLocalStorageTrackerStore = (options) => {
|
|
91
|
+
const storage = options.storage ??
|
|
92
|
+
(typeof globalThis !== 'undefined' &&
|
|
93
|
+
'localStorage' in globalThis &&
|
|
94
|
+
globalThis.localStorage
|
|
95
|
+
? globalThis.localStorage
|
|
96
|
+
: null);
|
|
97
|
+
if (!storage) {
|
|
98
|
+
throw new Error('createLocalStorageTrackerStore: no `storage` supplied and globalThis.localStorage is unavailable. Pass `storage: ...` explicitly when running in a non-browser environment.');
|
|
99
|
+
}
|
|
100
|
+
if (!options.keyPrefix) {
|
|
101
|
+
throw new Error('createLocalStorageTrackerStore: keyPrefix is required');
|
|
102
|
+
}
|
|
103
|
+
const keyPrefix = options.keyPrefix;
|
|
104
|
+
const eventLogCapacity = options.eventLogCapacity ?? DEFAULT_EVENT_LOG_CAPACITY;
|
|
105
|
+
// Cleanup pass on construction. Skip the current prefix even if a
|
|
106
|
+
// consumer accidentally lists it — wiping live state mid-session
|
|
107
|
+
// would be the most-surprising-thing possible.
|
|
108
|
+
for (const legacy of options.cleanupLegacyPrefixes ?? []) {
|
|
109
|
+
if (!legacy || legacy === keyPrefix)
|
|
110
|
+
continue;
|
|
111
|
+
deleteKeysStartingWith(storage, `${legacy}:`);
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
put: async (record) => {
|
|
115
|
+
storage.setItem(recordKey(keyPrefix, record.chainId, record.hash), stringifyRecord(record));
|
|
116
|
+
},
|
|
117
|
+
get: async (chainId, hash) => {
|
|
118
|
+
const raw = storage.getItem(recordKey(keyPrefix, chainId, hash));
|
|
119
|
+
return parseRecord(raw);
|
|
120
|
+
},
|
|
121
|
+
delete: async (chainId, hash) => {
|
|
122
|
+
// Critically: clear BOTH the record AND the eventlog. The bug
|
|
123
|
+
// class this fixes is the consumer-side localStorage store that
|
|
124
|
+
// remembered only the record key on delete, leaving the eventlog
|
|
125
|
+
// as a permanent orphan.
|
|
126
|
+
storage.removeItem(recordKey(keyPrefix, chainId, hash));
|
|
127
|
+
storage.removeItem(eventLogKey(keyPrefix, chainId, hash));
|
|
128
|
+
},
|
|
129
|
+
listDurable: async (chainId) => {
|
|
130
|
+
const prefix = `${keyPrefix}:${chainId}:`;
|
|
131
|
+
const result = [];
|
|
132
|
+
// Snapshot the keys first — mutations during iteration would
|
|
133
|
+
// shift the `key(i)` indexing. Browser localStorage is
|
|
134
|
+
// synchronous, but defensive against any Storage-shaped object
|
|
135
|
+
// that mutates during the iteration.
|
|
136
|
+
//
|
|
137
|
+
// Filter: record keys are `{keyPrefix}:{chainId}:{hash}`, eventlog
|
|
138
|
+
// keys are `{keyPrefix}:eventlog:{chainId}:{hash}`. With a numeric
|
|
139
|
+
// chainId the two prefixes don't overlap (`p:1:` vs `p:eventlog:`),
|
|
140
|
+
// so a single `startsWith(prefix)` check is enough — eventlog keys
|
|
141
|
+
// can never match the record prefix.
|
|
142
|
+
const keys = [];
|
|
143
|
+
for (let i = 0; i < storage.length; i++) {
|
|
144
|
+
const k = storage.key(i);
|
|
145
|
+
if (k === null)
|
|
146
|
+
continue;
|
|
147
|
+
if (!k.startsWith(prefix))
|
|
148
|
+
continue;
|
|
149
|
+
keys.push(k);
|
|
150
|
+
}
|
|
151
|
+
for (const k of keys) {
|
|
152
|
+
const record = parseRecord(storage.getItem(k));
|
|
153
|
+
if (!record)
|
|
154
|
+
continue;
|
|
155
|
+
if (record.chainId !== chainId)
|
|
156
|
+
continue;
|
|
157
|
+
if (record.subscriptions.some((sub) => sub.durable)) {
|
|
158
|
+
result.push(record);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return result;
|
|
162
|
+
},
|
|
163
|
+
appendEvent: async (chainId, hash, event) => {
|
|
164
|
+
// Async so a `storage.setItem` throw (quota exceeded, browser
|
|
165
|
+
// disabled storage, private-mode constraints) surfaces as a
|
|
166
|
+
// rejected promise rather than a synchronous throw — the tracker
|
|
167
|
+
// routes store errors through `onError` and never lets them
|
|
168
|
+
// halt the live emit fanout (spec Appendix A).
|
|
169
|
+
const key = eventLogKey(keyPrefix, chainId, hash);
|
|
170
|
+
const existing = parseRecord(storage.getItem(key)) ?? [];
|
|
171
|
+
existing.push(event);
|
|
172
|
+
// Drop oldest entries when the log exceeds the cap. Slicing
|
|
173
|
+
// from the tail keeps the most-recent window — the audit-trail
|
|
174
|
+
// pattern indexers expect.
|
|
175
|
+
const trimmed = existing.length > eventLogCapacity
|
|
176
|
+
? existing.slice(existing.length - eventLogCapacity)
|
|
177
|
+
: existing;
|
|
178
|
+
storage.setItem(key, stringifyRecord(trimmed));
|
|
179
|
+
},
|
|
180
|
+
readEventLog: async (chainId, hash, since) => {
|
|
181
|
+
const key = eventLogKey(keyPrefix, chainId, hash);
|
|
182
|
+
const raw = storage.getItem(key);
|
|
183
|
+
const events = parseRecord(raw) ?? [];
|
|
184
|
+
if (since === undefined)
|
|
185
|
+
return events;
|
|
186
|
+
return events.filter((e) => e.at.blockNumber >= since);
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Delete every key in `storage` whose name starts with `prefix`.
|
|
192
|
+
* Exported so consumers can run prefix cleanup without instantiating
|
|
193
|
+
* the full store — e.g., on app boot before constructing the tracker.
|
|
194
|
+
*/
|
|
195
|
+
export const deleteKeysStartingWith = (storage, prefix) => {
|
|
196
|
+
if (!prefix)
|
|
197
|
+
return;
|
|
198
|
+
// Snapshot keys first; removing during iteration shifts indexing.
|
|
199
|
+
const matched = [];
|
|
200
|
+
for (let i = 0; i < storage.length; i++) {
|
|
201
|
+
const k = storage.key(i);
|
|
202
|
+
if (k !== null && k.startsWith(prefix))
|
|
203
|
+
matched.push(k);
|
|
204
|
+
}
|
|
205
|
+
for (const k of matched)
|
|
206
|
+
storage.removeItem(k);
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=local-storage-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-storage-store.js","sourceRoot":"","sources":["../src/local-storage-store.ts"],"names":[],"mappings":"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"}
|
package/dist/observations.d.ts
CHANGED
|
@@ -86,6 +86,15 @@ export interface BlockObservationInput {
|
|
|
86
86
|
* receipt without a follow-up re-emit.
|
|
87
87
|
*/
|
|
88
88
|
prefetchedReceipts?: ReadonlyMap<Hash, TransactionReceipt>;
|
|
89
|
+
/**
|
|
90
|
+
* Threshold for the mined-and-confirmed terminal transition. When
|
|
91
|
+
* non-null and the record's confirmations reach this value, the
|
|
92
|
+
* record is marked terminal (anchored on the current block, same
|
|
93
|
+
* pattern as the other terminal arms) and `confirmed-terminal`
|
|
94
|
+
* fires exactly once. `null` preserves the v0.14 behavior of never
|
|
95
|
+
* setting terminal via the mined path.
|
|
96
|
+
*/
|
|
97
|
+
confirmationsForTerminal: number | null;
|
|
89
98
|
}
|
|
90
99
|
/**
|
|
91
100
|
* Per-record decision for one new canonical block. Returns the events
|
|
@@ -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,
|
|
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,EAOL,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;IAC1D;;;;;;;OAOG;IACH,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,qBAAqB,KAC3B,iBAyNF,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,iBAgGF,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"}
|
package/dist/observations.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* to its mutable `TrackedRecord`, then emits the returned `events`
|
|
18
18
|
* via its event-bus + store-audit-log machinery.
|
|
19
19
|
*/
|
|
20
|
-
import { buildLeftMempool, buildReplacedBy, buildSeenInBlock, buildSeenInMempool, buildUnseenForNBlocks, } from './events.js';
|
|
20
|
+
import { buildConfirmedTerminal, buildLeftMempool, buildReplacedBy, buildSeenInBlock, buildSeenInMempool, buildUnseenForNBlocks, } from './events.js';
|
|
21
21
|
const EMPTY_RESULT = {
|
|
22
22
|
events: [],
|
|
23
23
|
statusPatch: {},
|
|
@@ -45,7 +45,15 @@ const EMPTY_RESULT = {
|
|
|
45
45
|
* after subscription (no `firstObservedAtBlock` yet).
|
|
46
46
|
*/
|
|
47
47
|
export const decideBlockObservation = (input) => {
|
|
48
|
-
const { record, blockHash, blockNumber, txHashSet, txs, chainId, eventSource, envelope, previousTipNumber, prefetchedReceipts, } = input;
|
|
48
|
+
const { record, blockHash, blockNumber, txHashSet, txs, chainId, eventSource, envelope, previousTipNumber, prefetchedReceipts, confirmationsForTerminal, } = input;
|
|
49
|
+
// Helper for the mined-confirmed terminal transition (v0.15+).
|
|
50
|
+
// Returns true when the current confirmations reach the configured
|
|
51
|
+
// threshold AND the record hasn't already gone terminal via any
|
|
52
|
+
// other path. The check is symmetric in Paths 1 + 2 since both
|
|
53
|
+
// produce a fresh `confirmations` value on this tick.
|
|
54
|
+
const reachedConfirmedTerminal = (confirmations) => confirmationsForTerminal != null &&
|
|
55
|
+
confirmations >= confirmationsForTerminal &&
|
|
56
|
+
record.status.terminalAtBlockNumber == null;
|
|
49
57
|
const wasSeenInThisBlock = txHashSet.has(record.hash);
|
|
50
58
|
if (wasSeenInThisBlock) {
|
|
51
59
|
const tx = txs.find((t) => t.hash === record.hash);
|
|
@@ -69,21 +77,35 @@ export const decideBlockObservation = (input) => {
|
|
|
69
77
|
const receipt = isFreshInclusion
|
|
70
78
|
? prefetchedReceipts?.get(record.hash)
|
|
71
79
|
: undefined;
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
const terminalNow = reachedConfirmedTerminal(confirmations);
|
|
81
|
+
const events = [
|
|
82
|
+
...(isFreshInclusion
|
|
83
|
+
? [
|
|
84
|
+
buildSeenInBlock({
|
|
85
|
+
hash: record.hash,
|
|
86
|
+
chainId,
|
|
87
|
+
source: eventSource,
|
|
88
|
+
at: envelope,
|
|
89
|
+
blockHash,
|
|
90
|
+
blockNumber,
|
|
91
|
+
transactionIndex,
|
|
92
|
+
confirmations,
|
|
93
|
+
...(receipt !== undefined ? { receipt } : {}),
|
|
94
|
+
}),
|
|
95
|
+
]
|
|
96
|
+
: []),
|
|
97
|
+
...(terminalNow
|
|
98
|
+
? [
|
|
99
|
+
buildConfirmedTerminal({
|
|
100
|
+
hash: record.hash,
|
|
101
|
+
chainId,
|
|
102
|
+
source: eventSource,
|
|
103
|
+
at: envelope,
|
|
104
|
+
confirmations,
|
|
105
|
+
}),
|
|
106
|
+
]
|
|
107
|
+
: []),
|
|
108
|
+
];
|
|
87
109
|
return {
|
|
88
110
|
events,
|
|
89
111
|
statusPatch: {
|
|
@@ -91,6 +113,7 @@ export const decideBlockObservation = (input) => {
|
|
|
91
113
|
unseenStreak: 0,
|
|
92
114
|
firstObservedAtBlock: record.status.firstObservedAtBlock ?? blockNumber,
|
|
93
115
|
lastObservedAtBlock: blockNumber,
|
|
116
|
+
...(terminalNow ? { terminalAtBlockNumber: blockNumber } : {}),
|
|
94
117
|
},
|
|
95
118
|
identityPatch: cacheIdentity(record.identity, tx),
|
|
96
119
|
inMempoolPatch: null,
|
|
@@ -103,6 +126,7 @@ export const decideBlockObservation = (input) => {
|
|
|
103
126
|
...record.status.lastSeenInBlock,
|
|
104
127
|
confirmations: bumped,
|
|
105
128
|
};
|
|
129
|
+
const terminalNow = reachedConfirmedTerminal(bumped);
|
|
106
130
|
return {
|
|
107
131
|
events: [
|
|
108
132
|
buildSeenInBlock({
|
|
@@ -115,10 +139,22 @@ export const decideBlockObservation = (input) => {
|
|
|
115
139
|
transactionIndex: updated.transactionIndex,
|
|
116
140
|
confirmations: bumped,
|
|
117
141
|
}),
|
|
142
|
+
...(terminalNow
|
|
143
|
+
? [
|
|
144
|
+
buildConfirmedTerminal({
|
|
145
|
+
hash: record.hash,
|
|
146
|
+
chainId,
|
|
147
|
+
source: eventSource,
|
|
148
|
+
at: envelope,
|
|
149
|
+
confirmations: bumped,
|
|
150
|
+
}),
|
|
151
|
+
]
|
|
152
|
+
: []),
|
|
118
153
|
],
|
|
119
154
|
statusPatch: {
|
|
120
155
|
lastSeenInBlock: updated,
|
|
121
156
|
lastObservedAtBlock: blockNumber,
|
|
157
|
+
...(terminalNow ? { terminalAtBlockNumber: blockNumber } : {}),
|
|
122
158
|
},
|
|
123
159
|
identityPatch: null,
|
|
124
160
|
inMempoolPatch: null,
|
package/dist/observations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GAKtB,MAAM,aAAa,CAAA;AAsCpB,MAAM,YAAY,GAAsB;IACtC,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;CACrB,CAAA;
|
|
1
|
+
{"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -99,7 +99,18 @@ export interface TxTrackerStore {
|
|
|
99
99
|
put(record: TrackedTxRecord): Promise<void>;
|
|
100
100
|
/** Read the latest record for a hash. Returns null if absent. */
|
|
101
101
|
get(chainId: number, hash: Hash): Promise<TrackedTxRecord | null>;
|
|
102
|
-
/**
|
|
102
|
+
/**
|
|
103
|
+
* Remove a hash. Called when the retention window expires.
|
|
104
|
+
*
|
|
105
|
+
* **Contract: implementations must clear ALL state associated with
|
|
106
|
+
* the hash** — the record itself, the event log (if any), and any
|
|
107
|
+
* other per-hash keys the implementation maintains. A common bug in
|
|
108
|
+
* custom stores is forgetting to delete the event log alongside the
|
|
109
|
+
* record, leaving orphaned log entries that never expire. The
|
|
110
|
+
* first-party `createInMemoryStore` and
|
|
111
|
+
* `createLocalStorageTrackerStore` already enforce this; consumer
|
|
112
|
+
* implementations must do the same.
|
|
113
|
+
*/
|
|
103
114
|
delete(chainId: number, hash: Hash): Promise<void>;
|
|
104
115
|
/**
|
|
105
116
|
* List records that carry at least one durable subscription. Called
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEnE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,IAAI,CAAA;IACV,2DAA2D;IAC3D,MAAM,EAAE,QAAQ,CAAA;IAChB,kDAAkD;IAClD,oBAAoB,EAAE,MAAM,CAAA;IAC5B,8DAA8D;IAC9D,uBAAuB,EAAE,MAAM,CAAA;IAC/B;;;;;OAKG;IACH,6BAA6B,EAAE,MAAM,CAAA;IACrC,qDAAqD;IACrD,aAAa,EAAE,qBAAqB,EAAE,CAAA;CACvC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;IACjC,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,0BAA0B,EAAE,KAAK,KAAK,OAAO,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C,iEAAiE;IACjE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAEjE
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEnE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,IAAI,CAAA;IACV,2DAA2D;IAC3D,MAAM,EAAE,QAAQ,CAAA;IAChB,kDAAkD;IAClD,oBAAoB,EAAE,MAAM,CAAA;IAC5B,8DAA8D;IAC9D,uBAAuB,EAAE,MAAM,CAAA;IAC/B;;;;;OAKG;IACH,6BAA6B,EAAE,MAAM,CAAA;IACrC,qDAAqD;IACrD,aAAa,EAAE,qBAAqB,EAAE,CAAA;CACvC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;IACjC,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,0BAA0B,EAAE,KAAK,KAAK,OAAO,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C,iEAAiE;IACjE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAEjE;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAExD;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE;;;;;OAKG;IACH,YAAY,CAAC,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAcD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAS,oBAAyB,KACjC,cAsDF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,qBAAqB,MAAM,EAC3B,kBAAiB,MAAiC,KACjD,MAAuD,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAA2B,CAAA"}
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6IH,MAAM,wBAAwB,GAAG,EAAE,CAAA;AACnC,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,IAAU,EAAU,EAAE,CACxD,GAAG,OAAO,IAAI,IAAI,EAAE,CAAA;AAEtB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAgC,EAAE,EAClB,EAAE;IAClB,MAAM,gBAAgB,GACpB,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAA;IAExD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAA;IAE9C,OAAO;QACL,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;YAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACrB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;QAEhE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACnB,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,MAAM,GAAsB,EAAE,CAAA;YACpC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;oBAAE,SAAQ;gBACxC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACpC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACf,6DAA6D;YAC7D,2DAA2D;YAC3D,iDAAiD;YACjD,IAAI,GAAG,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAA;YAC9C,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YACzD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACzD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,mBAA2B,EAC3B,kBAA0B,wBAAwB,EAC1C,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA"}
|
package/dist/tracker.d.ts
CHANGED
|
@@ -158,6 +158,24 @@ export interface TrackOptions {
|
|
|
158
158
|
* wins across subscriptions on the same hash.
|
|
159
159
|
*/
|
|
160
160
|
probeTransaction?: ProbeTransaction;
|
|
161
|
+
/**
|
|
162
|
+
* Caller-provided stable identifier for the persisted subscription
|
|
163
|
+
* (only meaningful when `durable: true`). When set, repeated calls
|
|
164
|
+
* with the same `subscriptionId` are idempotent — the persisted
|
|
165
|
+
* subscription is recorded exactly once even across many subscribes
|
|
166
|
+
* (e.g. React component remounts, hot-reloads, page reloads with a
|
|
167
|
+
* cross-process store).
|
|
168
|
+
*
|
|
169
|
+
* Without an explicit id, the tracker auto-dedups by `(durable,
|
|
170
|
+
* selector)`: a second `subscribe` on the same hash with `durable: true`
|
|
171
|
+
* reuses the prior persisted entry rather than appending a duplicate.
|
|
172
|
+
* Use the explicit id when you need a stable handle to a specific
|
|
173
|
+
* persisted entry — e.g., a long-lived component lifecycle that wants
|
|
174
|
+
* to guarantee its persisted entry never multiplies.
|
|
175
|
+
*
|
|
176
|
+
* No-op when `durable` is falsy.
|
|
177
|
+
*/
|
|
178
|
+
subscriptionId?: string;
|
|
161
179
|
}
|
|
162
180
|
/** Bulk subscription options — extends per-hash `TrackOptions`. */
|
|
163
181
|
export interface BulkTrackOptions extends TrackOptions {
|
|
@@ -223,6 +241,27 @@ export interface CreateTxTrackerOptions {
|
|
|
223
241
|
retentionBlocks?: number;
|
|
224
242
|
onError?: (method: string, err: unknown) => void;
|
|
225
243
|
lifecycle?: 'eager' | 'lazy';
|
|
244
|
+
/**
|
|
245
|
+
* Mined-and-confirmed terminal threshold. When non-null and a tracked
|
|
246
|
+
* record's `lastSeenInBlock.confirmations` reaches this value, the
|
|
247
|
+
* record transitions to terminal (`terminalAtBlockNumber` anchored on
|
|
248
|
+
* the current tip — same pattern as the existing replacement /
|
|
249
|
+
* unseen-for-N terminal arms) and `confirmed-terminal` fires once.
|
|
250
|
+
* The retention countdown then begins from that block.
|
|
251
|
+
*
|
|
252
|
+
* Pre-v0.15, normally-mined transactions never reached terminal —
|
|
253
|
+
* retention enforcement only fired on replacement or
|
|
254
|
+
* unseen-for-N-blocks paths, so successful txs accumulated in
|
|
255
|
+
* long-lived stores forever. `null` (default) preserves that
|
|
256
|
+
* behavior; opt in with a value `>= reorgDepthBlocks` to safely
|
|
257
|
+
* retire mined records past the reorg window.
|
|
258
|
+
*
|
|
259
|
+
* Validation: must be `null`, `undefined`, or a positive integer.
|
|
260
|
+
* Recommended: `≥ reorgDepthBlocks` (default reorg depth = 12) to
|
|
261
|
+
* avoid premature terminal during a same-height reorg unmining
|
|
262
|
+
* the tx.
|
|
263
|
+
*/
|
|
264
|
+
confirmationsForTerminal?: number | null;
|
|
226
265
|
/**
|
|
227
266
|
* Cadence for per-hash status polling via
|
|
228
267
|
* `source.getTransaction(hash)` (`eth_getTransactionByHash`). Runs once
|
package/dist/tracker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,YAAY,EAGZ,KAAK,EAEN,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EASL,KAAK,OAAO,EACZ,KAAK,EAAE,EACP,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAmBpB,OAAO,EAIL,KAAK,YAAY,EAGjB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AAMnB;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,QAAQ,GACR;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;AAEzE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/tracker.js
CHANGED
|
@@ -46,6 +46,56 @@ import { computeRetentionExpiry, createInMemoryStore, defaultRetentionBlocks, }
|
|
|
46
46
|
// Internals
|
|
47
47
|
// -----------------------------------------------------------------
|
|
48
48
|
const DEFAULT_UNSEEN_THRESHOLD_BLOCKS = 30;
|
|
49
|
+
/**
|
|
50
|
+
* Dedup persisted subscriptions by `(durable, selector)` shape. Pre-v0.15
|
|
51
|
+
* stores may carry structurally-identical entries (same selector kind +
|
|
52
|
+
* address/hash + durable flag) accumulated from repeated subscribes;
|
|
53
|
+
* v0.15+ tracker dedups on insert, but historical records still need to
|
|
54
|
+
* be cleaned up on rehydration so the migrated state flows back via the
|
|
55
|
+
* next `store.put`. Predicate selectors carry a non-serializable
|
|
56
|
+
* function reference and aren't durable per spec §13.2 — they're keyed
|
|
57
|
+
* by id so any anomalous predicate entries in legacy stores stay
|
|
58
|
+
* distinct (defensive; shouldn't normally appear).
|
|
59
|
+
*/
|
|
60
|
+
const dedupPersistedSubscriptions = (subs) => {
|
|
61
|
+
const seen = new Set();
|
|
62
|
+
const result = [];
|
|
63
|
+
for (const sub of subs) {
|
|
64
|
+
const sel = sub.selector;
|
|
65
|
+
let selectorKey;
|
|
66
|
+
// Defensive: legacy persisted records (pre-current `selector`
|
|
67
|
+
// nesting) carry the discriminant fields flat at the top level —
|
|
68
|
+
// `selector` is undefined at runtime even though the type says
|
|
69
|
+
// otherwise. Treat such entries as distinct (keyed by id) so they
|
|
70
|
+
// pass through untouched; downstream code already handles legacy
|
|
71
|
+
// shapes via the per-field defensive reads (v0.11.x pattern).
|
|
72
|
+
if (!sel || typeof sel !== 'object') {
|
|
73
|
+
selectorKey = `legacy:${sub.id}`;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
switch (sel.kind) {
|
|
77
|
+
case 'hash':
|
|
78
|
+
selectorKey = `hash:${sel.hash}`;
|
|
79
|
+
break;
|
|
80
|
+
case 'from':
|
|
81
|
+
selectorKey = `from:${sel.address ?? ''}`;
|
|
82
|
+
break;
|
|
83
|
+
case 'to':
|
|
84
|
+
selectorKey = `to:${sel.address ?? ''}`;
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
// Predicate selectors aren't durable; keep distinct by id.
|
|
88
|
+
selectorKey = `predicate:${sub.id}`;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const key = `${sub.durable ? '1' : '0'}:${selectorKey}`;
|
|
92
|
+
if (seen.has(key))
|
|
93
|
+
continue;
|
|
94
|
+
seen.add(key);
|
|
95
|
+
result.push(sub);
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
};
|
|
49
99
|
/**
|
|
50
100
|
* Compare two capability snapshots; return per-key transitions
|
|
51
101
|
* (`degraded` / `recovered`). Degradation is "moved away from the
|
|
@@ -117,7 +167,15 @@ const mempoolEventSource = (caps) => caps.newPendingTransactions === 'subscripti
|
|
|
117
167
|
* }
|
|
118
168
|
*/
|
|
119
169
|
export const createTxTracker = (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', statusPollEveryBlocks = 1, } = options;
|
|
170
|
+
const { source, chainId, store = createInMemoryStore(), lostSignalPolicy: defaultLostSignalPolicy = 'emit-uncertain', reorgDepthBlocks = defaultReorgDepthBlocks, unseenThresholdBlocks = DEFAULT_UNSEEN_THRESHOLD_BLOCKS, maxBulkSubscriptions = defaultMaxBulkSubscriptions, retentionBlocks = defaultRetentionBlocks, onError, lifecycle = 'eager', statusPollEveryBlocks = 1, confirmationsForTerminal = null, } = options;
|
|
171
|
+
// Validate at construction — silent acceptance of zero/negative
|
|
172
|
+
// thresholds would silently disable retention or fire terminal on
|
|
173
|
+
// a not-yet-included tx. Both are footguns.
|
|
174
|
+
if (confirmationsForTerminal != null &&
|
|
175
|
+
(!Number.isInteger(confirmationsForTerminal) ||
|
|
176
|
+
confirmationsForTerminal < 1)) {
|
|
177
|
+
throw new Error(`createTxTracker: confirmationsForTerminal must be a positive integer or null (got ${String(confirmationsForTerminal)})`);
|
|
178
|
+
}
|
|
121
179
|
const tracked = new Map();
|
|
122
180
|
const bulkSubs = new Map();
|
|
123
181
|
const globalSubs = new Subscriptions();
|
|
@@ -266,7 +324,19 @@ export const createTxTracker = (options) => {
|
|
|
266
324
|
// Capability gate: if receiptByHash is unavailable, warn once and
|
|
267
325
|
// fall back to emit-uncertain semantics (the signal-degraded path
|
|
268
326
|
// already handles caller awareness).
|
|
269
|
-
|
|
327
|
+
//
|
|
328
|
+
// The `caps.ready === false` short-circuit (v0.15+) avoids a
|
|
329
|
+
// spurious cold-start warning before the source's capability probe
|
|
330
|
+
// resolves: prior to v0.15, conservative pre-probe defaults set
|
|
331
|
+
// `receiptByHash: 'unavailable'`, which made this gate fire its
|
|
332
|
+
// "permanently unavailable" warning for an RPC that ultimately
|
|
333
|
+
// supports the method. Skipping silently while probing means the
|
|
334
|
+
// warning only fires when the probe has completed and reported the
|
|
335
|
+
// capability as genuinely missing.
|
|
336
|
+
const caps = source.capabilities();
|
|
337
|
+
if (caps.ready === false)
|
|
338
|
+
return;
|
|
339
|
+
if (caps.receiptByHash !== 'available') {
|
|
270
340
|
if (!receiptPollGateWarned) {
|
|
271
341
|
receiptPollGateWarned = true;
|
|
272
342
|
onError?.('tx-tracker.receipt-poll-fallback', new Error('receipt-poll-fallback requested but capability receiptByHash unavailable; falling back to emit-uncertain semantics'));
|
|
@@ -718,14 +788,16 @@ export const createTxTracker = (options) => {
|
|
|
718
788
|
envelope,
|
|
719
789
|
previousTipNumber,
|
|
720
790
|
prefetchedReceipts,
|
|
791
|
+
confirmationsForTerminal,
|
|
721
792
|
});
|
|
722
793
|
applyObservationResult(record, result);
|
|
723
794
|
for (const event of result.events)
|
|
724
795
|
emit(record, event);
|
|
725
796
|
}
|
|
726
797
|
// Retention enforcement (spec §10, audit #2). Records that have
|
|
727
|
-
// reached a terminal state
|
|
728
|
-
//
|
|
798
|
+
// reached a terminal state — `replaced-by`, `unseen-for-N-blocks`,
|
|
799
|
+
// or `confirmed-terminal` (v0.15+) — carry `terminalAtBlockNumber`.
|
|
800
|
+
// Once the chain has
|
|
729
801
|
// moved `retentionBlocks` past that point, drop the record and
|
|
730
802
|
// emit `Stopped({ reason: 'retention-expired' })`. Records still
|
|
731
803
|
// in flight (terminalAtBlockNumber === null) are NOT subject to
|
|
@@ -1050,13 +1122,27 @@ export const createTxTracker = (options) => {
|
|
|
1050
1122
|
}
|
|
1051
1123
|
if (opts.durable) {
|
|
1052
1124
|
record.hasDurableSub = true;
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1125
|
+
// Dedup: an explicit subscriptionId matches by id; without one,
|
|
1126
|
+
// auto-dedup by selector (only `kind: 'hash'` here since this
|
|
1127
|
+
// is the per-hash subscribe path). Pre-v0.15 every call pushed
|
|
1128
|
+
// unconditionally, so React component remounts and cross-process
|
|
1129
|
+
// restarts accumulated structurally-identical persisted entries —
|
|
1130
|
+
// identical work, fan-out duplication, store bloat.
|
|
1131
|
+
const desiredId = opts.subscriptionId;
|
|
1132
|
+
const existing = desiredId !== undefined
|
|
1133
|
+
? record.persisted.find((p) => p.id === desiredId)
|
|
1134
|
+
: record.persisted.find((p) => p.selector.kind === 'hash' && p.selector.hash === hash);
|
|
1135
|
+
if (!existing) {
|
|
1136
|
+
const subId = desiredId ?? `sub-${nextSubId++}`;
|
|
1137
|
+
record.persisted.push({
|
|
1138
|
+
id: subId,
|
|
1139
|
+
durable: true,
|
|
1140
|
+
selector: { kind: 'hash', hash },
|
|
1141
|
+
});
|
|
1142
|
+
void store
|
|
1143
|
+
.put(toRecord(record))
|
|
1144
|
+
.catch((err) => onError?.('store.put', err));
|
|
1145
|
+
}
|
|
1060
1146
|
}
|
|
1061
1147
|
const unsub = record.subs.subscribe(cb);
|
|
1062
1148
|
if (opts.emitInitial !== false) {
|
|
@@ -1272,6 +1358,12 @@ export const createTxTracker = (options) => {
|
|
|
1272
1358
|
// resolving.
|
|
1273
1359
|
if (tracked.has(persisted.hash))
|
|
1274
1360
|
continue;
|
|
1361
|
+
// Dedup persisted subscriptions read back from the store. Pre-v0.15
|
|
1362
|
+
// stores accumulated structurally-identical entries from repeated
|
|
1363
|
+
// subscribes. Self-healing migration: if dedup shrank the list,
|
|
1364
|
+
// immediately re-persist the cleaned record so the store reflects
|
|
1365
|
+
// the migrated state even when no subsequent emit/subscribe occurs.
|
|
1366
|
+
const dedupedSubs = dedupPersistedSubscriptions(persisted.subscriptions);
|
|
1275
1367
|
const record = {
|
|
1276
1368
|
hash: persisted.hash,
|
|
1277
1369
|
status: persisted.status,
|
|
@@ -1281,7 +1373,7 @@ export const createTxTracker = (options) => {
|
|
|
1281
1373
|
unseenThresholdBlocks,
|
|
1282
1374
|
lostSignalPolicy: null,
|
|
1283
1375
|
hasDurableSub: true,
|
|
1284
|
-
persisted:
|
|
1376
|
+
persisted: dedupedSubs,
|
|
1285
1377
|
withReceipts: false,
|
|
1286
1378
|
// Probes are closures and not serializable; durable records
|
|
1287
1379
|
// get no probe until a fresh subscribe attaches one. See spec
|
|
@@ -1292,6 +1384,11 @@ export const createTxTracker = (options) => {
|
|
|
1292
1384
|
statusPollTicksSince: 0,
|
|
1293
1385
|
};
|
|
1294
1386
|
tracked.set(persisted.hash, record);
|
|
1387
|
+
if (dedupedSubs.length !== persisted.subscriptions.length) {
|
|
1388
|
+
void store
|
|
1389
|
+
.put(toRecord(record))
|
|
1390
|
+
.catch((err) => onError?.('store.put', err));
|
|
1391
|
+
}
|
|
1295
1392
|
}
|
|
1296
1393
|
};
|
|
1297
1394
|
const start = () => {
|
package/dist/tracker.js.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "0.15.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.
|
|
52
|
+
"@valve-tech/chain-source": "^0.15.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"viem": "^2.0.0"
|