@bananapus/nana-sdk-core 2.39.0 → 2.40.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 (53) hide show
  1. package/dist/cjs/review/heldWrite.d.ts.map +1 -1
  2. package/dist/cjs/review/heldWrite.js +56 -38
  3. package/dist/cjs/review/heldWrite.js.map +1 -1
  4. package/dist/cjs/review/react/HeldWritesNotice.d.ts +11 -0
  5. package/dist/cjs/review/react/HeldWritesNotice.d.ts.map +1 -0
  6. package/dist/cjs/review/react/HeldWritesNotice.js +22 -0
  7. package/dist/cjs/review/react/HeldWritesNotice.js.map +1 -0
  8. package/dist/cjs/review/react/index.d.ts +5 -0
  9. package/dist/cjs/review/react/index.d.ts.map +1 -0
  10. package/dist/cjs/review/react/index.js +21 -0
  11. package/dist/cjs/review/react/index.js.map +1 -0
  12. package/dist/cjs/review/react/useHeldWrite.d.ts +63 -0
  13. package/dist/cjs/review/react/useHeldWrite.d.ts.map +1 -0
  14. package/dist/cjs/review/react/useHeldWrite.js +107 -0
  15. package/dist/cjs/review/react/useHeldWrite.js.map +1 -0
  16. package/dist/cjs/review/react/useHeldWrites.d.ts +40 -0
  17. package/dist/cjs/review/react/useHeldWrites.d.ts.map +1 -0
  18. package/dist/cjs/review/react/useHeldWrites.js +95 -0
  19. package/dist/cjs/review/react/useHeldWrites.js.map +1 -0
  20. package/dist/cjs/review/react/useSavedAttempt.d.ts +54 -0
  21. package/dist/cjs/review/react/useSavedAttempt.d.ts.map +1 -0
  22. package/dist/cjs/review/react/useSavedAttempt.js +105 -0
  23. package/dist/cjs/review/react/useSavedAttempt.js.map +1 -0
  24. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  25. package/dist/cjs/review/writeRecovery.js +3 -1
  26. package/dist/cjs/review/writeRecovery.js.map +1 -1
  27. package/dist/esm/review/heldWrite.d.ts.map +1 -1
  28. package/dist/esm/review/heldWrite.js +56 -38
  29. package/dist/esm/review/heldWrite.js.map +1 -1
  30. package/dist/esm/review/react/HeldWritesNotice.d.ts +11 -0
  31. package/dist/esm/review/react/HeldWritesNotice.d.ts.map +1 -0
  32. package/dist/esm/review/react/HeldWritesNotice.js +19 -0
  33. package/dist/esm/review/react/HeldWritesNotice.js.map +1 -0
  34. package/dist/esm/review/react/index.d.ts +5 -0
  35. package/dist/esm/review/react/index.d.ts.map +1 -0
  36. package/dist/esm/review/react/index.js +5 -0
  37. package/dist/esm/review/react/index.js.map +1 -0
  38. package/dist/esm/review/react/useHeldWrite.d.ts +63 -0
  39. package/dist/esm/review/react/useHeldWrite.d.ts.map +1 -0
  40. package/dist/esm/review/react/useHeldWrite.js +104 -0
  41. package/dist/esm/review/react/useHeldWrite.js.map +1 -0
  42. package/dist/esm/review/react/useHeldWrites.d.ts +40 -0
  43. package/dist/esm/review/react/useHeldWrites.d.ts.map +1 -0
  44. package/dist/esm/review/react/useHeldWrites.js +91 -0
  45. package/dist/esm/review/react/useHeldWrites.js.map +1 -0
  46. package/dist/esm/review/react/useSavedAttempt.d.ts +54 -0
  47. package/dist/esm/review/react/useSavedAttempt.d.ts.map +1 -0
  48. package/dist/esm/review/react/useSavedAttempt.js +102 -0
  49. package/dist/esm/review/react/useSavedAttempt.js.map +1 -0
  50. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  51. package/dist/esm/review/writeRecovery.js +3 -1
  52. package/dist/esm/review/writeRecovery.js.map +1 -1
  53. package/package.json +16 -2
