@pimlico/alto 0.0.0-staging.20240606T101054 → 0.0.0-staging.20240606T102147

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 (220) hide show
  1. package/esm/cli/alto.d.ts +6 -0
  2. package/esm/cli/alto.js +92 -0
  3. package/esm/cli/alto.js.map +1 -0
  4. package/esm/cli/config/bundler.d.ts +391 -0
  5. package/esm/cli/config/bundler.js +132 -0
  6. package/esm/cli/config/bundler.js.map +1 -0
  7. package/esm/cli/config/index.d.ts +3 -0
  8. package/esm/cli/config/index.js +3 -0
  9. package/esm/cli/config/index.js.map +1 -0
  10. package/esm/cli/config/options.d.ts +11 -0
  11. package/esm/cli/config/options.js +336 -0
  12. package/esm/cli/config/options.js.map +1 -0
  13. package/esm/cli/customTransport.d.ts +14 -0
  14. package/esm/cli/customTransport.js +53 -0
  15. package/esm/cli/customTransport.js.map +1 -0
  16. package/esm/cli/handler.d.ts +3 -0
  17. package/esm/cli/handler.js +116 -0
  18. package/esm/cli/handler.js.map +1 -0
  19. package/esm/cli/index.d.ts +4 -0
  20. package/esm/cli/index.js +4 -0
  21. package/esm/cli/index.js.map +1 -0
  22. package/esm/cli/instrumentation.d.ts +2 -0
  23. package/esm/cli/instrumentation.js +39 -0
  24. package/esm/cli/instrumentation.js.map +1 -0
  25. package/esm/cli/setupServer.d.ts +17 -0
  26. package/esm/cli/setupServer.js +155 -0
  27. package/esm/cli/setupServer.js.map +1 -0
  28. package/esm/cli/util.d.ts +22 -0
  29. package/esm/cli/util.js +30 -0
  30. package/esm/cli/util.js.map +1 -0
  31. package/esm/executor/executor.d.ts +54 -0
  32. package/esm/executor/executor.js +637 -0
  33. package/esm/executor/executor.js.map +1 -0
  34. package/esm/executor/executorManager.d.ts +34 -0
  35. package/esm/executor/executorManager.js +401 -0
  36. package/esm/executor/executorManager.js.map +1 -0
  37. package/esm/executor/index.d.ts +5 -0
  38. package/esm/executor/index.js +5 -0
  39. package/esm/executor/index.js.map +1 -0
  40. package/esm/executor/senderManager.d.ts +17 -0
  41. package/esm/executor/senderManager.js +160 -0
  42. package/esm/executor/senderManager.js.map +1 -0
  43. package/esm/executor/test/utils.d.ts +13 -0
  44. package/esm/executor/test/utils.js +75 -0
  45. package/esm/executor/test/utils.js.map +1 -0
  46. package/esm/executor/utils.d.ts +32 -0
  47. package/esm/executor/utils.js +239 -0
  48. package/esm/executor/utils.js.map +1 -0
  49. package/esm/index.d.ts +2 -0
  50. package/esm/index.js +2 -0
  51. package/esm/index.js.map +1 -0
  52. package/esm/mempool/index.d.ts +5 -0
  53. package/esm/mempool/index.js +5 -0
  54. package/esm/mempool/index.js.map +1 -0
  55. package/esm/mempool/mempool.d.ts +64 -0
  56. package/esm/mempool/mempool.js +489 -0
  57. package/esm/mempool/mempool.js.map +1 -0
  58. package/esm/mempool/monitoring.d.ts +10 -0
  59. package/esm/mempool/monitoring.js +34 -0
  60. package/esm/mempool/monitoring.js.map +1 -0
  61. package/esm/mempool/nullMempool.d.ts +15 -0
  62. package/esm/mempool/nullMempool.js +36 -0
  63. package/esm/mempool/nullMempool.js.map +1 -0
  64. package/esm/mempool/reputationManager.d.ts +115 -0
  65. package/esm/mempool/reputationManager.js +397 -0
  66. package/esm/mempool/reputationManager.js.map +1 -0
  67. package/esm/mempool/store.d.ts +22 -0
  68. package/esm/mempool/store.js +123 -0
  69. package/esm/mempool/store.js.map +1 -0
  70. package/esm/rpc/EntryPointSimulationsV07.d.ts +58 -0
  71. package/esm/rpc/EntryPointSimulationsV07.js +407 -0
  72. package/esm/rpc/EntryPointSimulationsV07.js.map +1 -0
  73. package/esm/rpc/ExecuteSimulator.d.ts +37 -0
  74. package/esm/rpc/ExecuteSimulator.js +48 -0
  75. package/esm/rpc/ExecuteSimulator.js.map +1 -0
  76. package/esm/rpc/gasEstimation.d.ts +17 -0
  77. package/esm/rpc/gasEstimation.js +410 -0
  78. package/esm/rpc/gasEstimation.js.map +1 -0
  79. package/esm/rpc/index.d.ts +5 -0
  80. package/esm/rpc/index.js +5 -0
  81. package/esm/rpc/index.js.map +1 -0
  82. package/esm/rpc/nonceQueuer.d.ts +25 -0
  83. package/esm/rpc/nonceQueuer.js +135 -0
  84. package/esm/rpc/nonceQueuer.js.map +1 -0
  85. package/esm/rpc/rpcHandler.d.ts +64 -0
  86. package/esm/rpc/rpcHandler.js +727 -0
  87. package/esm/rpc/rpcHandler.js.map +1 -0
  88. package/esm/rpc/server.d.ts +31 -0
  89. package/esm/rpc/server.js +238 -0
  90. package/esm/rpc/server.js.map +1 -0
  91. package/esm/rpc/validation/BundlerCollectorTracerV06.d.ts +102 -0
  92. package/esm/rpc/validation/BundlerCollectorTracerV06.js +255 -0
  93. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -0
  94. package/esm/rpc/validation/BundlerCollectorTracerV07.d.ts +102 -0
  95. package/esm/rpc/validation/BundlerCollectorTracerV07.js +254 -0
  96. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -0
  97. package/esm/rpc/validation/SafeValidator.d.ts +35 -0
  98. package/esm/rpc/validation/SafeValidator.js +487 -0
  99. package/esm/rpc/validation/SafeValidator.js.map +1 -0
  100. package/esm/rpc/validation/TracerResultParserV06.d.ts +13 -0
  101. package/esm/rpc/validation/TracerResultParserV06.js +578 -0
  102. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -0
  103. package/esm/rpc/validation/TracerResultParserV07.d.ts +33 -0
  104. package/esm/rpc/validation/TracerResultParserV07.js +557 -0
  105. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -0
  106. package/esm/rpc/validation/UnsafeValidator.d.ts +63 -0
  107. package/esm/rpc/validation/UnsafeValidator.js +257 -0
  108. package/esm/rpc/validation/UnsafeValidator.js.map +1 -0
  109. package/esm/rpc/validation/index.d.ts +3 -0
  110. package/esm/rpc/validation/index.js +3 -0
  111. package/esm/rpc/validation/index.js.map +1 -0
  112. package/esm/rpc/validation/tracer.d.ts +122 -0
  113. package/esm/rpc/validation/tracer.js +82 -0
  114. package/esm/rpc/validation/tracer.js.map +1 -0
  115. package/esm/types/contracts/BundleBulker.d.ts +120 -0
  116. package/esm/types/contracts/BundleBulker.js +157 -0
  117. package/esm/types/contracts/BundleBulker.js.map +1 -0
  118. package/esm/types/contracts/CallEngine.d.ts +28 -0
  119. package/esm/types/contracts/CallEngine.js +37 -0
  120. package/esm/types/contracts/CallEngine.js.map +1 -0
  121. package/esm/types/contracts/CodeHashGetter.d.ts +37 -0
  122. package/esm/types/contracts/CodeHashGetter.js +45 -0
  123. package/esm/types/contracts/CodeHashGetter.js.map +1 -0
  124. package/esm/types/contracts/EntryPoint.d.ts +1789 -0
  125. package/esm/types/contracts/EntryPoint.js +2304 -0
  126. package/esm/types/contracts/EntryPoint.js.map +1 -0
  127. package/esm/types/contracts/EntryPointSimulations.d.ts +153 -0
  128. package/esm/types/contracts/EntryPointSimulations.js +15 -0
  129. package/esm/types/contracts/EntryPointSimulations.js.map +1 -0
  130. package/esm/types/contracts/IOpInflator.d.ts +61 -0
  131. package/esm/types/contracts/IOpInflator.js +80 -0
  132. package/esm/types/contracts/IOpInflator.js.map +1 -0
  133. package/esm/types/contracts/IPaymaster.d.ts +3 -0
  134. package/esm/types/contracts/IPaymaster.js +117 -0
  135. package/esm/types/contracts/IPaymaster.js.map +1 -0
  136. package/esm/types/contracts/Inflator.d.ts +65 -0
  137. package/esm/types/contracts/Inflator.js +84 -0
  138. package/esm/types/contracts/Inflator.js.map +1 -0
  139. package/esm/types/contracts/PerOpInflator.d.ts +176 -0
  140. package/esm/types/contracts/PerOpInflator.js +229 -0
  141. package/esm/types/contracts/PerOpInflator.js.map +1 -0
  142. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +23 -0
  143. package/esm/types/contracts/PimlicoEntryPointSimulations.js +33 -0
  144. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -0
  145. package/esm/types/contracts/SenderCreator.d.ts +4 -0
  146. package/esm/types/contracts/SenderCreator.js +23 -0
  147. package/esm/types/contracts/SenderCreator.js.map +1 -0
  148. package/esm/types/contracts/SimpleAccountFactory.d.ts +57 -0
  149. package/esm/types/contracts/SimpleAccountFactory.js +76 -0
  150. package/esm/types/contracts/SimpleAccountFactory.js.map +1 -0
  151. package/esm/types/contracts/TestOpcodesAccount.d.ts +4 -0
  152. package/esm/types/contracts/TestOpcodesAccount.js +281 -0
  153. package/esm/types/contracts/TestOpcodesAccount.js.map +1 -0
  154. package/esm/types/contracts/TestOpcodesAccountFactory.d.ts +4 -0
  155. package/esm/types/contracts/TestOpcodesAccountFactory.js +23 -0
  156. package/esm/types/contracts/TestOpcodesAccountFactory.js.map +1 -0
  157. package/esm/types/contracts/TestStorageAccount.d.ts +4 -0
  158. package/esm/types/contracts/TestStorageAccount.js +313 -0
  159. package/esm/types/contracts/TestStorageAccount.js.map +1 -0
  160. package/esm/types/contracts/index.d.ts +17 -0
  161. package/esm/types/contracts/index.js +17 -0
  162. package/esm/types/contracts/index.js.map +1 -0
  163. package/esm/types/gasPrice.d.ts +110 -0
  164. package/esm/types/gasPrice.js +52 -0
  165. package/esm/types/gasPrice.js.map +1 -0
  166. package/esm/types/index.d.ts +11 -0
  167. package/esm/types/index.js +11 -0
  168. package/esm/types/index.js.map +1 -0
  169. package/esm/types/interfaces.d.ts +26 -0
  170. package/esm/types/interfaces.js +2 -0
  171. package/esm/types/interfaces.js.map +1 -0
  172. package/esm/types/mempool.d.ts +78 -0
  173. package/esm/types/mempool.js +16 -0
  174. package/esm/types/mempool.js.map +1 -0
  175. package/esm/types/schemas.d.ts +4791 -0
  176. package/esm/types/schemas.js +497 -0
  177. package/esm/types/schemas.js.map +1 -0
  178. package/esm/types/test/validationTestErrors.d.ts +3 -0
  179. package/esm/types/test/validationTestErrors.js +229 -0
  180. package/esm/types/test/validationTestErrors.js.map +1 -0
  181. package/esm/types/utils.d.ts +24 -0
  182. package/esm/types/utils.js +30 -0
  183. package/esm/types/utils.js.map +1 -0
  184. package/esm/types/validation.d.ts +14327 -0
  185. package/esm/types/validation.js +304 -0
  186. package/esm/types/validation.js.map +1 -0
  187. package/esm/utils/bigInt.d.ts +3 -0
  188. package/esm/utils/bigInt.js +9 -0
  189. package/esm/utils/bigInt.js.map +1 -0
  190. package/esm/utils/compressionHandler.d.ts +11 -0
  191. package/esm/utils/compressionHandler.js +39 -0
  192. package/esm/utils/compressionHandler.js.map +1 -0
  193. package/esm/utils/gasPriceManager.d.ts +34 -0
  194. package/esm/utils/gasPriceManager.js +338 -0
  195. package/esm/utils/gasPriceManager.js.map +1 -0
  196. package/esm/utils/helpers.d.ts +4 -0
  197. package/esm/utils/helpers.js +13 -0
  198. package/esm/utils/helpers.js.map +1 -0
  199. package/esm/utils/index.d.ts +11 -0
  200. package/esm/utils/index.js +10 -0
  201. package/esm/utils/index.js.map +1 -0
  202. package/esm/utils/logger.d.ts +6 -0
  203. package/esm/utils/logger.js +76 -0
  204. package/esm/utils/logger.js.map +1 -0
  205. package/esm/utils/metrics.d.ts +22 -0
  206. package/esm/utils/metrics.js +150 -0
  207. package/esm/utils/metrics.js.map +1 -0
  208. package/esm/utils/rpc-reply.d.ts +17 -0
  209. package/esm/utils/rpc-reply.js +41 -0
  210. package/esm/utils/rpc-reply.js.map +1 -0
  211. package/esm/utils/test.d.ts +17 -0
  212. package/esm/utils/test.js +130 -0
  213. package/esm/utils/test.js.map +1 -0
  214. package/esm/utils/userop.d.ts +49 -0
  215. package/esm/utils/userop.js +408 -0
  216. package/esm/utils/userop.js.map +1 -0
  217. package/esm/utils/validation.d.ts +65 -0
  218. package/esm/utils/validation.js +461 -0
  219. package/esm/utils/validation.js.map +1 -0
  220. package/package.json +4 -2
