@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.
- package/bin/wallet-check.mjs +7 -1
- package/dist/cjs/review/confirm.d.ts +4 -0
- package/dist/cjs/review/confirm.d.ts.map +1 -1
- package/dist/cjs/review/confirm.js +14 -3
- package/dist/cjs/review/confirm.js.map +1 -1
- package/dist/cjs/review/contractWrite.d.ts.map +1 -1
- package/dist/cjs/review/contractWrite.js +2 -1
- package/dist/cjs/review/contractWrite.js.map +1 -1
- package/dist/cjs/review/heldWrite.d.ts +4 -0
- package/dist/cjs/review/heldWrite.d.ts.map +1 -1
- package/dist/cjs/review/heldWrite.js +31 -28
- package/dist/cjs/review/heldWrite.js.map +1 -1
- package/dist/cjs/review/index.d.ts +1 -1
- package/dist/cjs/review/index.d.ts.map +1 -1
- package/dist/cjs/review/index.js +6 -2
- package/dist/cjs/review/index.js.map +1 -1
- package/dist/cjs/review/lineError.d.ts +38 -0
- package/dist/cjs/review/lineError.d.ts.map +1 -1
- package/dist/cjs/review/lineError.js +35 -1
- package/dist/cjs/review/lineError.js.map +1 -1
- package/dist/cjs/review/plan.d.ts +0 -2
- package/dist/cjs/review/plan.d.ts.map +1 -1
- package/dist/cjs/review/plan.js +0 -6
- package/dist/cjs/review/plan.js.map +1 -1
- package/dist/cjs/review/react/useHeldSend.js +3 -4
- package/dist/cjs/review/react/useHeldSend.js.map +1 -1
- package/dist/cjs/review/react/useHeldWrite.d.ts.map +1 -1
- package/dist/cjs/review/react/useHeldWrite.js +2 -1
- package/dist/cjs/review/react/useHeldWrite.js.map +1 -1
- package/dist/cjs/review/react/useReviewedRun.d.ts +29 -3
- package/dist/cjs/review/react/useReviewedRun.d.ts.map +1 -1
- package/dist/cjs/review/react/useReviewedRun.js +219 -37
- package/dist/cjs/review/react/useReviewedRun.js.map +1 -1
- package/dist/cjs/review/receipt.d.ts +33 -0
- package/dist/cjs/review/receipt.d.ts.map +1 -1
- package/dist/cjs/review/receipt.js +69 -0
- package/dist/cjs/review/receipt.js.map +1 -1
- package/dist/cjs/review/relayr.d.ts.map +1 -1
- package/dist/cjs/review/relayr.js +1 -0
- package/dist/cjs/review/relayr.js.map +1 -1
- package/dist/cjs/review/relayrSend.d.ts +3 -32
- package/dist/cjs/review/relayrSend.d.ts.map +1 -1
- package/dist/cjs/review/relayrSend.js +78 -226
- package/dist/cjs/review/relayrSend.js.map +1 -1
- package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
- package/dist/cjs/review/safeRelayr.js +4 -8
- package/dist/cjs/review/safeRelayr.js.map +1 -1
- package/dist/cjs/review/safeSend.js +3 -5
- package/dist/cjs/review/safeSend.js.map +1 -1
- package/dist/cjs/review/send.d.ts +38 -7
- package/dist/cjs/review/send.d.ts.map +1 -1
- package/dist/cjs/review/send.js +267 -121
- package/dist/cjs/review/send.js.map +1 -1
- package/dist/cjs/review/sign.d.ts +6 -4
- package/dist/cjs/review/sign.d.ts.map +1 -1
- package/dist/cjs/review/sign.js +22 -18
- package/dist/cjs/review/sign.js.map +1 -1
- package/dist/cjs/review/wallet.d.ts +18 -2
- package/dist/cjs/review/wallet.d.ts.map +1 -1
- package/dist/cjs/review/wallet.js +127 -50
- package/dist/cjs/review/wallet.js.map +1 -1
- package/dist/cjs/review/writeHold.d.ts +38 -1
- package/dist/cjs/review/writeHold.d.ts.map +1 -1
- package/dist/cjs/review/writeHold.js +37 -5
- package/dist/cjs/review/writeHold.js.map +1 -1
- package/dist/cjs/review/writeRecovery.d.ts +11 -0
- package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
- package/dist/cjs/review/writeRecovery.js +38 -5
- package/dist/cjs/review/writeRecovery.js.map +1 -1
- package/dist/esm/review/confirm.d.ts +4 -0
- package/dist/esm/review/confirm.d.ts.map +1 -1
- package/dist/esm/review/confirm.js +13 -3
- package/dist/esm/review/confirm.js.map +1 -1
- package/dist/esm/review/contractWrite.d.ts.map +1 -1
- package/dist/esm/review/contractWrite.js +3 -2
- package/dist/esm/review/contractWrite.js.map +1 -1
- package/dist/esm/review/heldWrite.d.ts +4 -0
- package/dist/esm/review/heldWrite.d.ts.map +1 -1
- package/dist/esm/review/heldWrite.js +30 -27
- package/dist/esm/review/heldWrite.js.map +1 -1
- package/dist/esm/review/index.d.ts +1 -1
- package/dist/esm/review/index.d.ts.map +1 -1
- package/dist/esm/review/index.js +1 -1
- package/dist/esm/review/index.js.map +1 -1
- package/dist/esm/review/lineError.d.ts +38 -0
- package/dist/esm/review/lineError.d.ts.map +1 -1
- package/dist/esm/review/lineError.js +33 -1
- package/dist/esm/review/lineError.js.map +1 -1
- package/dist/esm/review/plan.d.ts +0 -2
- package/dist/esm/review/plan.d.ts.map +1 -1
- package/dist/esm/review/plan.js +0 -5
- package/dist/esm/review/plan.js.map +1 -1
- package/dist/esm/review/react/useHeldSend.js +3 -4
- package/dist/esm/review/react/useHeldSend.js.map +1 -1
- package/dist/esm/review/react/useHeldWrite.d.ts.map +1 -1
- package/dist/esm/review/react/useHeldWrite.js +2 -1
- package/dist/esm/review/react/useHeldWrite.js.map +1 -1
- package/dist/esm/review/react/useReviewedRun.d.ts +29 -3
- package/dist/esm/review/react/useReviewedRun.d.ts.map +1 -1
- package/dist/esm/review/react/useReviewedRun.js +220 -38
- package/dist/esm/review/react/useReviewedRun.js.map +1 -1
- package/dist/esm/review/receipt.d.ts +33 -0
- package/dist/esm/review/receipt.d.ts.map +1 -1
- package/dist/esm/review/receipt.js +66 -0
- package/dist/esm/review/receipt.js.map +1 -1
- package/dist/esm/review/relayr.d.ts.map +1 -1
- package/dist/esm/review/relayr.js +2 -1
- package/dist/esm/review/relayr.js.map +1 -1
- package/dist/esm/review/relayrSend.d.ts +3 -32
- package/dist/esm/review/relayrSend.d.ts.map +1 -1
- package/dist/esm/review/relayrSend.js +85 -232
- package/dist/esm/review/relayrSend.js.map +1 -1
- package/dist/esm/review/safeRelayr.d.ts.map +1 -1
- package/dist/esm/review/safeRelayr.js +4 -8
- package/dist/esm/review/safeRelayr.js.map +1 -1
- package/dist/esm/review/safeSend.js +4 -6
- package/dist/esm/review/safeSend.js.map +1 -1
- package/dist/esm/review/send.d.ts +38 -7
- package/dist/esm/review/send.d.ts.map +1 -1
- package/dist/esm/review/send.js +270 -125
- package/dist/esm/review/send.js.map +1 -1
- package/dist/esm/review/sign.d.ts +6 -4
- package/dist/esm/review/sign.d.ts.map +1 -1
- package/dist/esm/review/sign.js +24 -20
- package/dist/esm/review/sign.js.map +1 -1
- package/dist/esm/review/wallet.d.ts +18 -2
- package/dist/esm/review/wallet.d.ts.map +1 -1
- package/dist/esm/review/wallet.js +128 -51
- package/dist/esm/review/wallet.js.map +1 -1
- package/dist/esm/review/writeHold.d.ts +38 -1
- package/dist/esm/review/writeHold.d.ts.map +1 -1
- package/dist/esm/review/writeHold.js +37 -6
- package/dist/esm/review/writeHold.js.map +1 -1
- package/dist/esm/review/writeRecovery.d.ts +11 -0
- package/dist/esm/review/writeRecovery.d.ts.map +1 -1
- package/dist/esm/review/writeRecovery.js +38 -5
- package/dist/esm/review/writeRecovery.js.map +1 -1
- 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
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
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
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
38
|
-
throw new lineError_js_1.
|
|
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
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (
|
|
53
|
-
throw new lineError_js_1.
|
|
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
|
-
|
|
56
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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.
|
|
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
|
-
|
|
119
|
-
|
|
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
|
|
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":";;;
|
|
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
|
-
/**
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,MAAM,CAAC;AACd,OAAO,
|
|
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
|
|
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)
|