@bananapus/nana-sdk-core 2.40.0 → 2.41.1

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 (69) hide show
  1. package/dist/cjs/review/heldWrite.d.ts +5 -4
  2. package/dist/cjs/review/heldWrite.d.ts.map +1 -1
  3. package/dist/cjs/review/heldWrite.js +51 -16
  4. package/dist/cjs/review/heldWrite.js.map +1 -1
  5. package/dist/cjs/review/intents.d.ts +45 -0
  6. package/dist/cjs/review/intents.d.ts.map +1 -1
  7. package/dist/cjs/review/intents.js +57 -0
  8. package/dist/cjs/review/intents.js.map +1 -1
  9. package/dist/cjs/review/react/heldView.d.ts +25 -0
  10. package/dist/cjs/review/react/heldView.d.ts.map +1 -0
  11. package/dist/cjs/review/react/heldView.js +29 -0
  12. package/dist/cjs/review/react/heldView.js.map +1 -0
  13. package/dist/cjs/review/react/index.d.ts +1 -0
  14. package/dist/cjs/review/react/index.d.ts.map +1 -1
  15. package/dist/cjs/review/react/index.js +1 -0
  16. package/dist/cjs/review/react/index.js.map +1 -1
  17. package/dist/cjs/review/react/useHeldSend.d.ts +30 -0
  18. package/dist/cjs/review/react/useHeldSend.d.ts.map +1 -0
  19. package/dist/cjs/review/react/useHeldSend.js +80 -0
  20. package/dist/cjs/review/react/useHeldSend.js.map +1 -0
  21. package/dist/cjs/review/react/useHeldWrite.d.ts +2 -14
  22. package/dist/cjs/review/react/useHeldWrite.d.ts.map +1 -1
  23. package/dist/cjs/review/react/useHeldWrite.js +6 -19
  24. package/dist/cjs/review/react/useHeldWrite.js.map +1 -1
  25. package/dist/cjs/review/tabState.d.ts +2 -0
  26. package/dist/cjs/review/tabState.d.ts.map +1 -1
  27. package/dist/cjs/review/tabState.js +2 -0
  28. package/dist/cjs/review/tabState.js.map +1 -1
  29. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  30. package/dist/cjs/review/writeHold.js +10 -3
  31. package/dist/cjs/review/writeHold.js.map +1 -1
  32. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  33. package/dist/cjs/review/writeRecovery.js +2 -0
  34. package/dist/cjs/review/writeRecovery.js.map +1 -1
  35. package/dist/esm/review/heldWrite.d.ts +5 -4
  36. package/dist/esm/review/heldWrite.d.ts.map +1 -1
  37. package/dist/esm/review/heldWrite.js +51 -16
  38. package/dist/esm/review/heldWrite.js.map +1 -1
  39. package/dist/esm/review/intents.d.ts +45 -0
  40. package/dist/esm/review/intents.d.ts.map +1 -1
  41. package/dist/esm/review/intents.js +52 -0
  42. package/dist/esm/review/intents.js.map +1 -1
  43. package/dist/esm/review/react/heldView.d.ts +25 -0
  44. package/dist/esm/review/react/heldView.d.ts.map +1 -0
  45. package/dist/esm/review/react/heldView.js +22 -0
  46. package/dist/esm/review/react/heldView.js.map +1 -0
  47. package/dist/esm/review/react/index.d.ts +1 -0
  48. package/dist/esm/review/react/index.d.ts.map +1 -1
  49. package/dist/esm/review/react/index.js +1 -0
  50. package/dist/esm/review/react/index.js.map +1 -1
  51. package/dist/esm/review/react/useHeldSend.d.ts +30 -0
  52. package/dist/esm/review/react/useHeldSend.d.ts.map +1 -0
  53. package/dist/esm/review/react/useHeldSend.js +77 -0
  54. package/dist/esm/review/react/useHeldSend.js.map +1 -0
  55. package/dist/esm/review/react/useHeldWrite.d.ts +2 -14
  56. package/dist/esm/review/react/useHeldWrite.d.ts.map +1 -1
  57. package/dist/esm/review/react/useHeldWrite.js +3 -16
  58. package/dist/esm/review/react/useHeldWrite.js.map +1 -1
  59. package/dist/esm/review/tabState.d.ts +2 -0
  60. package/dist/esm/review/tabState.d.ts.map +1 -1
  61. package/dist/esm/review/tabState.js +2 -0
  62. package/dist/esm/review/tabState.js.map +1 -1
  63. package/dist/esm/review/writeHold.d.ts.map +1 -1
  64. package/dist/esm/review/writeHold.js +10 -3
  65. package/dist/esm/review/writeHold.js.map +1 -1
  66. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  67. package/dist/esm/review/writeRecovery.js +2 -0
  68. package/dist/esm/review/writeRecovery.js.map +1 -1
  69. package/package.json +1 -1