@@ -185,6 +185,10 @@ export function createHeldWriteView(handle, options) {
185
185
  undelivered.delete(key);
186
186
  if ("hash" in settled)
187
187
  told.add(settled.hash.toLowerCase());
188
+ // A send under way never saw it: it blocks that send, acknowledged or not.
189
+ if (settled.result === "success")
190
+ for (const during of sending)
191
+ during.add(key);
188
192
  options.onSettled?.(settled, receipt);
189
193
  present();
190
194
  // Told: the hold marks it acknowledged, so no later visit asks again.
@@ -333,17 +337,20 @@ export function createHeldWriteView(handle, options) {
333
337
  }
334
338
  /**
335
339
  * The send gate, from current evidence alone: any unacknowledged success
336
- * of the intent or an eligible legacy hold. It holds whatever is shown.
340
+ * of the intent or an eligible legacy hold, but those `exempt`, or any
341
+ * success delivered `during` the send. It holds whatever is shown.
337
342
  */
338
- function unacknowledged() {
339
- if (gate())
343
+ function unacknowledged(exempt, during) {
344
+ if (during.size || gate(exempt))
340
345
  throw new Error(HELD_AWAY_SUCCESS_LINE);
341
346
  }
342
347
  /** Successes this view told the app of: their acknowledgement is under way. */
343
348
  const told = new Set();
349
+ /** Per send under way, the successes delivered since it started. */
350
+ const sending = new Set();
344
351
  /** The gate's success, but for one this view already told the app of. */
345
- function gate() {
346
- return handle.unacknowledgedSuccess((hash) => told.has(hash.toLowerCase()));
352
+ function gate(exempt = told) {
353
+ return handle.unacknowledgedSuccess((hash) => exempt.has(hash.toLowerCase()));
347
354
  }
348
355
  /**
349
356
  * Show the gate's success as `succeeded` ("Send it again") once nothing is
@@ -481,42 +488,53 @@ export function createHeldWriteView(handle, options) {
481
488
  * with the hold's checked state shown.
482
489
  */
483
490
  async send(run) {
484
- if (!(await adopt()))
485
- throw new Error("Saved transactions are still being checked. Try again in a moment.");
486
- unacknowledged();
487
- // The send's own check may find one too: it says so before the wallet.
488
- const unsubscribe = handle.subscribe(apply);
491
+ // Only a success told before this send is exempt, taken before any
492
+ // yield; one delivered after it starts was never seen, so it blocks.
493
+ const exempt = new Set(told);
494
+ const during = new Set();
495
+ sending.add(during);
496
+ const guard = () => unacknowledged(exempt, during);
489
497
  try {
490
- const hash = await handle.send(client, async (gate) => {
491
- unacknowledged();
492
- return run({
493
- ...gate,
494
- // Asked again at the reservation itself, after any lock retries.
495
- async beforeSend(actualCall) {
496
- unacknowledged();
497
- await gate.beforeSend(actualCall);
498
- try {
499
- unacknowledged();
500
- }
501
- catch (error) {
502
- gate.onRejected();
503
- throw error;
504
- }
505
- },
498
+ if (!(await adopt()))
499
+ throw new Error("Saved transactions are still being checked. Try again in a moment.");
500
+ guard();
501
+ // The send's own check may find one too: it says so before the wallet.
502
+ const unsubscribe = handle.subscribe(apply);
503
+ try {
504
+ const hash = await handle.send(client, async (gate) => {
505
+ guard();
506
+ return run({
507
+ ...gate,
508
+ // Asked again at the reservation itself, after any lock retries.
509
+ async beforeSend(actualCall) {
510
+ guard();
511
+ await gate.beforeSend(actualCall);
512
+ try {
513
+ guard();
514
+ }
515
+ catch (error) {
516
+ gate.onRejected();
517
+ throw error;
518
+ }
519
+ },
520
+ });
506
521
  });
507
- });
508
- unsubscribe();
509
- apply(handle.peek());
510
- return hash;
522
+ unsubscribe();
523
+ apply(handle.peek());
524
+ return hash;
525
+ }
526
+ catch (error) {
527
+ unsubscribe();
528
+ // Its own evidence, checked or not: a contended refusal hides no exit.
529
+ if (error instanceof WriteHeldError)
530
+ apply(error.state);
531
+ else if (view.phase !== "succeeded")
532
+ await check();
533
+ throw error;
534
+ }
511
535
  }
512
- catch (error) {
513
- unsubscribe();
514
- // Its own evidence, checked or not: a contended refusal hides no exit.
515
- if (error instanceof WriteHeldError)
516
- apply(error.state);
517
- else if (view.phase !== "succeeded")
518
- await check();
519
- throw error;
536
+ finally {
537
+ sending.delete(during);
520
538
  }
521
539
  },
522
540
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"heldWrite.js","sourceRoot":"","sources":["../../../src/review/heldWrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heldWrite.js","sourceRoot":"","sources":["../../../src/review/heldWrite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { HeldWriteItem } from "./useHeldWrites.js";
2
+ /**
3
+ * The one app-wide notice of held writes: each with its action's label, its
4
+ * line, any warning, and the release when its hold offers the exit. Feed it
5
+ * useHeldWrites, useHeldIntents, or both. Unstyled: `className` is the hook.
6
+ */
7
+ export declare function HeldWritesNotice({ items, className, }: {
8
+ items: readonly HeldWriteItem[];
9
+ className?: string;
10
+ }): import("react").JSX.Element | null;
11
+ //# sourceMappingURL=HeldWritesNotice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeldWritesNotice.d.ts","sourceRoot":"","sources":["../../../../src/review/react/HeldWritesNotice.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sCA4BA"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { HELD_RELEASE_LABEL } from "../index.js";
3
+ import { useState } from "react";
4
+ /**
5
+ * The one app-wide notice of held writes: each with its action's label, its
6
+ * line, any warning, and the release when its hold offers the exit. Feed it
7
+ * useHeldWrites, useHeldIntents, or both. Unstyled: `className` is the hook.
8
+ */
9
+ export function HeldWritesNotice({ items, className, }) {
10
+ const [busy, setBusy] = useState(null);
11
+ const shown = items.filter(({ view }) => view.line);
12
+ if (!shown.length)
13
+ return null;
14
+ return (_jsx("div", { role: "status", className: className, children: shown.map(({ key, label, view, release }) => (_jsxs("div", { "data-phase": view.phase, children: [label ? _jsx("p", { children: label }) : null, _jsx("p", { children: view.line }), view.warning ? _jsx("p", { children: view.warning }) : null, view.notice ? _jsx("p", { children: view.notice }) : null, view.exit ? (_jsx("button", { type: "button", disabled: busy === key, onClick: () => {
15
+ setBusy(key);
16
+ void release().finally(() => setBusy(null));
17
+ }, children: HELD_RELEASE_LABEL })) : null] }, key))) }));
18
+ }
19
+ //# sourceMappingURL=HeldWritesNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeldWritesNotice.js","sourceRoot":"","sources":["../../../../src/review/react/HeldWritesNotice.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,SAAS,GAIV;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,CACL,cAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,YACpC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC5C,6BAA2B,IAAI,CAAC,KAAK,aAClC,KAAK,CAAC,CAAC,CAAC,sBAAI,KAAK,GAAK,CAAC,CAAC,CAAC,IAAI,EAC9B,sBAAI,IAAI,CAAC,IAAI,GAAK,EACjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAI,IAAI,CAAC,OAAO,GAAK,CAAC,CAAC,CAAC,IAAI,EAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAI,IAAI,CAAC,MAAM,GAAK,CAAC,CAAC,CAAC,IAAI,EACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,KAAK,GAAG,EACtB,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,CAAC,GAAG,CAAC,CAAC;wBACb,KAAK,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC,YAEA,kBAAkB,GACZ,CACV,CAAC,CAAC,CAAC,IAAI,KAhBA,GAAG,CAiBP,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./HeldWritesNotice.js";
2
+ export * from "./useHeldWrite.js";
3
+ export * from "./useHeldWrites.js";
4
+ export * from "./useSavedAttempt.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ export * from "./HeldWritesNotice.js";
2
+ export * from "./useHeldWrite.js";
3
+ export * from "./useHeldWrites.js";
4
+ export * from "./useSavedAttempt.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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"}
@@ -0,0 +1,63 @@
1
+ import { type HeldWriteEvidence, type HeldWriteView, type ReviewedWriteRecoveryInput, type WriteHold, type WriteHoldClient, type WriteHoldGate, type WriteHoldHandle, type WriteHoldSettled, type WriteHoldState } from "../index.js";
2
+ import type { Address, Hex, TransactionReceipt } from "viem";
3
+ export type UseHeldWriteOptions = {
4
+ /** The app's one write hold controller (createWriteHold()). */
5
+ hold: WriteHold;
6
+ chainId: number;
7
+ /** The account that sends: the wallet, or the Safe. */
8
+ account: Address;
9
+ /** Whether `account` is a Safe whose writes are proposals. */
10
+ safe?: boolean;
11
+ /** The action's intent key (payIntent and the other builders). */
12
+ namespace?: string;
13
+ /** Keys an earlier version held this write under. */
14
+ legacy?: Parameters<WriteHold["open"]>[1] extends infer O ? O extends {
15
+ legacy?: infer L;
16
+ } ? L : never : never;
17
+ /** The reviewed call, when built; without one, the hold is found by `namespace`. */
18
+ call?: ReviewedWriteRecoveryInput["call"];
19
+ /** Reads the account's chain. */
20
+ client: WriteHoldClient | undefined;
21
+ /** A previous deploy's saved evidence of this write: adopted before any send. */
22
+ adopt?: () => Promise<HeldWriteEvidence | null | undefined>;
23
+ onAdopted?: (state: WriteHoldState) => void;
24
+ /** The hold settled what this view saw held, on authenticated evidence: once. */
25
+ onSettled?: (settled: WriteHoldSettled, receipt: TransactionReceipt | null) => void;
26
+ /** Released: by the user's exit (reopen the review), or by another window. */
27
+ onReleased?: (by: "user" | "other-tab") => void;
28
+ /** How often a held write is asked again (15 s to 60 s, 30 s by default). */
29
+ pollMs?: number;
30
+ };
31
+ export type UseHeldWriteResult = HeldWriteView & {
32
+ /** The exit the hold offers now, with its label; null when none. */
33
+ exitAction: {
34
+ label: string;
35
+ run: () => Promise<boolean>;
36
+ } | null;
37
+ /**
38
+ * On a success settled while away ("This went through while you were
39
+ * away."): the user's choice to send it again. Null otherwise.
40
+ */
41
+ sendAgainAction: {
42
+ label: string;
43
+ run: () => Promise<void>;
44
+ } | null;
45
+ /** Send under the hold, once any adoption is done. */
46
+ send: (run: (gate: WriteHoldGate) => Promise<Hex>) => Promise<Hex>;
47
+ /** Ask the chain now. */
48
+ check: () => Promise<HeldWriteView>;
49
+ /** The hold handle, for anything else. */
50
+ handle: WriteHoldHandle | undefined;
51
+ };
52
+ /**
53
+ * One held write, the one way every app runs it: its send under the hold,
54
+ * the watch, the shared follower of its transaction or Safe proposal, its
55
+ * one line, its exit and the adoption of a previous deploy's record.
56
+ *
57
+ * The exit ("I checked my wallet") only releases the hold: `onReleased("user")`
58
+ * is where the app reopens its review, so a resend always shows the values it
59
+ * sends. A release by another window is neutral (`releasedBy: "other-tab"`),
60
+ * and `onSettled` fires only for a settlement of what this view saw held.
61
+ */
62
+ export declare function useHeldWrite(options: UseHeldWriteOptions): UseHeldWriteResult;
63
+ //# sourceMappingURL=useHeldWrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldWrite.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAElB,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAQ7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,+DAA+D;IAC/D,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GACrD,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAC5B,CAAC,GACD,KAAK,GACP,KAAK,CAAC;IACV,oFAAoF;IACpF,IAAI,CAAC,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC1C,iCAAiC;IACjC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,iFAAiF;IACjF,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,kBAAkB,GAAG,IAAI,KAC/B,IAAI,CAAC;IACV,8EAA8E;IAC9E,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC;IAChD,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,oEAAoE;IACpE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE;;;OAGG;IACH,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,sDAAsD;IACtD,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnE,yBAAyB;IACzB,KAAK,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,0CAA0C;IAC1C,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC,CAAC;AAiBF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgG7E"}
@@ -0,0 +1,104 @@
1
+ import { createHeldWriteView, HELD_EXIT_LABEL, HELD_SEND_AGAIN_LABEL, } from "../index.js";
2
+ import { useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
+ /** A call stand-in for a hold found by its intent alone, before any call is built. */
4
+ const NO_CALL = {
5
+ to: "0x0000000000000000000000000000000000000000",
6
+ data: "0x",
7
+ };
8
+ const IDLE = {
9
+ phase: "clear",
10
+ state: null,
11
+ line: null,
12
+ exit: false,
13
+ adopting: false,
14
+ };
15
+ const none = () => () => { };
16
+ /** A value's identity for a memo key, wei amounts (bigints) included. */
17
+ const keyOf = (value) => JSON.stringify(value, (_, field) => typeof field === "bigint" ? `${field}n` : field);
18
+ const idle = () => IDLE;
19
+ /**
20
+ * One held write, the one way every app runs it: its send under the hold,
21
+ * the watch, the shared follower of its transaction or Safe proposal, its
22
+ * one line, its exit and the adoption of a previous deploy's record.
23
+ *
24
+ * The exit ("I checked my wallet") only releases the hold: `onReleased("user")`
25
+ * is where the app reopens its review, so a resend always shows the values it
26
+ * sends. A release by another window is neutral (`releasedBy: "other-tab"`),
27
+ * and `onSettled` fires only for a settlement of what this view saw held.
28
+ */
29
+ export function useHeldWrite(options) {
30
+ const { hold, chainId, account, safe = false, namespace, client, pollMs, } = options;
31
+ const callKey = keyOf(options.call ?? null);
32
+ const legacyKey = keyOf(options.legacy ?? null);
33
+ const latest = useRef(options);
34
+ latest.current = options;
35
+ const handle = useMemo(() => {
36
+ const call = latest.current.call;
37
+ if (!call && !namespace)
38
+ return undefined;
39
+ const legacy = latest.current.legacy;
40
+ return hold.open({
41
+ chainId,
42
+ account,
43
+ safe,
44
+ call: call ?? NO_CALL,
45
+ ...(namespace ? { namespace } : {}),
46
+ }, legacy ? { legacy } : undefined);
47
+ // The call and legacy keys stand for their values.
48
+ }, [hold, chainId, account, safe, namespace, callKey, legacyKey]);
49
+ // Whether the app has a previous deploy's record to adopt: a change makes a
50
+ // new view, whose adoption runs before any send.
51
+ const adopts = !!options.adopt;
52
+ /** The view whose callbacks are the app's now: an earlier one's late answers reach none. */
53
+ const active = useRef(undefined);
54
+ const view = useMemo(() => {
55
+ if (!handle || !client)
56
+ return undefined;
57
+ /** Only while this view is the app's: an earlier one's late answers reach no callback. */
58
+ const own = (callback) => (...args) => {
59
+ if (active.current === created)
60
+ callback(...args);
61
+ };
62
+ const created = createHeldWriteView(handle, {
63
+ client,
64
+ pollMs,
65
+ onSettled: own((settled, receipt) => latest.current.onSettled?.(settled, receipt)),
66
+ onReleased: own((by) => latest.current.onReleased?.(by)),
67
+ onAdopted: own((state) => latest.current.onAdopted?.(state)),
68
+ // A view made with a provider: the app's current one (a removed one
69
+ // makes a new view, and this one stops).
70
+ ...(adopts ? { adopt: () => latest.current.adopt() } : {}),
71
+ });
72
+ return created;
73
+ }, [handle, client, pollMs, adopts]);
74
+ useEffect(() => {
75
+ if (!view)
76
+ return;
77
+ active.current = view;
78
+ const stop = view.start();
79
+ return () => {
80
+ if (active.current === view)
81
+ active.current = undefined;
82
+ stop();
83
+ };
84
+ }, [view]);
85
+ const shown = useSyncExternalStore(view?.subscribe ?? none, view?.get ?? idle, view?.get ?? idle);
86
+ return {
87
+ ...shown,
88
+ exitAction: shown.exit && view ? { label: HELD_EXIT_LABEL, run: view.exit } : null,
89
+ sendAgainAction: shown.phase === "succeeded" && view
90
+ ? { label: HELD_SEND_AGAIN_LABEL, run: view.acknowledge }
91
+ : null,
92
+ send: (run) => {
93
+ if (!view)
94
+ return Promise.reject(new Error("Connect a wallet and build the call before sending."));
95
+ // A record to adopt that this view doesn't know of yet: never send past it.
96
+ if (!!latest.current.adopt !== adopts)
97
+ return Promise.reject(new Error("Saved transactions are still being checked. Try again in a moment."));
98
+ return view.send(run);
99
+ },
100
+ check: () => (view ? view.check() : Promise.resolve(IDLE)),
101
+ handle,
102
+ };
103
+ }
104
+ //# sourceMappingURL=useHeldWrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldWrite.js","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type HeldWriteView, type WriteHold, type WriteHoldClient } from "../index.js";
2
+ import type { Address } from "viem";
3
+ /** One held write an app-wide notice shows. */
4
+ export type HeldWriteItem = {
5
+ key: string;
6
+ /** What the action is, when the app names it. */
7
+ label?: string;
8
+ view: HeldWriteView;
9
+ /** Release it (the notice's exit): true when released. */
10
+ release: () => Promise<boolean>;
11
+ };
12
+ /**
13
+ * The holds of a fixed set of actions, found by their intents alone and
14
+ * shown with their lines and exits, whatever the actions' buttons allow now.
15
+ */
16
+ export declare function useHeldIntents({ hold, chainId, account, client, intents, pollMs, }: {
17
+ hold: WriteHold;
18
+ chainId: number;
19
+ account: Address | undefined;
20
+ client: WriteHoldClient | undefined;
21
+ intents: readonly {
22
+ namespace: string;
23
+ label?: string;
24
+ }[];
25
+ pollMs?: number;
26
+ }): HeldWriteItem[];
27
+ /**
28
+ * Every write held for `account` on `chainId`, whatever action made it
29
+ * (`hold.list`), read again when another window changes one and every poll.
30
+ */
31
+ export declare function useHeldWrites({ hold, chainId, account, client, label, pollMs, }: {
32
+ hold: WriteHold;
33
+ chainId: number;
34
+ account: Address | undefined;
35
+ client: WriteHoldClient | undefined;
36
+ /** The app's name for a listed write's action, when it knows it. */
37
+ label?: (record: ReturnType<WriteHold["list"]>[number]["record"]) => string | undefined;
38
+ pollMs?: number;
39
+ }): HeldWriteItem[];
40
+ //# sourceMappingURL=useHeldWrites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldWrites.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AAEzC,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAqDF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,aAAa,EAAE,CAqBlB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAe,GAChB,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IACpC,oEAAoE;IACpE,KAAK,CAAC,EAAE,CACN,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KACpD,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,aAAa,EAAE,CA6BlB"}
@@ -0,0 +1,91 @@
1
+ import { createHeldWriteView, } from "../index.js";
2
+ import { useEffect, useMemo, useState, useSyncExternalStore } from "react";
3
+ /** Watch each entry's hold as one held write view; held ones (and fresh results) come back as items. */
4
+ function useHeldViews(entries, client, pollMs) {
5
+ const views = useMemo(() => client
6
+ ? entries.map((entry) => ({
7
+ entry,
8
+ view: createHeldWriteView(entry.handle, { client, pollMs }),
9
+ }))
10
+ : [], [entries, client, pollMs]);
11
+ useEffect(() => {
12
+ const stops = views.map(({ view }) => view.start());
13
+ return () => stops.forEach((stop) => stop());
14
+ }, [views]);
15
+ const store = useMemo(() => feed(views.map(({ view }) => view)), [views]);
16
+ const shown = useSyncExternalStore(store.subscribe, store.get, store.get);
17
+ return views
18
+ .map(({ entry, view }, index) => ({
19
+ key: entry.key,
20
+ ...(entry.label ? { label: entry.label } : {}),
21
+ view: shown[index],
22
+ release: view.exit,
23
+ }))
24
+ .filter(({ view }) => view.phase !== "clear");
25
+ }
26
+ /** Several views as one store: a snapshot array that changes when any view does. */
27
+ function feed(views) {
28
+ let snapshot = views.map((view) => view.get());
29
+ return {
30
+ subscribe(listener) {
31
+ const stops = views.map((view) => view.subscribe(() => {
32
+ snapshot = views.map((each) => each.get());
33
+ listener();
34
+ }));
35
+ return () => stops.forEach((stop) => stop());
36
+ },
37
+ get: () => snapshot,
38
+ };
39
+ }
40
+ /**
41
+ * The holds of a fixed set of actions, found by their intents alone and
42
+ * shown with their lines and exits, whatever the actions' buttons allow now.
43
+ */
44
+ export function useHeldIntents({ hold, chainId, account, client, intents, pollMs, }) {
45
+ const intentsKey = JSON.stringify(intents);
46
+ const entries = useMemo(() => account
47
+ ? intents.map(({ namespace, label }) => ({
48
+ key: namespace,
49
+ label,
50
+ handle: hold.open({
51
+ chainId,
52
+ account,
53
+ safe: false,
54
+ namespace,
55
+ call: { to: account, data: "0x" },
56
+ }),
57
+ }))
58
+ : [],
59
+ // The intents key stands for the intents.
60
+ [hold, chainId, account, intentsKey]);
61
+ return useHeldViews(entries, client, pollMs);
62
+ }
63
+ /**
64
+ * Every write held for `account` on `chainId`, whatever action made it
65
+ * (`hold.list`), read again when another window changes one and every poll.
66
+ */
67
+ export function useHeldWrites({ hold, chainId, account, client, label, pollMs = 30_000, }) {
68
+ const [generation, setGeneration] = useState(0);
69
+ useEffect(() => {
70
+ const again = () => setGeneration((value) => value + 1);
71
+ globalThis.addEventListener?.("storage", again);
72
+ const timer = setInterval(again, pollMs);
73
+ return () => {
74
+ globalThis.removeEventListener?.("storage", again);
75
+ clearInterval(timer);
76
+ };
77
+ }, [pollMs]);
78
+ const listed = useMemo(() => (account ? hold.list({ account, chainId }) : []), [hold, account, chainId, generation]);
79
+ const listedKey = listed
80
+ .map(({ key, record }) => `${key}:${record.id}`)
81
+ .join("|");
82
+ const entries = useMemo(() => listed.map(({ key, record, handle }) => ({
83
+ key,
84
+ label: label?.(record),
85
+ handle,
86
+ })),
87
+ // The listed key stands for the list.
88
+ [listedKey]);
89
+ return useHeldViews(entries, client, pollMs);
90
+ }
91
+ //# sourceMappingURL=useHeldWrites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldWrites.js","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrites.ts"],"names":[],"mappings":"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"}