@bananapus/nana-sdk-core 4.0.0 → 5.0.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 (138) hide show
  1. package/bin/wallet-check.mjs +7 -1
  2. package/dist/cjs/review/confirm.d.ts +4 -0
  3. package/dist/cjs/review/confirm.d.ts.map +1 -1
  4. package/dist/cjs/review/confirm.js +14 -3
  5. package/dist/cjs/review/confirm.js.map +1 -1
  6. package/dist/cjs/review/contractWrite.d.ts.map +1 -1
  7. package/dist/cjs/review/contractWrite.js +2 -1
  8. package/dist/cjs/review/contractWrite.js.map +1 -1
  9. package/dist/cjs/review/heldWrite.d.ts +4 -0
  10. package/dist/cjs/review/heldWrite.d.ts.map +1 -1
  11. package/dist/cjs/review/heldWrite.js +31 -28
  12. package/dist/cjs/review/heldWrite.js.map +1 -1
  13. package/dist/cjs/review/index.d.ts +1 -1
  14. package/dist/cjs/review/index.d.ts.map +1 -1
  15. package/dist/cjs/review/index.js +6 -2
  16. package/dist/cjs/review/index.js.map +1 -1
  17. package/dist/cjs/review/lineError.d.ts +38 -0
  18. package/dist/cjs/review/lineError.d.ts.map +1 -1
  19. package/dist/cjs/review/lineError.js +35 -1
  20. package/dist/cjs/review/lineError.js.map +1 -1
  21. package/dist/cjs/review/plan.d.ts +0 -2
  22. package/dist/cjs/review/plan.d.ts.map +1 -1
  23. package/dist/cjs/review/plan.js +0 -6
  24. package/dist/cjs/review/plan.js.map +1 -1
  25. package/dist/cjs/review/react/useHeldSend.js +3 -4
  26. package/dist/cjs/review/react/useHeldSend.js.map +1 -1
  27. package/dist/cjs/review/react/useHeldWrite.d.ts.map +1 -1
  28. package/dist/cjs/review/react/useHeldWrite.js +2 -1
  29. package/dist/cjs/review/react/useHeldWrite.js.map +1 -1
  30. package/dist/cjs/review/react/useReviewedRun.d.ts +29 -3
  31. package/dist/cjs/review/react/useReviewedRun.d.ts.map +1 -1
  32. package/dist/cjs/review/react/useReviewedRun.js +219 -37
  33. package/dist/cjs/review/react/useReviewedRun.js.map +1 -1
  34. package/dist/cjs/review/receipt.d.ts +33 -0
  35. package/dist/cjs/review/receipt.d.ts.map +1 -1
  36. package/dist/cjs/review/receipt.js +69 -0
  37. package/dist/cjs/review/receipt.js.map +1 -1
  38. package/dist/cjs/review/relayr.d.ts.map +1 -1
  39. package/dist/cjs/review/relayr.js +1 -0
  40. package/dist/cjs/review/relayr.js.map +1 -1
  41. package/dist/cjs/review/relayrSend.d.ts +3 -32
  42. package/dist/cjs/review/relayrSend.d.ts.map +1 -1
  43. package/dist/cjs/review/relayrSend.js +78 -226
  44. package/dist/cjs/review/relayrSend.js.map +1 -1
  45. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  46. package/dist/cjs/review/safeRelayr.js +4 -8
  47. package/dist/cjs/review/safeRelayr.js.map +1 -1
  48. package/dist/cjs/review/safeSend.js +3 -5
  49. package/dist/cjs/review/safeSend.js.map +1 -1
  50. package/dist/cjs/review/send.d.ts +38 -7
  51. package/dist/cjs/review/send.d.ts.map +1 -1
  52. package/dist/cjs/review/send.js +267 -121
  53. package/dist/cjs/review/send.js.map +1 -1
  54. package/dist/cjs/review/sign.d.ts +6 -4
  55. package/dist/cjs/review/sign.d.ts.map +1 -1
  56. package/dist/cjs/review/sign.js +22 -18
  57. package/dist/cjs/review/sign.js.map +1 -1
  58. package/dist/cjs/review/wallet.d.ts +18 -2
  59. package/dist/cjs/review/wallet.d.ts.map +1 -1
  60. package/dist/cjs/review/wallet.js +127 -50
  61. package/dist/cjs/review/wallet.js.map +1 -1
  62. package/dist/cjs/review/writeHold.d.ts +38 -1
  63. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  64. package/dist/cjs/review/writeHold.js +37 -5
  65. package/dist/cjs/review/writeHold.js.map +1 -1
  66. package/dist/cjs/review/writeRecovery.d.ts +11 -0
  67. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  68. package/dist/cjs/review/writeRecovery.js +38 -5
  69. package/dist/cjs/review/writeRecovery.js.map +1 -1
  70. package/dist/esm/review/confirm.d.ts +4 -0
  71. package/dist/esm/review/confirm.d.ts.map +1 -1
  72. package/dist/esm/review/confirm.js +13 -3
  73. package/dist/esm/review/confirm.js.map +1 -1
  74. package/dist/esm/review/contractWrite.d.ts.map +1 -1
  75. package/dist/esm/review/contractWrite.js +3 -2
  76. package/dist/esm/review/contractWrite.js.map +1 -1
  77. package/dist/esm/review/heldWrite.d.ts +4 -0
  78. package/dist/esm/review/heldWrite.d.ts.map +1 -1
  79. package/dist/esm/review/heldWrite.js +30 -27
  80. package/dist/esm/review/heldWrite.js.map +1 -1
  81. package/dist/esm/review/index.d.ts +1 -1
  82. package/dist/esm/review/index.d.ts.map +1 -1
  83. package/dist/esm/review/index.js +1 -1
  84. package/dist/esm/review/index.js.map +1 -1
  85. package/dist/esm/review/lineError.d.ts +38 -0
  86. package/dist/esm/review/lineError.d.ts.map +1 -1
  87. package/dist/esm/review/lineError.js +33 -1
  88. package/dist/esm/review/lineError.js.map +1 -1
  89. package/dist/esm/review/plan.d.ts +0 -2
  90. package/dist/esm/review/plan.d.ts.map +1 -1
  91. package/dist/esm/review/plan.js +0 -5
  92. package/dist/esm/review/plan.js.map +1 -1
  93. package/dist/esm/review/react/useHeldSend.js +3 -4
  94. package/dist/esm/review/react/useHeldSend.js.map +1 -1
  95. package/dist/esm/review/react/useHeldWrite.d.ts.map +1 -1
  96. package/dist/esm/review/react/useHeldWrite.js +2 -1
  97. package/dist/esm/review/react/useHeldWrite.js.map +1 -1
  98. package/dist/esm/review/react/useReviewedRun.d.ts +29 -3
  99. package/dist/esm/review/react/useReviewedRun.d.ts.map +1 -1
  100. package/dist/esm/review/react/useReviewedRun.js +220 -38
  101. package/dist/esm/review/react/useReviewedRun.js.map +1 -1
  102. package/dist/esm/review/receipt.d.ts +33 -0
  103. package/dist/esm/review/receipt.d.ts.map +1 -1
  104. package/dist/esm/review/receipt.js +66 -0
  105. package/dist/esm/review/receipt.js.map +1 -1
  106. package/dist/esm/review/relayr.d.ts.map +1 -1
  107. package/dist/esm/review/relayr.js +2 -1
  108. package/dist/esm/review/relayr.js.map +1 -1
  109. package/dist/esm/review/relayrSend.d.ts +3 -32
  110. package/dist/esm/review/relayrSend.d.ts.map +1 -1
  111. package/dist/esm/review/relayrSend.js +85 -232
  112. package/dist/esm/review/relayrSend.js.map +1 -1
  113. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  114. package/dist/esm/review/safeRelayr.js +4 -8
  115. package/dist/esm/review/safeRelayr.js.map +1 -1
  116. package/dist/esm/review/safeSend.js +4 -6
  117. package/dist/esm/review/safeSend.js.map +1 -1
  118. package/dist/esm/review/send.d.ts +38 -7
  119. package/dist/esm/review/send.d.ts.map +1 -1
  120. package/dist/esm/review/send.js +270 -125
  121. package/dist/esm/review/send.js.map +1 -1
  122. package/dist/esm/review/sign.d.ts +6 -4
  123. package/dist/esm/review/sign.d.ts.map +1 -1
  124. package/dist/esm/review/sign.js +24 -20
  125. package/dist/esm/review/sign.js.map +1 -1
  126. package/dist/esm/review/wallet.d.ts +18 -2
  127. package/dist/esm/review/wallet.d.ts.map +1 -1
  128. package/dist/esm/review/wallet.js +128 -51
  129. package/dist/esm/review/wallet.js.map +1 -1
  130. package/dist/esm/review/writeHold.d.ts +38 -1
  131. package/dist/esm/review/writeHold.d.ts.map +1 -1
  132. package/dist/esm/review/writeHold.js +37 -6
  133. package/dist/esm/review/writeHold.js.map +1 -1
  134. package/dist/esm/review/writeRecovery.d.ts +11 -0
  135. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  136. package/dist/esm/review/writeRecovery.js +38 -5
  137. package/dist/esm/review/writeRecovery.js.map +1 -1
  138. package/package.json +1 -1
