@pimlico/alto 0.0.0-main.20240612T111639 → 0.0.0-prool.20240609T212210

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 (208) hide show
  1. package/esm/cli/alto.js +59 -28
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +41 -47
  4. package/esm/cli/config/bundler.js +77 -75
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/index.js +18 -2
  7. package/esm/cli/config/index.js.map +1 -1
  8. package/esm/cli/config/options.js +13 -16
  9. package/esm/cli/config/options.js.map +1 -1
  10. package/esm/cli/customTransport.js +11 -7
  11. package/esm/cli/customTransport.js.map +1 -1
  12. package/esm/cli/handler.js +28 -48
  13. package/esm/cli/handler.js.map +1 -1
  14. package/esm/cli/index.js +19 -3
  15. package/esm/cli/index.js.map +1 -1
  16. package/esm/cli/instrumentation.js +22 -20
  17. package/esm/cli/instrumentation.js.map +1 -1
  18. package/esm/cli/setupServer.js +21 -17
  19. package/esm/cli/setupServer.js.map +1 -1
  20. package/esm/cli/util.js +5 -1
  21. package/esm/cli/util.js.map +1 -1
  22. package/esm/executor/executor.js +86 -71
  23. package/esm/executor/executor.js.map +1 -1
  24. package/esm/executor/executorManager.js +11 -7
  25. package/esm/executor/executorManager.js.map +1 -1
  26. package/esm/executor/index.js +20 -4
  27. package/esm/executor/index.js.map +1 -1
  28. package/esm/executor/senderManager.js +12 -8
  29. package/esm/executor/senderManager.js.map +1 -1
  30. package/esm/executor/test/utils.js +28 -22
  31. package/esm/executor/test/utils.js.map +1 -1
  32. package/esm/executor/utils.js +61 -31
  33. package/esm/executor/utils.js.map +1 -1
  34. package/esm/mempool/index.js +20 -4
  35. package/esm/mempool/index.js.map +1 -1
  36. package/esm/mempool/mempool.js +64 -58
  37. package/esm/mempool/mempool.js.map +1 -1
  38. package/esm/mempool/monitoring.js +5 -1
  39. package/esm/mempool/monitoring.js.map +1 -1
  40. package/esm/mempool/nullMempool.js +5 -1
  41. package/esm/mempool/nullMempool.js.map +1 -1
  42. package/esm/mempool/reputationManager.js +52 -51
  43. package/esm/mempool/reputationManager.js.map +1 -1
  44. package/esm/mempool/store.js +5 -1
  45. package/esm/mempool/store.js.map +1 -1
  46. package/esm/rpc/EntryPointSimulationsV07.d.ts +1 -5
  47. package/esm/rpc/EntryPointSimulationsV07.js +51 -45
  48. package/esm/rpc/EntryPointSimulationsV07.js.map +1 -1
  49. package/esm/rpc/ExecuteSimulator.js +5 -2
  50. package/esm/rpc/ExecuteSimulator.js.map +1 -1
  51. package/esm/rpc/gasEstimation.js +72 -69
  52. package/esm/rpc/gasEstimation.js.map +1 -1
  53. package/esm/rpc/index.js +20 -4
  54. package/esm/rpc/index.js.map +1 -1
  55. package/esm/rpc/nonceQueuer.js +20 -16
  56. package/esm/rpc/nonceQueuer.js.map +1 -1
  57. package/esm/rpc/rpcHandler.js +108 -92
  58. package/esm/rpc/rpcHandler.js.map +1 -1
  59. package/esm/rpc/server.js +58 -32
  60. package/esm/rpc/server.js.map +1 -1
  61. package/esm/rpc/validation/BundlerCollectorTracerV06.js +5 -1
  62. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  63. package/esm/rpc/validation/BundlerCollectorTracerV07.js +5 -1
  64. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  65. package/esm/rpc/validation/SafeValidator.d.ts +6 -2
  66. package/esm/rpc/validation/SafeValidator.js +252 -91
  67. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  68. package/esm/rpc/validation/TracerResultParserV06.js +30 -26
  69. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  70. package/esm/rpc/validation/TracerResultParserV07.js +38 -35
  71. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  72. package/esm/rpc/validation/UnsafeValidator.d.ts +1 -2
  73. package/esm/rpc/validation/UnsafeValidator.js +107 -80
  74. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  75. package/esm/rpc/validation/index.js +18 -2
  76. package/esm/rpc/validation/index.js.map +1 -1
  77. package/esm/rpc/validation/tracer.js +37 -7
  78. package/esm/rpc/validation/tracer.js.map +1 -1
  79. package/esm/types/contracts/BundleBulker.js +4 -1
  80. package/esm/types/contracts/BundleBulker.js.map +1 -1
  81. package/esm/types/contracts/CallEngine.js +4 -1
  82. package/esm/types/contracts/CallEngine.js.map +1 -1
  83. package/esm/types/contracts/CodeHashGetter.js +5 -2
  84. package/esm/types/contracts/CodeHashGetter.js.map +1 -1
  85. package/esm/types/contracts/EntryPoint.js +7 -4
  86. package/esm/types/contracts/EntryPoint.js.map +1 -1
  87. package/esm/types/contracts/EntryPointSimulations.d.ts +1 -0
  88. package/esm/types/contracts/EntryPointSimulations.js +6 -1942
  89. package/esm/types/contracts/EntryPointSimulations.js.map +1 -1
  90. package/esm/types/contracts/IOpInflator.js +4 -1
  91. package/esm/types/contracts/IOpInflator.js.map +1 -1
  92. package/esm/types/contracts/IPaymaster.js +4 -1
  93. package/esm/types/contracts/IPaymaster.js.map +1 -1
  94. package/esm/types/contracts/Inflator.js +4 -1
  95. package/esm/types/contracts/Inflator.js.map +1 -1
  96. package/esm/types/contracts/PerOpInflator.js +4 -1
  97. package/esm/types/contracts/PerOpInflator.js.map +1 -1
  98. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  99. package/esm/types/contracts/PimlicoEntryPointSimulations.js +5 -2
  100. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  101. package/esm/types/contracts/SenderCreator.js +5 -2
  102. package/esm/types/contracts/SenderCreator.js.map +1 -1
  103. package/esm/types/contracts/SimpleAccountFactory.js +5 -2
  104. package/esm/types/contracts/SimpleAccountFactory.js.map +1 -1
  105. package/esm/types/contracts/TestOpcodesAccount.js +5 -2
  106. package/esm/types/contracts/TestOpcodesAccount.js.map +1 -1
  107. package/esm/types/contracts/TestOpcodesAccountFactory.js +5 -2
  108. package/esm/types/contracts/TestOpcodesAccountFactory.js.map +1 -1
  109. package/esm/types/contracts/TestStorageAccount.js +5 -2
  110. package/esm/types/contracts/TestStorageAccount.js.map +1 -1
  111. package/esm/types/contracts/index.js +32 -16
  112. package/esm/types/contracts/index.js.map +1 -1
  113. package/esm/types/gasPrice.js +17 -14
  114. package/esm/types/gasPrice.js.map +1 -1
  115. package/esm/types/index.js +26 -10
  116. package/esm/types/index.js.map +1 -1
  117. package/esm/types/interfaces.js +2 -1
  118. package/esm/types/mempool.js +10 -5
  119. package/esm/types/mempool.js.map +1 -1
  120. package/esm/types/schemas.d.ts +38 -38
  121. package/esm/types/schemas.js +284 -254
  122. package/esm/types/schemas.js.map +1 -1
  123. package/esm/types/test/validationTestErrors.js +5 -2
  124. package/esm/types/test/validationTestErrors.js.map +1 -1
  125. package/esm/types/utils.js +9 -5
  126. package/esm/types/utils.js.map +1 -1
  127. package/esm/types/validation.d.ts +12 -12
  128. package/esm/types/validation.js +142 -139
  129. package/esm/types/validation.js.map +1 -1
  130. package/esm/utils/bigInt.js +7 -2
  131. package/esm/utils/bigInt.js.map +1 -1
  132. package/esm/utils/compressionHandler.js +11 -7
  133. package/esm/utils/compressionHandler.js.map +1 -1
  134. package/esm/utils/gasPriceManager.js +57 -30
  135. package/esm/utils/gasPriceManager.js.map +1 -1
  136. package/esm/utils/helpers.js +10 -5
  137. package/esm/utils/helpers.js.map +1 -1
  138. package/esm/utils/index.d.ts +1 -0
  139. package/esm/utils/index.js +26 -9
  140. package/esm/utils/index.js.map +1 -1
  141. package/esm/utils/logger.js +19 -10
  142. package/esm/utils/logger.js.map +1 -1
  143. package/esm/utils/metrics.js +24 -20
  144. package/esm/utils/metrics.js.map +1 -1
  145. package/esm/utils/rpc-reply.js +3 -1
  146. package/esm/utils/rpc-reply.js.map +1 -1
  147. package/esm/utils/test.js +67 -36
  148. package/esm/utils/test.js.map +1 -1
  149. package/esm/utils/toArgs.d.ts +36 -0
  150. package/esm/utils/toArgs.js +87 -0
  151. package/esm/utils/toArgs.js.map +1 -0
  152. package/esm/utils/userop.d.ts +2 -2
  153. package/esm/utils/userop.js +108 -63
  154. package/esm/utils/userop.js.map +1 -1
  155. package/esm/utils/validation.js +99 -64
  156. package/esm/utils/validation.js.map +1 -1
  157. package/lib/cli/config/bundler.d.ts +0 -6
  158. package/lib/cli/config/bundler.js +0 -1
  159. package/lib/cli/config/bundler.js.map +1 -1
  160. package/lib/cli/config/options.js +0 -6
  161. package/lib/cli/config/options.js.map +1 -1
  162. package/lib/cli/handler.js +1 -25
  163. package/lib/cli/handler.js.map +1 -1
  164. package/lib/executor/executor.js +2 -15
  165. package/lib/executor/executor.js.map +1 -1
  166. package/lib/mempool/mempool.js +7 -5
  167. package/lib/mempool/mempool.js.map +1 -1
  168. package/lib/mempool/reputationManager.js +3 -7
  169. package/lib/mempool/reputationManager.js.map +1 -1
  170. package/lib/rpc/EntryPointSimulationsV07.d.ts +1 -5
  171. package/lib/rpc/EntryPointSimulationsV07.js +2 -3
  172. package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
  173. package/lib/rpc/gasEstimation.js +3 -7
  174. package/lib/rpc/gasEstimation.js.map +1 -1
  175. package/lib/rpc/rpcHandler.js +7 -18
  176. package/lib/rpc/rpcHandler.js.map +1 -1
  177. package/lib/rpc/server.js +0 -4
  178. package/lib/rpc/server.js.map +1 -1
  179. package/lib/rpc/validation/SafeValidator.d.ts +6 -2
  180. package/lib/rpc/validation/SafeValidator.js +205 -48
  181. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  182. package/lib/rpc/validation/TracerResultParserV07.js +2 -6
  183. package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
  184. package/lib/rpc/validation/UnsafeValidator.d.ts +1 -2
  185. package/lib/rpc/validation/UnsafeValidator.js +68 -45
  186. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  187. package/lib/types/contracts/EntryPointSimulations.d.ts +1 -0
  188. package/lib/types/contracts/EntryPointSimulations.js +3 -1942
  189. package/lib/types/contracts/EntryPointSimulations.js.map +1 -1
  190. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  191. package/lib/types/contracts/PimlicoEntryPointSimulations.js +2 -2
  192. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  193. package/lib/utils/index.d.ts +1 -0
  194. package/lib/utils/index.js +1 -0
  195. package/lib/utils/index.js.map +1 -1
  196. package/lib/utils/toArgs.d.ts +36 -0
  197. package/lib/utils/toArgs.js +87 -0
  198. package/lib/utils/toArgs.js.map +1 -0
  199. package/lib/utils/userop.d.ts +2 -2
  200. package/lib/utils/userop.js +25 -2
  201. package/lib/utils/userop.js.map +1 -1
  202. package/package.json +3 -2
  203. package/esm/index.d.ts +0 -2
  204. package/esm/index.js +0 -2
  205. package/esm/index.js.map +0 -1
  206. package/lib/index.d.ts +0 -2
  207. package/lib/index.js +0 -4
  208. package/lib/index.js.map +0 -1
