@pimlico/alto 0.0.0-staging.20240606T115633 → 0.0.2

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