@@ -97,4 +97,56 @@ export function liquidityIntent({ chainId, pool, positions, }) {
97
97
  positions: canonicalIds(positions),
98
98
  });
99
99
  }
100
+ /** Redeeming shop items: the collection, the token id set and the holder. No terminal, payout token or minimum. */
101
+ export function redeemIntent({ chainId, project, hook, tokenIds, holder, }) {
102
+ return writeIntentKey("redeem-items", {
103
+ chainId,
104
+ project: id(project),
105
+ hook: intent.address(hook),
106
+ tokenIds: canonicalIds(tokenIds),
107
+ holder: intent.address(holder),
108
+ });
109
+ }
110
+ /** Paying out from a project's surplus allowance: the allowance line and beneficiary. No amount or minimum. */
111
+ export function allowanceIntent({ chainId, project, terminal, token, currency, beneficiary, }) {
112
+ return writeIntentKey("use-allowance", {
113
+ chainId,
114
+ project: id(project),
115
+ terminal: intent.address(terminal),
116
+ token: intent.address(token),
117
+ currency: id(currency),
118
+ beneficiary: intent.address(beneficiary),
119
+ });
120
+ }
121
+ /** Burning a holder's project tokens. No amount. */
122
+ export function burnIntent({ chainId, project, holder, }) {
123
+ return writeIntentKey("burn", {
124
+ chainId,
125
+ project: id(project),
126
+ holder: intent.address(holder),
127
+ });
128
+ }
129
+ /**
130
+ * Proposing one batch to a Safe: the Safe and its exact calls, in order. A
131
+ * generic batch has no coarser identity, so its calls are the user's choice.
132
+ */
133
+ export function safeBatchIntent({ chainId, safe, calls, }) {
134
+ return writeIntentKey("safe-batch", {
135
+ chainId,
136
+ safe: intent.address(safe),
137
+ calls: calls.map((call) => ({
138
+ to: intent.address(call.to),
139
+ data: intent.hex(call.data),
140
+ value: id(call.value ?? 0n),
141
+ })),
142
+ });
143
+ }
144
+ /** Syncing a bridge's accounting through one sucker. No fee. */
145
+ export function syncIntent({ chainId, sucker, account, }) {
146
+ return writeIntentKey("bridge-sync", {
147
+ chainId,
148
+ sucker: intent.address(sucker),
149
+ account: intent.address(account),
150
+ });
151
+ }
100
152
  //# sourceMappingURL=intents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"intents.js","sourceRoot":"","sources":["../../../src/review/intents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intents.js","sourceRoot":"","sources":["../../../src/review/intents.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AAI5E;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,KAAkB;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI;YACJ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;SACpD,CAAC,CACH,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,oCAAoC;AACpC,MAAM,EAAE,GAAG,CAAC,KAAS,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAW,CAAC;AAE1D;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAkB;IACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;IACnC,qCAAqC;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,OAAO,EACP,WAAW,GAKZ;IACC,OAAO,cAAc,CAAC,KAAK,EAAE;QAC3B,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;KACzC,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,MAAM,EACN,WAAW,GAMZ;IACC,OAAO,cAAc,CAAC,UAAU,EAAE;QAChC,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;KACzC,CAAC,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,GAIP;IACC,OAAO,cAAc,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,OAAO,EACP,MAAM,GAKP;IACC,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,GAMR;IACC,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;KACjC,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,EACE,IAAI,EACJ,KAAK,EACL,OAAO,GAC8D;IAEvE,OAAO,cAAc,CAAC,UAAU,EAAE;QAChC,MAAM;QACN,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;KACjC,CAAC,CAAC;AACL,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,OAAO,EACP,MAAM,GASP;IACC,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,IAAI,EACJ,SAAS,GAOV;IACC,OAAO,cAAc,CAAC,WAAW,EAAE;QACjC,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,MAAM,GASP;IACC,OAAO,cAAc,CAAC,cAAc,EAAE;QACpC,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,GASZ;IACC,OAAO,cAAc,CAAC,eAAe,EAAE;QACrC,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;KACzC,CAAC,CAAC;AACL,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,GAKP;IACC,OAAO,cAAc,CAAC,MAAM,EAAE;QAC5B,OAAO;QACP,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,IAAI,EACJ,KAAK,GASN;IACC,OAAO,cAAc,CAAC,YAAY,EAAE;QAClC,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,OAAO,GAKR;IACC,OAAO,cAAc,CAAC,aAAa,EAAE;QACnC,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type HeldWriteView, type HeldWriteViewController } from "../index.js";