@@ -6,6 +6,7 @@ exports.viemWalletAdapter = viemWalletAdapter;
6
6
  exports.unsupportedWalletRequest = unsupportedWalletRequest;
7
7
  exports.selfReviewingAdapter = selfReviewingAdapter;
8
8
  const lineError_js_1 = require("./lineError.js");
9
+ const viem_1 = require("viem");
9
10
  const pause_js_1 = require("../pause.js");
10
11
  /** How long a wallet's `ready` may take before nothing is sent. */
11
12
  const WALLET_READY_MS = 10_000;
@@ -27,35 +28,122 @@ async function walletReady(adapter) {
27
28
  });
28
29
  }
29
30
  }
31
+ const CONNECTION_CHANGED = "Wallet connection changed. Review the transaction again.";
32
+ const NETWORK_CHANGED = "Your wallet changed networks. Review again.";
33
+ const UNREACHABLE = "Your wallet could not be reached. Nothing was sent; try again.";
34
+ const RUN_ENDED = "This action was closed. Nothing more was sent.";
35
+ /** The provider requests that send or sign: each is checked again as it is forwarded. */
36
+ const DISPATCHED = new Set([
37
+ "eth_sendTransaction",
38
+ "wallet_sendTransaction",
39
+ "eth_sendRawTransaction",
40
+ "wallet_sendCalls",
41
+ "eth_signTypedData_v4",
42
+ "personal_sign",
43
+ ]);
30
44
  /**
31
- * The connected account and the wallet client. The account, chain and Safe
32
- * mode are read before the client is fetched and again after, so a wallet
33
- * that switched in between is refused instead of signing in the new one.
45
+ * Calls `invoke` with a client over the connected wallet whose every sending
46
+ * or signing request first checks, synchronously, that the account, chain,
47
+ * Safe mode, connector and the site's `check` read as they did when asked:
48
+ * viem awaits its own reads before it sends, so no earlier check is the last.
49
+ * A refusal before any such request went out is a {@link WalletNotInvokedError}.
50
+ * A connector that changes while the client loads is fetched again, three
51
+ * times at most.
34
52
  */
