@pimlico/alto 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/esm/cli/config/bundler.d.ts +52 -34
  2. package/esm/cli/config/bundler.js +12 -1
  3. package/esm/cli/config/bundler.js.map +1 -1
  4. package/esm/cli/config/options.d.ts +2 -1
  5. package/esm/cli/config/options.js +14 -0
  6. package/esm/cli/config/options.js.map +1 -1
  7. package/esm/cli/setupServer.js +2 -2
  8. package/esm/cli/setupServer.js.map +1 -1
  9. package/esm/executor/executorManager.js +13 -3
  10. package/esm/executor/executorManager.js.map +1 -1
  11. package/esm/handlers/gasPriceManager.d.ts +14 -0
  12. package/esm/handlers/gasPriceManager.js +71 -1
  13. package/esm/handlers/gasPriceManager.js.map +1 -1
  14. package/esm/rpc/estimation/gasEstimationHandler.d.ts +24 -0
  15. package/esm/rpc/estimation/gasEstimationHandler.js +64 -0
  16. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -0
  17. package/esm/rpc/estimation/gasEstimationsV06.d.ts +19 -0
  18. package/esm/rpc/estimation/gasEstimationsV06.js +115 -0
  19. package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -0
  20. package/esm/rpc/estimation/gasEstimationsV07.d.ts +93 -0
  21. package/esm/rpc/estimation/gasEstimationsV07.js +417 -0
  22. package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -0
  23. package/esm/rpc/estimation/types.d.ts +113 -0
  24. package/esm/rpc/estimation/types.js +122 -0
  25. package/esm/rpc/estimation/types.js.map +1 -0
  26. package/esm/rpc/rpcHandler.js +11 -7
  27. package/esm/rpc/rpcHandler.js.map +1 -1
  28. package/esm/rpc/server.js +2 -3
  29. package/esm/rpc/server.js.map +1 -1
  30. package/esm/rpc/validation/SafeValidator.d.ts +1 -1
  31. package/esm/rpc/validation/SafeValidator.js +6 -7
  32. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  33. package/esm/rpc/validation/UnsafeValidator.d.ts +4 -6
  34. package/esm/rpc/validation/UnsafeValidator.js +25 -17
  35. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  36. package/esm/types/contracts/EntryPointSimulations.d.ts +1369 -143
  37. package/esm/types/contracts/EntryPointSimulations.js +196 -372
  38. package/esm/types/contracts/EntryPointSimulations.js.map +1 -1
  39. package/esm/types/contracts/IAccountExecute.d.ts +53 -0
  40. package/esm/types/contracts/IAccountExecute.js +68 -0
  41. package/esm/types/contracts/IAccountExecute.js.map +1 -0
  42. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  43. package/esm/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  44. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  45. package/esm/types/interfaces.d.ts +1 -1
  46. package/esm/types/schemas.d.ts +68 -68
  47. package/esm/utils/validation.d.ts +1 -1
  48. package/esm/utils/validation.js +19 -7
  49. package/esm/utils/validation.js.map +1 -1
  50. package/lib/cli/config/bundler.d.ts +52 -34
  51. package/lib/cli/config/bundler.js +13 -2
  52. package/lib/cli/config/bundler.js.map +1 -1
  53. package/lib/cli/config/options.d.ts +2 -1
  54. package/lib/cli/config/options.js +15 -1
  55. package/lib/cli/config/options.js.map +1 -1
  56. package/lib/cli/setupServer.js +2 -2
  57. package/lib/cli/setupServer.js.map +1 -1
  58. package/lib/executor/executorManager.js +13 -3
  59. package/lib/executor/executorManager.js.map +1 -1
  60. package/lib/handlers/gasPriceManager.d.ts +14 -0
  61. package/lib/handlers/gasPriceManager.js +70 -0
  62. package/lib/handlers/gasPriceManager.js.map +1 -1
  63. package/lib/rpc/estimation/gasEstimationHandler.d.ts +24 -0
  64. package/lib/rpc/estimation/gasEstimationHandler.js +68 -0
  65. package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -0
  66. package/lib/rpc/estimation/gasEstimationsV06.d.ts +19 -0
  67. package/lib/rpc/estimation/gasEstimationsV06.js +119 -0
  68. package/lib/rpc/estimation/gasEstimationsV06.js.map +1 -0
  69. package/lib/rpc/estimation/gasEstimationsV07.d.ts +93 -0
  70. package/lib/rpc/estimation/gasEstimationsV07.js +423 -0
  71. package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -0
  72. package/lib/rpc/estimation/types.d.ts +113 -0
  73. package/lib/rpc/estimation/types.js +125 -0
  74. package/lib/rpc/estimation/types.js.map +1 -0
  75. package/lib/rpc/rpcHandler.js +10 -6
  76. package/lib/rpc/rpcHandler.js.map +1 -1
  77. package/lib/rpc/server.js +2 -3
  78. package/lib/rpc/server.js.map +1 -1
  79. package/lib/rpc/validation/SafeValidator.d.ts +1 -1
  80. package/lib/rpc/validation/SafeValidator.js +7 -8
  81. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  82. package/lib/rpc/validation/UnsafeValidator.d.ts +4 -6
  83. package/lib/rpc/validation/UnsafeValidator.js +25 -17
  84. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  85. package/lib/types/contracts/EntryPointSimulations.d.ts +1369 -143
  86. package/lib/types/contracts/EntryPointSimulations.js +196 -372
  87. package/lib/types/contracts/EntryPointSimulations.js.map +1 -1
  88. package/lib/types/contracts/IAccountExecute.d.ts +53 -0
  89. package/lib/types/contracts/IAccountExecute.js +71 -0
  90. package/lib/types/contracts/IAccountExecute.js.map +1 -0
  91. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  92. package/lib/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  93. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  94. package/lib/types/interfaces.d.ts +1 -1
  95. package/lib/types/schemas.d.ts +68 -68
  96. package/lib/utils/validation.d.ts +1 -1
  97. package/lib/utils/validation.js +18 -6
  98. package/lib/utils/validation.js.map +1 -1
  99. package/package.json +1 -1
  100. package/esm/rpc/EntryPointSimulationsV07.d.ts +0 -62
  101. package/esm/rpc/EntryPointSimulationsV07.js +0 -410
  102. package/esm/rpc/EntryPointSimulationsV07.js.map +0 -1
  103. package/esm/rpc/ExecuteSimulator.d.ts +0 -37
  104. package/esm/rpc/ExecuteSimulator.js +0 -48
  105. package/esm/rpc/ExecuteSimulator.js.map +0 -1
  106. package/esm/rpc/gasEstimation.d.ts +0 -17
  107. package/esm/rpc/gasEstimation.js +0 -419
  108. package/esm/rpc/gasEstimation.js.map +0 -1
  109. package/lib/rpc/EntryPointSimulationsV07.d.ts +0 -62
  110. package/lib/rpc/EntryPointSimulationsV07.js +0 -417
  111. package/lib/rpc/EntryPointSimulationsV07.js.map +0 -1
  112. package/lib/rpc/ExecuteSimulator.d.ts +0 -37
  113. package/lib/rpc/ExecuteSimulator.js +0 -51
  114. package/lib/rpc/ExecuteSimulator.js.map +0 -1
  115. package/lib/rpc/gasEstimation.d.ts +0 -17
  116. package/lib/rpc/gasEstimation.js +0 -426
  117. package/lib/rpc/gasEstimation.js.map +0 -1
