@gearbox-protocol/sdk 14.11.0-next.1 → 14.11.0-next.10
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/common-utils/utils/index.js +2 -0
- package/dist/cjs/{history/trace-utils.js → common-utils/utils/trace.js} +62 -5
- package/dist/cjs/dev/index.js +3 -1
- package/dist/cjs/dev/verifyTestnet.js +124 -0
- package/dist/cjs/history/assembleOperations.js +6 -6
- package/dist/cjs/history/classifyMulticallOperations.js +31 -25
- package/dist/cjs/history/index.js +0 -2
- package/dist/cjs/history/parseCreditAccountTransaction.js +5 -6
- package/dist/cjs/history/toLegacyOperation.js +5 -1
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +25 -37
- package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
- package/dist/cjs/{history/internal-types.js → plugins/adapters/transfers.js} +2 -2
- package/dist/cjs/preview/index.js +3 -1
- package/dist/cjs/preview/parse/classifyInnerOperations.js +5 -43
- package/dist/cjs/preview/parse/extractExpectedBalanceChanges.js +48 -0
- package/dist/cjs/preview/parse/index.js +8 -6
- package/dist/cjs/preview/parse/{parseCreditFacadeOperation.js → parseFacadeOperationCalldata.js} +19 -15
- package/dist/cjs/preview/parse/{parseTransaction.js → parseOperationCalldata.js} +10 -10
- package/dist/cjs/preview/parse/{parsePoolOperation.js → parsePoolOperationCalldata.js} +27 -12
- package/dist/cjs/{history/inner-operations.js → preview/parse/types-adapters.js} +2 -2
- package/dist/cjs/preview/parse/types-facades.js +16 -0
- package/dist/cjs/preview/parse/types-pools.js +16 -0
- package/dist/cjs/preview/parse/types.js +9 -2
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +46 -0
- package/dist/cjs/preview/prerequisites/index.js +2 -0
- package/dist/cjs/preview/prerequisites/prepareAction.js +48 -0
- package/dist/cjs/preview/simulate/constants.js +28 -0
- package/dist/cjs/preview/simulate/{decodeSimulationError.js → errors.js} +37 -3
- package/dist/cjs/preview/simulate/holders.js +45 -0
- package/dist/cjs/preview/simulate/index.js +21 -9
- package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
- package/dist/cjs/preview/simulate/simulateOperation.js +37 -0
- package/dist/cjs/preview/simulate/simulatePoolOpMulticall.js +155 -0
- package/dist/cjs/preview/simulate/simulatePoolOpV1.js +106 -0
- package/dist/cjs/preview/simulate/simulatePoolOperation.js +30 -62
- package/dist/cjs/{history → preview/trace}/errors.js +0 -26
- package/dist/cjs/preview/trace/extractAdapterCallTraces.js +58 -0
- package/dist/cjs/{history → preview/trace}/extractTransfers.js +10 -13
- package/dist/cjs/{history → preview/trace}/findFacadeCalls.js +3 -3
- package/dist/cjs/preview/trace/index.js +30 -0
- package/dist/cjs/preview/trace/types.js +16 -0
- package/dist/cjs/rewards/rewards/api.js +4 -2
- package/dist/cjs/rewards/rewards/merkl-api.js +9 -3
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +154 -0
- package/dist/esm/common-utils/utils/index.js +1 -0
- package/dist/esm/common-utils/utils/trace.js +93 -0
- package/dist/esm/dev/index.js +1 -0
- package/dist/esm/dev/verifyTestnet.js +98 -0
- package/dist/esm/history/assembleOperations.js +8 -6
- package/dist/esm/history/classifyMulticallOperations.js +29 -23
- package/dist/esm/history/index.js +0 -1
- package/dist/esm/history/parseCreditAccountTransaction.js +3 -4
- package/dist/esm/history/toLegacyOperation.js +5 -1
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +28 -38
- package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
- package/dist/esm/preview/index.js +1 -0
- package/dist/esm/preview/parse/classifyInnerOperations.js +6 -46
- package/dist/esm/preview/parse/extractExpectedBalanceChanges.js +24 -0
- package/dist/esm/preview/parse/index.js +4 -3
- package/dist/esm/preview/parse/{parseCreditFacadeOperation.js → parseFacadeOperationCalldata.js} +16 -16
- package/dist/esm/preview/parse/{parseTransaction.js → parseOperationCalldata.js} +6 -6
- package/dist/esm/preview/parse/{parsePoolOperation.js → parsePoolOperationCalldata.js} +23 -8
- package/dist/esm/preview/parse/types-facades.js +0 -0
- package/dist/esm/preview/parse/types-pools.js +0 -0
- package/dist/esm/preview/parse/types.js +4 -1
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +46 -0
- package/dist/esm/preview/prerequisites/index.js +1 -0
- package/dist/esm/preview/prerequisites/prepareAction.js +23 -0
- package/dist/esm/preview/simulate/constants.js +4 -0
- package/dist/esm/preview/simulate/{decodeSimulationError.js → errors.js} +31 -0
- package/dist/esm/preview/simulate/holders.js +21 -0
- package/dist/esm/preview/simulate/index.js +12 -4
- package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
- package/dist/esm/preview/simulate/simulateOperation.js +13 -0
- package/dist/esm/preview/simulate/simulatePoolOpMulticall.js +130 -0
- package/dist/esm/preview/simulate/simulatePoolOpV1.js +82 -0
- package/dist/esm/preview/simulate/simulatePoolOperation.js +33 -62
- package/dist/esm/{history → preview/trace}/errors.js +0 -24
- package/dist/esm/preview/trace/extractAdapterCallTraces.js +40 -0
- package/dist/esm/{history → preview/trace}/extractTransfers.js +10 -13
- package/dist/esm/{history → preview/trace}/findFacadeCalls.js +4 -2
- package/dist/esm/preview/trace/index.js +5 -0
- package/dist/esm/preview/trace/types.js +0 -0
- package/dist/esm/rewards/rewards/api.js +4 -2
- package/dist/esm/rewards/rewards/merkl-api.js +9 -3
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +154 -0
- package/dist/types/common-utils/utils/index.d.ts +1 -0
- package/dist/types/common-utils/utils/trace.d.ts +73 -0
- package/dist/types/dev/index.d.ts +1 -0
- package/dist/types/dev/verifyTestnet.d.ts +82 -0
- package/dist/types/history/assembleOperations.d.ts +11 -6
- package/dist/types/history/classifyMulticallOperations.d.ts +21 -9
- package/dist/types/history/index.d.ts +0 -1
- package/dist/types/history/mapOperations.d.ts +7 -9
- package/dist/types/history/types.d.ts +22 -65
- package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +16 -17
- package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +10 -1
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +1 -1
- package/dist/types/plugins/adapters/transferHelpers.d.ts +1 -1
- package/dist/types/plugins/adapters/transfers.d.ts +17 -0
- package/dist/types/plugins/adapters/types.d.ts +8 -46
- package/dist/types/preview/index.d.ts +1 -0
- package/dist/types/preview/parse/classifyInnerOperations.d.ts +8 -8
- package/dist/types/preview/parse/extractExpectedBalanceChanges.d.ts +22 -0
- package/dist/types/preview/parse/index.d.ts +4 -3
- package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +19 -0
- package/dist/types/preview/parse/{parseTransaction.d.ts → parseOperationCalldata.d.ts} +4 -4
- package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +17 -0
- package/dist/types/preview/parse/types-adapters.d.ts +69 -0
- package/dist/types/preview/parse/types-facades.d.ts +157 -0
- package/dist/types/preview/parse/types-pools.d.ts +55 -0
- package/dist/types/preview/parse/types.d.ts +16 -50
- package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +3 -3
- package/dist/types/preview/prerequisites/index.d.ts +1 -0
- package/dist/types/preview/prerequisites/prepareAction.d.ts +52 -0
- package/dist/types/preview/simulate/constants.d.ts +6 -0
- package/dist/types/preview/simulate/errors.d.ts +51 -0
- package/dist/types/preview/simulate/extractERC20Transfers.d.ts +1 -1
- package/dist/types/preview/simulate/holders.d.ts +7 -0
- package/dist/types/preview/simulate/index.d.ts +9 -4
- package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +25 -0
- package/dist/types/preview/simulate/simulateOperation.d.ts +20 -0
- package/dist/types/preview/simulate/simulatePoolOpMulticall.d.ts +28 -0
- package/dist/types/preview/simulate/simulatePoolOpV1.d.ts +14 -0
- package/dist/types/preview/simulate/simulatePoolOperation.d.ts +5 -27
- package/dist/types/preview/simulate/types.d.ts +54 -18
- package/dist/types/{history → preview/trace}/errors.d.ts +0 -10
- package/dist/types/preview/trace/extractAdapterCallTraces.d.ts +23 -0
- package/dist/types/{history → preview/trace}/extractTransfers.d.ts +14 -5
- package/dist/types/{history → preview/trace}/findFacadeCalls.d.ts +3 -2
- package/dist/types/preview/trace/index.d.ts +5 -0
- package/dist/types/preview/trace/types.d.ts +21 -0
- package/dist/types/rewards/rewards/api.d.ts +2 -1
- package/dist/types/rewards/rewards/merkl-api.d.ts +2 -1
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +21 -1
- package/dist/types/sdk/accounts/types.d.ts +82 -0
- package/package.json +1 -1
- package/dist/cjs/history/extractProtocolCalls.js +0 -53
- package/dist/esm/history/extractProtocolCalls.js +0 -32
- package/dist/esm/history/trace-utils.js +0 -36
- package/dist/types/history/extractProtocolCalls.d.ts +0 -8
- package/dist/types/history/inner-operations.d.ts +0 -57
- package/dist/types/history/internal-types.d.ts +0 -47
- package/dist/types/history/trace-utils.d.ts +0 -12
- package/dist/types/preview/parse/parseCreditFacadeOperation.d.ts +0 -18
- package/dist/types/preview/parse/parsePoolOperation.d.ts +0 -15
- package/dist/types/preview/simulate/decodeSimulationError.d.ts +0 -18
- /package/dist/esm/{history/inner-operations.js → plugins/adapters/transfers.js} +0 -0
- /package/dist/esm/{history/internal-types.js → preview/parse/types-adapters.js} +0 -0
|
@@ -21,57 +21,28 @@ __export(classifyInnerOperations_exports, {
|
|
|
21
21
|
classifyInnerOperations: () => classifyInnerOperations
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(classifyInnerOperations_exports);
|
|
24
|
-
var import_viem = require("viem");
|
|
25
24
|
var import_adapters = require("../../plugins/adapters/index.js");
|
|
26
25
|
function classifyInnerOperations(calls, props) {
|
|
27
26
|
const { sdk, underlying } = props;
|
|
28
27
|
const result = [];
|
|
29
28
|
for (const call of calls) {
|
|
30
29
|
const contract = sdk.getContract(call.target);
|
|
31
|
-
if (contract instanceof import_adapters.AbstractAdapterContract) {
|
|
30
|
+
if (contract instanceof import_adapters.AbstractAdapterContract || contract === void 0) {
|
|
32
31
|
result.push({
|
|
33
32
|
operation: "Execute",
|
|
34
33
|
adapter: call.target,
|
|
35
|
-
protocol: contract.targetContract,
|
|
36
34
|
adapterType: call.contractType,
|
|
37
35
|
version: call.version,
|
|
38
36
|
label: call.label,
|
|
39
37
|
adapterFunctionName: call.functionName,
|
|
40
|
-
adapterArgs: call.rawArgs
|
|
41
|
-
// TODO: mirror the adapter call into the protocol fields for now. The
|
|
42
|
-
// real protocol-level call (adapter -> target contract) only exists in
|
|
43
|
-
// the execution call trace, which is not available from raw calldata.
|
|
44
|
-
// Recovering the actual protocol function/args requires a call trace.
|
|
45
|
-
protocolFunctionName: call.functionName,
|
|
46
|
-
protocolArgs: call.rawArgs,
|
|
47
|
-
transfers: [],
|
|
48
|
-
legacy: mockLegacyOperation()
|
|
38
|
+
adapterArgs: call.rawArgs
|
|
49
39
|
});
|
|
50
40
|
continue;
|
|
51
41
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
continue;
|
|
42
|
+
const op = classifyFacadeInnerCall(call, underlying);
|
|
43
|
+
if (op) {
|
|
44
|
+
result.push(op);
|
|
56
45
|
}
|
|
57
|
-
result.push({
|
|
58
|
-
operation: "Execute",
|
|
59
|
-
adapter: call.target,
|
|
60
|
-
protocol: call.target,
|
|
61
|
-
adapterType: call.contractType,
|
|
62
|
-
version: call.version,
|
|
63
|
-
label: call.label,
|
|
64
|
-
adapterFunctionName: call.functionName,
|
|
65
|
-
adapterArgs: call.rawArgs,
|
|
66
|
-
// TODO: mirror the adapter call into the protocol fields for now. The
|
|
67
|
-
// real protocol-level call (adapter -> target contract) only exists in
|
|
68
|
-
// the execution call trace, which is not available from raw calldata.
|
|
69
|
-
// Recovering the actual protocol function/args requires a call trace.
|
|
70
|
-
protocolFunctionName: call.functionName,
|
|
71
|
-
protocolArgs: call.rawArgs,
|
|
72
|
-
transfers: [],
|
|
73
|
-
legacy: mockLegacyOperation()
|
|
74
|
-
});
|
|
75
46
|
}
|
|
76
47
|
return result;
|
|
77
48
|
}
|
|
@@ -115,15 +86,6 @@ function classifyFacadeInnerCall(call, underlying) {
|
|
|
115
86
|
return null;
|
|
116
87
|
}
|
|
117
88
|
}
|
|
118
|
-
function mockLegacyOperation() {
|
|
119
|
-
return {
|
|
120
|
-
operation: "Swap",
|
|
121
|
-
from: import_viem.zeroAddress,
|
|
122
|
-
fromAmount: "0",
|
|
123
|
-
to: import_viem.zeroAddress,
|
|
124
|
-
toAmount: "0"
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
89
|
// Annotate the CommonJS export names for ESM import in node:
|
|
128
90
|
0 && (module.exports = {
|
|
129
91
|
classifyInnerOperations
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var extractExpectedBalanceChanges_exports = {};
|
|
20
|
+
__export(extractExpectedBalanceChanges_exports, {
|
|
21
|
+
extractExpectedBalanceChanges: () => extractExpectedBalanceChanges
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(extractExpectedBalanceChanges_exports);
|
|
24
|
+
function extractExpectedBalanceChanges(innerCalls) {
|
|
25
|
+
const calls = innerCalls.filter(
|
|
26
|
+
(call) => functionName(call) !== "onDemandPriceUpdates"
|
|
27
|
+
);
|
|
28
|
+
if (calls.length === 0) {
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
const first = calls[0];
|
|
32
|
+
const last = calls[calls.length - 1];
|
|
33
|
+
if (functionName(first) !== "storeExpectedBalances" || functionName(last) !== "compareBalances") {
|
|
34
|
+
return void 0;
|
|
35
|
+
}
|
|
36
|
+
const balanceDeltas = first.rawArgs.balanceDeltas;
|
|
37
|
+
if (!balanceDeltas) {
|
|
38
|
+
return void 0;
|
|
39
|
+
}
|
|
40
|
+
return balanceDeltas.map(({ token, amount }) => ({ token, delta: amount }));
|
|
41
|
+
}
|
|
42
|
+
function functionName(call) {
|
|
43
|
+
return call.functionName.split("(")[0];
|
|
44
|
+
}
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
extractExpectedBalanceChanges
|
|
48
|
+
});
|
|
@@ -17,16 +17,18 @@ var parse_exports = {};
|
|
|
17
17
|
module.exports = __toCommonJS(parse_exports);
|
|
18
18
|
__reExport(parse_exports, require("./classifyInnerOperations.js"), module.exports);
|
|
19
19
|
__reExport(parse_exports, require("./errors.js"), module.exports);
|
|
20
|
-
__reExport(parse_exports, require("./
|
|
21
|
-
__reExport(parse_exports, require("./
|
|
22
|
-
__reExport(parse_exports, require("./
|
|
20
|
+
__reExport(parse_exports, require("./extractExpectedBalanceChanges.js"), module.exports);
|
|
21
|
+
__reExport(parse_exports, require("./parseFacadeOperationCalldata.js"), module.exports);
|
|
22
|
+
__reExport(parse_exports, require("./parseOperationCalldata.js"), module.exports);
|
|
23
|
+
__reExport(parse_exports, require("./parsePoolOperationCalldata.js"), module.exports);
|
|
23
24
|
__reExport(parse_exports, require("./types.js"), module.exports);
|
|
24
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
25
26
|
0 && (module.exports = {
|
|
26
27
|
...require("./classifyInnerOperations.js"),
|
|
27
28
|
...require("./errors.js"),
|
|
28
|
-
...require("./
|
|
29
|
-
...require("./
|
|
30
|
-
...require("./
|
|
29
|
+
...require("./extractExpectedBalanceChanges.js"),
|
|
30
|
+
...require("./parseFacadeOperationCalldata.js"),
|
|
31
|
+
...require("./parseOperationCalldata.js"),
|
|
32
|
+
...require("./parsePoolOperationCalldata.js"),
|
|
31
33
|
...require("./types.js")
|
|
32
34
|
});
|
package/dist/cjs/preview/parse/{parseCreditFacadeOperation.js → parseFacadeOperationCalldata.js}
RENAMED
|
@@ -16,14 +16,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var parseFacadeOperationCalldata_exports = {};
|
|
20
|
+
__export(parseFacadeOperationCalldata_exports, {
|
|
21
|
+
parseFacadeOperationCalldata: () => parseFacadeOperationCalldata
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(parseFacadeOperationCalldata_exports);
|
|
24
24
|
var import_viem = require("viem");
|
|
25
25
|
var import_classifyInnerOperations = require("./classifyInnerOperations.js");
|
|
26
|
-
|
|
26
|
+
var import_extractExpectedBalanceChanges = require("./extractExpectedBalanceChanges.js");
|
|
27
|
+
function parseFacadeOperationCalldata(props) {
|
|
27
28
|
const { sdk, facade, calldata } = props;
|
|
28
29
|
const parsed = sdk.parseFunctionDataV2(facade.address, calldata);
|
|
29
30
|
const functionName = parsed.functionName.split("(")[0];
|
|
@@ -36,30 +37,30 @@ function parseCreditFacadeOperation(props) {
|
|
|
36
37
|
}
|
|
37
38
|
const metadata = {
|
|
38
39
|
creditManager: suite.creditManager.address,
|
|
39
|
-
creditFacade: facade.address
|
|
40
|
-
blockNumber: Number(sdk.currentBlock),
|
|
41
|
-
txHash: import_viem.zeroHash,
|
|
42
|
-
timestamp: 0
|
|
40
|
+
creditFacade: facade.address
|
|
43
41
|
};
|
|
44
42
|
const innerCalls = rawArgs.calls ?? [];
|
|
45
43
|
const multicall = (0, import_classifyInnerOperations.classifyInnerOperations)(innerCalls, {
|
|
46
44
|
sdk,
|
|
47
45
|
underlying: suite.underlying
|
|
48
46
|
});
|
|
47
|
+
const expectedBalanceChanges = (0, import_extractExpectedBalanceChanges.extractExpectedBalanceChanges)(innerCalls);
|
|
49
48
|
switch (functionName) {
|
|
50
49
|
case "multicall":
|
|
51
50
|
return {
|
|
52
51
|
...metadata,
|
|
53
52
|
operation: "MultiCall",
|
|
54
53
|
creditAccount: rawArgs.creditAccount,
|
|
55
|
-
multicall
|
|
54
|
+
multicall,
|
|
55
|
+
expectedBalanceChanges
|
|
56
56
|
};
|
|
57
57
|
case "botMulticall":
|
|
58
58
|
return {
|
|
59
59
|
...metadata,
|
|
60
60
|
operation: "BotMulticall",
|
|
61
61
|
creditAccount: rawArgs.creditAccount,
|
|
62
|
-
multicall
|
|
62
|
+
multicall,
|
|
63
|
+
expectedBalanceChanges
|
|
63
64
|
};
|
|
64
65
|
case "openCreditAccount":
|
|
65
66
|
return {
|
|
@@ -68,14 +69,16 @@ function parseCreditFacadeOperation(props) {
|
|
|
68
69
|
creditAccount: import_viem.zeroAddress,
|
|
69
70
|
onBehalfOf: rawArgs.onBehalfOf,
|
|
70
71
|
referralCode: rawArgs.referralCode,
|
|
71
|
-
multicall
|
|
72
|
+
multicall,
|
|
73
|
+
expectedBalanceChanges
|
|
72
74
|
};
|
|
73
75
|
case "closeCreditAccount":
|
|
74
76
|
return {
|
|
75
77
|
...metadata,
|
|
76
78
|
operation: "CloseCreditAccount",
|
|
77
79
|
creditAccount: rawArgs.creditAccount,
|
|
78
|
-
multicall
|
|
80
|
+
multicall,
|
|
81
|
+
expectedBalanceChanges
|
|
79
82
|
};
|
|
80
83
|
case "liquidateCreditAccount":
|
|
81
84
|
return {
|
|
@@ -87,7 +90,8 @@ function parseCreditFacadeOperation(props) {
|
|
|
87
90
|
// liquidation, so they are not recoverable from raw calldata.
|
|
88
91
|
token: import_viem.zeroAddress,
|
|
89
92
|
remainingFunds: 0n,
|
|
90
|
-
multicall
|
|
93
|
+
multicall,
|
|
94
|
+
expectedBalanceChanges
|
|
91
95
|
};
|
|
92
96
|
case "partiallyLiquidateCreditAccount":
|
|
93
97
|
return {
|
|
@@ -107,5 +111,5 @@ function parseCreditFacadeOperation(props) {
|
|
|
107
111
|
}
|
|
108
112
|
// Annotate the CommonJS export names for ESM import in node:
|
|
109
113
|
0 && (module.exports = {
|
|
110
|
-
|
|
114
|
+
parseFacadeOperationCalldata
|
|
111
115
|
});
|
|
@@ -16,23 +16,23 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var parseOperationCalldata_exports = {};
|
|
20
|
+
__export(parseOperationCalldata_exports, {
|
|
21
|
+
parseOperationCalldata: () => parseOperationCalldata
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(parseOperationCalldata_exports);
|
|
24
24
|
var import_sdk = require("../../sdk/index.js");
|
|
25
25
|
var import_errors = require("./errors.js");
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
function
|
|
26
|
+
var import_parseFacadeOperationCalldata = require("./parseFacadeOperationCalldata.js");
|
|
27
|
+
var import_parsePoolOperationCalldata = require("./parsePoolOperationCalldata.js");
|
|
28
|
+
function parseOperationCalldata(input) {
|
|
29
29
|
const { sdk, to, calldata } = input;
|
|
30
30
|
const contract = sdk.getContract(to);
|
|
31
31
|
if (contract instanceof import_sdk.PoolV310Contract) {
|
|
32
|
-
return (0,
|
|
32
|
+
return (0, import_parsePoolOperationCalldata.parsePoolOperationCalldata)({ sdk, pool: contract, calldata });
|
|
33
33
|
}
|
|
34
34
|
if (contract instanceof import_sdk.CreditFacadeV310Contract) {
|
|
35
|
-
return (0,
|
|
35
|
+
return (0, import_parseFacadeOperationCalldata.parseFacadeOperationCalldata)({
|
|
36
36
|
sdk,
|
|
37
37
|
facade: contract,
|
|
38
38
|
calldata
|
|
@@ -42,5 +42,5 @@ function parseTransaction(input) {
|
|
|
42
42
|
}
|
|
43
43
|
// Annotate the CommonJS export names for ESM import in node:
|
|
44
44
|
0 && (module.exports = {
|
|
45
|
-
|
|
45
|
+
parseOperationCalldata
|
|
46
46
|
});
|
|
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var parsePoolOperationCalldata_exports = {};
|
|
20
|
+
__export(parsePoolOperationCalldata_exports, {
|
|
21
|
+
parsePoolOperationCalldata: () => parsePoolOperationCalldata
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(parsePoolOperationCalldata_exports);
|
|
24
24
|
var import_errors = require("./errors.js");
|
|
25
|
-
function
|
|
25
|
+
function parsePoolOperationCalldata(props) {
|
|
26
26
|
const { sdk, pool, calldata } = props;
|
|
27
27
|
const parsed = sdk.parseFunctionDataV2(pool.address, calldata);
|
|
28
28
|
const functionName = parsed.functionName.split("(")[0];
|
|
@@ -37,9 +37,26 @@ function parsePoolOperation(props) {
|
|
|
37
37
|
receiver: rawArgs.receiver,
|
|
38
38
|
assets: rawArgs.assets,
|
|
39
39
|
underlying,
|
|
40
|
-
referralCode: functionName === "depositWithReferral" ? rawArgs.referralCode : void 0
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
referralCode: functionName === "depositWithReferral" ? rawArgs.referralCode : void 0
|
|
41
|
+
};
|
|
42
|
+
case "mint":
|
|
43
|
+
case "mintWithReferral":
|
|
44
|
+
return {
|
|
45
|
+
operation: "Mint",
|
|
46
|
+
pool: pool.address,
|
|
47
|
+
receiver: rawArgs.receiver,
|
|
48
|
+
shares: rawArgs.shares,
|
|
49
|
+
underlying,
|
|
50
|
+
referralCode: functionName === "mintWithReferral" ? rawArgs.referralCode : void 0
|
|
51
|
+
};
|
|
52
|
+
case "withdraw":
|
|
53
|
+
return {
|
|
54
|
+
operation: "Withdraw",
|
|
55
|
+
pool: pool.address,
|
|
56
|
+
receiver: rawArgs.receiver,
|
|
57
|
+
owner: rawArgs.owner,
|
|
58
|
+
assets: rawArgs.assets,
|
|
59
|
+
underlying
|
|
43
60
|
};
|
|
44
61
|
case "redeem":
|
|
45
62
|
return {
|
|
@@ -48,9 +65,7 @@ function parsePoolOperation(props) {
|
|
|
48
65
|
receiver: rawArgs.receiver,
|
|
49
66
|
owner: rawArgs.owner,
|
|
50
67
|
shares: rawArgs.shares,
|
|
51
|
-
underlying
|
|
52
|
-
// Calldata-only parse: transfers are recovered later by simulation.
|
|
53
|
-
transfers: []
|
|
68
|
+
underlying
|
|
54
69
|
};
|
|
55
70
|
default:
|
|
56
71
|
throw new import_errors.UnsupportedPoolFunctionError(pool.address, parsed.functionName);
|
|
@@ -58,5 +73,5 @@ function parsePoolOperation(props) {
|
|
|
58
73
|
}
|
|
59
74
|
// Annotate the CommonJS export names for ESM import in node:
|
|
60
75
|
0 && (module.exports = {
|
|
61
|
-
|
|
76
|
+
parsePoolOperationCalldata
|
|
62
77
|
});
|
|
@@ -12,5 +12,5 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
12
12
|
return to;
|
|
13
13
|
};
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var
|
|
16
|
-
module.exports = __toCommonJS(
|
|
15
|
+
var types_adapters_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_adapters_exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_facades_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_facades_exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_pools_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_pools_exports);
|
|
@@ -15,16 +15,23 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
}
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
20
|
var types_exports = {};
|
|
20
21
|
__export(types_exports, {
|
|
21
22
|
isPoolOperation: () => isPoolOperation
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(types_exports);
|
|
25
|
+
__reExport(types_exports, require("./types-adapters.js"), module.exports);
|
|
26
|
+
__reExport(types_exports, require("./types-facades.js"), module.exports);
|
|
27
|
+
__reExport(types_exports, require("./types-pools.js"), module.exports);
|
|
24
28
|
function isPoolOperation(tx) {
|
|
25
|
-
return tx.operation === "Deposit" || tx.operation === "Redeem";
|
|
29
|
+
return tx.operation === "Deposit" || tx.operation === "Mint" || tx.operation === "Withdraw" || tx.operation === "Redeem";
|
|
26
30
|
}
|
|
27
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
32
|
0 && (module.exports = {
|
|
29
|
-
isPoolOperation
|
|
33
|
+
isPoolOperation,
|
|
34
|
+
...require("./types-adapters.js"),
|
|
35
|
+
...require("./types-facades.js"),
|
|
36
|
+
...require("./types-pools.js")
|
|
30
37
|
});
|
|
@@ -27,6 +27,12 @@ var import_BalancePrerequisite = require("./BalancePrerequisite.js");
|
|
|
27
27
|
function buildPrerequisites(tx, ctx) {
|
|
28
28
|
const { wallet } = ctx;
|
|
29
29
|
switch (tx.operation) {
|
|
30
|
+
// Deposit and Mint both pull the underlying from the caller into the pool;
|
|
31
|
+
// they only differ in which side (assets vs shares) the caller specifies.
|
|
32
|
+
// The exact underlying amount for Mint is resolved by the pool, so we can
|
|
33
|
+
// only require an allowance/balance against the known specified amount —
|
|
34
|
+
// here we approximate Mint by its shares amount (a lower bound on assets is
|
|
35
|
+
// not knowable from calldata alone).
|
|
30
36
|
case "Deposit":
|
|
31
37
|
return [
|
|
32
38
|
new import_AllowancePrerequisite.AllowancePrerequisite({
|
|
@@ -43,6 +49,24 @@ function buildPrerequisites(tx, ctx) {
|
|
|
43
49
|
title: "Sufficient token balance"
|
|
44
50
|
})
|
|
45
51
|
];
|
|
52
|
+
case "Mint":
|
|
53
|
+
return [
|
|
54
|
+
new import_AllowancePrerequisite.AllowancePrerequisite({
|
|
55
|
+
token: tx.underlying,
|
|
56
|
+
owner: wallet,
|
|
57
|
+
spender: tx.pool,
|
|
58
|
+
required: tx.shares,
|
|
59
|
+
title: "Token approved to pool"
|
|
60
|
+
}),
|
|
61
|
+
new import_BalancePrerequisite.BalancePrerequisite({
|
|
62
|
+
token: tx.underlying,
|
|
63
|
+
owner: wallet,
|
|
64
|
+
required: tx.shares,
|
|
65
|
+
title: "Sufficient token balance"
|
|
66
|
+
})
|
|
67
|
+
];
|
|
68
|
+
// Redeem and Withdraw both burn LP shares from `owner`; they only differ in
|
|
69
|
+
// which side (shares vs assets) the caller specifies.
|
|
46
70
|
case "Redeem": {
|
|
47
71
|
const prereqs = [
|
|
48
72
|
new import_BalancePrerequisite.BalancePrerequisite({
|
|
@@ -65,6 +89,28 @@ function buildPrerequisites(tx, ctx) {
|
|
|
65
89
|
}
|
|
66
90
|
return prereqs;
|
|
67
91
|
}
|
|
92
|
+
case "Withdraw": {
|
|
93
|
+
const prereqs = [
|
|
94
|
+
new import_BalancePrerequisite.BalancePrerequisite({
|
|
95
|
+
token: tx.pool,
|
|
96
|
+
owner: tx.owner,
|
|
97
|
+
required: tx.assets,
|
|
98
|
+
title: "Sufficient LP token balance"
|
|
99
|
+
})
|
|
100
|
+
];
|
|
101
|
+
if (!(0, import_viem.isAddressEqual)(tx.owner, wallet)) {
|
|
102
|
+
prereqs.push(
|
|
103
|
+
new import_AllowancePrerequisite.AllowancePrerequisite({
|
|
104
|
+
token: tx.pool,
|
|
105
|
+
owner: tx.owner,
|
|
106
|
+
spender: wallet,
|
|
107
|
+
required: tx.assets,
|
|
108
|
+
title: "LP token approved to caller"
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
return prereqs;
|
|
113
|
+
}
|
|
68
114
|
case "MultiCall":
|
|
69
115
|
case "BotMulticall":
|
|
70
116
|
case "OpenCreditAccount":
|
|
@@ -19,6 +19,7 @@ __reExport(prerequisites_exports, require("./AllowancePrerequisite.js"), module.
|
|
|
19
19
|
__reExport(prerequisites_exports, require("./BalancePrerequisite.js"), module.exports);
|
|
20
20
|
__reExport(prerequisites_exports, require("./buildPrerequisites.js"), module.exports);
|
|
21
21
|
__reExport(prerequisites_exports, require("./Prerequisite.js"), module.exports);
|
|
22
|
+
__reExport(prerequisites_exports, require("./prepareAction.js"), module.exports);
|
|
22
23
|
__reExport(prerequisites_exports, require("./runPrerequisites.js"), module.exports);
|
|
23
24
|
__reExport(prerequisites_exports, require("./types.js"), module.exports);
|
|
24
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -27,6 +28,7 @@ __reExport(prerequisites_exports, require("./types.js"), module.exports);
|
|
|
27
28
|
...require("./BalancePrerequisite.js"),
|
|
28
29
|
...require("./buildPrerequisites.js"),
|
|
29
30
|
...require("./Prerequisite.js"),
|
|
31
|
+
...require("./prepareAction.js"),
|
|
30
32
|
...require("./runPrerequisites.js"),
|
|
31
33
|
...require("./types.js")
|
|
32
34
|
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var prepareAction_exports = {};
|
|
20
|
+
__export(prepareAction_exports, {
|
|
21
|
+
isActionablePrerequisite: () => isActionablePrerequisite,
|
|
22
|
+
preparePrerequisiteAction: () => preparePrerequisiteAction
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(prepareAction_exports);
|
|
25
|
+
var import_viem = require("viem");
|
|
26
|
+
function preparePrerequisiteAction(result) {
|
|
27
|
+
if (result.kind === "allowance" && result.satisfied === false) {
|
|
28
|
+
const { token, spender, required } = result.detail;
|
|
29
|
+
return {
|
|
30
|
+
kind: "allowance",
|
|
31
|
+
to: token,
|
|
32
|
+
data: (0, import_viem.encodeFunctionData)({
|
|
33
|
+
abi: import_viem.erc20Abi,
|
|
34
|
+
functionName: "approve",
|
|
35
|
+
args: [spender, required]
|
|
36
|
+
})
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
function isActionablePrerequisite(result) {
|
|
42
|
+
return preparePrerequisiteAction(result) !== null;
|
|
43
|
+
}
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
isActionablePrerequisite,
|
|
47
|
+
preparePrerequisiteAction
|
|
48
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var constants_exports = {};
|
|
20
|
+
__export(constants_exports, {
|
|
21
|
+
ETH_SIMULATE_V1_NETWORKS: () => ETH_SIMULATE_V1_NETWORKS
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(constants_exports);
|
|
24
|
+
const ETH_SIMULATE_V1_NETWORKS = /* @__PURE__ */ new Set(["Mainnet", "Plasma", "Somnia"]);
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
ETH_SIMULATE_V1_NETWORKS
|
|
28
|
+
});
|
|
@@ -16,13 +16,44 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var errors_exports = {};
|
|
20
|
+
__export(errors_exports, {
|
|
21
|
+
PreviewSimulationError: () => PreviewSimulationError,
|
|
22
|
+
asPreviewSimulationError: () => asPreviewSimulationError,
|
|
23
|
+
combinePreviewSimulationErrors: () => combinePreviewSimulationErrors,
|
|
21
24
|
decodeSimulationError: () => decodeSimulationError
|
|
22
25
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
26
|
+
module.exports = __toCommonJS(errors_exports);
|
|
24
27
|
var import_viem = require("viem");
|
|
25
28
|
var import_errors = require("../../abi/errors.js");
|
|
29
|
+
class PreviewSimulationError extends import_viem.BaseError {
|
|
30
|
+
name = "PreviewSimulationError";
|
|
31
|
+
/** Per-flow decoded failures behind this error. */
|
|
32
|
+
failures;
|
|
33
|
+
constructor(failures) {
|
|
34
|
+
const shortMessage = failures.length <= 1 ? failures[0]?.detail.reason ?? "simulation failed" : "all simulation flows failed";
|
|
35
|
+
const cause = failures.find((f) => f.detail.cause instanceof Error)?.detail.cause;
|
|
36
|
+
super(shortMessage, {
|
|
37
|
+
metaMessages: failures.map((f) => `[${f.source}] ${f.detail.reason}`),
|
|
38
|
+
cause
|
|
39
|
+
});
|
|
40
|
+
this.failures = failures;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function asPreviewSimulationError(reason, source) {
|
|
44
|
+
if (reason instanceof PreviewSimulationError) {
|
|
45
|
+
return reason;
|
|
46
|
+
}
|
|
47
|
+
const error = reason instanceof Error ? reason : new Error(String(reason));
|
|
48
|
+
return new PreviewSimulationError([
|
|
49
|
+
{ source, detail: decodeSimulationError({ error }) }
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
function combinePreviewSimulationErrors(...errors) {
|
|
53
|
+
return new PreviewSimulationError(
|
|
54
|
+
errors.filter((e) => e).flatMap((e) => e?.failures ?? [])
|
|
55
|
+
);
|
|
56
|
+
}
|
|
26
57
|
function decodeSimulationError(revert) {
|
|
27
58
|
const { error, data } = revert;
|
|
28
59
|
if (data && data !== "0x") {
|
|
@@ -60,5 +91,8 @@ function formatDecodedError(errorName, args) {
|
|
|
60
91
|
}
|
|
61
92
|
// Annotate the CommonJS export names for ESM import in node:
|
|
62
93
|
0 && (module.exports = {
|
|
94
|
+
PreviewSimulationError,
|
|
95
|
+
asPreviewSimulationError,
|
|
96
|
+
combinePreviewSimulationErrors,
|
|
63
97
|
decodeSimulationError
|
|
64
98
|
});
|