2
+ /** The actions a shown held-write view offers, the one way both hooks show them. */
3
+ export type HeldViewActions = {
4
+ /** The exit the hold offers now, with its label; null when none. */
5
+ exitAction: {
6
+ label: string;
7
+ run: () => Promise<boolean>;
8
+ } | null;
9
+ /**
10
+ * On a success settled while away ("This went through while you were
11
+ * away."): the user's choice to send it again. Null otherwise.
12
+ */
13
+ sendAgainAction: {
14
+ label: string;
15
+ run: () => Promise<void>;
16
+ } | null;
17
+ };
18
+ export declare const IDLE: HeldWriteView;
19
+ export declare const none: () => () => void;
20
+ export declare const idle: () => HeldWriteView;
21
+ /** A value's identity for a memo key, wei amounts (bigints) included. */
22
+ export declare const keyOf: (value: unknown) => string;
23
+ /** The exit and send-again actions of what `view` shows. */
24
+ export declare function actionsOf(shown: HeldWriteView, view: HeldWriteViewController | undefined): HeldViewActions;
25
+ //# sourceMappingURL=heldView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heldView.d.ts","sourceRoot":"","sources":["../../../../src/review/react/heldView.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AAErB,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG;IAC5B,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;CACrE,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,aAMlB,CAAC;AACF,eAAO,MAAM,IAAI,kBAAiB,CAAC;AACnC,eAAO,MAAM,IAAI,qBAAa,CAAC;AAC/B,yEAAyE;AACzE,eAAO,MAAM,KAAK,GAAI,OAAO,OAAO,WAGjC,CAAC;AAEJ,4DAA4D;AAC5D,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,eAAe,CASjB"}
@@ -0,0 +1,22 @@
1
+ import { HELD_EXIT_LABEL, HELD_SEND_AGAIN_LABEL, } from "../index.js";
2
+ export const IDLE = {
3
+ phase: "clear",
4
+ state: null,
5
+ line: null,
6
+ exit: false,
7
+ adopting: false,
8
+ };
9
+ export const none = () => () => { };
10
+ export const idle = () => IDLE;
11
+ /** A value's identity for a memo key, wei amounts (bigints) included. */
12
+ export const keyOf = (value) => JSON.stringify(value, (_, field) => typeof field === "bigint" ? `${field}n` : field);
13
+ /** The exit and send-again actions of what `view` shows. */
14
+ export function actionsOf(shown, view) {
15
+ return {
16
+ exitAction: shown.exit && view ? { label: HELD_EXIT_LABEL, run: view.exit } : null,
17
+ sendAgainAction: shown.phase === "succeeded" && view
18
+ ? { label: HELD_SEND_AGAIN_LABEL, run: view.acknowledge }
19
+ : null,
20
+ };
21
+ }
22
+ //# sourceMappingURL=heldView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heldView.js","sourceRoot":"","sources":["../../../../src/review/react/heldView.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,aAAa,CAAC;AAarB,MAAM,CAAC,MAAM,IAAI,GAAkB;IACjC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,KAAK;CAChB,CAAC;AACF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AAC/B,yEAAyE;AACzE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,EAAE,CACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACjC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAChD,CAAC;AAEJ,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CACvB,KAAoB,EACpB,IAAyC;IAEzC,OAAO;QACL,UAAU,EACR,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACxE,eAAe,EACb,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI;YACjC,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE;YACzD,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC"}
@@ -2,4 +2,5 @@ export * from "./HeldWritesNotice.js";
2
2
  export * from "./useHeldWrite.js";
