@bananapus/nana-sdk-core 6.0.0 → 6.2.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.
Files changed (213) hide show
  1. package/dist/cjs/jbcenter/ensureDeployed.d.ts +2 -2
  2. package/dist/cjs/jbcenter/ensureDeployed.d.ts.map +1 -1
  3. package/dist/cjs/jbcenter/ensureDeployed.js.map +1 -1
  4. package/dist/cjs/jbcenter.d.ts +4 -1
  5. package/dist/cjs/jbcenter.d.ts.map +1 -1
  6. package/dist/cjs/jbcenter.js +6 -6
  7. package/dist/cjs/jbcenter.js.map +1 -1
  8. package/dist/cjs/review/gas.d.ts +5 -2
  9. package/dist/cjs/review/gas.d.ts.map +1 -1
  10. package/dist/cjs/review/gas.js +8 -3
  11. package/dist/cjs/review/gas.js.map +1 -1
  12. package/dist/cjs/review/heldWrite.d.ts +6 -1
  13. package/dist/cjs/review/heldWrite.d.ts.map +1 -1
  14. package/dist/cjs/review/heldWrite.js +21 -16
  15. package/dist/cjs/review/heldWrite.js.map +1 -1
  16. package/dist/cjs/review/index.d.ts +2 -0
  17. package/dist/cjs/review/index.d.ts.map +1 -1
  18. package/dist/cjs/review/index.js +2 -0
  19. package/dist/cjs/review/index.js.map +1 -1
  20. package/dist/cjs/review/locks.d.ts +69 -0
  21. package/dist/cjs/review/locks.d.ts.map +1 -0
  22. package/dist/cjs/review/locks.js +232 -0
  23. package/dist/cjs/review/locks.js.map +1 -0
  24. package/dist/cjs/review/machines.d.ts +9 -0
  25. package/dist/cjs/review/machines.d.ts.map +1 -0
  26. package/dist/cjs/review/machines.js +25 -0
  27. package/dist/cjs/review/machines.js.map +1 -0
  28. package/dist/cjs/review/react/index.d.ts +3 -0
  29. package/dist/cjs/review/react/index.d.ts.map +1 -1
  30. package/dist/cjs/review/react/index.js +3 -0
  31. package/dist/cjs/review/react/index.js.map +1 -1
  32. package/dist/cjs/review/react/useFeeBuybackReview.d.ts +6 -0
  33. package/dist/cjs/review/react/useFeeBuybackReview.d.ts.map +1 -0
  34. package/dist/cjs/review/react/useFeeBuybackReview.js +53 -0
  35. package/dist/cjs/review/react/useFeeBuybackReview.js.map +1 -0
  36. package/dist/cjs/review/react/useMobileWallet.d.ts +15 -0
  37. package/dist/cjs/review/react/useMobileWallet.d.ts.map +1 -0
  38. package/dist/cjs/review/react/useMobileWallet.js +50 -0
  39. package/dist/cjs/review/react/useMobileWallet.js.map +1 -0
  40. package/dist/cjs/review/react/useReviewedRun.d.ts +28 -1
  41. package/dist/cjs/review/react/useReviewedRun.d.ts.map +1 -1
  42. package/dist/cjs/review/react/useReviewedRun.js +251 -39
  43. package/dist/cjs/review/react/useReviewedRun.js.map +1 -1
  44. package/dist/cjs/review/react/useSavedAttempt.d.ts +23 -0
  45. package/dist/cjs/review/react/useSavedAttempt.d.ts.map +1 -1
  46. package/dist/cjs/review/react/useSavedAttempt.js +101 -11
  47. package/dist/cjs/review/react/useSavedAttempt.js.map +1 -1
  48. package/dist/cjs/review/react/useStartOnce.d.ts +8 -0
  49. package/dist/cjs/review/react/useStartOnce.d.ts.map +1 -0
  50. package/dist/cjs/review/react/useStartOnce.js +27 -0
  51. package/dist/cjs/review/react/useStartOnce.js.map +1 -0
  52. package/dist/cjs/review/relayr.d.ts +1 -1
  53. package/dist/cjs/review/relayr.d.ts.map +1 -1
  54. package/dist/cjs/review/relayr.js +15 -0
  55. package/dist/cjs/review/relayr.js.map +1 -1
  56. package/dist/cjs/review/relayrLaunch.d.ts +90 -0
  57. package/dist/cjs/review/relayrLaunch.d.ts.map +1 -0
  58. package/dist/cjs/review/relayrLaunch.js +106 -0
  59. package/dist/cjs/review/relayrLaunch.js.map +1 -0
  60. package/dist/cjs/review/relayrSend.d.ts +5 -0
  61. package/dist/cjs/review/relayrSend.d.ts.map +1 -1
  62. package/dist/cjs/review/relayrSend.js +133 -107
  63. package/dist/cjs/review/relayrSend.js.map +1 -1
  64. package/dist/cjs/review/reviewDialogQueue.d.ts +47 -0
  65. package/dist/cjs/review/reviewDialogQueue.d.ts.map +1 -0
  66. package/dist/cjs/review/reviewDialogQueue.js +120 -0
  67. package/dist/cjs/review/reviewDialogQueue.js.map +1 -0
  68. package/dist/cjs/review/runStatus.d.ts +51 -0
  69. package/dist/cjs/review/runStatus.d.ts.map +1 -0
  70. package/dist/cjs/review/runStatus.js +54 -0
  71. package/dist/cjs/review/runStatus.js.map +1 -0
  72. package/dist/cjs/review/safeRelayr.d.ts +60 -16
  73. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  74. package/dist/cjs/review/safeRelayr.js +358 -161
  75. package/dist/cjs/review/safeRelayr.js.map +1 -1
  76. package/dist/cjs/review/savedAttempt.d.ts.map +1 -1
  77. package/dist/cjs/review/savedAttempt.js +7 -2
  78. package/dist/cjs/review/savedAttempt.js.map +1 -1
  79. package/dist/cjs/review/send.d.ts +27 -5
  80. package/dist/cjs/review/send.d.ts.map +1 -1
  81. package/dist/cjs/review/send.js +67 -24
  82. package/dist/cjs/review/send.js.map +1 -1
  83. package/dist/cjs/review/sign.d.ts +6 -1
  84. package/dist/cjs/review/sign.d.ts.map +1 -1
  85. package/dist/cjs/review/sign.js +10 -4
  86. package/dist/cjs/review/sign.js.map +1 -1
  87. package/dist/cjs/review/wallet.d.ts +16 -4
  88. package/dist/cjs/review/wallet.d.ts.map +1 -1
  89. package/dist/cjs/review/wallet.js +60 -17
  90. package/dist/cjs/review/wallet.js.map +1 -1
  91. package/dist/cjs/review/writeHold.d.ts +18 -3
  92. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  93. package/dist/cjs/review/writeHold.js +37 -10
  94. package/dist/cjs/review/writeHold.js.map +1 -1
  95. package/dist/cjs/review/writeRecovery.d.ts +13 -8
  96. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  97. package/dist/cjs/review/writeRecovery.js +67 -144
  98. package/dist/cjs/review/writeRecovery.js.map +1 -1
  99. package/dist/cjs/v6/feeBuyback.d.ts +49 -0
  100. package/dist/cjs/v6/feeBuyback.d.ts.map +1 -1
  101. package/dist/cjs/v6/feeBuyback.js +151 -0
  102. package/dist/cjs/v6/feeBuyback.js.map +1 -1
  103. package/dist/cjs/v6/suckers.d.ts +24 -2
  104. package/dist/cjs/v6/suckers.d.ts.map +1 -1
  105. package/dist/cjs/v6/suckers.js +5 -5
  106. package/dist/cjs/v6/suckers.js.map +1 -1
  107. package/dist/esm/jbcenter/ensureDeployed.d.ts +2 -2
  108. package/dist/esm/jbcenter/ensureDeployed.d.ts.map +1 -1
  109. package/dist/esm/jbcenter/ensureDeployed.js.map +1 -1
  110. package/dist/esm/jbcenter.d.ts +4 -1
  111. package/dist/esm/jbcenter.d.ts.map +1 -1
  112. package/dist/esm/jbcenter.js +6 -6
  113. package/dist/esm/jbcenter.js.map +1 -1
  114. package/dist/esm/review/gas.d.ts +5 -2
  115. package/dist/esm/review/gas.d.ts.map +1 -1
  116. package/dist/esm/review/gas.js +7 -3
  117. package/dist/esm/review/gas.js.map +1 -1
  118. package/dist/esm/review/heldWrite.d.ts +6 -1
  119. package/dist/esm/review/heldWrite.d.ts.map +1 -1
  120. package/dist/esm/review/heldWrite.js +21 -16
  121. package/dist/esm/review/heldWrite.js.map +1 -1
  122. package/dist/esm/review/index.d.ts +2 -0
  123. package/dist/esm/review/index.d.ts.map +1 -1
  124. package/dist/esm/review/index.js +2 -0
  125. package/dist/esm/review/index.js.map +1 -1
  126. package/dist/esm/review/locks.d.ts +69 -0
  127. package/dist/esm/review/locks.d.ts.map +1 -0
  128. package/dist/esm/review/locks.js +225 -0
  129. package/dist/esm/review/locks.js.map +1 -0
  130. package/dist/esm/review/machines.d.ts +9 -0
  131. package/dist/esm/review/machines.d.ts.map +1 -0
  132. package/dist/esm/review/machines.js +9 -0
  133. package/dist/esm/review/machines.js.map +1 -0
  134. package/dist/esm/review/react/index.d.ts +3 -0
  135. package/dist/esm/review/react/index.d.ts.map +1 -1
  136. package/dist/esm/review/react/index.js +3 -0
  137. package/dist/esm/review/react/index.js.map +1 -1
  138. package/dist/esm/review/react/useFeeBuybackReview.d.ts +6 -0
  139. package/dist/esm/review/react/useFeeBuybackReview.d.ts.map +1 -0
  140. package/dist/esm/review/react/useFeeBuybackReview.js +50 -0
  141. package/dist/esm/review/react/useFeeBuybackReview.js.map +1 -0
  142. package/dist/esm/review/react/useMobileWallet.d.ts +15 -0
  143. package/dist/esm/review/react/useMobileWallet.d.ts.map +1 -0
  144. package/dist/esm/review/react/useMobileWallet.js +46 -0
  145. package/dist/esm/review/react/useMobileWallet.js.map +1 -0
  146. package/dist/esm/review/react/useReviewedRun.d.ts +28 -1
  147. package/dist/esm/review/react/useReviewedRun.d.ts.map +1 -1
  148. package/dist/esm/review/react/useReviewedRun.js +252 -40
  149. package/dist/esm/review/react/useReviewedRun.js.map +1 -1
  150. package/dist/esm/review/react/useSavedAttempt.d.ts +23 -0
  151. package/dist/esm/review/react/useSavedAttempt.d.ts.map +1 -1
  152. package/dist/esm/review/react/useSavedAttempt.js +101 -11
  153. package/dist/esm/review/react/useSavedAttempt.js.map +1 -1
  154. package/dist/esm/review/react/useStartOnce.d.ts +8 -0
  155. package/dist/esm/review/react/useStartOnce.d.ts.map +1 -0
  156. package/dist/esm/review/react/useStartOnce.js +24 -0
  157. package/dist/esm/review/react/useStartOnce.js.map +1 -0
  158. package/dist/esm/review/relayr.d.ts +1 -1
  159. package/dist/esm/review/relayr.d.ts.map +1 -1
  160. package/dist/esm/review/relayr.js +1 -0
  161. package/dist/esm/review/relayr.js.map +1 -1
  162. package/dist/esm/review/relayrLaunch.d.ts +90 -0
  163. package/dist/esm/review/relayrLaunch.d.ts.map +1 -0
  164. package/dist/esm/review/relayrLaunch.js +97 -0
  165. package/dist/esm/review/relayrLaunch.js.map +1 -0
  166. package/dist/esm/review/relayrSend.d.ts +5 -0
  167. package/dist/esm/review/relayrSend.d.ts.map +1 -1
  168. package/dist/esm/review/relayrSend.js +134 -108
  169. package/dist/esm/review/relayrSend.js.map +1 -1
  170. package/dist/esm/review/reviewDialogQueue.d.ts +47 -0
  171. package/dist/esm/review/reviewDialogQueue.d.ts.map +1 -0
  172. package/dist/esm/review/reviewDialogQueue.js +117 -0
  173. package/dist/esm/review/reviewDialogQueue.js.map +1 -0
  174. package/dist/esm/review/runStatus.d.ts +51 -0
  175. package/dist/esm/review/runStatus.d.ts.map +1 -0
  176. package/dist/esm/review/runStatus.js +51 -0
  177. package/dist/esm/review/runStatus.js.map +1 -0
  178. package/dist/esm/review/safeRelayr.d.ts +60 -16
  179. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  180. package/dist/esm/review/safeRelayr.js +358 -161
  181. package/dist/esm/review/safeRelayr.js.map +1 -1
  182. package/dist/esm/review/savedAttempt.d.ts.map +1 -1
  183. package/dist/esm/review/savedAttempt.js +7 -2
  184. package/dist/esm/review/savedAttempt.js.map +1 -1
  185. package/dist/esm/review/send.d.ts +27 -5
  186. package/dist/esm/review/send.d.ts.map +1 -1
  187. package/dist/esm/review/send.js +67 -24
  188. package/dist/esm/review/send.js.map +1 -1
  189. package/dist/esm/review/sign.d.ts +6 -1
  190. package/dist/esm/review/sign.d.ts.map +1 -1
  191. package/dist/esm/review/sign.js +10 -4
  192. package/dist/esm/review/sign.js.map +1 -1
  193. package/dist/esm/review/wallet.d.ts +16 -4
  194. package/dist/esm/review/wallet.d.ts.map +1 -1
  195. package/dist/esm/review/wallet.js +60 -17
  196. package/dist/esm/review/wallet.js.map +1 -1
  197. package/dist/esm/review/writeHold.d.ts +18 -3
  198. package/dist/esm/review/writeHold.d.ts.map +1 -1
  199. package/dist/esm/review/writeHold.js +37 -10
  200. package/dist/esm/review/writeHold.js.map +1 -1
  201. package/dist/esm/review/writeRecovery.d.ts +13 -8
  202. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  203. package/dist/esm/review/writeRecovery.js +63 -142
  204. package/dist/esm/review/writeRecovery.js.map +1 -1
  205. package/dist/esm/v6/feeBuyback.d.ts +49 -0
  206. package/dist/esm/v6/feeBuyback.d.ts.map +1 -1
  207. package/dist/esm/v6/feeBuyback.js +150 -0
  208. package/dist/esm/v6/feeBuyback.js.map +1 -1
  209. package/dist/esm/v6/suckers.d.ts +24 -2
  210. package/dist/esm/v6/suckers.d.ts.map +1 -1
  211. package/dist/esm/v6/suckers.js +5 -5
  212. package/dist/esm/v6/suckers.js.map +1 -1
  213. package/package.json +11 -1
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockLostError = void 0;
4
+ exports.assertLocksHeld = assertLocksHeld;
5
+ exports.fencedLocks = fencedLocks;
6
+ exports.browserLocks = browserLocks;
7
+ const tabState_js_1 = require("./tabState.js");
8
+ /** Thrown by {@link LockHandle.assertHeld} once this tab no longer holds the lock. */
9
+ class LockLostError extends Error {
10
+ constructor(lock) {
11
+ super(`The "${lock}" lock was lost. Its work must stop before writing.`);
12
+ this.lock = lock;
13
+ this.name = "LockLostError";
14
+ this.code = "LOCK_LOST";
15
+ }
16
+ }
17
+ exports.LockLostError = LockLostError;
18
+ /**
19
+ * Throws {@link LockLostError} unless every given lock is still this tab's,
20
+ * on a fresh read; `null` and `undefined` are skipped. One line before a
21
+ * write under several locks: `await assertLocksHeld([a, b]); save()`.
22
+ */
23
+ async function assertLocksHeld(locks) {
24
+ await Promise.all((locks ?? []).map((lock) => lock?.assertHeld()));
25
+ }
26
+ const NEVER = new AbortController().signal;
27
+ function handle(name, mode, held, signal = NEVER) {
28
+ return {
29
+ name,
30
+ mode,
31
+ signal,
32
+ held,
33
+ async assertHeld() {
34
+ if (!(await held()))
35
+ throw new LockLostError(name);
36
+ },
37
+ };
38
+ }
39
+ function isHandle(lock) {
40
+ return typeof lock.assertHeld === "function";
41
+ }
42
+ /** `request`'s two shapes, as `navigator.locks` takes them. */
43
+ function shaped(options, work) {
44
+ return typeof options === "function" ? [{}, options] : [options, work];
45
+ }
46
+ /**
47
+ * Any Web Locks manager (`navigator.locks`, a test's) handing a
48
+ * {@link LockHandle}: a handle it hands already passes through; any other
49
+ * lock is never lost while its work runs.
50
+ */
51
+ function fencedLocks(locks) {
52
+ return {
53
+ request(name, options, work) {
54
+ const [opts, run] = shaped(options, work);
55
+ return locks.request(name, opts, (lock) => {
56
+ if (!lock)
57
+ return run(null);
58
+ if (isHandle(lock))
59
+ return run(lock);
60
+ let running = true;
61
+ return Promise.resolve(run(handle(lock.name, lock.mode, async () => running))).finally(() => (running = false));
62
+ });
63
+ },
64
+ };
65
+ }
66
+ const TAB_QUEUES = tabState_js_1.TAB.queues;
67
+ // Without Web Locks, writes in this tab still run one at a time per action,
68
+ // across every copy of this module loaded in the tab.
69
+ const tabQueues = (globalThis[TAB_QUEUES] ??= new Map());
70
+ let tabLocksNoted = false;
71
+ const tabLocks = {
72
+ async request(name, options, work) {
73
+ const held = tabQueues.get(name);
74
+ if (held && options.ifAvailable)
75
+ return work(null);
76
+ let release;
77
+ const mine = new Promise((resolve) => (release = resolve));
78
+ const queue = (held ?? Promise.resolve()).then(() => mine);
79
+ tabQueues.set(name, queue);
80
+ await held;
81
+ let running = true;
82
+ try {
83
+ return await work(handle(name, "exclusive", async () => running));
84
+ }
85
+ finally {
86
+ running = false;
87
+ release();
88
+ if (tabQueues.get(name) === queue)
89
+ tabQueues.delete(name);
90
+ }
91
+ },
92
+ };
93
+ // Without Web Locks, tabs share an IndexedDB lease per action. A readwrite
94
+ // transaction is atomic across the origin's tabs, so claiming a lease is a
95
+ // compare-and-set. Each acquisition has its own owner token. The holder
96
+ // renews it while it works, only while it is still its own and unexpired; a
97
+ // tab that closed or froze loses it once it lapses, and its handle then
98
+ // reads as lost.
99
+ const LEASE_DB = "nana-sdk-write-locks";
100
+ const LEASE_STORE = "leases";
101
+ const LEASE_MS = 15_000;
102
+ const LEASE_RENEW_MS = 5_000;
103
+ const LEASE_POLL_MS = 50;
104
+ function leaseTransaction(db, mode, run) {
105
+ return new Promise((resolve, reject) => {
106
+ const transaction = db.transaction(LEASE_STORE, mode);
107
+ let result;
108
+ run(transaction.objectStore(LEASE_STORE), (value) => (result = value));
109
+ transaction.oncomplete = () => resolve(result);
110
+ transaction.onerror = transaction.onabort = () => reject(transaction.error);
111
+ });
112
+ }
113
+ /** Whether `lease` is `owner`'s and unexpired. */
114
+ const owns = (lease, owner) => lease?.owner === owner && lease.expires > Date.now();
115
+ /**
116
+ * Take `name`'s lease for `owner` (`renew`: only extend it while still
117
+ * `owner`'s); false while another tab holds it, or once a renewal finds it lost.
118
+ */
119
+ function claimLease(db, name, owner, renew = false) {
120
+ return leaseTransaction(db, "readwrite", (store, done) => {
121
+ done(false);
122
+ const read = store.get(name);
123
+ read.onsuccess = () => {
124
+ const lease = read.result;
125
+ const now = Date.now();
126
+ if (renew ? !owns(lease, owner) : lease && lease.expires > now)
127
+ return;
128
+ store.put({ owner, expires: now + LEASE_MS }, name);
129
+ done(true);
130
+ };
131
+ });
132
+ }
133
+ function readLease(db, name) {
134
+ return leaseTransaction(db, "readonly", (store, done) => {
135
+ const read = store.get(name);
136
+ read.onsuccess = () => done(read.result);
137
+ });
138
+ }
139
+ /** Drop `name`'s lease only while it is still `owner`'s. */
140
+ function dropLease(db, name, owner) {
141
+ return leaseTransaction(db, "readwrite", (store) => {
142
+ const read = store.get(name);
143
+ read.onsuccess = () => {
144
+ if (read.result?.owner === owner)
145
+ store.delete(name);
146
+ };
147
+ });
148
+ }
149
+ function leaseLocks(factory) {
150
+ let opened;
151
+ const database = () => (opened ??= new Promise((resolve, reject) => {
152
+ const request = factory.open(LEASE_DB, 1);
153
+ request.onupgradeneeded = () => request.result.createObjectStore(LEASE_STORE);
154
+ request.onsuccess = () => resolve(request.result);
155
+ request.onerror = () => reject(request.error);
156
+ }).catch((error) => {
157
+ opened = undefined;
158
+ throw error;
159
+ }));
160
+ return {
161
+ request: (name, options, work) => tabLocks.request(name, options, async (tabLock) => {
162
+ if (!tabLock)
163
+ return work(null);
164
+ let db;
165
+ try {
166
+ db = await database();
167
+ }
168
+ catch {
169
+ // IndexedDB refused (as in some private windows): this tab only.
170
+ return work(tabLock);
171
+ }
172
+ const owner = globalThis.crypto.randomUUID();
173
+ while (!(await claimLease(db, name, owner))) {
174
+ if (options.ifAvailable)
175
+ return work(null);
176
+ await new Promise((resolve) => setTimeout(resolve, LEASE_POLL_MS));
177
+ }
178
+ const lost = new AbortController();
179
+ let running = true;
180
+ const held = async () => {
181
+ if (!running || lost.signal.aborted)
182
+ return false;
183
+ // Never cached: a tab back from suspension reads what is there now.
184
+ const mine = owns(await readLease(db, name).catch(() => undefined), owner);
185
+ if (!mine)
186
+ lost.abort(new LockLostError(name));
187
+ return mine && running;
188
+ };
189
+ const renew = setInterval(() => void claimLease(db, name, owner, true)
190
+ .then((kept) => kept || lost.abort(new LockLostError(name)))
191
+ .catch(() => { }), LEASE_RENEW_MS);
192
+ try {
193
+ return await work(handle(name, "exclusive", held, lost.signal));
194
+ }
195
+ finally {
196
+ running = false;
197
+ clearInterval(renew);
198
+ await dropLease(db, name, owner).catch(() => { });
199
+ }
200
+ }),
201
+ };
202
+ }
203
+ const inTabLocks = fencedLocks(tabLocks);
204
+ let leasedLocks;
205
+ /**
206
+ * The browser's Web Locks. Where a browser or wallet webview has none, an
207
+ * IndexedDB lease shared by the origin's tabs (one transaction, no visible
208
+ * delay; it waits only while another tab holds the action), with a one-time
209
+ * console note. With neither, a lock within this tab. Never refuses.
210
+ *
211
+ * `request(name, work)` or `request(name, options, work)`, as on
212
+ * `navigator.locks`; `work` gets a {@link LockHandle}. Call its
213
+ * `assertHeld()` immediately before every journal write and every wallet
214
+ * submission inside the lock: a lease can lapse while the tab is suspended
215
+ * (as while the user is in a wallet app) and pass to another tab. The check
216
+ * narrows that window to the time between the check and the write.
217
+ */
218
+ function browserLocks() {
219
+ const native = globalThis.navigator?.locks;
220
+ if (native)
221
+ return fencedLocks(native);
222
+ if (!tabLocksNoted) {
223
+ tabLocksNoted = true;
224
+ console.info(globalThis.indexedDB
225
+ ? "Web Locks are unavailable, so wallet writes are coordinated across tabs through IndexedDB."
226
+ : "Web Locks are unavailable, so wallet writes are coordinated within this tab only.");
227
+ }
228
+ if (!globalThis.indexedDB)
229
+ return inTabLocks;
230
+ return (leasedLocks ??= fencedLocks(leaseLocks(globalThis.indexedDB)));
231
+ }
232
+ //# sourceMappingURL=locks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/review/locks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The send lifecycle's pure machines, apart from the `/review` barrel so a
3
+ * page that only shows a run's status or queues its reviews loads no Safe,
4
+ * Relayr or decoding code.
5
+ */
6
+ export * from "./runStatus.js";
7
+ export * from "./reviewDialogQueue.js";
8
+ export * from "./relayrLaunch.js";
9
+ //# sourceMappingURL=machines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../../src/review/machines.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * The send lifecycle's pure machines, apart from the `/review` barrel so a
19
+ * page that only shows a run's status or queues its reviews loads no Safe,
20
+ * Relayr or decoding code.
21
+ */
22
+ __exportStar(require("./runStatus.js"), exports);
23
+ __exportStar(require("./reviewDialogQueue.js"), exports);
24
+ __exportStar(require("./relayrLaunch.js"), exports);
25
+ //# sourceMappingURL=machines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../../src/review/machines.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,iDAA+B;AAC/B,yDAAuC;AACvC,oDAAkC"}
@@ -4,4 +4,7 @@ export * from "./useHeldWrites.js";
4
4
  export * from "./useSavedAttempt.js";