@@ -0,0 +1,461 @@
1
+ import { EntryPointV06Abi, EntryPointV07Abi } from "../types/index.js";
2
+ import { ContractFunctionExecutionError, ContractFunctionRevertedError, EstimateGasExecutionError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooLowError, NonceTooLowError, TransactionExecutionError, bytesToHex, concat, encodeAbiParameters, getAbiItem, getContract, serializeTransaction, toBytes, toFunctionSelector } from "viem";
3
+ import * as chains from "viem/chains";
4
+ import { isVersion06, toPackedUserOperation } from "./userop.js";
5
+ import { minBigInt } from "./bigInt.js";
6
+ export const DefaultGasOverheads = {
7
+ fixed: 21000,
8
+ perUserOp: 18300,
9
+ perUserOpWord: 4,
10
+ zeroByte: 4,
11
+ nonZeroByte: 16,
12
+ bundleSize: 1,
13
+ sigSize: 65
14
+ };
15
+ /**
16
+ * pack the userOperation
17
+ * @param op
18
+ * "false" to pack entire UserOp, for calculating the calldata cost of putting it on-chain.
19
+ */
20
+ export function packUserOpV06(op) {
21
+ return encodeAbiParameters([
22
+ {
23
+ internalType: "address",
24
+ name: "sender",
25
+ type: "address"
26
+ },
27
+ {
28
+ internalType: "uint256",
29
+ name: "nonce",
30
+ type: "uint256"
31
+ },
32
+ {
33
+ internalType: "bytes",
34
+ name: "initCode",
35
+ type: "bytes"
36
+ },
37
+ {
38
+ internalType: "bytes",
39
+ name: "callData",
40
+ type: "bytes"
41
+ },
42
+ {
43
+ internalType: "uint256",
44
+ name: "callGasLimit",
45
+ type: "uint256"
46
+ },
47
+ {
48
+ internalType: "uint256",
49
+ name: "verificationGasLimit",
50
+ type: "uint256"
51
+ },
52
+ {
53
+ internalType: "uint256",
54
+ name: "preVerificationGas",
55
+ type: "uint256"
56
+ },
57
+ {
58
+ internalType: "uint256",
59
+ name: "maxFeePerGas",
60
+ type: "uint256"
61
+ },
62
+ {
63
+ internalType: "uint256",
64
+ name: "maxPriorityFeePerGas",
65
+ type: "uint256"
66
+ },
67
+ {
68
+ internalType: "bytes",
69
+ name: "paymasterAndData",
70
+ type: "bytes"
71
+ },
72
+ {
73
+ internalType: "bytes",
74
+ name: "signature",
75
+ type: "bytes"
76
+ }
77
+ ], [
78
+ op.sender,
79
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
80
+ op.initCode,
81
+ op.callData,
82
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
83
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
84
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
85
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
86
+ BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
87
+ bytesToHex(new Uint8Array(op.paymasterAndData.length).fill(255)),
88
+ bytesToHex(new Uint8Array(op.signature.length).fill(255))
89
+ ]);
90
+ }
91
+ export function removeZeroBytesFromUserOp(userOpearation) {
92
+ if (isVersion06(userOpearation)) {
93
+ return {
94
+ sender: userOpearation.sender,
95
+ nonce: userOpearation.nonce,
96
+ initCode: userOpearation.initCode,
97
+ callData: userOpearation.callData,
98
+ callGasLimit: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
99
+ verificationGasLimit: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
100
+ preVerificationGas: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
101
+ maxFeePerGas: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
102
+ maxPriorityFeePerGas: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
103
+ paymasterAndData: bytesToHex(new Uint8Array(userOpearation.paymasterAndData.length).fill(255)),
104
+ signature: bytesToHex(new Uint8Array(userOpearation.signature.length).fill(255))
105
+ };
106
+ }
107
+ const packedUserOperation = toPackedUserOperation(userOpearation);
108
+ return {
109
+ sender: packedUserOperation.sender,
110
+ nonce: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
111
+ initCode: packedUserOperation.initCode,
112
+ callData: packedUserOperation.callData,
113
+ accountGasLimits: bytesToHex(new Uint8Array(32).fill(255)),
114
+ preVerificationGas: BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),
115
+ gasFees: bytesToHex(new Uint8Array(32).fill(255)),
116
+ paymasterAndData: bytesToHex(new Uint8Array(packedUserOperation.paymasterAndData.length).fill(255)),
117
+ signature: bytesToHex(new Uint8Array(packedUserOperation.signature.length).fill(255))
118
+ };
119
+ }
120
+ export function packUserOpV07(op) {
121
+ return encodeAbiParameters([
122
+ {
123
+ internalType: "address",
124
+ name: "sender",
125
+ type: "address"
126
+ },
127
+ {
128
+ internalType: "uint256",
129
+ name: "nonce",
130
+ type: "uint256"
131
+ },
132
+ {
133
+ internalType: "bytes",
134
+ name: "initCode",
135
+ type: "bytes"
136
+ },
137
+ {
138
+ internalType: "bytes",
139
+ name: "callData",
140
+ type: "bytes"
141
+ },
142
+ {
143
+ internalType: "uint256",
144
+ name: "accountGasLimits",
145
+ type: "bytes32"
146
+ },
147
+ {
148
+ internalType: "uint256",
149
+ name: "preVerificationGas",
150
+ type: "uint256"
151
+ },
152
+ {
153
+ internalType: "uint256",
154
+ name: "gasFees",
155
+ type: "bytes32"
156
+ },
157
+ {
158
+ internalType: "bytes",
159
+ name: "paymasterAndData",
160
+ type: "bytes"
161
+ },
162
+ {
163
+ internalType: "bytes",
164
+ name: "signature",
165
+ type: "bytes"
166
+ }
167
+ ], [
168
+ op.sender,
169
+ op.nonce, // need non zero bytes to get better estimations for preVerificationGas
170
+ op.initCode,
171
+ op.callData,
172
+ op.accountGasLimits, // need non zero bytes to get better estimations for preVerificationGas
173
+ op.preVerificationGas, // need non zero bytes to get better estimations for preVerificationGas
174
+ op.gasFees, // need non zero bytes to get better estimations for preVerificationGas
175
+ op.paymasterAndData,
176
+ op.signature
177
+ ]);
178
+ }
179
+ export async function calcPreVerificationGas(publicClient, userOperation, entryPoint, chainId, chainType, gasPriceManager, validate, // when calculating preVerificationGas for validation
180
+ overheads) {
181
+ let preVerificationGas = calcDefaultPreVerificationGas(userOperation, overheads);
182
+ if (chainId === 59140) {
183
+ // linea sepolia
184
+ preVerificationGas *= 2n;
185
+ }
186
+ else if (chainType === "op-stack") {
187
+ preVerificationGas = await calcOptimismPreVerificationGas(publicClient, userOperation, entryPoint, preVerificationGas, gasPriceManager, validate);
188
+ }
189
+ else if (chainType === "arbitrum") {
190
+ preVerificationGas = await calcArbitrumPreVerificationGas(publicClient, userOperation, entryPoint, preVerificationGas);
191
+ }
192
+ return preVerificationGas;
193
+ }
194
+ export function calcVerificationGasAndCallGasLimit(userOperation, executionResult, chainId, callDataResult) {
195
+ const verificationGasLimit = ((executionResult.preOpGas - userOperation.preVerificationGas) * 3n) /
196
+ 2n;
197
+ let gasPrice;
198
+ if (userOperation.maxPriorityFeePerGas === userOperation.maxFeePerGas) {
199
+ gasPrice = userOperation.maxFeePerGas;
200
+ }
201
+ else {
202
+ gasPrice = userOperation.maxFeePerGas;
203
+ }
204
+ const calculatedCallGasLimit = callDataResult?.gasUsed ??
205
+ executionResult.paid / gasPrice - executionResult.preOpGas;
206
+ let callGasLimit = (calculatedCallGasLimit > 9000n ? calculatedCallGasLimit : 9000n) +
207
+ 21000n +
208
+ 50000n;
209
+ if (chainId === chains.baseGoerli.id ||
210
+ chainId === chains.baseSepolia.id ||
211
+ chainId === chains.base.id) {
212
+ callGasLimit = (110n * callGasLimit) / 100n;
213
+ }
214
+ return { verificationGasLimit, callGasLimit };
215
+ }
216
+ /**
217
+ * calculate the preVerificationGas of the given UserOperation
218
+ * preVerificationGas (by definition) is the cost overhead that can't be calculated on-chain.
219
+ * it is based on parameters that are defined by the Ethereum protocol for external transactions.
220
+ * @param userOp filled userOp to calculate. The only possible missing fields can be the signature and preVerificationGas itself
221
+ * @param overheads gas overheads to use, to override the default values
222
+ */
223
+ export function calcDefaultPreVerificationGas(userOperation, overheads) {
224
+ const ov = { ...DefaultGasOverheads, ...(overheads ?? {}) };
225
+ const p = removeZeroBytesFromUserOp(userOperation);
226
+ let packed;
227
+ if (isVersion06(userOperation)) {
228
+ packed = toBytes(packUserOpV06(p));
229
+ }
230
+ else {
231
+ packed = toBytes(packUserOpV07(p));
232
+ }
233
+ const lengthInWord = (packed.length + 31) / 32;
234
+ const callDataCost = packed
235
+ .map((x) => (x === 0 ? ov.zeroByte : ov.nonZeroByte))
236
+ .reduce((sum, x) => sum + x);
237
+ const ret = Math.round(callDataCost +
238
+ ov.fixed / ov.bundleSize +
239
+ ov.perUserOp +
240
+ ov.perUserOpWord * lengthInWord);
241
+ return BigInt(ret);
242
+ }
243
+ const maxUint64 = 2n ** 64n - 1n;
244
+ const getL1FeeAbi = [
245
+ {
246
+ inputs: [
247
+ {
248
+ internalType: "bytes",
249
+ name: "data",
250
+ type: "bytes"
251
+ }
252
+ ],
253
+ name: "getL1Fee",
254
+ outputs: [
255
+ {
256
+ internalType: "uint256",
257
+ name: "fee",
258
+ type: "uint256"
259
+ }
260
+ ],
261
+ stateMutability: "nonpayable",
262
+ type: "function"
263
+ },
264
+ {
265
+ inputs: [],
266
+ name: "l1BaseFee",
267
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
268
+ stateMutability: "view",
269
+ type: "function"
270
+ }
271
+ ];
272
+ export async function calcOptimismPreVerificationGas(publicClient, op, entryPoint, staticFee, gasPriceManager, verify) {
273
+ let selector;
274
+ let paramData;
275
+ if (isVersion06(op)) {
276
+ const randomDataUserOp = removeZeroBytesFromUserOp(op);
277
+ const handleOpsAbi = getAbiItem({
278
+ abi: EntryPointV06Abi,
279
+ name: "handleOps"
280
+ });
281
+ selector = toFunctionSelector(handleOpsAbi);
282
+ paramData = encodeAbiParameters(handleOpsAbi.inputs, [
283
+ [randomDataUserOp],
284
+ entryPoint
285
+ ]);
286
+ }
287
+ else {
288
+ const randomDataUserOp = removeZeroBytesFromUserOp(op);
289
+ const handleOpsAbi = getAbiItem({
290
+ abi: EntryPointV07Abi,
291
+ name: "handleOps"
292
+ });
293
+ selector = toFunctionSelector(handleOpsAbi);
294
+ paramData = encodeAbiParameters(handleOpsAbi.inputs, [
295
+ [randomDataUserOp],
296
+ entryPoint
297
+ ]);
298
+ }
299
+ const data = concat([selector, paramData]);
300
+ const serializedTx = serializeTransaction({
301
+ to: entryPoint,
302
+ chainId: publicClient.chain.id,
303
+ nonce: 999999,
304
+ gasLimit: maxUint64,
305
+ gasPrice: maxUint64,
306
+ data
307
+ }, {
308
+ r: "0x123451234512345123451234512345123451234512345123451234512345",
309
+ s: "0x123451234512345123451234512345123451234512345123451234512345",
310
+ v: 28n
311
+ });
312
+ const opGasPriceOracle = getContract({
313
+ abi: getL1FeeAbi,
314
+ address: "0x420000000000000000000000000000000000000F",
315
+ client: {
316
+ public: publicClient
317
+ }
318
+ });
319
+ const { result: l1Fee } = await opGasPriceOracle.simulate.getL1Fee([
320
+ serializedTx
321
+ ]);
322
+ if (op.maxFeePerGas <= 1n || op.maxPriorityFeePerGas <= 1n) {
323
+ // if user didn't provide gasPrice values, fetch current going price rate
324
+ const gasPrices = await gasPriceManager.getGasPrice();
325
+ op.maxPriorityFeePerGas = gasPrices.maxPriorityFeePerGas;
326
+ op.maxFeePerGas = gasPrices.maxFeePerGas;
327
+ }
328
+ const l2MaxFee = op.maxFeePerGas;
329
+ let baseFeePerGas = 0n;
330
+ if (verify) {
331
+ baseFeePerGas = await gasPriceManager.getMaxBaseFeePerGas();
332
+ }
333
+ else {
334
+ baseFeePerGas = await gasPriceManager.getBaseFee();
335
+ }
336
+ const l2PriorityFee = baseFeePerGas + op.maxPriorityFeePerGas;
337
+ const l2price = minBigInt(l2MaxFee, l2PriorityFee);
338
+ return staticFee + l1Fee / l2price;
339
+ }
340
+ const getArbitrumL1FeeAbi = [
341
+ {
342
+ inputs: [
343
+ {
344
+ internalType: "address",
345
+ name: "to",
346
+ type: "address"
347
+ },
348
+ {
349
+ internalType: "bool",
350
+ name: "contractCreation",
351
+ type: "bool"
352
+ },
353
+ {
354
+ internalType: "bytes",
355
+ name: "data",
356
+ type: "bytes"
357
+ }
358
+ ],
359
+ name: "gasEstimateL1Component",
360
+ outputs: [
361
+ {
362
+ internalType: "uint64",
363
+ name: "gasEstimateForL1",
364
+ type: "uint64"
365
+ },
366
+ {
367
+ internalType: "uint256",
368
+ name: "baseFee",
369
+ type: "uint256"
370
+ },
371
+ {
372
+ internalType: "uint256",
373
+ name: "l1BaseFeeEstimate",
374
+ type: "uint256"
375
+ }
376
+ ],
377
+ stateMutability: "nonpayable",
378
+ type: "function"
379
+ }
380
+ ];
381
+ export async function calcArbitrumPreVerificationGas(publicClient, op, entryPoint, staticFee) {
382
+ let selector;
383
+ let paramData;
384
+ if (isVersion06(op)) {
385
+ const handleOpsAbi = getAbiItem({
386
+ abi: EntryPointV06Abi,
387
+ name: "handleOps"
388
+ });
389
+ selector = toFunctionSelector(handleOpsAbi);
390
+ paramData = encodeAbiParameters(handleOpsAbi.inputs, [
391
+ [removeZeroBytesFromUserOp(op)],
392
+ entryPoint
393
+ ]);
394
+ }
395
+ else {
396
+ const randomDataUserOp = removeZeroBytesFromUserOp(op);
397
+ const handleOpsAbi = getAbiItem({
398
+ abi: EntryPointV07Abi,
399
+ name: "handleOps"
400
+ });
401
+ selector = toFunctionSelector(handleOpsAbi);
402
+ paramData = encodeAbiParameters(handleOpsAbi.inputs, [
403
+ [randomDataUserOp],
404
+ entryPoint
405
+ ]);
406
+ }
407
+ const data = concat([selector, paramData]);
408
+ const precompileAddress = "0x00000000000000000000000000000000000000C8";
409
+ const serializedTx = serializeTransaction({
410
+ to: entryPoint,
411
+ chainId: publicClient.chain?.id ?? 10,
412
+ nonce: 999999,
413
+ gasLimit: maxUint64,
414
+ gasPrice: maxUint64,
415
+ data
416
+ }, {
417
+ r: "0x123451234512345123451234512345123451234512345123451234512345",
418
+ s: "0x123451234512345123451234512345123451234512345123451234512345",
419
+ v: 28n
420
+ });
421
+ const arbGasPriceOracle = getContract({
422
+ abi: getArbitrumL1FeeAbi,
423
+ address: precompileAddress,
424
+ client: {
425
+ public: publicClient
426
+ }
427
+ });
428
+ const { result } = await arbGasPriceOracle.simulate.gasEstimateL1Component([
429
+ entryPoint,
430
+ false,
431
+ serializedTx
432
+ ]);
433
+ return result[0] + staticFee;
434
+ }
435
+ export function parseViemError(err) {
436
+ if (err instanceof ContractFunctionExecutionError ||
437
+ err instanceof TransactionExecutionError) {
438
+ const e = err.cause;
439
+ if (e instanceof NonceTooLowError) {
440
+ return e;
441
+ }
442
+ if (e instanceof FeeCapTooLowError) {
443
+ return e;
444
+ }
445
+ if (e instanceof InsufficientFundsError) {
446
+ return e;
447
+ }
448
+ if (e instanceof IntrinsicGasTooLowError) {
449
+ return e;
450
+ }
451
+ if (e instanceof ContractFunctionRevertedError) {
452
+ return e;
453
+ }
454
+ if (e instanceof EstimateGasExecutionError) {
455
+ return e;
456
+ }
457
+ return;
458
+ }
459
+ return;
460
+ }
461
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@pimlico/alto",
3
- "version": "0.0.0-staging.20240606T101054",
4
- "type": "module",
3
+ "version": "0.0.0-staging.20240606T102147",
5
4
  "description": "A performant and modular ERC-4337 Bundler written in Typescript",
6
5
  "repository": "https://github.com/pimlicolabs/alto.git",
7
6
  "author": "Pimlico",
@@ -9,6 +8,9 @@
9
8
  "main": "lib/index.js",
10
9
  "types": "lib/index.d.ts",
11
10
  "files": [
11
+ "esm/**/*.d.ts",
12
+ "esm/**/*.js",
13
+ "esm/**/*.js.map",
12
14
  "lib/**/*.d.ts",
13
15
  "lib/**/*.js",
14
16
  "lib/**/*.js.map",