@bananapus/nana-sdk-core 2.31.0 → 2.33.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 (41) hide show
  1. package/dist/cjs/review/index.d.ts +1 -0
  2. package/dist/cjs/review/index.d.ts.map +1 -1
  3. package/dist/cjs/review/index.js +1 -0
  4. package/dist/cjs/review/index.js.map +1 -1
  5. package/dist/cjs/review/messages.d.ts +18 -0
  6. package/dist/cjs/review/messages.d.ts.map +1 -1
  7. package/dist/cjs/review/messages.js +19 -1
  8. package/dist/cjs/review/messages.js.map +1 -1
  9. package/dist/cjs/review/writeHold.d.ts +211 -0
  10. package/dist/cjs/review/writeHold.d.ts.map +1 -0
  11. package/dist/cjs/review/writeHold.js +620 -0
  12. package/dist/cjs/review/writeHold.js.map +1 -0
  13. package/dist/cjs/review/writeRecovery.d.ts +113 -9
  14. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  15. package/dist/cjs/review/writeRecovery.js +357 -49
  16. package/dist/cjs/review/writeRecovery.js.map +1 -1
  17. package/dist/cjs/safeService.d.ts +40 -0
  18. package/dist/cjs/safeService.d.ts.map +1 -1
  19. package/dist/cjs/safeService.js +69 -12
  20. package/dist/cjs/safeService.js.map +1 -1
  21. package/dist/esm/review/index.d.ts +1 -0
  22. package/dist/esm/review/index.d.ts.map +1 -1
  23. package/dist/esm/review/index.js +1 -0
  24. package/dist/esm/review/index.js.map +1 -1
  25. package/dist/esm/review/messages.d.ts +18 -0
  26. package/dist/esm/review/messages.d.ts.map +1 -1
  27. package/dist/esm/review/messages.js +18 -0
  28. package/dist/esm/review/messages.js.map +1 -1
  29. package/dist/esm/review/writeHold.d.ts +211 -0
  30. package/dist/esm/review/writeHold.d.ts.map +1 -0
  31. package/dist/esm/review/writeHold.js +613 -0
  32. package/dist/esm/review/writeHold.js.map +1 -0
  33. package/dist/esm/review/writeRecovery.d.ts +113 -9
  34. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  35. package/dist/esm/review/writeRecovery.js +355 -49
  36. package/dist/esm/review/writeRecovery.js.map +1 -1
  37. package/dist/esm/safeService.d.ts +40 -0
  38. package/dist/esm/safeService.d.ts.map +1 -1
  39. package/dist/esm/safeService.js +66 -12
  40. package/dist/esm/safeService.js.map +1 -1
  41. package/package.json +1 -1
@@ -28,6 +28,28 @@ export type ReviewedWriteRecoveryRecord = Omit<ReviewedWriteRecoveryInput, "call
28
28
  fromBlock?: string;
29
29
  /** The nonce the chain showed for `hash`'s own transaction: the nonce it was actually sent at. */
30
30
  sentNonce?: string;
31
+ /**
32
+ * The chain proved the write ran (a Safe proposal whose nonce its own
33
+ * execution used). It is never offered a resend; its result settles it.
34
+ */
35
+ executed?: true;
36
+ /** The transaction the proven execution ran in, when known. */
37
+ executionHash?: Hex;
38
+ /** When the wallet returned `hash`, in milliseconds since the epoch, as a decimal string. */
39
+ submittedAt?: string;
40
+ /**
41
+ * For a hash saved before `submittedAt` existed: when this record was
42
+ * first read with it, in milliseconds since the epoch, as a decimal string.
43
+ */
44
+ firstSeenAt?: string;
45
+ /** A Safe proposal's nonce, from its authenticated record: proof of its end needs no Safe service. */
46
+ safeNonce?: string;
47
+ /** For a Safe execution the wallet returned at once: the account that sent it (its nonce is `sentNonce`). */
48
+ sentFrom?: Address;
49
+ /** Another Safe transaction used this Safe write's nonce: held for the user's exit, never released on its own. */
50
+ replaced?: true;
51
+ /** The app's Safe follower ended without proof: held for the user's exit, unless evidence settles it. */
52
+ unproven?: true;
31
53
  };
32
54
  /** The account's next nonce and the block it was read at, from {@link readReviewedWriteNonce}. */