@@ -1,13 +1,16 @@
1
- import { CodeHashGetterAbi, CodeHashGetterBytecode, EntryPointV06Abi, EntryPointV07SimulationsAbi, RpcError, ValidationErrors, PimlicoEntryPointSimulationsAbi } from "../../types/index.js";
2
- import { calcVerificationGasAndCallGasLimit, getAddressFromInitCodeOrPaymasterAndData, isVersion06, isVersion07, toPackedUserOperation } from "../../utils/index.js";
3
- import { decodeErrorResult, encodeDeployData, encodeFunctionData, zeroAddress } from "viem";
4
- import { getSimulateValidationResult } from "../EntryPointSimulationsV07.js";
5
- import { bundlerCollectorTracer } from "./BundlerCollectorTracerV07.js";
6
- import { tracerResultParserV06 } from "./TracerResultParserV06.js";
7
- import { tracerResultParserV07 } from "./TracerResultParserV07.js";
8
- import { UnsafeValidator } from "./UnsafeValidator.js";
9
- import { debug_traceCall } from "./tracer.js";
10
- export class SafeValidator extends UnsafeValidator {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafeValidator = void 0;
4
+ const types_1 = require("../../types/index.js");
5
+ const utils_1 = require("../../utils/index.js");
6
+ const viem_1 = require("viem");
7
+ const EntryPointSimulationsV07_1 = require("../EntryPointSimulationsV07.js");
8
+ const BundlerCollectorTracerV06_1 = require("./BundlerCollectorTracerV06.js");
9
+ const TracerResultParserV06_1 = require("./TracerResultParserV06.js");
10
+ const TracerResultParserV07_1 = require("./TracerResultParserV07.js");
11
+ const UnsafeValidator_1 = require("./UnsafeValidator.js");
12
+ const tracer_1 = require("./tracer.js");
13
+ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
11
14
  senderManager;
12
15
  constructor(publicClient, senderManager, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly = false, balanceOverrideEnabled = false) {
13
16
  super(publicClient, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly, balanceOverrideEnabled);
@@ -18,16 +21,16 @@ export class SafeValidator extends UnsafeValidator {
18
21
  const validationResult = await this.getValidationResult(userOperation, queuedUserOperations, entryPoint, referencedContracts);
19
22
  if (shouldCheckPrefund) {
20
23
  const prefund = validationResult.returnInfo.prefund;
21
- const { verificationGasLimit, callGasLimit } = calcVerificationGasAndCallGasLimit(userOperation, {
24
+ const { verificationGasLimit, callGasLimit } = (0, utils_1.calcVerificationGasAndCallGasLimit)(userOperation, {
22
25
  preOpGas: validationResult.returnInfo.preOpGas,
23
26
  paid: validationResult.returnInfo.prefund
24
27
  }, this.chainId);
25
28
  let mul = 1n;
26
- if (isVersion06(userOperation) &&
29
+ if ((0, utils_1.isVersion06)(userOperation) &&
27
30
  userOperation.paymasterAndData) {
28
31
  mul = 3n;
29
32
  }
30
- if (isVersion07(userOperation) &&
33
+ if ((0, utils_1.isVersion07)(userOperation) &&
31
34
  userOperation.paymaster === "0x") {
32
35
  mul = 3n;
33
36
  }
@@ -35,7 +38,7 @@ export class SafeValidator extends UnsafeValidator {
35
38
  verificationGasLimit * mul +
36
39
  userOperation.preVerificationGas;
37
40
  if (requiredPreFund > prefund) {
38
- throw new RpcError(`prefund is not enough, required: ${requiredPreFund}, got: ${prefund}`, ValidationErrors.SimulateValidation);
41
+ throw new types_1.RpcError(`prefund is not enough, required: ${requiredPreFund}, got: ${prefund}`, types_1.ValidationErrors.SimulateValidation);
39
42
  }
40
43
  // TODO prefund should be greater than it costs us to add it to mempool
41
44
  }
@@ -48,9 +51,9 @@ export class SafeValidator extends UnsafeValidator {
48
51
  }
49
52
  }
50
53
  async getCodeHashes(addresses) {
51
- const deployData = encodeDeployData({
52
- abi: CodeHashGetterAbi,
53
- bytecode: CodeHashGetterBytecode,
54
+ const deployData = (0, viem_1.encodeDeployData)({
55
+ abi: types_1.CodeHashGetterAbi,
56
+ bytecode: types_1.CodeHashGetterBytecode,
54
57
  args: [addresses]
55
58
  });
56
59
  const wallet = await this.senderManager.getWallet();
@@ -79,21 +82,30 @@ export class SafeValidator extends UnsafeValidator {
79
82
  if (preCodeHashes && preCodeHashes.addresses.length > 0) {
80
83
  const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
81
84
  if (hash !== preCodeHashes.hash) {
82
- throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
85
+ throw new types_1.RpcError("code hashes mismatch", types_1.ValidationErrors.OpcodeValidation);
83
86
  }
84
87
  }
85
88
  const [res, tracerResult] = await this.getValidationResultWithTracerV07(userOperation, entryPoint);
86
- const [contractAddresses, storageMap] = tracerResultParserV07(userOperation, tracerResult, res, entryPoint.toLowerCase());
89
+ const [contractAddresses, storageMap] = (0, TracerResultParserV07_1.tracerResultParserV07)(userOperation, tracerResult, res, entryPoint.toLowerCase());
87
90
  const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
88
91
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
89
92
  if (res === "0x") {
90
93
  throw new Error("simulateValidation reverted with no revert string!");
91
94
  }
92
95
  if (res.returnInfo.accountSigFailed) {
93
- throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
96
+ throw new types_1.RpcError("Invalid UserOp signature", types_1.ValidationErrors.InvalidSignature);
94
97
  }
95
98
  if (res.returnInfo.paymasterSigFailed) {
96
- throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
99
+ throw new types_1.RpcError("Invalid UserOp paymasterData", types_1.ValidationErrors.InvalidSignature);
100
+ }
101
+ const now = Math.floor(Date.now() / 1000);
102
+ if (res.returnInfo.validAfter === undefined ||
103
+ res.returnInfo.validAfter > now - 5) {
104
+ throw new types_1.RpcError(`User operation is not valid yet, validAfter=${res.returnInfo.validAfter}, now=${now}`, types_1.ValidationErrors.ExpiresShortly);
105
+ }
106
+ if (res.returnInfo.validUntil === undefined ||
107
+ res.returnInfo.validUntil < now + 30) {
108
+ throw new types_1.RpcError(`UserOperation expires too soon, validUntil=${res.returnInfo.validUntil}, now=${now}`, types_1.ValidationErrors.ExpiresShortly);
97
109
  }
98
110
  return {
99
111
  ...res,
@@ -108,11 +120,11 @@ export class SafeValidator extends UnsafeValidator {
108
120
  if (preCodeHashes && preCodeHashes.addresses.length > 0) {
109
121
  const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
110
122
  if (hash !== preCodeHashes.hash) {
111
- throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
123
+ throw new types_1.RpcError("code hashes mismatch", types_1.ValidationErrors.OpcodeValidation);
112
124
  }
113
125
  }
114
126
  const [res, tracerResult] = await this.getValidationResultWithTracerV06(userOperation, entryPoint);
115
- const [contractAddresses, storageMap] = tracerResultParserV06(userOperation, tracerResult, res, entryPoint.toLowerCase());
127
+ const [contractAddresses, storageMap] = (0, TracerResultParserV06_1.tracerResultParserV06)(userOperation, tracerResult, res, entryPoint.toLowerCase());
116
128
  const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
117
129
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
118
130
  if (res === "0x") {
@@ -124,7 +136,7 @@ export class SafeValidator extends UnsafeValidator {
124
136
  storageMap
125
137
  };
126
138
  if (validationResult.returnInfo.sigFailed) {
127
- throw new RpcError("Invalid UserOp signature or paymaster signature", ValidationErrors.InvalidSignature);
139
+ throw new types_1.RpcError("Invalid UserOp signature or paymaster signature", types_1.ValidationErrors.InvalidSignature);
128
140
  }
129
141
  const now = Date.now() / 1000;
130
142
  this.logger.debug({
@@ -133,24 +145,24 @@ export class SafeValidator extends UnsafeValidator {
133
145
  now: now
134
146
  });
135
147
  if (validationResult.returnInfo.validAfter > now - 5) {
136
- throw new RpcError("User operation is not valid yet", ValidationErrors.ExpiresShortly);
148
+ throw new types_1.RpcError("User operation is not valid yet", types_1.ValidationErrors.ExpiresShortly);
137
149
  }
138
150
  if (validationResult.returnInfo.validUntil < now + 30) {
139
- throw new RpcError("expires too soon", ValidationErrors.ExpiresShortly);
151
+ throw new types_1.RpcError("expires too soon", types_1.ValidationErrors.ExpiresShortly);
140
152
  }
141
153
  return validationResult;
142
154
  }
143
155
  async getValidationResultWithTracerV06(userOperation, entryPoint) {
144
- const tracerResult = await debug_traceCall(this.publicClient, {
145
- from: zeroAddress,
156
+ const tracerResult = await (0, tracer_1.debug_traceCall)(this.publicClient, {
157
+ from: viem_1.zeroAddress,
146
158
  to: entryPoint,
147
- data: encodeFunctionData({
148
- abi: EntryPointV06Abi,
159
+ data: (0, viem_1.encodeFunctionData)({
160
+ abi: types_1.EntryPointV06Abi,
149
161
  functionName: "simulateValidation",
150
162
  args: [userOperation]
151
163
  })
152
164
  }, {
153
- tracer: bundlerCollectorTracer
165
+ tracer: BundlerCollectorTracerV06_1.bundlerCollectorTracer
154
166
  });
155
167
  const lastResult = tracerResult.calls.slice(-1)[0];
156
168
  if (lastResult.type !== "REVERT") {
@@ -162,8 +174,8 @@ export class SafeValidator extends UnsafeValidator {
162
174
  return [data, tracerResult];
163
175
  }
164
176
  try {
165
- const { errorName, args: errorArgs } = decodeErrorResult({
166
- abi: EntryPointV06Abi,
177
+ const { errorName, args: errorArgs } = (0, viem_1.decodeErrorResult)({
178
+ abi: types_1.EntryPointV06Abi,
167
179
  data
168
180
  });
169
181
  const errFullName = `${errorName}(${errorArgs.toString()})`;
@@ -184,7 +196,7 @@ export class SafeValidator extends UnsafeValidator {
184
196
  if (e.code != null) {
185
197
  throw e;
186
198
  }
187
- throw new RpcError(data);
199
+ throw new types_1.RpcError(data);
188
200
  }
189
201
  }
190
202
  parseErrorResultV06(userOperation,
@@ -194,15 +206,15 @@ export class SafeValidator extends UnsafeValidator {
194
206
  // parse it as FailedOp
195
207
  // if its FailedOp, then we have the paymaster param... otherwise its an Error(string)
196
208
  let paymaster = errorResult.errorArgs.paymaster;
197
- if (paymaster === zeroAddress) {
209
+ if (paymaster === viem_1.zeroAddress) {
198
210
  paymaster = undefined;
199
211
  }
200
212
  // eslint-disable-next-line
201
213
  const msg = errorResult.errorArgs[1] ?? errorResult.toString();
202
214
  if (paymaster == null) {
203
- throw new RpcError(`account validation failed: ${msg}`, ValidationErrors.SimulateValidation);
215
+ throw new types_1.RpcError(`account validation failed: ${msg}`, types_1.ValidationErrors.SimulateValidation);
204
216
  }
205
- throw new RpcError(`paymaster validation failed: ${msg}`, ValidationErrors.SimulatePaymasterValidation, {
217
+ throw new types_1.RpcError(`paymaster validation failed: ${msg}`, types_1.ValidationErrors.SimulatePaymasterValidation, {
206
218
  paymaster
207
219
  });
208
220
  }
@@ -212,7 +224,7 @@ export class SafeValidator extends UnsafeValidator {
212
224
  // add it as "addr" member to the "stakeinfo" struct
213
225
  // if no address, then return "undefined" instead of struct.
214
226
  function fillEntity(data, info) {
215
- const addr = getAddressFromInitCodeOrPaymasterAndData(data);
227
+ const addr = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(data);
216
228
  return addr == null
217
229
  ? undefined
218
230
  : {
@@ -221,7 +233,7 @@ export class SafeValidator extends UnsafeValidator {
221
233
  };
222
234
  }
223
235
  function fillEntityAggregator(data, info) {
224
- const addr = getAddressFromInitCodeOrPaymasterAndData(data);
236
+ const addr = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(data);
225
237
  return addr == null
226
238
  ? undefined
227
239
  : {
@@ -244,87 +256,236 @@ export class SafeValidator extends UnsafeValidator {
244
256
  };
245
257
  }
246
258
  async getValidationResultWithTracerV07(userOperation, entryPoint) {
247
- if (!this.entryPointSimulationsAddress) {
248
- throw new Error("entryPointSimulationsAddress is not set");
249
- }
250
- const packedUserOperation = toPackedUserOperation(userOperation);
251
- const entryPointSimulationsCallData = encodeFunctionData({
252
- abi: EntryPointV07SimulationsAbi,
253
- functionName: "simulateValidationLast",
254
- args: [[packedUserOperation]]
259
+ const packedUserOperation = (0, utils_1.toPackedUserOperation)(userOperation);
260
+ const entryPointSimulationsCallData = (0, viem_1.encodeFunctionData)({
261
+ abi: types_1.EntryPointV07SimulationsAbi,
262
+ functionName: "simulateValidation",
263
+ args: [packedUserOperation]
255
264
  });
256
- const callData = encodeFunctionData({
257
- abi: PimlicoEntryPointSimulationsAbi,
258
- functionName: "simulateEntryPoint",
259
- args: [entryPoint, [entryPointSimulationsCallData]]
265
+ const callData = (0, viem_1.encodeDeployData)({
266
+ abi: types_1.PimlicoEntryPointSimulationsAbi,
267
+ bytecode: types_1.PimlicoEntryPointSimulationsBytecode,
268
+ args: [entryPoint, entryPointSimulationsCallData]
260
269
  });
261
- const tracerResult = await debug_traceCall(this.publicClient, {
262
- from: zeroAddress,
263
- to: this.entryPointSimulationsAddress,
270
+ const tracerResult = await (0, tracer_1.debug_traceCall)(this.publicClient, {
271
+ from: viem_1.zeroAddress,
264
272
  data: callData
265
273
  }, {
266
- tracer: bundlerCollectorTracer
274
+ tracer: BundlerCollectorTracerV06_1.bundlerCollectorTracer
267
275
  });
268
- this.logger.info(`tracerResult: ${JSON.stringify(tracerResult, (_k, v) => typeof v === "bigint" ? v.toString() : v)}`);
269
276
  const lastResult = tracerResult.calls.slice(-1)[0];
270
277
  if (lastResult.type !== "REVERT") {
271
278
  throw new Error("Invalid response. simulateCall must revert");
272
279
  }
273
- const resultData = lastResult.data;
274
- const simulateValidationResult = getSimulateValidationResult(resultData);
275
- if (simulateValidationResult.status === "failed") {
276
- let errorCode = ValidationErrors.SimulateValidation;
277
- const errorMessage = simulateValidationResult.data;
278
- if (errorMessage.includes("AA24")) {
279
- errorCode = ValidationErrors.InvalidSignature;
280
+ const data = lastResult.data;
281
+ if (data === "0x") {
282
+ // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
283
+ return [data, tracerResult];
284
+ }
285
+ try {
286
+ const { errorName, args: errorArgs } = (0, viem_1.decodeErrorResult)({
287
+ abi: types_1.EntryPointV07Abi,
288
+ data
289
+ });
290
+ const errorResult = this.parseErrorResultV07(userOperation, {
291
+ errorName,
292
+ errorArgs
293
+ });
294
+ // @ts-ignore
295
+ return [errorResult, tracerResult];
296
+ // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
297
+ }
298
+ catch (e) {
299
+ // if already parsed, throw as is
300
+ if (e.code != null) {
301
+ throw e;
280
302
  }
281
- throw new RpcError(errorMessage, errorCode);
303
+ throw new types_1.RpcError(data);
282
304
  }
283
- const validationResult = simulateValidationResult.data;
284
- const mergedValidation = this.mergeValidationDataValues(validationResult.returnInfo.accountValidationData, validationResult.returnInfo.paymasterValidationData);
285
- const res = {
305
+ }
306
+ parseErrorResultV07(userOperation,
307
+ // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
308
+ errorResult) {
309
+ let decodedResult;
310
+ try {
311
+ (0, viem_1.decodeErrorResult)({
312
+ abi: types_1.EntryPointV07SimulationsAbi,
313
+ data: errorResult.errorArgs[1]
314
+ });
315
+ const result = (0, viem_1.decodeErrorResult)({
316
+ abi: types_1.EntryPointV07SimulationsAbi,
317
+ data: errorResult.errorArgs[1]
318
+ });
319
+ if (result.errorName === "FailedOp") {
320
+ if ((result.args?.[1]).includes("AA24")) {
321
+ throw new types_1.RpcError("Invalid UserOp signature", types_1.ValidationErrors.InvalidSignature);
322
+ }
323
+ if ((result.args?.[1]).includes("AA34")) {
324
+ throw new types_1.RpcError("Invalid UserOp paymasterData", types_1.ValidationErrors.InvalidSignature);
325
+ }
326
+ throw new types_1.RpcError(`ValidationResult error: ${result.args?.[1]}`, types_1.ValidationErrors.SimulateValidation);
327
+ }
328
+ if (result.errorName === "FailedOpWithRevert") {
329
+ const data = result.args?.[2];
330
+ const error = (0, EntryPointSimulationsV07_1.parseFailedOpWithRevert)(data);
331
+ throw new types_1.RpcError(`ValidationResult error: ${result.args?.[1]} with revert error as: Panic(${error})`, types_1.ValidationErrors.SimulateValidation);
332
+ }
333
+ throw new types_1.RpcError(`ValidationResult error: ${result.errorName}`, types_1.ValidationErrors.SimulateValidation);
334
+ }
335
+ catch (e) {
336
+ if (e instanceof types_1.RpcError) {
337
+ throw e;
338
+ }
339
+ decodedResult = (0, viem_1.decodeAbiParameters)([
340
+ {
341
+ components: [
342
+ {
343
+ components: [
344
+ {
345
+ internalType: "uint256",
346
+ name: "preOpGas",
347
+ type: "uint256"
348
+ },
349
+ {
350
+ internalType: "uint256",
351
+ name: "prefund",
352
+ type: "uint256"
353
+ },
354
+ {
355
+ internalType: "uint256",
356
+ name: "accountValidationData",
357
+ type: "uint256"
358
+ },
359
+ {
360
+ internalType: "uint256",
361
+ name: "paymasterValidationData",
362
+ type: "uint256"
363
+ },
364
+ {
365
+ internalType: "bytes",
366
+ name: "paymasterContext",
367
+ type: "bytes"
368
+ }
369
+ ],
370
+ internalType: "struct IEntryPoint.ReturnInfo",
371
+ name: "returnInfo",
372
+ type: "tuple"
373
+ },
374
+ {
375
+ components: [
376
+ {
377
+ internalType: "uint256",
378
+ name: "stake",
379
+ type: "uint256"
380
+ },
381
+ {
382
+ internalType: "uint256",
383
+ name: "unstakeDelaySec",
384
+ type: "uint256"
385
+ }
386
+ ],
387
+ internalType: "struct IStakeManager.StakeInfo",
388
+ name: "senderInfo",
389
+ type: "tuple"
390
+ },
391
+ {
392
+ components: [
393
+ {
394
+ internalType: "uint256",
395
+ name: "stake",
396
+ type: "uint256"
397
+ },
398
+ {
399
+ internalType: "uint256",
400
+ name: "unstakeDelaySec",
401
+ type: "uint256"
402
+ }
403
+ ],
404
+ internalType: "struct IStakeManager.StakeInfo",
405
+ name: "factoryInfo",
406
+ type: "tuple"
407
+ },
408
+ {
409
+ components: [
410
+ {
411
+ internalType: "uint256",
412
+ name: "stake",
413
+ type: "uint256"
414
+ },
415
+ {
416
+ internalType: "uint256",
417
+ name: "unstakeDelaySec",
418
+ type: "uint256"
419
+ }
420
+ ],
421
+ internalType: "struct IStakeManager.StakeInfo",
422
+ name: "paymasterInfo",
423
+ type: "tuple"
424
+ },
425
+ {
426
+ components: [
427
+ {
428
+ internalType: "address",
429
+ name: "aggregator",
430
+ type: "address"
431
+ },
432
+ {
433
+ components: [
434
+ {
435
+ internalType: "uint256",
436
+ name: "stake",
437
+ type: "uint256"
438
+ },
439
+ {
440
+ internalType: "uint256",
441
+ name: "unstakeDelaySec",
442
+ type: "uint256"
443
+ }
444
+ ],
445
+ internalType: "struct IStakeManager.StakeInfo",
446
+ name: "stakeInfo",
447
+ type: "tuple"
448
+ }
449
+ ],
450
+ internalType: "struct IEntryPoint.AggregatorStakeInfo",
451
+ name: "aggregatorInfo",
452
+ type: "tuple"
453
+ }
454
+ ],
455
+ internalType: "struct IEntryPointSimulations.ValidationResult",
456
+ name: "",
457
+ type: "tuple"
458
+ }
459
+ ], errorResult.errorArgs[1])[0];
460
+ }
461
+ const mergedValidation = this.mergeValidationDataValues(decodedResult.returnInfo.accountValidationData, decodedResult.returnInfo.paymasterValidationData);
462
+ return {
286
463
  returnInfo: {
287
- ...validationResult.returnInfo,
464
+ ...decodedResult.returnInfo,
288
465
  accountSigFailed: mergedValidation.accountSigFailed,
289
466
  paymasterSigFailed: mergedValidation.paymasterSigFailed,
290
467
  validUntil: mergedValidation.validUntil,
291
468
  validAfter: mergedValidation.validAfter
292
469
  },
293
470
  senderInfo: {
294
- ...validationResult.senderInfo,
471
+ ...decodedResult.senderInfo,
295
472
  addr: userOperation.sender
296
473
  },
297
- factoryInfo: userOperation.factory && validationResult.factoryInfo
474
+ factoryInfo: userOperation.factory && decodedResult.factoryInfo
298
475
  ? {
299
- ...validationResult.factoryInfo,
476
+ ...decodedResult.factoryInfo,
300
477
  addr: userOperation.factory
301
478
  }
302
479
  : undefined,
303
- paymasterInfo: userOperation.paymaster && validationResult.paymasterInfo
480
+ paymasterInfo: userOperation.paymaster && decodedResult.paymasterInfo
304
481
  ? {
305
- ...validationResult.paymasterInfo,
482
+ ...decodedResult.paymasterInfo,
306
483
  addr: userOperation.paymaster
307
484
  }
308
485
  : undefined,
309
- aggregatorInfo: validationResult.aggregatorInfo,
310
- storageMap: {}
486
+ aggregatorInfo: decodedResult.aggregatorInfo
311
487
  };
312
- // this.validateStorageAccessList(userOperation, res, accessList)
313
- if (res.returnInfo.accountSigFailed) {
314
- throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
315
- }
316
- if (res.returnInfo.paymasterSigFailed) {
317
- throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
318
- }
319
- const now = Math.floor(Date.now() / 1000);
320
- if (res.returnInfo.validAfter > now - 5) {
321
- throw new RpcError(`User operation is not valid yet, validAfter=${res.returnInfo.validAfter}, now=${now}`, ValidationErrors.ExpiresShortly);
322
- }
323
- if (res.returnInfo.validUntil == null ||
324
- res.returnInfo.validUntil < now + 30) {
325
- throw new RpcError(`UserOperation expires too soon, validUntil=${res.returnInfo.validUntil}, now=${now}`, ValidationErrors.ExpiresShortly);
326
- }
327
- return [res, tracerResult];
328
488
  }
329
489
  }
490
+ exports.SafeValidator = SafeValidator;
330
491
  //# sourceMappingURL=SafeValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SafeValidator.js","sourceRoot":"","sources":["../../../rpc/validation/SafeValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SafeValidator.js","sourceRoot":"","sources":["../../../rpc/validation/SafeValidator.ts"],"names":[],"mappings":"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"}