5
5
  export * from "./useHeldSend.js";
6
6
  export * from "./useReviewedRun.js";
7
+ export * from "./useFeeBuybackReview.js";
8
+ export * from "./useStartOnce.js";
9
+ export * from "./useMobileWallet.js";
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/review/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/review/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
@@ -20,4 +20,7 @@ __exportStar(require("./useHeldWrites.js"), exports);
20
20
  __exportStar(require("./useSavedAttempt.js"), exports);
21
21
  __exportStar(require("./useHeldSend.js"), exports);
22
22
  __exportStar(require("./useReviewedRun.js"), exports);
23
+ __exportStar(require("./useFeeBuybackReview.js"), exports);
24
+ __exportStar(require("./useStartOnce.js"), exports);
25
+ __exportStar(require("./useMobileWallet.js"), exports);
23
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/review/react/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,oDAAkC;AAClC,qDAAmC;AACnC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/review/react/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,oDAAkC;AAClC,qDAAmC;AACnC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC;AACpC,2DAAyC;AACzC,oDAAkC;AAClC,uDAAqC"}
@@ -0,0 +1,6 @@
1
+ import { createFeeBuybackReview, type FeeReviewCall, type FeeReviewContext, type FeeReviewState } from "../../v6/feeBuyback.js";
2
+ type FeeReview = ReturnType<typeof createFeeBuybackReview>;
3
+ /** A review dialog's fee return check; it starts over when `calls` changes. */
4
+ export declare function useFeeBuybackReview(calls: readonly FeeReviewCall[], context: FeeReviewContext): FeeReviewState & Pick<FeeReview, "confirm" | "retry" | "wait">;
5
+ export {};
6
+ //# sourceMappingURL=useFeeBuybackReview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeeBuybackReview.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useFeeBuybackReview.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAa3D,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,EAAE,gBAAgB,GACxB,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,CA8ChE"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFeeBuybackReview = useFeeBuybackReview;
4
+ const react_1 = require("react");
5
+ const feeBuyback_js_1 = require("../../v6/feeBuyback.js");
6
+ /** What `calls` show before their review starts: checking when one pays a fee. */
7
+ function unchecked(calls) {
8
+ const first = (0, feeBuyback_js_1.createFeeBuybackReview)(calls, () => undefined, () => undefined);
9
+ first.stop();
10
+ return first.getState();
11
+ }
12
+ /** A review dialog's fee return check; it starts over when `calls` changes. */
13
+ function useFeeBuybackReview(calls, context) {
14
+ const contextRef = (0, react_1.useRef)(context);
15
+ contextRef.current = context;
16
+ const review = (0, react_1.useRef)(null);
17
+ /** The calls last rendered: an action from an earlier render answers for nothing. */
18
+ const rendered = (0, react_1.useRef)(calls);
19
+ rendered.current = calls;
20
+ /** The state shown, with the review that made it: an action answers for that review only. */
21
+ const [shown, setShown] = (0, react_1.useState)(() => ({ of: null, calls, state: unchecked(calls) }));
22
+ const fresh = (0, react_1.useMemo)(() => unchecked(calls), [calls]);
23
+ (0, react_1.useEffect)(() => {
24
+ const current = (0, feeBuyback_js_1.createFeeBuybackReview)(calls, (chainId, from) => contextRef.current(chainId, from), (state) => setShown({ of: current, calls, state }));
25
+ review.current = current;
26
+ setShown({ of: current, calls, state: current.getState() });
27
+ return () => {
28
+ current.stop();
29
+ review.current = null;
30
+ };
31
+ }, [calls]);
32
+ const { of } = shown;
33
+ // Until these calls' review starts, they show as unchecked, never the earlier calls' result.
34
+ const state = shown.calls === calls ? shown.state : fresh;
35
+ /** These calls are the latest and their review has started. */
36
+ const current = () => rendered.current === calls && shown.calls === calls;
37
+ /** The review this render showed, while it is still the hook's. */
38
+ const live = () => (of && of === review.current ? of : null);
39
+ return {
40
+ ...state,
41
+ confirm: async () => {
42
+ const shownReview = live();
43
+ if (!current() || !shownReview)
44
+ return false;
45
+ const confirmed = await shownReview.confirm(state.result);
46
+ // Replaced or closed while confirming: the answer is for calls no longer shown.
47
+ return confirmed && current() && live() === shownReview;
48
+ },
49
+ retry: () => live()?.retry(),
50
+ wait: () => live()?.wait(),
51
+ };
52
+ }
53
+ //# sourceMappingURL=useFeeBuybackReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeeBuybackReview.js","sourceRoot":"","sources":["../../../../src/review/react/useFeeBuybackReview.ts"],"names":[],"mappings":";;AAsBA,kDAiDC;AAvED,iCAA6D;AAC7D,0DAKgC;AAIhC,kFAAkF;AAClF,SAAS,SAAS,CAAC,KAA+B;IAChD,MAAM,KAAK,GAAG,IAAA,sCAAsB,EAClC,KAAK,EACL,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACF,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,SAAgB,mBAAmB,CACjC,KAA+B,EAC/B,OAAyB;IAEzB,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAC9C,qFAAqF;IACrF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,6FAA6F;IAC7F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAI/B,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAc,IAAA,sCAAsB,EAC/C,KAAK,EACL,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EACpD,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACnD,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACrB,6FAA6F;IAC7F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,+DAA+D;IAC/D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;IAC1E,mEAAmE;IACnE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,WAAW,GAAG,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1D,gFAAgF;YAChF,OAAO,SAAS,IAAI,OAAO,EAAE,IAAI,IAAI,EAAE,KAAK,WAAW,CAAC;QAC1D,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE;QAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;KAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type MobileWalletState = "not-mobile" | "checking" | "injected" | "handoff";
2
+ /** A phone or tablet, iPadOS included (it reports itself as a Mac with touch). */
3
+ export declare function isMobileDevice(nav: {
4
+ userAgent?: string;
5
+ platform?: string;
6
+ maxTouchPoints?: number;
7
+ }): boolean;
8
+ /**
9
+ * On a phone, whether a wallet's provider is in the page (`injected`) or the
10
+ * page should offer to reopen in a wallet app (`handoff`). MetaMask Mobile
11
+ * injects late and emits `ethereum#initialized`, so it gets the documented
12
+ * three-second window (`checking`); EIP-6963 wallets are asked to announce.
13
+ */
14
+ export declare function useMobileWallet(): MobileWalletState;
15
+ //# sourceMappingURL=useMobileWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMobileWallet.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useMobileWallet.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AAEd,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAKV;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CA8BnD"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMobileDevice = isMobileDevice;
4
+ exports.useMobileWallet = useMobileWallet;
5
+ const react_1 = require("react");
6
+ /** A phone or tablet, iPadOS included (it reports itself as a Mac with touch). */
7
+ function isMobileDevice(nav) {
8
+ return (/Android|iPhone|iPad|iPod/i.test(nav.userAgent || "") ||
9
+ (nav.platform === "MacIntel" && (nav.maxTouchPoints ?? 0) > 1));
10
+ }
11
+ const MOBILE_PROVIDER_WAIT_MS = 3_000;
12
+ /**
13
+ * On a phone, whether a wallet's provider is in the page (`injected`) or the
14
+ * page should offer to reopen in a wallet app (`handoff`). MetaMask Mobile
15
+ * injects late and emits `ethereum#initialized`, so it gets the documented
16
+ * three-second window (`checking`); EIP-6963 wallets are asked to announce.
17
+ */
18
+ function useMobileWallet() {
19
+ const [state, setState] = (0, react_1.useState)("not-mobile");
20
+ (0, react_1.useEffect)(() => {
21
+ if (!isMobileDevice(navigator))
22
+ return;
23
+ const page = window;
24
+ if (page.ethereum) {
25
+ setState("injected");
26
+ return;
27
+ }
28
+ setState("checking");
29
+ const stop = () => {
30
+ window.clearTimeout(timer);
31
+ window.removeEventListener("ethereum#initialized", ready);
32
+ window.removeEventListener("eip6963:announceProvider", ready);
33
+ };
34
+ const ready = () => {
35
+ stop();
36
+ setState("injected");
37
+ };
38
+ window.addEventListener("ethereum#initialized", ready);
39
+ window.addEventListener("eip6963:announceProvider", ready);
40
+ const timer = window.setTimeout(() => {
41
+ stop();
42
+ setState(page.ethereum ? "injected" : "handoff");
43
+ }, MOBILE_PROVIDER_WAIT_MS);
44
+ // EIP-6963: a wallet that announced before this listened announces again.
45
+ window.dispatchEvent(new Event("eip6963:requestProvider"));
46
+ return stop;
47
+ }, []);
48
+ return state;
49
+ }
50
+ //# sourceMappingURL=useMobileWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMobileWallet.js","sourceRoot":"","sources":["../../../../src/review/react/useMobileWallet.ts"],"names":[],"mappings":";;AASA,wCASC;AAUD,0CA8BC;AA1DD,iCAA4C;AAQ5C,kFAAkF;AAClF,SAAgB,cAAc,CAAC,GAI9B;IACC,OAAO,CACL,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACrD,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC;;;;;GAKG;AACH,SAAgB,eAAe;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAoB,YAAY,CAAC,CAAC;IACpE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,MAAgD,CAAC;QAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,EAAE,CAAC;YACP,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,EAAE,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type HeldWriteView, type ReviewedAction, type ReviewedProgress, type ReviewedResult, type ReviewedSendDeps, type completeReviewedStep, type resumeReviewed, type sendReviewed } from "../index.js";
1
+ import { type HeldWriteView, type ReviewedAction, type ReviewedCall, type ReviewedProgress, type ReviewedResult, type ReviewedRunStatus, type ReviewedSendDeps, type completeReviewedStep, type resumeReviewed, type sendReviewed } from "../index.js";
2
2
  import { type HeldViewActions } from "./heldView.js";