@@ -1,419 +0,0 @@
1
- import { EntryPointV06Abi, ExecutionErrors, RpcError, ValidationErrors, executionResultSchema, hexDataSchema, EntryPointV06SimulationsAbi, EntryPointV07SimulationsAbi, EntryPointV07Abi, targetCallResultSchema } from "../types/index.js";
2
- import { deepHexlify, getUserOperationHash, isVersion06, toPackedUserOperation } from "../utils/index.js";
3
- import { decodeErrorResult, encodeFunctionData, toHex, decodeAbiParameters, decodeFunctionResult, toFunctionSelector, toBytes, slice } from "viem";
4
- import { z } from "zod";
5
- import { ExecuteSimulatorDeployedBytecode } from "./ExecuteSimulator.js";
6
- import { PimlicoEntryPointSimulationsAbi } from "../types/index.js";
7
- function getStateOverrides({ userOperation, entryPoint, replacedEntryPoint, stateOverride = {} }) {
8
- return replacedEntryPoint
9
- ? {
10
- ...stateOverride,
11
- [userOperation.sender]: {
12
- balance: toHex(100000000000000000000000n),
13
- ...(stateOverride
14
- ? deepHexlify(stateOverride?.[userOperation.sender])
15
- : [])
16
- },
17
- [entryPoint]: {
18
- code: ExecuteSimulatorDeployedBytecode
19
- }
20
- }
21
- : {
22
- ...stateOverride,
23
- [userOperation.sender]: {
24
- balance: toHex(100000000000000000000000n),
25
- ...(stateOverride
26
- ? deepHexlify(stateOverride?.[userOperation.sender])
27
- : [])
28
- }
29
- };
30
- }
31
- export async function simulateHandleOpV06(userOperation, entryPoint, publicClient, targetAddress, targetCallData, blockTagSupport, utilityWalletAddress, finalParam = undefined, fixedGasLimitForEstimation) {
32
- try {
33
- await publicClient.request({
34
- method: "eth_call",
35
- params: [
36
- {
37
- to: entryPoint,
38
- from: utilityWalletAddress,
39
- data: encodeFunctionData({
40
- abi: EntryPointV06Abi,
41
- functionName: "simulateHandleOp",
42
- args: [userOperation, targetAddress, targetCallData]
43
- }),
44
- ...(fixedGasLimitForEstimation !== undefined && {
45
- gas: `0x${fixedGasLimitForEstimation.toString(16)}`
46
- })
47
- },
48
- blockTagSupport
49
- ? "latest"
50
- : toHex(await publicClient.getBlockNumber()),
51
- // @ts-ignore
52
- ...(finalParam ? [finalParam] : [])
53
- ]
54
- });
55
- }
56
- catch (e) {
57
- const err = e;
58
- if (/return data out of bounds.*|EVM error OutOfOffset.*/.test(err.details)) {
59
- // out of bound (low level evm error) occurs when paymaster reverts with less than 32bytes
60
- return {
61
- result: "failed",
62
- data: "AA50 postOp revert (paymaster revert data out of bounds)"
63
- };
64
- }
65
- const causeParseResult = z
66
- .union([
67
- z.object({
68
- code: z.literal(3),
69
- message: z.string().regex(/execution reverted.*/),
70
- data: hexDataSchema
71
- }),
72
- /* fuse rpcs return weird values, this accounts for that. */
73
- z.object({
74
- code: z.number(),
75
- message: z.string().regex(/VM execution error.*/),
76
- data: z
77
- .string()
78
- .transform((data) => data.replace("Reverted ", ""))
79
- .pipe(hexDataSchema)
80
- }),
81
- z.object({
82
- code: z.number(),
83
- message: z
84
- .string()
85
- .regex(/VM Exception while processing transaction:.*/),
86
- data: hexDataSchema
87
- })
88
- ])
89
- .safeParse(err.cause);
90
- if (!causeParseResult.success) {
91
- throw new Error(JSON.stringify(err.cause));
92
- }
93
- const cause = causeParseResult.data;
94
- if (cause.data === "0x") {
95
- throw new RpcError("AA23 reverted: UserOperation called non-existant contract, or reverted with 0x", ValidationErrors.SimulateValidation);
96
- }
97
- const decodedError = decodeErrorResult({
98
- abi: [...EntryPointV06Abi, ...EntryPointV06SimulationsAbi],
99
- data: cause.data
100
- });
101
- if (decodedError &&
102
- decodedError.errorName === "FailedOp" &&
103
- decodedError.args) {
104
- return {
105
- result: "failed",
106
- data: decodedError.args[1]
107
- };
108
- }
109
- if (decodedError &&
110
- decodedError.errorName === "Error" &&
111
- decodedError.args) {
112
- return {
113
- result: "failed",
114
- data: decodedError.args[0]
115
- };
116
- }
117
- if (decodedError.errorName === "ExecutionResult") {
118
- const parsedExecutionResult = executionResultSchema.parse(decodedError.args);
119
- return {
120
- result: "execution",
121
- data: {
122
- executionResult: parsedExecutionResult
123
- }
124
- };
125
- }
126
- }
127
- throw new Error("Unexpected error");
128
- }
129
- async function callPimlicoEntryPointSimulations(publicClient, entryPoint, entryPointSimulationsCallData, entryPointSimulationsAddress, blockTagSupport, utilityWalletAddress, stateOverride, fixedGasLimitForEstimation) {
130
- const callData = encodeFunctionData({
131
- abi: PimlicoEntryPointSimulationsAbi,
132
- functionName: "simulateEntryPoint",
133
- args: [entryPoint, entryPointSimulationsCallData]
134
- });
135
- const result = (await publicClient.request({
136
- method: "eth_call",
137
- params: [
138
- {
139
- to: entryPointSimulationsAddress,
140
- from: utilityWalletAddress,
141
- data: callData,
142
- ...(fixedGasLimitForEstimation !== undefined && {
143
- gas: `0x${fixedGasLimitForEstimation.toString(16)}`
144
- })
145
- },
146
- blockTagSupport
147
- ? "latest"
148
- : toHex(await publicClient.getBlockNumber()),
149
- // @ts-ignore
150
- ...(stateOverride ? [stateOverride] : [])
151
- ]
152
- }));
153
- const returnBytes = decodeAbiParameters([{ name: "ret", type: "bytes[]" }], result);
154
- return returnBytes[0].map((data) => {
155
- const decodedDelegateAndError = decodeErrorResult({
156
- abi: EntryPointV07Abi,
157
- data: data
158
- });
159
- if (!decodedDelegateAndError?.args?.[1]) {
160
- throw new Error("Unexpected error");
161
- }
162
- return decodedDelegateAndError.args[1];
163
- });
164
- }
165
- const panicCodes = {
166
- // from https://docs.soliditylang.org/en/v0.8.0/control-structures.html
167
- 1: "assert(false)",
168
- 17: "arithmetic overflow/underflow",
169
- 18: "divide by zero",
170
- 33: "invalid enum value",
171
- 34: "storage byte array that is incorrectly encoded",
172
- 49: ".pop() on an empty array.",
173
- 50: "array sout-of-bounds or negative index",
174
- 65: "memory overflow",
175
- 81: "zero-initialized variable of internal function type"
176
- };
177
- export function parseFailedOpWithRevert(data) {
178
- const methodSig = data.slice(0, 10);
179
- const dataParams = `0x${data.slice(10)}`;
180
- if (methodSig === "0x08c379a0") {
181
- const [err] = decodeAbiParameters([
182
- {
183
- name: "err",
184
- type: "string"
185
- }
186
- ], dataParams);
187
- return err;
188
- }
189
- if (methodSig === "0x4e487b71") {
190
- const [code] = decodeAbiParameters([
191
- {
192
- name: "err",
193
- type: "uint256"
194
- }
195
- ], dataParams);
196
- return panicCodes[Number(code)] ?? `${code}`;
197
- }
198
- return data;
199
- }
200
- function validateTargetCallDataResult(data) {
201
- try {
202
- const targetCallResult = decodeFunctionResult({
203
- abi: EntryPointV07SimulationsAbi,
204
- functionName: "simulateCallData",
205
- data: data
206
- });
207
- const parsedTargetCallResult = targetCallResultSchema.parse(targetCallResult);
208
- if (parsedTargetCallResult.success) {
209
- return {
210
- result: "success",
211
- data: parsedTargetCallResult
212
- };
213
- }
214
- return {
215
- result: "failed",
216
- data: parsedTargetCallResult.returnData,
217
- code: ExecutionErrors.UserOperationReverted
218
- };
219
- }
220
- catch (_e) {
221
- // no error we go the result
222
- return {
223
- result: "failed",
224
- data: "Unknown error, could not parse target call data result.",
225
- code: ExecutionErrors.UserOperationReverted
226
- };
227
- }
228
- }
229
- function getSimulateHandleOpResult(data) {
230
- try {
231
- const decodedError = decodeErrorResult({
232
- abi: EntryPointV07SimulationsAbi,
233
- data: data
234
- });
235
- if (decodedError &&
236
- decodedError.errorName === "FailedOp" &&
237
- decodedError.args) {
238
- return {
239
- result: "failed",
240
- data: decodedError.args[1],
241
- code: ValidationErrors.SimulateValidation
242
- };
243
- }
244
- if (decodedError &&
245
- decodedError.errorName === "FailedOpWithRevert" &&
246
- decodedError.args) {
247
- return {
248
- result: "failed",
249
- data: parseFailedOpWithRevert(decodedError.args?.[2]),
250
- code: ValidationErrors.SimulateValidation
251
- };
252
- }
253
- }
254
- catch {
255
- // no error we go the result
256
- const decodedResult = decodeFunctionResult({
257
- abi: EntryPointV07SimulationsAbi,
258
- functionName: "simulateHandleOp",
259
- data
260
- });
261
- return {
262
- result: "execution",
263
- data: {
264
- executionResult: decodedResult
265
- }
266
- };
267
- }
268
- throw new Error("Unexpected error");
269
- }
270
- export async function simulateHandleOpV07(userOperation, queuedUserOperations, entryPoint, publicClient, entryPointSimulationsAddress, chainId, blockTagSupport, utilityWalletAddress, finalParam = undefined, fixedGasLimitForEstimation) {
271
- const userOperations = [...queuedUserOperations, userOperation];
272
- const packedUserOperations = userOperations.map((uop) => ({
273
- packedUserOperation: toPackedUserOperation(uop),
274
- userOperation: uop,
275
- userOperationHash: getUserOperationHash(uop, entryPoint, chainId)
276
- }));
277
- const entryPointSimulationsSimulateHandleOpCallData = encodeFunctionData({
278
- abi: EntryPointV07SimulationsAbi,
279
- functionName: "simulateHandleOpLast",
280
- args: [packedUserOperations.map((uop) => uop.packedUserOperation)]
281
- });
282
- const entryPointSimulationsSimulateTargetCallData = encodeFunctionData({
283
- abi: EntryPointV07SimulationsAbi,
284
- functionName: "simulateCallDataLast",
285
- args: [
286
- packedUserOperations.map((uop) => uop.packedUserOperation),
287
- packedUserOperations.map((packedUserOperation) => packedUserOperation.userOperation.sender),
288
- packedUserOperations.map((packedUserOperation) => {
289
- const executeUserOpAbi = [
290
- {
291
- inputs: [
292
- {
293
- components: [
294
- {
295
- internalType: "address",
296
- name: "sender",
297
- type: "address"
298
- },
299
- {
300
- internalType: "uint256",
301
- name: "nonce",
302
- type: "uint256"
303
- },
304
- {
305
- internalType: "bytes",
306
- name: "initCode",
307
- type: "bytes"
308
- },
309
- {
310
- internalType: "bytes",
311
- name: "callData",
312
- type: "bytes"
313
- },
314
- {
315
- internalType: "bytes32",
316
- name: "accountGasLimits",
317
- type: "bytes32"
318
- },
319
- {
320
- internalType: "uint256",
321
- name: "preVerificationGas",
322
- type: "uint256"
323
- },
324
- {
325
- internalType: "bytes32",
326
- name: "gasFees",
327
- type: "bytes32"
328
- },
329
- {
330
- internalType: "bytes",
331
- name: "paymasterAndData",
332
- type: "bytes"
333
- },
334
- {
335
- internalType: "bytes",
336
- name: "signature",
337
- type: "bytes"
338
- }
339
- ],
340
- internalType: "struct PackedUserOperation",
341
- name: "userOp",
342
- type: "tuple"
343
- },
344
- {
345
- internalType: "bytes32",
346
- name: "userOpHash",
347
- type: "bytes32"
348
- }
349
- ],
350
- name: "executeUserOp",
351
- outputs: [],
352
- stateMutability: "nonpayable",
353
- type: "function"
354
- }
355
- ];
356
- const executeUserOpMethodSig = toFunctionSelector(executeUserOpAbi[0]);
357
- const callDataMethodSig = toHex(slice(toBytes(packedUserOperation.userOperation.callData), 0, 4));
358
- if (executeUserOpMethodSig === callDataMethodSig) {
359
- return encodeFunctionData({
360
- abi: executeUserOpAbi,
361
- functionName: "executeUserOp",
362
- args: [
363
- packedUserOperation.packedUserOperation,
364
- getUserOperationHash(packedUserOperation.userOperation, entryPoint, chainId)
365
- ]
366
- });
367
- }
368
- return packedUserOperation.userOperation.callData;
369
- })
370
- ]
371
- });
372
- const cause = await callPimlicoEntryPointSimulations(publicClient, entryPoint, [
373
- entryPointSimulationsSimulateHandleOpCallData,
374
- entryPointSimulationsSimulateTargetCallData
375
- ], entryPointSimulationsAddress, blockTagSupport, utilityWalletAddress, finalParam, fixedGasLimitForEstimation);
376
- try {
377
- const executionResult = getSimulateHandleOpResult(cause[0]);
378
- if (executionResult.result === "failed") {
379
- return executionResult;
380
- }
381
- const targetCallValidationResult = validateTargetCallDataResult(cause[1]);
382
- if (targetCallValidationResult.result === "failed") {
383
- return targetCallValidationResult;
384
- }
385
- return {
386
- result: "execution",
387
- data: {
388
- callDataResult: targetCallValidationResult.data,
389
- executionResult: executionResult.data.executionResult
390
- }
391
- };
392
- }
393
- catch (e) {
394
- return {
395
- result: "failed",
396
- data: "Unknown error, could not parse simulate handle op result.",
397
- code: ValidationErrors.SimulateValidation
398
- };
399
- }
400
- }
401
- export function simulateHandleOp(userOperation, queuedUserOperations, entryPoint, publicClient, replacedEntryPoint, targetAddress, targetCallData, balanceOverrideEnabled, chainId, blockTagSupport, utilityWalletAddress, stateOverride = {}, entryPointSimulationsAddress, fixedGasLimitForEstimation) {
402
- let finalStateOverride = undefined;
403
- if (balanceOverrideEnabled) {
404
- finalStateOverride = getStateOverrides({
405
- userOperation,
406
- entryPoint,
407
- replacedEntryPoint,
408
- stateOverride
409
- });
410
- }
411
- if (isVersion06(userOperation)) {
412
- return simulateHandleOpV06(userOperation, entryPoint, publicClient, targetAddress, targetCallData, blockTagSupport, utilityWalletAddress, finalStateOverride, fixedGasLimitForEstimation);
413
- }
414
- if (!entryPointSimulationsAddress) {
415
- throw new RpcError("entryPointSimulationsAddress must be provided for V07 UserOperation", ValidationErrors.InvalidFields);
416
- }
417
- return simulateHandleOpV07(userOperation, queuedUserOperations, entryPoint, publicClient, entryPointSimulationsAddress, chainId, blockTagSupport, utilityWalletAddress, finalStateOverride, fixedGasLimitForEstimation);
418
- }
419
- //# sourceMappingURL=gasEstimation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gasEstimation.js","sourceRoot":"","sources":["../../rpc/gasEstimation.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import type { Hex } from "viem";
2
- import { type Address, type PublicClient } from "viem";
3
- import { ExecutionErrors, ValidationErrors, type StateOverrides, type UserOperationV07, type ValidationResultV07 } from "../types/index.js";
4
- export declare function parseFailedOpWithRevert(data: Hex): string;
5
- export declare function simulateHandleOp(userOperation: UserOperationV07, entryPoint: Address, publicClient: PublicClient, replacedEntryPoint: boolean, targetAddress: Address, targetCallData: Hex, entryPointSimulationsAddress: Address, blockTagSupport: boolean, utilityWalletAddress: Address, stateOverride?: StateOverrides): Promise<{
6
- readonly result: "failed";
7
- readonly data: string;
8
- readonly code: ExecutionErrors;
9
- } | {
10
- readonly result: "failed";
11
- readonly data: unknown;
12
- readonly code: ValidationErrors.SimulateValidation;
13
- } | {
14
- readonly result: "execution";
15
- readonly data: {
16
- preOpGas: bigint;
17
- paid: bigint;
18
- validationData: bigint;
19
- paymasterValidationData: bigint;
20
- targetSuccess: boolean;
21
- targetResult: `0x${string}`;
22
- };
23
- readonly code?: undefined;
24
- }>;
25
- export declare function getSimulateValidationResult(errorData: Hex): {
26
- status: "failed" | "validation";
27
- data: ValidationResultV07 | Hex | string;
28
- };
29
- export declare function simulateValidation(userOperation: UserOperationV07, queuedUserOperations: UserOperationV07[], entryPoint: Address, publicClient: PublicClient, entryPointSimulationsAddress: Address, blockTagSupport: boolean, utilityWalletAddress: Address): Promise<{
30
- simulateValidationResult: {
31
- status: "validation" | "failed";
32
- data: string | {
33
- returnInfo: {
34
- preOpGas: bigint;
35
- prefund: bigint;
36
- paymasterContext: `0x${string}`;
37
- accountValidationData: bigint;
38
- paymasterValidationData: bigint;
39
- accountSigFailed?: boolean | undefined;
40
- paymasterSigFailed?: boolean | undefined;
41
- validAfter?: number | undefined;
42
- validUntil?: number | undefined;
43
- };
44
- senderInfo: {
45
- stake: bigint;
46
- unstakeDelaySec: bigint;
47
- addr?: string | undefined;
48
- };
49
- factoryInfo: {
50
- stake: bigint;
51
- unstakeDelaySec: bigint;
52
- addr?: string | undefined;
53
- } | undefined;
54
- paymasterInfo: {
55
- stake: bigint;
56
- unstakeDelaySec: bigint;
57
- addr?: string | undefined;
58
- } | undefined;
59
- };
60
- };
61
- }>;
62
- //# sourceMappingURL=EntryPointSimulationsV07.d.ts.map