@bananapus/nana-sdk-core 2.14.0 → 2.16.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/contractWrite.d.ts +9 -1
- package/dist/cjs/review/contractWrite.d.ts.map +1 -1
- package/dist/cjs/review/contractWrite.js +20 -5
- package/dist/cjs/review/contractWrite.js.map +1 -1
- package/dist/cjs/review/decode.d.ts +138 -0
- package/dist/cjs/review/decode.d.ts.map +1 -0
- package/dist/cjs/review/decode.js +1118 -0
- package/dist/cjs/review/decode.js.map +1 -0
- package/dist/cjs/review/index.d.ts +2 -0
- package/dist/cjs/review/index.d.ts.map +1 -1
- package/dist/cjs/review/index.js +2 -0
- package/dist/cjs/review/index.js.map +1 -1
- package/dist/cjs/review/receipt.d.ts +32 -0
- package/dist/cjs/review/receipt.d.ts.map +1 -0
- package/dist/cjs/review/receipt.js +57 -0
- package/dist/cjs/review/receipt.js.map +1 -0
- package/dist/cjs/review/simulation.d.ts +47 -0
- package/dist/cjs/review/simulation.d.ts.map +1 -0
- package/dist/cjs/review/simulation.js +142 -0
- package/dist/cjs/review/simulation.js.map +1 -0
- package/dist/cjs/safeService.d.ts +15 -0
- package/dist/cjs/safeService.d.ts.map +1 -1
- package/dist/cjs/safeService.js +58 -25
- package/dist/cjs/safeService.js.map +1 -1
- package/dist/cjs/v6/feeBuyback.d.ts +27 -0
- package/dist/cjs/v6/feeBuyback.d.ts.map +1 -1
- package/dist/cjs/v6/feeBuyback.js +66 -0
- package/dist/cjs/v6/feeBuyback.js.map +1 -1
- package/dist/esm/review/contractWrite.d.ts +9 -1
- package/dist/esm/review/contractWrite.d.ts.map +1 -1
- package/dist/esm/review/contractWrite.js +19 -5
- package/dist/esm/review/contractWrite.js.map +1 -1
- package/dist/esm/review/decode.d.ts +138 -0
- package/dist/esm/review/decode.d.ts.map +1 -0
- package/dist/esm/review/decode.js +1102 -0
- package/dist/esm/review/decode.js.map +1 -0
- package/dist/esm/review/index.d.ts +2 -0
- package/dist/esm/review/index.d.ts.map +1 -1
- package/dist/esm/review/index.js +2 -0
- package/dist/esm/review/index.js.map +1 -1
- package/dist/esm/review/receipt.d.ts +32 -0
- package/dist/esm/review/receipt.d.ts.map +1 -0
- package/dist/esm/review/receipt.js +51 -0
- package/dist/esm/review/receipt.js.map +1 -0
- package/dist/esm/review/simulation.d.ts +47 -0
- package/dist/esm/review/simulation.d.ts.map +1 -0
- package/dist/esm/review/simulation.js +137 -0
- package/dist/esm/review/simulation.js.map +1 -0
- package/dist/esm/safeService.d.ts +15 -0
- package/dist/esm/safeService.d.ts.map +1 -1
- package/dist/esm/safeService.js +57 -25
- package/dist/esm/safeService.js.map +1 -1
- package/dist/esm/v6/feeBuyback.d.ts +27 -0
- package/dist/esm/v6/feeBuyback.d.ts.map +1 -1
- package/dist/esm/v6/feeBuyback.js +62 -0
- package/dist/esm/v6/feeBuyback.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/review/decode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/review/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/review/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
package/dist/esm/review/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/review/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/review/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Hex, PublicClient, TransactionReceipt } from "viem";
|
|
2
|
+
/**
|
|
3
|
+
* A transaction was broadcast, but neither the receipt watcher nor direct
|
|
4
|
+
* receipt reads could confirm it. Its outcome is unknown, so the app must keep
|
|
5
|
+
* treating it as submitted and must not offer to send it again.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TransactionReceiptUnavailableError extends Error {
|
|
8
|
+
readonly hash: Hex;
|
|
9
|
+
readonly chainId?: number | undefined;
|
|
10
|
+
readonly name = "TransactionReceiptUnavailableError";
|
|
11
|
+
/**
|
|
12
|
+
* Why the receipt watcher gave up. Like a native error's cause it is not
|
|
13
|
+
* enumerable, so serializing this error leaves out the RPC error (and any
|
|
14
|
+
* key in its URL).
|
|
15
|
+
*/
|
|
16
|
+
readonly cause: unknown;
|
|
17
|
+
constructor(hash: Hex, chainId?: number | undefined, options?: {
|
|
18
|
+
cause?: unknown;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export declare function isTransactionReceiptUnavailableError(error: unknown): error is TransactionReceiptUnavailableError;
|
|
22
|
+
/**
|
|
23
|
+
* The receipt of a broadcast transaction. A load-balanced RPC can drop viem's
|
|
24
|
+
* receipt watcher even though the transaction is fine, so a rejected watch
|
|
25
|
+
* falls back to direct receipt reads. When those fail too, the error keeps the
|
|
26
|
+
* hash so the app can say the transaction was sent.
|
|
27
|
+
*/
|
|
28
|
+
export declare function waitForTrackedReceipt(client: Pick<PublicClient, "chain" | "getTransactionReceipt" | "waitForTransactionReceipt">, hash: Hex, options?: {
|
|
29
|
+
attempts?: number;
|
|
30
|
+
intervalMs?: number;
|
|
31
|
+
}): Promise<TransactionReceipt>;
|
|
32
|
+
//# sourceMappingURL=receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../../src/review/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAElE;;;;GAIG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAUzD,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;IAV3B,QAAQ,CAAC,IAAI,wCAAwC;IACrD;;;;OAIG;IACH,SAAiB,KAAK,EAAE,OAAO,CAAC;gBAGrB,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,MAAM,YAAA,EACzB,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAYpC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kCAAkC,CAE7C;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,IAAI,CACV,YAAY,EACZ,OAAO,GAAG,uBAAuB,GAAG,2BAA2B,CAChE,EACD,IAAI,EAAE,GAAG,EACT,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,kBAAkB,CAAC,CAmB7B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A transaction was broadcast, but neither the receipt watcher nor direct
|
|
3
|
+
* receipt reads could confirm it. Its outcome is unknown, so the app must keep
|
|
4
|
+
* treating it as submitted and must not offer to send it again.
|
|
5
|
+
*/
|
|
6
|
+
export class TransactionReceiptUnavailableError extends Error {
|
|
7
|
+
constructor(hash, chainId, options = {}) {
|
|
8
|
+
super(`Transaction ${hash} was submitted${chainId ? ` on chain ${chainId}` : ""}, but confirmation tracking is temporarily unavailable. Check this transaction and do not submit it again yet.`);
|
|
9
|
+
this.hash = hash;
|
|
10
|
+
this.chainId = chainId;
|
|
11
|
+
this.name = "TransactionReceiptUnavailableError";
|
|
12
|
+
Object.defineProperty(this, "cause", {
|
|
13
|
+
value: options.cause,
|
|
14
|
+
writable: true,
|
|
15
|
+
enumerable: false,
|
|
16
|
+
configurable: true,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function isTransactionReceiptUnavailableError(error) {
|
|
21
|
+
return error instanceof TransactionReceiptUnavailableError;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The receipt of a broadcast transaction. A load-balanced RPC can drop viem's
|
|
25
|
+
* receipt watcher even though the transaction is fine, so a rejected watch
|
|
26
|
+
* falls back to direct receipt reads. When those fail too, the error keeps the
|
|
27
|
+
* hash so the app can say the transaction was sent.
|
|
28
|
+
*/
|
|
29
|
+
export async function waitForTrackedReceipt(client, hash, options = {}) {
|
|
30
|
+
try {
|
|
31
|
+
return await client.waitForTransactionReceipt({ hash, timeout: 120_000 });
|
|
32
|
+
}
|
|
33
|
+
catch (cause) {
|
|
34
|
+
const attempts = Math.max(1, options.attempts ?? 90);
|
|
35
|
+
const intervalMs = Math.max(0, options.intervalMs ?? 2_000);
|
|
36
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
37
|
+
try {
|
|
38
|
+
return await client.getTransactionReceipt({ hash });
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
if (attempt + 1 < attempts) {
|
|
42
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
throw new TransactionReceiptUnavailableError(hash, client.chain?.id, {
|
|
47
|
+
cause,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/review/receipt.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAS3D,YACW,IAAS,EACT,OAAgB,EACzB,UAA+B,EAAE;QAEjC,KAAK,CACH,eAAe,IAAI,iBAAiB,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,gHAAgH,CAC1L,CAAC;QANO,SAAI,GAAJ,IAAI,CAAK;QACT,YAAO,GAAP,OAAO,CAAS;QAVlB,SAAI,GAAG,oCAAoC,CAAC;QAgBnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,oCAAoC,CAClD,KAAc;IAEd,OAAO,KAAK,YAAY,kCAAkC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAGC,EACD,IAAS,EACT,UAAsD,EAAE;IAExD,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;QAC5D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,kCAAkC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE;YACnE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Address, type Hex, type PublicClient } from "viem";
|
|
2
|
+
/** A generous explicit gas ceiling for a reviewed state-changing preflight. */
|
|
3
|
+
export declare const TRANSACTION_SIMULATION_GAS = 10000000n;
|
|
4
|
+
/** The most return data a preflight hands back to a caller that decodes it. */
|
|
5
|
+
export declare const TRANSACTION_SIMULATION_MAX_RETURN_BYTES = 4096;
|
|
6
|
+
/**
|
|
7
|
+
* Simulate a state-changing transaction without viem's CCIP-read machinery. A
|
|
8
|
+
* target-controlled `OffchainLookup` revert stays a revert: following its URL
|
|
9
|
+
* would turn an authorization preflight into an SSRF surface, and the real
|
|
10
|
+
* transaction cannot follow it either.
|
|
11
|
+
*
|
|
12
|
+
* The call is bounded by `gas`, and its return data by `maxReturnBytes`. Pass
|
|
13
|
+
* `blockNumber` to simulate on the block a prerequisite (an approval, say) was
|
|
14
|
+
* mined in, instead of `latest` on a node that may lag behind it.
|
|
15
|
+
*/
|
|
16
|
+
export declare function simulateStateChangingTransaction(client: Pick<PublicClient, "request">, { from, to, data, value, gas, blockNumber, maxReturnBytes, }: {
|
|
17
|
+
from: Address;
|
|
18
|
+
to: Address;
|
|
19
|
+
data: Hex;
|
|
20
|
+
value?: bigint;
|
|
21
|
+
gas?: bigint;
|
|
22
|
+
blockNumber?: bigint;
|
|
23
|
+
maxReturnBytes?: number;
|
|
24
|
+
}): Promise<Hex>;
|
|
25
|
+
/** One call of an ordered sequence, such as a Safe MultiSend batch. */
|
|
26
|
+
export type SimulatedSequenceCall = {
|
|
27
|
+
to: Address;
|
|
28
|
+
data: Hex;
|
|
29
|
+
value?: bigint;
|
|
30
|
+
/** Names the call in a failure message. */
|
|
31
|
+
label: string;
|
|
32
|
+
/** Needs an earlier call's effect (an allowance, a hook), so it cannot run alone. */
|
|
33
|
+
dependsOnPrior?: boolean;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Prove a whole sequence from `from` before anything is signed. `eth_simulateV1`
|
|
37
|
+
* runs the calls in order against one state. Where a node lacks it, each call
|
|
38
|
+
* that does not depend on an earlier one runs alone through
|
|
39
|
+
* {@link simulateStateChangingTransaction}; the dependent ones are left to the
|
|
40
|
+
* executing wallet's own simulation. `chainName` names the chain in errors.
|
|
41
|
+
*/
|
|
42
|
+
export declare function simulateCallSequence(client: Pick<PublicClient, "request" | "simulateCalls">, { from, calls, chainName, }: {
|
|
43
|
+
from: Address;
|
|
44
|
+
calls: readonly SimulatedSequenceCall[];
|
|
45
|
+
chainName: string;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
//# sourceMappingURL=simulation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../../src/review/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAE9E,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,YAAc,CAAC;AAEtD,+EAA+E;AAC/E,eAAO,MAAM,uCAAuC,OAAQ,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EACrC,EACE,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,KAAU,EACV,GAAgC,EAChC,WAAW,EACX,cAAwD,GACzD,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,GAAG,CAAC,CA6Bd;AAED,uEAAuE;AACvE,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA+DF;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,eAAe,CAAC,EACvD,EACE,IAAI,EACJ,KAAK,EACL,SAAS,GACV,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { numberToHex } from "viem";
|
|
2
|
+
/** A generous explicit gas ceiling for a reviewed state-changing preflight. */
|
|
3
|
+
export const TRANSACTION_SIMULATION_GAS = 10000000n;
|
|
4
|
+
/** The most return data a preflight hands back to a caller that decodes it. */
|
|
5
|
+
export const TRANSACTION_SIMULATION_MAX_RETURN_BYTES = 4_096;
|
|
6
|
+
/**
|
|
7
|
+
* Simulate a state-changing transaction without viem's CCIP-read machinery. A
|
|
8
|
+
* target-controlled `OffchainLookup` revert stays a revert: following its URL
|
|
9
|
+
* would turn an authorization preflight into an SSRF surface, and the real
|
|
10
|
+
* transaction cannot follow it either.
|
|
11
|
+
*
|
|
12
|
+
* The call is bounded by `gas`, and its return data by `maxReturnBytes`. Pass
|
|
13
|
+
* `blockNumber` to simulate on the block a prerequisite (an approval, say) was
|
|
14
|
+
* mined in, instead of `latest` on a node that may lag behind it.
|
|
15
|
+
*/
|
|
16
|
+
export async function simulateStateChangingTransaction(client, { from, to, data, value = 0n, gas = TRANSACTION_SIMULATION_GAS, blockNumber, maxReturnBytes = TRANSACTION_SIMULATION_MAX_RETURN_BYTES, }) {
|
|
17
|
+
if (gas <= 0n) {
|
|
18
|
+
throw new Error("Transaction simulation gas must be positive.");
|
|
19
|
+
}
|
|
20
|
+
if (!Number.isSafeInteger(maxReturnBytes) || maxReturnBytes < 0) {
|
|
21
|
+
throw new Error("Transaction simulation needs a return data limit.");
|
|
22
|
+
}
|
|
23
|
+
// A raw request bypasses call()/simulateContract(), whose behavior can
|
|
24
|
+
// inherit a client-level CCIP-read policy.
|
|
25
|
+
const result = await client.request({
|
|
26
|
+
method: "eth_call",
|
|
27
|
+
params: [
|
|
28
|
+
{
|
|
29
|
+
from,
|
|
30
|
+
to,
|
|
31
|
+
data,
|
|
32
|
+
value: numberToHex(value),
|
|
33
|
+
gas: numberToHex(gas),
|
|
34
|
+
},
|
|
35
|
+
blockNumber === undefined ? "latest" : numberToHex(blockNumber),
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
if (typeof result !== "string" || !/^0x(?:[0-9a-f]{2})*$/iu.test(result)) {
|
|
39
|
+
throw new Error("Transaction simulation returned malformed data.");
|
|
40
|
+
}
|
|
41
|
+
if ((result.length - 2) / 2 > maxReturnBytes) {
|
|
42
|
+
throw new Error("Transaction simulation returned too much data.");
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
function revertDetail(error) {
|
|
47
|
+
if (error instanceof Error &&
|
|
48
|
+
"shortMessage" in error &&
|
|
49
|
+
typeof error.shortMessage === "string") {
|
|
50
|
+
return error.shortMessage;
|
|
51
|
+
}
|
|
52
|
+
return error instanceof Error
|
|
53
|
+
? error.message.split("\n")[0]
|
|
54
|
+
: "The call would revert.";
|
|
55
|
+
}
|
|
56
|
+
/** Node text saying the method itself is missing: "method not found", "Unsupported method: eth_simulateV1". */
|
|
57
|
+
function namesMissingMethod(text) {
|
|
58
|
+
return (/\bmethod\b|eth_simulateV1/i.test(text) &&
|
|
59
|
+
/not (?:found|supported|available|allowed|implemented)|does not exist|unsupported/i.test(text) &&
|
|
60
|
+
!/revert/i.test(text));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The node says `eth_simulateV1` itself is unavailable, not that a call
|
|
64
|
+
* reverted or the node failed: a method-not-found (-32601) or
|
|
65
|
+
* method-not-supported (-32004) code anywhere in the error's first eight
|
|
66
|
+
* causes, or the node's own text saying the method is missing. That text is a
|
|
67
|
+
* viem error's `details`; its `message` quotes the request body, which always
|
|
68
|
+
* names eth_simulateV1, so only an error from outside viem is read by its
|
|
69
|
+
* `message`. A revert, a missing block ("header not found") or bad parameters
|
|
70
|
+
* never qualify.
|
|
71
|
+
*/
|
|
72
|
+
function simulationUnsupported(error) {
|
|
73
|
+
let current = error;
|
|
74
|
+
for (let depth = 0; depth < 8 && current && typeof current === "object"; depth += 1) {
|
|
75
|
+
const item = current;
|
|
76
|
+
if (item.code === -32601 || item.code === -32004)
|
|
77
|
+
return true;
|
|
78
|
+
const text = typeof item.details === "string"
|
|
79
|
+
? item.details
|
|
80
|
+
: typeof item.shortMessage === "string"
|
|
81
|
+
? undefined
|
|
82
|
+
: item.message;
|
|
83
|
+
if (typeof text === "string" && namesMissingMethod(text))
|
|
84
|
+
return true;
|
|
85
|
+
current = item.cause;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Prove a whole sequence from `from` before anything is signed. `eth_simulateV1`
|
|
91
|
+
* runs the calls in order against one state. Where a node lacks it, each call
|
|
92
|
+
* that does not depend on an earlier one runs alone through
|
|
93
|
+
* {@link simulateStateChangingTransaction}; the dependent ones are left to the
|
|
94
|
+
* executing wallet's own simulation. `chainName` names the chain in errors.
|
|
95
|
+
*/
|
|
96
|
+
export async function simulateCallSequence(client, { from, calls, chainName, }) {
|
|
97
|
+
let sequence;
|
|
98
|
+
try {
|
|
99
|
+
const simulated = await client.simulateCalls({
|
|
100
|
+
account: from,
|
|
101
|
+
calls: calls.map(({ to, data, value }) => ({ to, data, value })),
|
|
102
|
+
});
|
|
103
|
+
sequence = simulated.results.map((result) => result.status === "failure"
|
|
104
|
+
? { status: "failure", error: result.error }
|
|
105
|
+
: { status: result.status });
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
if (!simulationUnsupported(error)) {
|
|
109
|
+
throw new Error(`The batch could not be simulated on ${chainName}: ${revertDetail(error)}`);
|
|
110
|
+
}
|
|
111
|
+
sequence = null;
|
|
112
|
+
}
|
|
113
|
+
for (const [index, call] of calls.entries()) {
|
|
114
|
+
if (sequence) {
|
|
115
|
+
const result = sequence[index];
|
|
116
|
+
if (result?.status === "success")
|
|
117
|
+
continue;
|
|
118
|
+
throw new Error(`${call.label} cannot run on ${chainName}: ${result?.status === "failure"
|
|
119
|
+
? revertDetail(result.error)
|
|
120
|
+
: "The call would revert."}`);
|
|
121
|
+
}
|
|
122
|
+
if (call.dependsOnPrior)
|
|
123
|
+
continue;
|
|
124
|
+
try {
|
|
125
|
+
await simulateStateChangingTransaction(client, {
|
|
126
|
+
from,
|
|
127
|
+
to: call.to,
|
|
128
|
+
data: call.data,
|
|
129
|
+
value: call.value,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw new Error(`${call.label} cannot run on ${chainName}: ${revertDetail(error)}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=simulation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulation.js","sourceRoot":"","sources":["../../../src/review/simulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,12 @@ export declare const SAFE_NONCE_GUIDANCE = "On Safe\u2019s confirmation screen,
|
|
|
20
20
|
/** The unix deadline for a swap/liquidity transaction proposed now. */
|
|
21
21
|
export declare function swapDeadline(isSafe: boolean, nowMs?: number): bigint;
|
|
22
22
|
export declare function safeQueueUrl(chainId: number, safe: Address): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Whether a WalletConnect peer is Safe{Wallet}. It proposes like the Safe
|
|
25
|
+
* app: the gas a dapp sends becomes the proposal's safeTxGas, and the reply is
|
|
26
|
+
* a safeTxHash unless the owner executes at once.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isSafeWalletPeer(url: string | undefined): boolean;
|
|
23
29
|
/**
|
|
24
30
|
* Resolve a Safe proposal identifier to its actual onchain execution hash.
|
|
25
31
|
* A safeTxHash is not a transaction hash and must never be receipt-polled.
|
|
@@ -28,9 +34,18 @@ export declare function safeQueueUrl(chainId: number, safe: Address): string | n
|
|
|
28
34
|
* map), NOT `SAFE_PREFIX`: OP Sepolia and Arbitrum Sepolia have Safe app
|
|
29
35
|
* URLs but no hosted transaction service, and polling a nonexistent service
|
|
30
36
|
* left every Safe write there pending forever.
|
|
37
|
+
*
|
|
38
|
+
* With the chain's `client`, a hash the chain already knows as a transaction
|
|
39
|
+
* is returned as the execution: over WalletConnect, Safe{Wallet} answers with
|
|
40
|
+
* the execution's own hash when the owner executes at once.
|
|
31
41
|
*/
|
|
32
42
|
export declare function waitForSafeExecutionHash(chainId: number, safeTxHash: Hex, options?: {
|
|
33
43
|
pollingIntervalMs?: number;
|
|
34
44
|
signal?: AbortSignal;
|
|
45
|
+
client?: {
|
|
46
|
+
getTransaction: (args: {
|
|
47
|
+
hash: Hex;
|
|
48
|
+
}) => Promise<unknown>;
|
|
49
|
+
};
|
|
35
50
|
}): Promise<Hex>;
|
|
36
51
|
//# sourceMappingURL=safeService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeService.d.ts","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/D,CAAC;AAEF;6EAC6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW9D;AAED,eAAO,MAAM,mBAAmB,uJACiH,CAAC;AAUlJ,uEAAuE;AACvE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,MAAmB,GACzB,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK1E;AAWD
|
|
1
|
+
{"version":3,"file":"safeService.d.ts","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/D,CAAC;AAEF;6EAC6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW9D;AAED,eAAO,MAAM,mBAAmB,uJACiH,CAAC;AAUlJ,uEAAuE;AACvE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,MAAmB,GACzB,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK1E;AAWD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMjE;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,GAAG,EACf,OAAO,GAAE;IACP,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,cAAc,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE,GAAG,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CACnE,GACL,OAAO,CAAC,GAAG,CAAC,CA+Ed"}
|
package/dist/esm/safeService.js
CHANGED
|
@@ -69,6 +69,22 @@ export function safeQueueUrl(chainId, safe) {
|
|
|
69
69
|
* At the default 5s interval this is about a minute of patience.
|
|
70
70
|
*/
|
|
71
71
|
const SAFE_EXECUTION_NOT_FOUND_LIMIT = 12;
|
|
72
|
+
/**
|
|
73
|
+
* Whether a WalletConnect peer is Safe{Wallet}. It proposes like the Safe
|
|
74
|
+
* app: the gas a dapp sends becomes the proposal's safeTxGas, and the reply is
|
|
75
|
+
* a safeTxHash unless the owner executes at once.
|
|
76
|
+
*/
|
|
77
|
+
export function isSafeWalletPeer(url) {
|
|
78
|
+
try {
|
|
79
|
+
return new URL(url ?? "").origin === "https://app.safe.global";
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function noHostedService(chainId) {
|
|
86
|
+
return new Error(`Safe does not host a transaction service on chain ${chainId}, so this proposal cannot be tracked here. Execute it from the Safe app; the action takes effect once it is executed there.`);
|
|
87
|
+
}
|
|
72
88
|
/**
|
|
73
89
|
* Resolve a Safe proposal identifier to its actual onchain execution hash.
|
|
74
90
|
* A safeTxHash is not a transaction hash and must never be receipt-polled.
|
|
@@ -77,46 +93,62 @@ const SAFE_EXECUTION_NOT_FOUND_LIMIT = 12;
|
|
|
77
93
|
* map), NOT `SAFE_PREFIX`: OP Sepolia and Arbitrum Sepolia have Safe app
|
|
78
94
|
* URLs but no hosted transaction service, and polling a nonexistent service
|
|
79
95
|
* left every Safe write there pending forever.
|
|
96
|
+
*
|
|
97
|
+
* With the chain's `client`, a hash the chain already knows as a transaction
|
|
98
|
+
* is returned as the execution: over WalletConnect, Safe{Wallet} answers with
|
|
99
|
+
* the execution's own hash when the owner executes at once.
|
|
80
100
|
*/
|
|
81
101
|
export async function waitForSafeExecutionHash(chainId, safeTxHash, options = {}) {
|
|
82
102
|
const base = safeServiceBase(chainId);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
103
|
+
const { client } = options;
|
|
104
|
+
if (!base && !client)
|
|
105
|
+
throw noHostedService(chainId);
|
|
86
106
|
const interval = options.pollingIntervalMs ?? 5_000;
|
|
87
|
-
const endpoint = `${base}/api/v1/multisig-transactions/${safeTxHash}/`;
|
|
107
|
+
const endpoint = base && `${base}/api/v1/multisig-transactions/${safeTxHash}/`;
|
|
88
108
|
let consecutiveNotFound = 0;
|
|
89
109
|
for (;;) {
|
|
90
110
|
if (options.signal?.aborted) {
|
|
91
111
|
throw new DOMException("Safe execution wait aborted", "AbortError");
|
|
92
112
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
113
|
+
if (client &&
|
|
114
|
+
(await client.getTransaction({ hash: safeTxHash }).then(() => true, () => false))) {
|
|
115
|
+
return safeTxHash;
|
|
116
|
+
}
|
|
117
|
+
if (!endpoint) {
|
|
118
|
+
consecutiveNotFound += 1;
|
|
119
|
+
if (consecutiveNotFound >= SAFE_EXECUTION_NOT_FOUND_LIMIT) {
|
|
120
|
+
throw noHostedService(chainId);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
try {
|
|
125
|
+
const response = await fetch(endpoint);
|
|
126
|
+
if (response.ok) {
|
|
127
|
+
consecutiveNotFound = 0;
|
|
128
|
+
const transaction = (await response.json());
|
|
129
|
+
if (transaction.isExecuted && transaction.isSuccessful === false) {
|
|
130
|
+
throw new Error("Safe executed the proposal, but the onchain transaction failed.");
|
|
131
|
+
}
|
|
132
|
+
if (transaction.isExecuted && transaction.transactionHash) {
|
|
133
|
+
return transaction.transactionHash;
|
|
134
|
+
}
|
|
100
135
|
}
|
|
101
|
-
if (
|
|
102
|
-
|
|
136
|
+
else if (response.status === 404) {
|
|
137
|
+
consecutiveNotFound += 1;
|
|
138
|
+
if (consecutiveNotFound >= SAFE_EXECUTION_NOT_FOUND_LIMIT) {
|
|
139
|
+
throw new Error("Safe’s transaction service has no record of this proposal. Tracking cannot continue here — check the proposal in the Safe app; if it exists there, it will still take effect once executed.");
|
|
140
|
+
}
|
|
103
141
|
}
|
|
104
142
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
throw
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (error instanceof Error &&
|
|
145
|
+
/executed the proposal.*failed|no record of this proposal/i.test(error.message)) {
|
|
146
|
+
throw error;
|
|
109
147
|
}
|
|
148
|
+
// Other service/network failures are transient. Keep the already-created
|
|
149
|
+
// proposal pending instead of inviting a duplicate submission.
|
|
110
150
|
}
|
|
111
151
|
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
if (error instanceof Error &&
|
|
114
|
-
/executed the proposal.*failed|no record of this proposal/i.test(error.message)) {
|
|
115
|
-
throw error;
|
|
116
|
-
}
|
|
117
|
-
// Other service/network failures are transient. Keep the already-created
|
|
118
|
-
// proposal pending instead of inviting a duplicate submission.
|
|
119
|
-
}
|
|
120
152
|
await new Promise((resolve, reject) => {
|
|
121
153
|
function onAbort() {
|
|
122
154
|
clearTimeout(timer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeService.js","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoC;IAC1D,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoC;IAClE,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF;6EAC6E;AAC7E,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAC7B,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC9B,+IAA+I,CAAC;AAElJ;qCACqC;AACrC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC;;qEAEqE;AACrE,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAErD,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,OAAO,MAAM,CACX,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAa;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM;QACX,CAAC,CAAC,mDAAmD,MAAM,IAAI,IAAI,EAAE;QACrE,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"safeService.js","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoC;IAC1D,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoC;IAClE,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF;6EAC6E;AAC7E,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAC7B,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC9B,+IAA+I,CAAC;AAElJ;qCACqC;AACrC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC;;qEAEqE;AACrE,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAErD,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,OAAO,MAAM,CACX,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAa;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM;QACX,CAAC,CAAC,mDAAmD,MAAM,IAAI,IAAI,EAAE;QACrE,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,yBAAyB,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,IAAI,KAAK,CACd,qDAAqD,OAAO,6HAA6H,CAC1L,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,UAAe,EACf,UAII,EAAE;IAEN,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;IACpD,MAAM,QAAQ,GACZ,IAAI,IAAI,GAAG,IAAI,iCAAiC,UAAU,GAAG,CAAC;IAChE,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,SAAS,CAAC;QACR,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QACD,IACE,MAAM;YACN,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CACrD,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC,EACF,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,mBAAmB,IAAI,CAAC,CAAC;YACzB,IAAI,mBAAmB,IAAI,8BAA8B,EAAE,CAAC;gBAC1D,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,mBAAmB,GAAG,CAAC,CAAC;oBACxB,MAAM,WAAW,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIzC,CAAC;oBACF,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;wBACjE,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;oBACJ,CAAC;oBACD,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;wBAC1D,OAAO,WAAW,CAAC,eAAe,CAAC;oBACrC,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,mBAAmB,IAAI,CAAC,CAAC;oBACzB,IAAI,mBAAmB,IAAI,8BAA8B,EAAE,CAAC;wBAC1D,MAAM,IAAI,KAAK,CACb,6LAA6L,CAC9L,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,KAAK;oBACtB,2DAA2D,CAAC,IAAI,CAC9D,KAAK,CAAC,OAAO,CACd,EACD,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,yEAAyE;gBACzE,+DAA+D;YACjE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,SAAS,OAAO;gBACd,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,YAAY,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,QAAQ,CAAC,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;gBAAE,OAAO,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -34,6 +34,33 @@ export declare function analyzeFeeSimulation(value: unknown, options: FeeOptions
|
|
|
34
34
|
export declare function checkFeeBuyback(client: FeeRpc, call: FeeCall, options: FeeOptions): Promise<FeeResult>;
|
|
35
35
|
export declare function feeMessage(result: FeeResult): string;
|
|
36
36
|
export declare function feeReceipt(fee: Fee): string;
|
|
37
|
+
/** Whether a reviewed call can pay a protocol fee, so its fee return is worth checking. */
|
|
38
|
+
export declare function isFeePayingCall(call: {
|
|
39
|
+
functionName?: string;
|
|
40
|
+
}): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* One result for a batch's fee-paying calls: the worst status, every fee keyed
|
|
43
|
+
* by its call's index, and the oldest check time.
|
|
44
|
+
*/
|
|
45
|
+
export declare function combineFeeResults(results: readonly FeeResult[]): FeeResult;
|
|
46
|
+
/**
|
|
47
|
+
* The review's confirm label while a fee return shows, or undefined to keep
|
|
48
|
+
* the review's own label.
|
|
49
|
+
*/
|
|
50
|
+
export declare function feeReviewConfirmLabel({ enabled, busy, status, }: {
|
|
51
|
+
/** Whether the review holds a fee-paying call ({@link isFeePayingCall}). */
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
/** Whether a fee check is running. */
|
|
54
|
+
busy: boolean;
|
|
55
|
+
status: FeeResult["status"];
|
|
56
|
+
}): string | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The contracts {@link checkFeeBuyback} trusts on `chainId`: every buyback hook
|
|
59
|
+
* generation, the terminal and controller, and the terminal and REVLoans as
|
|
60
|
+
* fee payers. A chain without deployments trusts nothing, so its check reads
|
|
61
|
+
* as unknown.
|
|
62
|
+
*/
|
|
63
|
+
export declare function feeBuybackOptions(chainId: number, beneficiary: Address): Required<FeeOptions>;
|
|
37
64
|
/** One review owns one watcher. It never sends, and stale/closed reviews cannot approve. */
|
|
38
65
|
export declare function createFeeWatch(check: () => Promise<FeeResult>, changed: (result: FeeResult) => void): {
|
|
39
66
|
refresh: () => Promise<FeeResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeBuyback.d.ts","sourceRoot":"","sources":["../../../src/v6/feeBuyback.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"feeBuyback.d.ts","sourceRoot":"","sources":["../../../src/v6/feeBuyback.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAed,MAAM,MAAM,GAAG,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CACrD,CAAC;AACF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAClD,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,MAAM,GAAG;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAKpE,sGAAsG;AACtG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,UAAU,GAClB,SAAS,CA6IX;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CAqDpB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAQpD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAO3C;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAIxE;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAgB1E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,IAAI,EACJ,MAAM,GACP,EAAE;IACD,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,GACnB,QAAQ,CAAC,UAAU,CAAC,CAsBtB;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI;mBAQV,OAAO,CAAC,SAAS,CAAC;;;EA2E7C"}
|