33
55
  export type ReviewedWriteNonceEvidence = {
@@ -46,6 +68,27 @@ export declare class SubmittedWritePersistenceError extends Error {
46
68
  declare function recordOf(value: unknown): ReviewedWriteRecoveryRecord;
47
69
  /** Validate an existing domain journal's recovered record with the shared storage rules. */
48
70
  export { recordOf as parseReviewedWriteRecoveryRecord };
71
+ /** Recovery storage that also says whether its records outlive this tab. */
72
+ export type HeldWriteStorage = RecoveryStorage & {
73
+ /** Whether records are kept by the browser (shared by tabs, kept across reloads) right now. */
74
+ durable(): boolean;
75
+ };
76
+ /**
77
+ * The browser's storage, shared by its tabs and kept across reloads, while it
78
+ * can be written; this tab's memory while it can't (private browsing, a
79
+ * sandboxed frame, some wallet webviews), so a write is held either way and
80
+ * never refused. Every read looks at both. A record kept in memory moves into
81
+ * the browser's storage as soon as it can be written there, after any other
82
+ * live record saved at the same key ends. While the browser's storage can't
83
+ * be read, what this tab last read or wrote there still holds.
84
+ *
85
+ * `memory` defaults to one map per tab, shared by every copy of this module
86
+ * loaded there.
87
+ */
88
+ export declare function createHeldWriteStorage(options?: {
89
+ durable?: () => RecoveryStorage | undefined;
90
+ memory?: Map<string, string>;
91
+ }): HeldWriteStorage;
49
92
  export type ReviewedWriteRecoveryScope = Pick<ReviewedWriteRecoveryInput, "chainId" | "account"> & {
50
93
  namespace: string;
51
94
  };
@@ -91,10 +134,48 @@ export declare function createBrowserWriteRecovery(input: ReviewedWriteRecoveryI
91
134
  submitted(hash: Hex, expected?: ReviewedWriteRecoveryRecord | undefined): ReviewedWriteRecoveryRecord;
92
135
  rejected: () => void;
93
136
  clear: (expected: ReviewedWriteRecoveryRecord) => void;
137
+ /**
138
+ * Start the clock of a hash saved before `submittedAt` existed: save now
139
+ * as its `firstSeenAt`, once. Extra evidence: a stale snapshot or a failed
140
+ * save keeps the record as it was.
141
+ */
142
+ firstSeen(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
143
+ /**
144
+ * Save who sent a Safe execution the wallet returned at once, and at which
145
+ * nonce, from its authenticated transaction, once: its canonical
146
+ * replacement can then be proven. Extra evidence only.
147
+ */
148
+ sentBy(expected: ReviewedWriteRecoveryRecord, from: Address, nonce: bigint): ReviewedWriteRecoveryRecord;
149
+ /**
150
+ * Drop the proof that `expected` ran, once its execution is gone from the
151
+ * chain: it is held again as an unproven write. Extra evidence only.
152
+ */
153
+ unexecuted(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
154
+ /**
155
+ * Save that another Safe transaction used this Safe write's nonce. Any
156
+ * saved execution goes: the user's exit, not the chain, ends it.
157
+ */
158
+ replacedOnChain(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
159
+ /**
160
+ * Save that the app's follower of this Safe write ended without proof.
161
+ * A proven execution or replacement keeps its own state.
162
+ */
163
+ unprovenEnd(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
164
+ /**
165
+ * Save a Safe proposal's nonce from its authenticated record, once. Extra
166
+ * evidence: a stale snapshot or a failed save keeps the record as it was.
167
+ */
168
+ proposalNonce(expected: ReviewedWriteRecoveryRecord, nonce: bigint): ReviewedWriteRecoveryRecord;
169
+ /**
170
+ * Save the chain's proof that `expected` ran, with the transaction it ran
171
+ * in when known. From then on the user's exit refuses it: only its result
172
+ * ({@link verifyReviewedWriteReceipt}) releases it.
173
+ */
174
+ executed(expected: ReviewedWriteRecoveryRecord, executionHash?: Hex): ReviewedWriteRecoveryRecord;
94
175
  /**
95
176
  * Check the saved write against the chain ({@link checkReviewedWrite}) and
96
- * apply the finding: `sent` records the hash to track, `ran` releases it.
97
- * Null when nothing is saved.
177
+ * apply the finding: `sent` records the hash to track. Nothing here
178
+ * releases a write; null when nothing is saved.
98
179
  */
99
180
  resolve(client: ReviewedWriteNonceClient, checkOptions?: {
100
181
  effect?: (chainId: number) => Promise<boolean>;
@@ -114,18 +195,26 @@ export declare function createBrowserWriteRecovery(input: ReviewedWriteRecoveryI
114
195
  };
115
196
  /** What the chain shows of a write with no confirmed result. */
116
197
  export type ReviewedWriteCheck =
117
- /** Nothing proven yet. The user's exit (`abandon`) stays open. */
198
+ /**
199
+ * Nothing proven yet. The user's exit (`abandon`) stays open. `usedBy`:
200
+ * the node doesn't know the saved hash, and a canonical finalized block
201
+ * shows this other transaction used the nonce the write was sent at, so
202
+ * the saved hash can never run (a wrapper may still have run the call).
203
+ */
118
204
  {
119
205
  status: "pending";
206
+ usedBy?: Hex;
207
+ /** The app's effect read shows the call took effect. It releases nothing: the user's exit decides. */
208
+ effect?: true;
120
209
  }
121
- /** The saved hash, or the exact call, is the transaction at its nonce: track that receipt. */
210
+ /**
211
+ * The saved hash is the transaction at its nonce, or the exact call is,
212
+ * under another hash, at the nonce the saved hash was sent at (a wallet
213
+ * speed-up): track that receipt.
214
+ */
122
215
  | {
123
216
  status: "sent";
124
217
  hash: Hex;
125
- }
126
- /** The app's effect read shows the call took effect. */
127
- | {
128
- status: "ran";
129
218
  };
130
219
  /** The reads {@link checkReviewedWrite} makes; a viem PublicClient satisfies it. */
131
220
  export type ReviewedWriteNonceClient = Pick<PublicClient, "getBlock" | "getChainId" | "getTransaction" | "getTransactionCount">;
@@ -153,6 +242,18 @@ export declare function readReviewedWriteNonce(client: Pick<PublicClient, "getBl
153
242
  export declare function checkReviewedWrite(client: ReviewedWriteNonceClient, saved: ReviewedWriteRecoveryRecord, { effect }?: {
154
243
  effect?: (chainId: number) => Promise<boolean>;
155
244
  }): Promise<ReviewedWriteCheck>;
245
+ /**
246
+ * The transaction `account` sent at `nonce`, once the account's nonce is past
247
+ * it at a canonical finalized block: a search of its nonce from `fromBlock`
248
+ * finds the block where it moved. Null while that is unproven or the node
249
+ * can't say (no history, a reorganized answer).
250
+ */
251
+ export declare function findTransactionAtNonce(client: Pick<ReviewedWriteNonceClient, "getBlock" | "getTransactionCount">, account: Address, nonce: bigint, fromBlock?: bigint): Promise<{
252
+ hash: Hex;
253
+ to?: Address | null;
254
+ input?: Hex;
255
+ value?: bigint;
256
+ } | null>;
156
257
  /** Minimal RPC reads; PublicClient instances for any chain satisfy this shape. */
157
258
  export type ReviewedWriteReceiptClient = {
158
259
  getChainId(): Promise<number>;
@@ -190,12 +291,15 @@ export type ReviewedWriteReceiptClient = {
190
291
  * Ordinary wallet wrappers are allowed: the wallet's returned hash binds their
191
292
  * execution. A wallet-returned Safe proposal hash authenticates its execution
192
293
  * event even through a wrapper; an immediate execution hash additionally needs
193
- * exact reviewed calldata. A failure releases only after finality.
294
+ * exact reviewed calldata. A failure releases only after finality;
295
+ * `finality: false` authenticates a canonical failure before it is final.
194
296
  * Throws on missing or inconsistent evidence; the caller retains its record.
195
297
  */
196
298
  export declare function verifyReviewedWriteReceipt(client: ReviewedWriteReceiptClient, saved: ReviewedWriteRecoveryRecord, receipt: TransactionReceipt, proof?: {
197
299
  calls: readonly ReviewedWriteRecoveryInput["call"][];
198
300
  batch?: boolean;
301
+ }, { finality }?: {
302
+ finality?: boolean;
199
303
  }): Promise<"success" | "failed">;
200
304
  /**
201
305
  * Prove a stamped Safe call expired before execution. An advanced nonce, stale
@@ -1 +1 @@
1
- {"version":3,"file":"writeRecovery.d.ts","sourceRoot":"","sources":["../../../src/review/writeRecovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeRecovery.d.ts","sourceRoot":"","sources":["../../../src/review/writeRecovery.ts"],"names":[],"mappings":"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"}