3
3
  export * from "./useHeldWrites.js";
4
4
  export * from "./useSavedAttempt.js";
5
+ export * from "./useHeldSend.js";
5
6
  //# 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"}
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"}
@@ -2,4 +2,5 @@ export * from "./HeldWritesNotice.js";
2
2
  export * from "./useHeldWrite.js";
3
3
  export * from "./useHeldWrites.js";
4
4
  export * from "./useSavedAttempt.js";
5
+ export * from "./useHeldSend.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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;AACrC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type HeldWriteView, type WriteHoldGate, type WriteHoldHandle } from "../index.js";
2
+ import type { Hex } from "viem";
3
+ import { type HeldViewActions } from "./heldView.js";
4
+ import type { UseHeldWriteOptions } from "./useHeldWrite.js";
5
+ /** One send's hold: what useHeldWrite takes up front, known only at send time. */
6
+ export type HeldSendInput = Pick<UseHeldWriteOptions, "chainId" | "account" | "safe" | "namespace" | "legacy"> & {
7
+ /** The reviewed call this send sends. */
8
+ call: NonNullable<UseHeldWriteOptions["call"]>;
9
+ };
10
+ export type UseHeldSendOptions = Pick<UseHeldWriteOptions, "hold" | "client" | "pollMs" | "onSettled" | "onReleased"> & {
11
+ /** False when the app follows the transaction or proposal itself. */
12
+ follow?: boolean;
13
+ };
14
+ export type UseHeldSendResult = HeldWriteView & HeldViewActions & {
15
+ /** Send `call` under its hold: its intent's (or call's) view, made or reused, shows from now. */
16
+ send: (input: HeldSendInput, run: (gate: WriteHoldGate) => Promise<Hex>) => Promise<Hex>;
17
+ /** Ask the chain now about the current send. */
18
+ check: () => Promise<HeldWriteView>;
19
+ /** The current send's hold handle. */
20
+ handle: WriteHoldHandle | undefined;
21
+ };
22
+ /**
23
+ * Held sends whose call is known only at send time (a generic contract write
24
+ * or Safe transaction): each send runs through the held-write view of its
25
+ * intent or exact call, made once and reused, and the result shows the
26
+ * current send's line, notice and exit as {@link useHeldWrite} does. Only
27
+ * the current send's view runs and reaches the app's callbacks.
28
+ */
29
+ export declare function useHeldSend(options: UseHeldSendOptions): UseHeldSendResult;
30
+ //# sourceMappingURL=useHeldSend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldSend.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useHeldSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,mBAAmB,EACnB,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CACxD,GAAG;IACF,yCAAyC;IACzC,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,mBAAmB,EACnB,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAC1D,GAAG;IACF,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAC3C,eAAe,GAAG;IAChB,iGAAiG;IACjG,IAAI,EAAE,CACJ,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,KACvC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,gDAAgD;IAChD,KAAK,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,sCAAsC;IACtC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC,CAAC;AAIJ;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CA0F1E"}
@@ -0,0 +1,77 @@
1
+ import { createHeldWriteView, } from "../index.js";
2
+ import { useEffect, useMemo, useRef, useState, useSyncExternalStore, } from "react";
3
+ import { actionsOf, IDLE, idle, keyOf, none, } from "./heldView.js";
4
+ /**
5
+ * Held sends whose call is known only at send time (a generic contract write
6
+ * or Safe transaction): each send runs through the held-write view of its
7
+ * intent or exact call, made once and reused, and the result shows the
8
+ * current send's line, notice and exit as {@link useHeldWrite} does. Only
9
+ * the current send's view runs and reaches the app's callbacks.
10
+ */
11
+ export function useHeldSend(options) {
12
+ const { hold, client, pollMs, follow } = options;
13
+ const latest = useRef(options);
14
+ latest.current = options;
15
+ /** This hold and client's views, by their send's identity. */
16
+ const views = useMemo(() => new Map(), [hold, client, pollMs, follow]);
17
+ const [current, setCurrent] = useState();
18
+ // A view of an earlier hold or client shows nothing.
19
+ const held = current?.views === views ? current.held : undefined;
20
+ const view = held?.view;
21
+ /**
22
+ * The one view running, started at its send: a replaced view is stopped
23
+ * then, so only the current send's view ever tells the app anything, and
24
+ * a success it never told stays pending for the gate.
25
+ */
26
+ const running = useRef(undefined);
27
+ useEffect(() => () => {
28
+ if (running.current?.views !== views)
29
+ return;
30
+ running.current.stop();
31
+ running.current = undefined;
32
+ }, [views]);
33
+ const shown = useSyncExternalStore(view?.subscribe ?? none, view?.get ?? idle, view?.get ?? idle);
34
+ return {
35
+ ...shown,
36
+ ...actionsOf(shown, view),
37
+ send: (input, run) => {
38
+ if (!client)
39
+ return Promise.reject(new Error("Connect a wallet and build the call before sending."));
40
+ const { chainId, account, safe = false, namespace, legacy, call } = input;
41
+ const key = keyOf([
42
+ chainId,
43
+ account.toLowerCase(),
44
+ safe,
45
+ namespace ?? null,
46
+ call,
47
+ legacy ?? null,
48
+ ]);
49
+ let next = views.get(key);
50
+ if (!next) {
51
+ const handle = hold.open({ chainId, account, safe, call, ...(namespace ? { namespace } : {}) }, legacy ? { legacy } : undefined);
52
+ const created = createHeldWriteView(handle, {
53
+ client,
54
+ pollMs,
55
+ ...(follow === undefined ? {} : { follow }),
56
+ // A stopped view tells no settlement; a late release is dropped here.
57
+ onSettled: (settled, receipt) => latest.current.onSettled?.(settled, receipt),
58
+ onReleased: (by) => {
59
+ if (running.current?.view === created)
60
+ latest.current.onReleased?.(by);
61
+ },
62
+ });
63
+ next = { handle, view: created };
64
+ views.set(key, next);
65
+ }
66
+ if (running.current?.view !== next.view) {
67
+ running.current?.stop();
68
+ running.current = { views, view: next.view, stop: next.view.start() };
69
+ }
70
+ setCurrent({ views, held: next });
71
+ return next.view.send(run);
72
+ },
73
+ check: () => (view ? view.check() : Promise.resolve(IDLE)),
74
+ handle: held?.handle,
75
+ };
76
+ }
77
+ //# sourceMappingURL=useHeldSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeldSend.js","sourceRoot":"","sources":["../../../../src/review/react/useHeldSend.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type HeldWriteEvidence, type HeldWriteView, type ReviewedWriteRecoveryInput, type WriteHold, type WriteHoldClient, type WriteHoldGate, type WriteHoldHandle, type WriteHoldSettled, type WriteHoldState } from "../index.js";
2
2
  import type { Address, Hex, TransactionReceipt } from "viem";