3
3
  import type { Address, Hex, TransactionReceipt } from "viem";
4
4
  /** The send engine: the review model, its decoder and the ABIs it reads. */
@@ -17,6 +17,8 @@ export type UseReviewedRunDeps = ReviewedSendDeps & {
17
17
  * again only after a load failed.
18
18
  */
19
19
  engine: () => Promise<ReviewedEngine>;
20
+ /** A held step `dismiss` closed later succeeded: refresh its reads. */
21
+ onDismissedSettled?: (call: ReviewedCall) => void;
20
22
  };
21
23
  /** A run that failed: `error` is the line to show, `failure` the value thrown. */
22
24
  export type ReviewedRunFailed = {
@@ -58,10 +60,27 @@ export type UseReviewedRunResult = {
58
60
  * is followed in place (`phase` "receipt"), in the same review, for
59
61
  * `follow.timeoutMs` (2 minutes by default); only then does the run resolve
60
62
  * `receipt`, and the hook follows the hold until it settles.
63
+ * `onCancelled` runs once when the run ends `cancelled`: nothing sent and
64
+ * nothing held; `onStopped` once when it ends `stopped`, with the last step
65
+ * sent. Both are told once that state rendered.
61
66
  */
62
67
  run: (action: Omit<ReviewedAction, "account" | "guard"> & {
63
68
  account?: Address;
69
+ onCancelled?: () => void;
70
+ onStopped?: (step: number) => void;
64
71
  }) => Promise<ReviewedResult | ReviewedRunReceipt | ReviewedRunFailed | null>;
72
+ /**
73
+ * The highest step of the action whose hash the wallet returned in the
74
+ * latest run (a resumed sequence's completed or proposed steps count), or
75
+ * null. It outlasts the run's failure or release; `reset` clears it.
76
+ */
77
+ lastSubmittedStep: number | null;
78
+ /** The run's status, from `reviewedRunStatus`: the one every app shows. */
79
+ status: ReviewedRunStatus;
80
+ /** Reviewing, simulating, signing or confirming in place (not `following`). */
81
+ busy: boolean;
82
+ /** The run only follows a sent step's hold: the confirm can close. */
83
+ following: boolean;
65
84
  phase: ReviewedProgress["phase"] | "idle";
66
85
  step: number;
67
86
  total: number;
@@ -96,6 +115,14 @@ export type UseReviewedRunResult = {
96
115
  */
97
116
  held: HeldWriteView | null;
98
117
  reset: () => void;
118
+ /**
119
+ * Closes the confirm; false while the review or wallet is open. A held
120
+ * earlier step ends the run (nothing more reviewed; its hold followed
121
+ * detached, `onDismissedSettled`). A held last step only ends the wait
122
+ * (`ended()` null) and stays shown. Otherwise it resets, following any hold
123
+ * it showed detached. Never evidence a step can be resent.
124
+ */
125
+ dismiss: () => boolean;
99
126
  /**
100
127
  * Loads the send engine now (on hover, focus or pointerdown of the action),
101
128
  * so the review opens without a wait. Safe to call any number of times: it
@@ -1 +1 @@
1
- {"version":3,"file":"useReviewedRun.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useReviewedRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useReviewedRun.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useReviewedRun.ts"],"names":[],"mappings":"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"}