@bananapus/nana-sdk-core 2.30.0 → 2.32.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.
- package/dist/cjs/review/index.d.ts +1 -0
- package/dist/cjs/review/index.d.ts.map +1 -1
- package/dist/cjs/review/index.js +1 -0
- package/dist/cjs/review/index.js.map +1 -1
- package/dist/cjs/review/messages.d.ts +16 -0
- package/dist/cjs/review/messages.d.ts.map +1 -1
- package/dist/cjs/review/messages.js +17 -1
- package/dist/cjs/review/messages.js.map +1 -1
- package/dist/cjs/review/relayr.d.ts +43 -7
- package/dist/cjs/review/relayr.d.ts.map +1 -1
- package/dist/cjs/review/relayr.js +118 -7
- package/dist/cjs/review/relayr.js.map +1 -1
- package/dist/cjs/review/writeHold.d.ts +197 -0
- package/dist/cjs/review/writeHold.d.ts.map +1 -0
- package/dist/cjs/review/writeHold.js +578 -0
- package/dist/cjs/review/writeHold.js.map +1 -0
- package/dist/cjs/review/writeRecovery.d.ts +102 -8
- package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
- package/dist/cjs/review/writeRecovery.js +341 -46
- package/dist/cjs/review/writeRecovery.js.map +1 -1
- package/dist/cjs/safeService.d.ts +40 -0
- package/dist/cjs/safeService.d.ts.map +1 -1
- package/dist/cjs/safeService.js +69 -12
- package/dist/cjs/safeService.js.map +1 -1
- package/dist/esm/review/index.d.ts +1 -0
- package/dist/esm/review/index.d.ts.map +1 -1
- package/dist/esm/review/index.js +1 -0
- package/dist/esm/review/index.js.map +1 -1
- package/dist/esm/review/messages.d.ts +16 -0
- package/dist/esm/review/messages.d.ts.map +1 -1
- package/dist/esm/review/messages.js +16 -0
- package/dist/esm/review/messages.js.map +1 -1
- package/dist/esm/review/relayr.d.ts +43 -7
- package/dist/esm/review/relayr.d.ts.map +1 -1
- package/dist/esm/review/relayr.js +116 -6
- package/dist/esm/review/relayr.js.map +1 -1
- package/dist/esm/review/writeHold.d.ts +197 -0
- package/dist/esm/review/writeHold.d.ts.map +1 -0
- package/dist/esm/review/writeHold.js +571 -0
- package/dist/esm/review/writeHold.js.map +1 -0
- package/dist/esm/review/writeRecovery.d.ts +102 -8
- package/dist/esm/review/writeRecovery.d.ts.map +1 -1
- package/dist/esm/review/writeRecovery.js +339 -46
- package/dist/esm/review/writeRecovery.js.map +1 -1
- package/dist/esm/safeService.d.ts +40 -0
- package/dist/esm/safeService.d.ts.map +1 -1
- package/dist/esm/safeService.js +66 -12
- package/dist/esm/safeService.js.map +1 -1
- package/package.json +1 -1
|
@@ -28,6 +28,26 @@ 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;
|
|
31
51
|
};
|
|
32
52
|
/** The account's next nonce and the block it was read at, from {@link readReviewedWriteNonce}. */
|
|
33
53
|
export type ReviewedWriteNonceEvidence = {
|
|
@@ -46,6 +66,27 @@ export declare class SubmittedWritePersistenceError extends Error {
|
|
|
46
66
|
declare function recordOf(value: unknown): ReviewedWriteRecoveryRecord;
|
|
47
67
|
/** Validate an existing domain journal's recovered record with the shared storage rules. */
|
|
48
68
|
export { recordOf as parseReviewedWriteRecoveryRecord };
|
|
69
|
+
/** Recovery storage that also says whether its records outlive this tab. */
|
|
70
|
+
export type HeldWriteStorage = RecoveryStorage & {
|
|
71
|
+
/** Whether records are kept by the browser (shared by tabs, kept across reloads) right now. */
|
|
72
|
+
durable(): boolean;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* The browser's storage, shared by its tabs and kept across reloads, while it
|
|
76
|
+
* can be written; this tab's memory while it can't (private browsing, a
|
|
77
|
+
* sandboxed frame, some wallet webviews), so a write is held either way and
|
|
78
|
+
* never refused. Every read looks at both. A record kept in memory moves into
|
|
79
|
+
* the browser's storage as soon as it can be written there, after any other
|
|
80
|
+
* live record saved at the same key ends. While the browser's storage can't
|
|
81
|
+
* be read, what this tab last read or wrote there still holds.
|
|
82
|
+
*
|
|
83
|
+
* `memory` defaults to one map per tab, shared by every copy of this module
|
|
84
|
+
* loaded there.
|
|
85
|
+
*/
|
|
86
|
+
export declare function createHeldWriteStorage(options?: {
|
|
87
|
+
durable?: () => RecoveryStorage | undefined;
|
|
88
|
+
memory?: Map<string, string>;
|
|
89
|
+
}): HeldWriteStorage;
|
|
49
90
|
export type ReviewedWriteRecoveryScope = Pick<ReviewedWriteRecoveryInput, "chainId" | "account"> & {
|
|
50
91
|
namespace: string;
|
|
51
92
|
};
|
|
@@ -91,10 +132,43 @@ export declare function createBrowserWriteRecovery(input: ReviewedWriteRecoveryI
|
|
|
91
132
|
submitted(hash: Hex, expected?: ReviewedWriteRecoveryRecord | undefined): ReviewedWriteRecoveryRecord;
|
|
92
133
|
rejected: () => void;
|
|
93
134
|
clear: (expected: ReviewedWriteRecoveryRecord) => void;
|
|
135
|
+
/**
|
|
136
|
+
* Start the clock of a hash saved before `submittedAt` existed: save now
|
|
137
|
+
* as its `firstSeenAt`, once. Extra evidence: a stale snapshot or a failed
|
|
138
|
+
* save keeps the record as it was.
|
|
139
|
+
*/
|
|
140
|
+
firstSeen(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
|
|
141
|
+
/**
|
|
142
|
+
* Save who sent a Safe execution the wallet returned at once, and at which
|
|
143
|
+
* nonce, from its authenticated transaction, once: its canonical
|
|
144
|
+
* replacement can then be proven. Extra evidence only.
|
|
145
|
+
*/
|
|
146
|
+
sentBy(expected: ReviewedWriteRecoveryRecord, from: Address, nonce: bigint): ReviewedWriteRecoveryRecord;
|
|
147
|
+
/**
|
|
148
|
+
* Drop the proof that `expected` ran, once its execution is gone from the
|
|
149
|
+
* chain: it is held again as an unproven write. Extra evidence only.
|
|
150
|
+
*/
|
|
151
|
+
unexecuted(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
|
|
152
|
+
/**
|
|
153
|
+
* Save that another Safe transaction used this Safe write's nonce. Any
|
|
154
|
+
* saved execution goes: the user's exit, not the chain, ends it.
|
|
155
|
+
*/
|
|
156
|
+
replacedOnChain(expected: ReviewedWriteRecoveryRecord): ReviewedWriteRecoveryRecord;
|
|
157
|
+
/**
|
|
158
|
+
* Save a Safe proposal's nonce from its authenticated record, once. Extra
|
|
159
|
+
* evidence: a stale snapshot or a failed save keeps the record as it was.
|
|
160
|
+
*/
|
|
161
|
+
proposalNonce(expected: ReviewedWriteRecoveryRecord, nonce: bigint): ReviewedWriteRecoveryRecord;
|
|
162
|
+
/**
|
|
163
|
+
* Save the chain's proof that `expected` ran, with the transaction it ran
|
|
164
|
+
* in when known. From then on the user's exit refuses it: only its result
|
|
165
|
+
* ({@link verifyReviewedWriteReceipt}) releases it.
|
|
166
|
+
*/
|
|
167
|
+
executed(expected: ReviewedWriteRecoveryRecord, executionHash?: Hex): ReviewedWriteRecoveryRecord;
|
|
94
168
|
/**
|
|
95
169
|
* Check the saved write against the chain ({@link checkReviewedWrite}) and
|
|
96
|
-
* apply the finding: `sent` records the hash to track
|
|
97
|
-
*
|
|
170
|
+
* apply the finding: `sent` records the hash to track. Nothing here
|
|
171
|
+
* releases a write; null when nothing is saved.
|
|
98
172
|
*/
|
|
99
173
|
resolve(client: ReviewedWriteNonceClient, checkOptions?: {
|
|
100
174
|
effect?: (chainId: number) => Promise<boolean>;
|
|
@@ -114,18 +188,26 @@ export declare function createBrowserWriteRecovery(input: ReviewedWriteRecoveryI
|
|
|
114
188
|
};
|
|
115
189
|
/** What the chain shows of a write with no confirmed result. */
|
|
116
190
|
export type ReviewedWriteCheck =
|
|
117
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Nothing proven yet. The user's exit (`abandon`) stays open. `usedBy`:
|
|
193
|
+
* the node doesn't know the saved hash, and a canonical finalized block
|
|
194
|
+
* shows this other transaction used the nonce the write was sent at, so
|
|
195
|
+
* the saved hash can never run (a wrapper may still have run the call).
|
|
196
|
+
*/
|
|
118
197
|
{
|
|
119
198
|
status: "pending";
|
|
199
|
+
usedBy?: Hex;
|
|
200
|
+
/** The app's effect read shows the call took effect. It releases nothing: the user's exit decides. */
|
|
201
|
+
effect?: true;
|
|
120
202
|
}
|
|
121
|
-
/**
|
|
203
|
+
/**
|
|
204
|
+
* The saved hash is the transaction at its nonce, or the exact call is,
|
|
205
|
+
* under another hash, at the nonce the saved hash was sent at (a wallet
|
|
206
|
+
* speed-up): track that receipt.
|
|
207
|
+
*/
|
|
122
208
|
| {
|
|
123
209
|
status: "sent";
|
|
124
210
|
hash: Hex;
|
|
125
|
-
}
|
|
126
|
-
/** The app's effect read shows the call took effect. */
|
|
127
|
-
| {
|
|
128
|
-
status: "ran";
|
|
129
211
|
};
|
|
130
212
|
/** The reads {@link checkReviewedWrite} makes; a viem PublicClient satisfies it. */
|
|
131
213
|
export type ReviewedWriteNonceClient = Pick<PublicClient, "getBlock" | "getChainId" | "getTransaction" | "getTransactionCount">;
|
|
@@ -153,6 +235,18 @@ export declare function readReviewedWriteNonce(client: Pick<PublicClient, "getBl
|
|
|
153
235
|
export declare function checkReviewedWrite(client: ReviewedWriteNonceClient, saved: ReviewedWriteRecoveryRecord, { effect }?: {
|
|
154
236
|
effect?: (chainId: number) => Promise<boolean>;
|
|
155
237
|
}): Promise<ReviewedWriteCheck>;
|
|
238
|
+
/**
|
|
239
|
+
* The transaction `account` sent at `nonce`, once the account's nonce is past
|
|
240
|
+
* it at a canonical finalized block: a search of its nonce from `fromBlock`
|
|
241
|
+
* finds the block where it moved. Null while that is unproven or the node
|
|
242
|
+
* can't say (no history, a reorganized answer).
|
|
243
|
+
*/
|
|
244
|
+
export declare function findTransactionAtNonce(client: Pick<ReviewedWriteNonceClient, "getBlock" | "getTransactionCount">, account: Address, nonce: bigint, fromBlock?: bigint): Promise<{
|
|
245
|
+
hash: Hex;
|
|
246
|
+
to?: Address | null;
|
|
247
|
+
input?: Hex;
|
|
248
|
+
value?: bigint;
|
|
249
|
+
} | null>;
|
|
156
250
|
/** Minimal RPC reads; PublicClient instances for any chain satisfy this shape. */
|
|
157
251
|
export type ReviewedWriteReceiptClient = {
|
|
158
252
|
getChainId(): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeRecovery.d.ts","sourceRoot":"","sources":["../../../src/review/writeRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,MAAM,CAAC;AACd,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,0BAA0B,EAC1B,MAAM,CACP,GAAG;IACF,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,iFAAiF;IACjF,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"writeRecovery.d.ts","sourceRoot":"","sources":["../../../src/review/writeRecovery.ts"],"names":[],"mappings":"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"}
|