3
+ import { type HeldViewActions } from "./heldView.js";
3
4
  export type UseHeldWriteOptions = {
4
5
  /** The app's one write hold controller (createWriteHold()). */
5
6
  hold: WriteHold;
@@ -28,20 +29,7 @@ export type UseHeldWriteOptions = {
28
29
  /** How often a held write is asked again (15 s to 60 s, 30 s by default). */
29
30
  pollMs?: number;
30
31
  };
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;
32
+ export type UseHeldWriteResult = HeldWriteView & HeldViewActions & {
45
33
  /** Send under the hold, once any adoption is done. */
46
34
  send: (run: (gate: WriteHoldGate) => Promise<Hex>) => Promise<Hex>;
47
35
  /** Ask the chain now. */
@@ -1 +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"}
1
+ {"version":3,"file":"useHeldWrite.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,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;AAC7D,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAQvB,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,GAC5C,eAAe,GAAG;IAChB,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;AAEJ;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CA2F7E"}
@@ -1,21 +1,11 @@
1
- import { createHeldWriteView, HELD_EXIT_LABEL, HELD_SEND_AGAIN_LABEL, } from "../index.js";
1
+ import { createHeldWriteView, } from "../index.js";
2
2
  import { useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
+ import { actionsOf, IDLE, idle, keyOf, none, } from "./heldView.js";
3
4
  /** A call stand-in for a hold found by its intent alone, before any call is built. */
4
5
  const NO_CALL = {
5
6
  to: "0x0000000000000000000000000000000000000000",
6
7
  data: "0x",
7
8
  };
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
9
  /**
20
10
  * One held write, the one way every app runs it: its send under the hold,
21
11
  * the watch, the shared follower of its transaction or Safe proposal, its
@@ -85,10 +75,7 @@ export function useHeldWrite(options) {
85
75
  const shown = useSyncExternalStore(view?.subscribe ?? none, view?.get ?? idle, view?.get ?? idle);
86
76
  return {
87
77
  ...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,
78
+ ...actionsOf(shown, view),
92
79
  send: (run) => {
93
80
  if (!view)
94
81
  return Promise.reject(new Error("Connect a wallet and build the call before sending."));
@@ -1 +1 @@
1
- {"version":3,"file":"useHeldWrite.js","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHeldWrite.js","sourceRoot":"","sources":["../../../../src/review/react/useHeldWrite.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare const TAB: {
11
11
  readonly queues: symbol;
12
12
  /** What each tab memory last saw in durable storage. */
13
13
  readonly seen: symbol;
14
+ /** Every write hold controller's subscribers, by the tab memory their storage shares. */
15
+ readonly listeners: symbol;
14
16
  /** The stop of every write hold controller with a follower or listener running. */
15
17
  readonly holds: symbol;
16
18
  /** The stop of every running Safe Relayr watch. */
@@ -1 +1 @@
1
- {"version":3,"file":"tabState.d.ts","sourceRoot":"","sources":["../../../src/review/tabState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,GAAG;IACd,2DAA2D;;IAE3D,+CAA+C;;IAE/C,wDAAwD;;IAExD,mFAAmF;;IAEnF,mDAAmD;;IAEnD,mDAAmD;;CAE3C,CAAC;AAEX,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAG1D"}
1
+ {"version":3,"file":"tabState.d.ts","sourceRoot":"","sources":["../../../src/review/tabState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,GAAG;IACd,2DAA2D;;IAE3D,+CAA+C;;IAE/C,wDAAwD;;IAExD,yFAAyF;;IAEzF,mFAAmF;;IAEnF,mDAAmD;;IAEnD,mDAAmD;;CAE3C,CAAC;AAEX,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAG1D"}
@@ -11,6 +11,8 @@ export const TAB = {
11
11
  queues: Symbol.for("nana-sdk:write-lock-queues"),
12
12
  /** What each tab memory last saw in durable storage. */
13
13
  seen: Symbol.for("nana-sdk:held-writes-seen"),
14
+ /** Every write hold controller's subscribers, by the tab memory their storage shares. */
15
+ listeners: Symbol.for("nana-sdk:write-hold-listeners"),
14
16
  /** The stop of every write hold controller with a follower or listener running. */
15
17
  holds: Symbol.for("nana-sdk:write-hold-stops"),
16
18
  /** The stop of every running Safe Relayr watch. */
@@ -1 +1 @@
1
- {"version":3,"file":"tabState.js","sourceRoot":"","sources":["../../../src/review/tabState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC1C,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAChD,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC7C,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC9C,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;IACnD,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;CAC3C,CAAC;AAEX,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAI,GAAW,EAAE,IAAa;IACrD,MAAM,GAAG,GAAG,UAAqC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAM,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"tabState.js","sourceRoot":"","sources":["../../../src/review/tabState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC1C,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAChD,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC7C,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC;IACtD,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC9C,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;IACnD,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;CAC3C,CAAC;AAEX,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAI,GAAW,EAAE,IAAa;IACrD,MAAM,GAAG,GAAG,UAAqC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAM,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"writeHold.d.ts","sourceRoot":"","sources":["../../../src/review/writeHold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeHold.d.ts","sourceRoot":"","sources":["../../../src/review/writeHold.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ function sentIsCall(sent, hash, record) {
16
16
  }
17
17
  /** The stop of every controller with a follower or tab listener running, for the test-only reset. */
18
18
  const liveHolds = tabShared(TAB.holds, () => new Set());
19
+ /** This tab's subscribers by the tab memory of their storage: a change through any handle reaches them all. */
20
+ const tabListeners = tabShared(TAB.listeners, () => new WeakMap());
19
21
  /**
20
22
  * A state read without the chain (peek, a replay, another tab's change, a
21
23
  * send's progress): its status and line, never the exit. Only the gate in
@@ -217,7 +219,13 @@ export function createWriteHold(options = {}) {
217
219
  };
218
220
  const interval = options.settle?.intervalMs ?? SETTLE_POLL_MS;
219
221
  const attempts = options.settle?.attempts ?? SETTLE_POLL_ATTEMPTS;
220
- const listeners = new Map();
222
+ // Every controller over this tab's storage shares one registry, so a
223
+ // receipt or settlement on any handle reaches every view at once.
224
+ const scope = storage[TAB.memory] ?? storage;
225
+ let shared = tabListeners.get(scope);
226
+ if (!shared)
227
+ tabListeners.set(scope, (shared = { listeners: new Map(), latest: new Map() }));
228
+ const { listeners, latest } = shared;
221
229
  const peekers = new Map();
222
230
  const timers = new Map();
223
231
  let onStorage;
@@ -232,8 +240,7 @@ export function createWriteHold(options = {}) {
232
240
  ? { ...rest, notice: WRITE_HOLD_IN_TAB_LINE }
233
241
  : rest;
234
242
  }
235
- /** The latest state emitted for each call, replayed to a late subscriber. */
236
- const latest = new Map();
243
+ /** Tell every subscriber of `key` in this tab; the latest is replayed to a late one. */
237
244
  function emit(key, state) {
238
245
  latest.set(key, state);
239
246
  for (const listener of listeners.get(key) ?? [])