@valve-tech/tx-flight-react 0.16.0 → 0.17.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 +33 -0
- package/README.md +41 -0
- package/dist/integrations/tx-tracker.d.ts.map +1 -1
- package/dist/integrations/tx-tracker.js +2 -1
- package/dist/integrations/tx-tracker.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,39 @@ 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.17.0] — 2026-05-30
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `addByHash({ readOnly?: boolean })` — marks the seeded TrackedTx
|
|
14
|
+
as read-only (consumer didn't submit, doesn't hold the nonce slot:
|
|
15
|
+
relayer-submitted, server-observed, etc.). Forwarded verbatim to
|
|
16
|
+
`TrackedTx.readOnly` (new in `@valve-tech/wallet-adapter@0.17.0`).
|
|
17
|
+
The library does not change tracking behavior based on this flag —
|
|
18
|
+
status transitions, retention, and unseen-for-N thresholds still
|
|
19
|
+
apply. Consumers SHOULD gate `onSpeedUp` / `onCancel` wiring on
|
|
20
|
+
`tx.readOnly === true` to suppress replacement affordances for
|
|
21
|
+
these entries. Default `false`.
|
|
22
|
+
- `addByHash({ submittedAt?: number })` — override the `submittedAt`
|
|
23
|
+
timestamp on the seeded TrackedTx. Use when the tx was submitted
|
|
24
|
+
before you started watching it (relayer push carrying an original
|
|
25
|
+
submit time, rehydrating an external record, etc.) so the strip's
|
|
26
|
+
age indicator reflects reality rather than starting at zero.
|
|
27
|
+
Default `Date.now()` at add-time (unchanged from prior behavior).
|
|
28
|
+
|
|
29
|
+
### Notes
|
|
30
|
+
|
|
31
|
+
- Both fields are optional and additive — existing callers see no
|
|
32
|
+
change in behavior. Persisted entries written before this release
|
|
33
|
+
rehydrate unchanged.
|
|
34
|
+
- `resumeByHashWatcher` (the rehydrate path) needed no changes: it
|
|
35
|
+
reads each persisted TrackedTx verbatim and re-dispatches it via
|
|
36
|
+
`store.dispatch.addWithTx(current, unsub)`, so a `readOnly`-tagged
|
|
37
|
+
record that was persisted, page-reloaded, and rehydrated keeps its
|
|
38
|
+
flag automatically.
|
|
39
|
+
- README adds a "Read-only mode (relayer-submitted, server-observed)"
|
|
40
|
+
subsection under `addByHash` showing the canonical wiring.
|
|
41
|
+
|
|
9
42
|
## [0.16.0] — 2026-05-15
|
|
10
43
|
|
|
11
44
|
### Notes
|
package/README.md
CHANGED
|
@@ -200,6 +200,47 @@ bundle cost. The strip builds a private ChainSource + TxTracker
|
|
|
200
200
|
internally; `flight.remove(id)` (or unmount) cleans up the
|
|
201
201
|
subscription.
|
|
202
202
|
|
|
203
|
+
#### Read-only mode (relayer-submitted, server-observed)
|
|
204
|
+
|
|
205
|
+
Pass `readOnly: true` when the consumer doesn't hold the nonce slot
|
|
206
|
+
— a relayer submitted the tx on the user's behalf, the hash arrived
|
|
207
|
+
via a server push, or you're following a tx your backend observed
|
|
208
|
+
elsewhere. The tracker still polls inclusion, mempool state, and
|
|
209
|
+
receipt details exactly as it would for a user-authored tx — the
|
|
210
|
+
flag is metadata for *your* UI logic, since the user can't speed-up
|
|
211
|
+
or cancel a tx they don't own.
|
|
212
|
+
|
|
213
|
+
```tsx
|
|
214
|
+
const { txHash, submittedAt } = await relayer.send(payload)
|
|
215
|
+
|
|
216
|
+
const id = await flight.addByHash({
|
|
217
|
+
hash: txHash,
|
|
218
|
+
chainId: 1,
|
|
219
|
+
client: publicClient,
|
|
220
|
+
flow: 'relay',
|
|
221
|
+
readOnly: true,
|
|
222
|
+
submittedAt, // preserve relayer's original submit time
|
|
223
|
+
})
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
When rendering `<TxFlightActions>`, gate replacement affordances on
|
|
227
|
+
the flag:
|
|
228
|
+
|
|
229
|
+
```tsx
|
|
230
|
+
<TxFlightActions
|
|
231
|
+
tx={tx}
|
|
232
|
+
onSpeedUp={tx.readOnly === true ? undefined : handleSpeedUp}
|
|
233
|
+
onCancel={tx.readOnly === true ? undefined : handleCancel}
|
|
234
|
+
onDismiss={handleDismiss}
|
|
235
|
+
/>
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Use the strict `tx.readOnly === true` form rather than `if
|
|
239
|
+
(tx.readOnly)` — the field is optional and pre-flag persisted entries
|
|
240
|
+
rehydrate as `undefined`, which is correctly falsy under both forms,
|
|
241
|
+
but the strict comparison makes the intent unambiguous at the read
|
|
242
|
+
site.
|
|
243
|
+
|
|
203
244
|
### `addManual` — when you already have a fully-formed `TrackedTx`
|
|
204
245
|
|
|
205
246
|
```tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-tracker.d.ts","sourceRoot":"","sources":["../../src/integrations/tx-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAmDtD;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B;AA6DD,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,OAAO,cAAc,EACrB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,EAChD,WAAW,wBAAwB,KAClC,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tx-tracker.d.ts","sourceRoot":"","sources":["../../src/integrations/tx-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAmDtD;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B;AA6DD,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,OAAO,cAAc,EACrB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,EAChD,WAAW,wBAAwB,KAClC,OAAO,CAAC,MAAM,CA4BhB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,aAAa,EACpB,IAAI,SAAS,EACb,QAAQ,YAAY,EACpB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,EAChD,WAAW,wBAAwB,KAClC,OAAO,CAAC,IAAI,CA8Bd,CAAA"}
|
|
@@ -117,9 +117,10 @@ export const addByHashImpl = async (store, input, onError, internal) => {
|
|
|
117
117
|
hash: input.hash,
|
|
118
118
|
chainId: input.chainId,
|
|
119
119
|
flow: input.flow ?? DEFAULT_FLOW,
|
|
120
|
-
submittedAt: Date.now(),
|
|
120
|
+
submittedAt: input.submittedAt ?? Date.now(),
|
|
121
121
|
submittedTier: 'standard',
|
|
122
122
|
status: 'pending',
|
|
123
|
+
readOnly: input.readOnly,
|
|
123
124
|
};
|
|
124
125
|
store.dispatch.addWithTx(initialTx, unsub);
|
|
125
126
|
return id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-tracker.js","sourceRoot":"","sources":["../../src/integrations/tx-tracker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tx-tracker.js","sourceRoot":"","sources":["../../src/integrations/tx-tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -55,6 +55,27 @@ export interface AddByHashInput {
|
|
|
55
55
|
* status is reverted, the strip surfaces `failed`. Adds one RPC.
|
|
56
56
|
*/
|
|
57
57
|
withReceipts?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Marks the resulting TrackedTx as read-only — the consumer didn't
|
|
60
|
+
* submit this tx and doesn't hold the nonce slot (relayer-submitted,
|
|
61
|
+
* server-observed, etc.). Forwarded verbatim to `TrackedTx.readOnly`;
|
|
62
|
+
* see the field docs there. Default `false`.
|
|
63
|
+
*
|
|
64
|
+
* The library does not change tracking behavior based on this flag —
|
|
65
|
+
* status transitions, retention, and unseen-for-N thresholds still
|
|
66
|
+
* apply. Consumers SHOULD use this flag in their own
|
|
67
|
+
* `<TxFlightActions>` wiring (typically: skip `onSpeedUp` / `onCancel`
|
|
68
|
+
* for read-only entries).
|
|
69
|
+
*/
|
|
70
|
+
readOnly?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Override the `submittedAt` timestamp on the seeded TrackedTx. Use
|
|
73
|
+
* when the tx was submitted before you started watching it (relayer
|
|
74
|
+
* push carrying an original submit time, rehydrating an external
|
|
75
|
+
* record, etc.) so the strip's age indicator reflects reality rather
|
|
76
|
+
* than starting at zero. Default `Date.now()` at add-time.
|
|
77
|
+
*/
|
|
78
|
+
submittedAt?: number;
|
|
58
79
|
}
|
|
59
80
|
/**
|
|
60
81
|
* Input for `addManual(input)`. Use when the caller already has a
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EACN,eAAe,EACf,4BAA4B,EAC7B,MAAM,4BAA4B,CAAA;AASnC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAIjC;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,KAAK,EAAE,eAAe,CAAA;IACtB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,OAAO,EAAE,4BAA4B,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EACN,eAAe,EACf,4BAA4B,EAC7B,MAAM,4BAA4B,CAAA;AASnC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAIjC;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,KAAK,EAAE,eAAe,CAAA;IACtB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,OAAO,EAAE,4BAA4B,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,SAAS,CAAA;CACd;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7C,qEAAqE;IACrE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD;AAQD,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAA;CAC1C;AAED,eAAO,MAAM,UAAU,EAAE,aAGxB,CAAA"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAkIH,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,GAAG,EAAE,IAAI,GAAG,EAAE;IACd,QAAQ,EAAE,IAAI,GAAG,EAAE;CACpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valve-tech/tx-flight-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "React UI primitives for rendering an in-flight transaction strip. Provider with multi-instance scoping (id + storage key), three add methods (addWithWalletAdapter for callers using @valve-tech/wallet-adapter, addByHash for raw hash + chain via @valve-tech/tx-tracker, addManual for back-fill), pluggable storage (localStorage default, IndexedDB and memory adapters included), atomic + layout components for headless composition, SSR-safe (the package's React-side hooks are client-only; storage adapters no-op on the server). Part of the valve-tech/evm-toolkit synchronized release line.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/valve-tech/evm-toolkit/tree/main/packages/tx-flight-react#readme",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"prepare": "yarn build"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@valve-tech/chain-source": "^0.
|
|
58
|
-
"@valve-tech/tx-tracker": "^0.
|
|
59
|
-
"@valve-tech/wallet-adapter": "^0.
|
|
57
|
+
"@valve-tech/chain-source": "^0.17.0",
|
|
58
|
+
"@valve-tech/tx-tracker": "^0.17.0",
|
|
59
|
+
"@valve-tech/wallet-adapter": "^0.17.0",
|
|
60
60
|
"react": "^18.2.0 || ^19.0.0",
|
|
61
61
|
"react-dom": "^18.2.0 || ^19.0.0",
|
|
62
62
|
"viem": "^2.0.0"
|
|
@@ -77,9 +77,9 @@
|
|
|
77
77
|
"@testing-library/react": "^16.1.0",
|
|
78
78
|
"@types/react": "^18.3.0",
|
|
79
79
|
"@types/react-dom": "^18.3.0",
|
|
80
|
-
"@valve-tech/chain-source": "^0.
|
|
81
|
-
"@valve-tech/tx-tracker": "^0.
|
|
82
|
-
"@valve-tech/wallet-adapter": "^0.
|
|
80
|
+
"@valve-tech/chain-source": "^0.17.0",
|
|
81
|
+
"@valve-tech/tx-tracker": "^0.17.0",
|
|
82
|
+
"@valve-tech/wallet-adapter": "^0.17.0",
|
|
83
83
|
"fake-indexeddb": "^6.0.0",
|
|
84
84
|
"happy-dom": "^15.0.0",
|
|
85
85
|
"react": "^18.3.1",
|