35
- async function connection(options) {
36
- const asked = options.account();
37
- if (!asked)
38
- throw new lineError_js_1.ReviewLineError("Connect a wallet first.");
53
+ async function withConnection(options, invoke, signal) {
54
+ const account = options.account();
55
+ if (!account)
56
+ throw new lineError_js_1.WalletNotInvokedError("Connect a wallet first.");
39
57
  const chainId = options.chainId();
40
58
  const safe = options.isSafe();
41
- const client = await options.walletClient();
42
- if (options.account()?.toLowerCase() !== asked.toLowerCase()) {
43
- throw new lineError_js_1.ReviewLineError("The connected account changed. Review again.");
44
- }
45
- if (options.chainId() !== chainId || options.isSafe() !== safe) {
46
- throw new lineError_js_1.ReviewLineError("Wallet connection changed. Review the transaction again.");
59
+ const current = () => {
60
+ if (signal?.aborted)
61
+ throw new lineError_js_1.WalletNotInvokedError(RUN_ENDED);
62
+ if (options.account()?.toLowerCase() !== account.toLowerCase()) {
63
+ throw new lineError_js_1.WalletNotInvokedError("The connected account changed. Review again.");
64
+ }
65
+ if (options.chainId() !== chainId || options.isSafe() !== safe) {
66
+ throw new lineError_js_1.WalletNotInvokedError(CONNECTION_CHANGED);
67
+ }
68
+ try {
69
+ options.check?.();
70
+ }
71
+ catch (error) {
72
+ throw Object.assign(new lineError_js_1.WalletNotInvokedError(error instanceof Error ? error.message : CONNECTION_CHANGED), { cause: error });
73
+ }
74
+ return options.connector?.();
75
+ };
76
+ let wallet;
77
+ let connector;
78
+ for (let attempt = 0; attempt < 3 && !wallet; attempt += 1) {
79
+ connector = current();
80
+ let fetched;
81
+ try {
82
+ fetched = await options.walletClient();
83
+ }
84
+ catch (error) {
85
+ throw Object.assign(new lineError_js_1.WalletNotInvokedError(UNREACHABLE), {
86
+ cause: error,
87
+ });
88
+ }
89
+ if (current() === connector)
90
+ wallet = fetched;
47
91
  }
48
- return { account: asked, client, safe };
49
- }
50
- /** Refuses a signature once the account or Safe mode has changed since `connection` read them. */
51
- function unchanged(options, { account, safe }) {
52
- if (options.account()?.toLowerCase() !== account.toLowerCase()) {
53
- throw new lineError_js_1.ReviewLineError("The connected account changed. Review again.");
92
+ if (!wallet)
93
+ throw new lineError_js_1.WalletNotInvokedError(CONNECTION_CHANGED);
94
+ // A composite transport (viem's fallback) can pass one send to a second
95
+ // provider, so a later 4001 would not prove the first never sent it.
96
+ if (!ONE_PROVIDER.has(wallet.transport.type))
97
+ throw new lineError_js_1.WalletNotInvokedError(COMPOSITE);
98
+ const inner = wallet;
99
+ let forwarded = false;
100
+ let refusal;
101
+ const client = (0, viem_1.createWalletClient)({
102
+ account: inner.account,
103
+ chain: inner.chain,
104
+ transport: (0, viem_1.custom)({
105
+ request: (args) => {
106
+ const forwardedNow = DISPATCHED.has(args.method);
107
+ if (forwardedNow) {
108
+ try {
109
+ if (current() !== connector)
110
+ throw new lineError_js_1.WalletNotInvokedError(CONNECTION_CHANGED);
111
+ }
112
+ catch (error) {
113
+ // Unsent only while none of this call's requests went out.
114
+ if (forwarded)
115
+ return Promise.reject(new lineError_js_1.ReviewLineError(CONNECTION_CHANGED));
116
+ refusal = error;
117
+ return Promise.reject(error);
118
+ }
119
+ forwarded = true;
120
+ }
121
+ // A send or signature reaches the wallet once, never retried past this check.
122
+ return forwardedNow
123
+ ? inner.request(args, { retryCount: 0 })
124
+ : inner.request(args);
125
+ },
126
+ }, { retryCount: 0 }),
127
+ });
128
+ try {
129
+ return await invoke({ account, client });
54
130
  }
55
- if (options.isSafe() !== safe) {
56
- throw new lineError_js_1.ReviewLineError("Wallet connection changed. Review the transaction again.");
131
+ catch (error) {
132
+ // viem wraps what its transport threw; the refusal is this one, by identity.
133
+ if (refusal)
134
+ throw refusal;
135
+ // viem failed before asking the wallet anything (a chain read, another chain).
136
+ if (!forwarded)
137
+ throw Object.assign(new lineError_js_1.WalletNotInvokedError(error instanceof viem_1.BaseError &&
138
+ error.walk((e) => e instanceof viem_1.ChainMismatchError)
139
+ ? NETWORK_CHANGED
140
+ : UNREACHABLE), { cause: error });
141
+ throw error;
57
142
  }
58
143
  }
144
+ /** viem transports that hand each request to exactly one provider. */
145
+ const ONE_PROVIDER = new Set(["custom", "http", "webSocket", "ipc"]);
146
+ const COMPOSITE = "This wallet connection uses more than one provider. Connect through one wallet provider; nothing was sent.";
59
147
  /**
60
148
  * The chain a write is sent on: the client's own when it is that chain, so
61
149
  * its formatters apply. viem checks the wallet is on it before sending.
@@ -87,43 +175,31 @@ function viemWalletAdapter(options) {
87
175
  switchChain: async (chainId) => {
88
176
  await options.switchChain(chainId);
89
177
  },
90
- async sendTransaction({ chainId, to, data, value, gas }) {
91
- const { account, client } = await connection(options);
92
- return client.sendTransaction({
93
- account,
94
- chain: chainOf(client, chainId),
95
- to,
96
- data,
97
- value,
98
- ...(gas === undefined ? {} : { gas }),
99
- });
100
- },
101
- async signTypedData(typedData) {
102
- const connected = await connection(options);
103
- unchanged(options, connected);
104
- const { account, client } = connected;
178
+ sendTransaction: ({ chainId, to, data, value, gas, signal }) => withConnection(options, ({ account, client }) => client.sendTransaction({
179
+ account,
180
+ chain: chainOf(client, chainId),
181
+ to,
182
+ data,
183
+ value,
184
+ ...(gas === undefined ? {} : { gas }),
185
+ }), signal),
186
+ signTypedData: async (typedData) => {
105
187
  // viem does not check the wallet's chain against the domain's.
106
188
  const chainId = typedData.domain?.chainId;
107
189
  if (chainId !== undefined && options.chainId() !== Number(chainId)) {
108
- throw new lineError_js_1.ReviewLineError("Your wallet changed networks. Review again.");
190
+ throw new lineError_js_1.WalletNotInvokedError(NETWORK_CHANGED);
109
191
  }
110
- return client.signTypedData({ ...typedData, account });
111
- },
112
- async signMessage(message) {
113
- const connected = await connection(options);
114
- unchanged(options, connected);
115
- const { account, client } = connected;
116
- return client.signMessage({ account, message });
192
+ return withConnection(options, ({ account, client }) => client.signTypedData({ ...typedData, account }));
117
193
  },
118
- async sendCalls(chainId, calls) {
119
- const { account, client } = await connection(options);
194
+ signMessage: (message) => withConnection(options, ({ account, client }) => client.signMessage({ account, message })),
195
+ sendCalls: (chainId, calls) => withConnection(options, async ({ account, client }) => {
120
196
  const { id } = await client.sendCalls({
121
197
  account,
122
198
  chain: chainOf(client, chainId),
123
199
  calls: calls.map(({ to, data, value }) => ({ to, data, value })),
124
200
  });
125
201
  return id;
126
- },
202
+ }),
127
203
  };
128
204
  }
129
205
  /** EIP-1193 4200, as Signa's connector refuses a request it does not take. */
@@ -134,7 +210,8 @@ function unsupportedWalletRequest() {
134
210
  }
135
211
  /**
136
212
  * A {@link WalletAdapter} for a wallet that reviews on its own page (Signa).
137
- * It takes raw calls through `submit` only; every other method is refused
213
+ * It takes raw calls through `submit`, and raw typed data or text through
214
+ * `signTypedData` and `signMessage` when given; anything else is refused
138
215
  * with EIP-1193 4200.
139
216
  */
140
217
  function selfReviewingAdapter(options) {
@@ -149,8 +226,8 @@ function selfReviewingAdapter(options) {
149
226
  isSafe: refuse,
150
227
  switchChain: reject,
151
228
  sendTransaction: reject,
152
- signTypedData: reject,
153
- signMessage: reject,
229
+ signTypedData: options.signTypedData ?? reject,
230
+ signMessage: options.signMessage ?? reject,
154
231
  submitToReviewer: (request) => options.submit(request),
155
232
  };
156
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/review/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/review/wallet.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,17 @@ export type UnacknowledgedSuccess = {
14
14
  export type WriteHoldClient = Pick<PublicClient, "getBlock" | "getBlockNumber" | "getChainId" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "request">;
15
15
  /** How a held write ended, when the hold saw it end. */
16
16
  export type WriteHoldSettled =
17
- /** Its verified receipt in a canonical block (a Safe failure only once final); `acknowledged` once the user saw it. */
17
+ /**
18
+ * Its verified receipt in a canonical block (a Safe failure only once
19
+ * final), `blockHash` that block's (none when a finalized log proved it);
20
+ * `safe` when it is a Safe's execution, whose failure is the Safe's own
21
+ * (its outer transaction may succeed); `acknowledged` once the user saw it.
22
+ */
18
23
  {
19
24
  result: "success" | "failed";
20
25
  hash: Hex;
26
+ blockHash?: Hex;
27
+ safe?: true;
21
28
  acknowledged?: true;
22
29
  }
23
30
  /** A Safe proposal's expiry before it ran is proven. */
@@ -136,6 +143,12 @@ export declare class WriteHeldError extends ReviewLineError {
136
143
  readonly name = "WriteHeldError";
137
144
  constructor(state: WriteHeldState);
138
145
  }
146
+ /** A run refused while the action's last success is unacknowledged; "Send it again" acknowledges `success`. */
147
+ export declare class WriteHoldUnacknowledgedSuccessError extends ReviewLineError {
148
+ readonly success: UnacknowledgedSuccess;
149
+ readonly name = "WriteHoldUnacknowledgedSuccessError";
150
+ constructor(success: UnacknowledgedSuccess);
151
+ }
139
152
  /** The account's nonce couldn't be read, so the wallet never opened. */
140
153
  export declare class WriteHoldNonceError extends ReviewLineError {
141
154
  readonly cause: unknown;
@@ -263,6 +276,14 @@ export declare function createWriteHold(options?: {
263
276
  result: "success" | "failed";
264
277
  hash: Hex;
265
278
  }): Promise<WriteHoldState>;
279
+ /**
280
+ * Claim the one `onConfirmed` notice of the settlement `settled` names,
281
+ * under the call's lock: true for the first completion in any tab or
282
+ * run; a completion that loses it stays silent.
283
+ */
284
+ claimConfirmed(settled: {
285
+ hash: Hex;
286
+ }): Promise<boolean>;
266
287
  };
267
288
  list: ({ account, chainId }: {
268
289
  account: Address;
@@ -329,6 +350,14 @@ export declare function createWriteHold(options?: {
329
350
  result: "success" | "failed";
330
351
  hash: Hex;
331
352
  }): Promise<WriteHoldState>;
353
+ /**
354
+ * Claim the one `onConfirmed` notice of the settlement `settled` names,
355
+ * under the call's lock: true for the first completion in any tab or
356
+ * run; a completion that loses it stays silent.
357
+ */
358
+ claimConfirmed(settled: {
359
+ hash: Hex;
360
+ }): Promise<boolean>;
332
361
  };
333
362
  }[];
334
363
  /** Whether holds outlive this tab right now. */
@@ -415,6 +444,14 @@ export declare function openStepHold(hold: WriteHold, account: Address, safe: bo
415
444
  result: "success" | "failed";
416
445
  hash: Hex;
417
446
  }): Promise<WriteHoldState>;
447
+ /**
448
+ * Claim the one `onConfirmed` notice of the settlement `settled` names,
449
+ * under the call's lock: true for the first completion in any tab or
450
+ * run; a completion that loses it stays silent.
451
+ */
452
+ claimConfirmed(settled: {
453
+ hash: Hex;
454
+ }): Promise<boolean>;
418
455
  };
419
456
  /**
420
457
  * The one call a Safe app proposes a batch of `calls` as (`ReviewedAction`'s
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WriteHoldBusyError = exports.WriteHoldStaleReviewError = exports.WriteHoldNonceError = exports.WriteHeldError = void 0;
3
+ exports.WriteHoldBusyError = exports.WriteHoldStaleReviewError = exports.WriteHoldNonceError = exports.WriteHoldUnacknowledgedSuccessError = exports.WriteHeldError = void 0;
4
4
  exports.createWriteHold = createWriteHold;
5
5
  exports.openStepHold = openStepHold;
6
6
  exports.safeBatchCall = safeBatchCall;
@@ -46,6 +46,15 @@ class WriteHeldError extends lineError_js_1.ReviewLineError {
46
46
  }
47
47
  }
48
48
  exports.WriteHeldError = WriteHeldError;
49
+ /** A run refused while the action's last success is unacknowledged; "Send it again" acknowledges `success`. */
50
+ class WriteHoldUnacknowledgedSuccessError extends lineError_js_1.ReviewLineError {
51
+ constructor(success) {
52
+ super(messages_js_1.HELD_AWAY_SUCCESS_LINE);
53
+ this.success = success;
54
+ this.name = "WriteHoldUnacknowledgedSuccessError";
55
+ }
56
+ }
57
+ exports.WriteHoldUnacknowledgedSuccessError = WriteHoldUnacknowledgedSuccessError;
49
58
  /** The account's nonce couldn't be read, so the wallet never opened. */
50
59
  class WriteHoldNonceError extends lineError_js_1.ReviewLineError {
51
60
  constructor(cause) {
@@ -377,6 +386,11 @@ function createWriteHold(options = {}) {
377
386
  const settled = {
378
387
  result: verdict,
379
388
  hash: receipt.transactionHash.toLowerCase(),
389
+ blockHash: receipt.blockHash.toLowerCase(),
390
+ // A Safe's execution, proposed or sent by an owner: its failure is its own.
391
+ ...(record.safe || (0, safeService_js_1.isSafeExecTransaction)(record.call.data)
392
+ ? { safe: true }
393
+ : {}),
380
394
  };
381
395
  // Saved before the hold ends, so no reader sees it clear without its
382
396
  // result: another tab, a reload, a follow timer.
@@ -697,6 +711,7 @@ function createWriteHold(options = {}) {
697
711
  const settled = {
698
712
  result: end.execution.status,
699
713
  hash: end.execution.executionHash,
714
+ safe: true,
700
715
  };
701
716
  recovery.markSettled(record, settled);
702
717
  if (release(record))
@@ -1209,6 +1224,15 @@ function createWriteHold(options = {}) {
1209
1224
  }, true);
1210
1225
  return shown(result?.value ?? peek());
1211
1226
  },
1227
+ /**
1228
+ * Claim the one `onConfirmed` notice of the settlement `settled` names,
1229
+ * under the call's lock: true for the first completion in any tab or
1230
+ * run; a completion that loses it stays silent.
1231
+ */
1232
+ async claimConfirmed(settled) {
1233
+ const result = await locked(async () => recovery.claimConfirmedSettled(settled), true);
1234
+ return result?.value === true;
1235
+ },
1212
1236
  async attachHash(client, hash) {
1213
1237
  const result = await locked(async () => {
1214
1238
  const record = recovery.read();
@@ -1399,6 +1423,13 @@ function createWriteHold(options = {}) {
1399
1423
  }
1400
1424
  return null;
1401
1425
  }
1426
+ /** The legacy hold that saved the settlement with this hash, if any. */
1427
+ function legacySaving(hash) {
1428
+ const lower = hash.toLowerCase();
1429
+ return eligibleLegacy().find(({ state }) => state.settled !== undefined &&
1430
+ "hash" in state.settled &&
1431
+ state.settled.hash === lower);
1432
+ }
1402
1433
  /**
1403
1434
  * How a legacy hold this intent stood for ended, while the intent itself
1404
1435
  * never reserved: its settlement (acknowledged or not) is the intent's,
@@ -1649,14 +1680,15 @@ function createWriteHold(options = {}) {
1649
1680
  },
1650
1681
  /** A settlement is acknowledged where it was saved, found by its hash. */
1651
1682
  async acknowledge(settled) {
1652
- const hash = settled.hash.toLowerCase();
1653
- const legacy = eligibleLegacy().find(({ state }) => state.settled !== undefined &&
1654
- "hash" in state.settled &&
1655
- state.settled.hash === hash);
1683
+ const legacy = legacySaving(settled.hash);
1656
1684
  return legacy
1657
1685
  ? withLegacy(await legacy.handle.acknowledge(settled))
1658
1686
  : own.acknowledge(settled);
1659
1687
  },
1688
+ /** A settlement's notice is claimed where it was saved, found by its hash. */
1689
+ claimConfirmed(settled) {
1690
+ return (legacySaving(settled.hash)?.handle ?? own).claimConfirmed(settled);
1691
+ },
1660
1692
  async send(client, run) {
1661
1693
  const held = await delegated(client);
1662
1694
  if (held)