@pimlico/alto 0.0.0-main.20240607T104359 → 0.0.0-staging.20240606T093925

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 (238) hide show
  1. package/lib/cli/index.d.ts +0 -1
  2. package/lib/cli/index.js +0 -1
  3. package/lib/cli/index.js.map +1 -1
  4. package/lib/executor/executor.js +0 -6
  5. package/lib/executor/executor.js.map +1 -1
  6. package/lib/executor/executorManager.js +0 -1
  7. package/lib/executor/executorManager.js.map +1 -1
  8. package/lib/executor/utils.js +1 -3
  9. package/lib/executor/utils.js.map +1 -1
  10. package/lib/index.d.ts +5 -1
  11. package/lib/index.js +120 -1
  12. package/lib/index.js.map +1 -1
  13. package/lib/rpc/server.js +1 -2
  14. package/lib/rpc/server.js.map +1 -1
  15. package/lib/types/mempool.d.ts +1 -2
  16. package/package.json +67 -70
  17. package/esm/cli/alto.d.ts +0 -6
  18. package/esm/cli/alto.js +0 -92
  19. package/esm/cli/alto.js.map +0 -1
  20. package/esm/cli/config/bundler.d.ts +0 -391
  21. package/esm/cli/config/bundler.js +0 -132
  22. package/esm/cli/config/bundler.js.map +0 -1
  23. package/esm/cli/config/index.d.ts +0 -3
  24. package/esm/cli/config/index.js +0 -3
  25. package/esm/cli/config/index.js.map +0 -1
  26. package/esm/cli/config/options.d.ts +0 -11
  27. package/esm/cli/config/options.js +0 -336
  28. package/esm/cli/config/options.js.map +0 -1
  29. package/esm/cli/customTransport.d.ts +0 -14
  30. package/esm/cli/customTransport.js +0 -53
  31. package/esm/cli/customTransport.js.map +0 -1
  32. package/esm/cli/handler.d.ts +0 -3
  33. package/esm/cli/handler.js +0 -116
  34. package/esm/cli/handler.js.map +0 -1
  35. package/esm/cli/index.d.ts +0 -4
  36. package/esm/cli/index.js +0 -4
  37. package/esm/cli/index.js.map +0 -1
  38. package/esm/cli/instrumentation.d.ts +0 -2
  39. package/esm/cli/instrumentation.js +0 -39
  40. package/esm/cli/instrumentation.js.map +0 -1
  41. package/esm/cli/setupServer.d.ts +0 -17
  42. package/esm/cli/setupServer.js +0 -155
  43. package/esm/cli/setupServer.js.map +0 -1
  44. package/esm/cli/util.d.ts +0 -22
  45. package/esm/cli/util.js +0 -30
  46. package/esm/cli/util.js.map +0 -1
  47. package/esm/executor/executor.d.ts +0 -54
  48. package/esm/executor/executor.js +0 -643
  49. package/esm/executor/executor.js.map +0 -1
  50. package/esm/executor/executorManager.d.ts +0 -34
  51. package/esm/executor/executorManager.js +0 -402
  52. package/esm/executor/executorManager.js.map +0 -1
  53. package/esm/executor/index.d.ts +0 -5
  54. package/esm/executor/index.js +0 -5
  55. package/esm/executor/index.js.map +0 -1
  56. package/esm/executor/senderManager.d.ts +0 -17
  57. package/esm/executor/senderManager.js +0 -160
  58. package/esm/executor/senderManager.js.map +0 -1
  59. package/esm/executor/test/utils.d.ts +0 -13
  60. package/esm/executor/test/utils.js +0 -75
  61. package/esm/executor/test/utils.js.map +0 -1
  62. package/esm/executor/utils.d.ts +0 -32
  63. package/esm/executor/utils.js +0 -241
  64. package/esm/executor/utils.js.map +0 -1
  65. package/esm/index.d.ts +0 -2
  66. package/esm/index.js +0 -2
  67. package/esm/index.js.map +0 -1
  68. package/esm/mempool/index.d.ts +0 -5
  69. package/esm/mempool/index.js +0 -5
  70. package/esm/mempool/index.js.map +0 -1
  71. package/esm/mempool/mempool.d.ts +0 -64
  72. package/esm/mempool/mempool.js +0 -489
  73. package/esm/mempool/mempool.js.map +0 -1
  74. package/esm/mempool/monitoring.d.ts +0 -10
  75. package/esm/mempool/monitoring.js +0 -34
  76. package/esm/mempool/monitoring.js.map +0 -1
  77. package/esm/mempool/nullMempool.d.ts +0 -15
  78. package/esm/mempool/nullMempool.js +0 -36
  79. package/esm/mempool/nullMempool.js.map +0 -1
  80. package/esm/mempool/reputationManager.d.ts +0 -115
  81. package/esm/mempool/reputationManager.js +0 -397
  82. package/esm/mempool/reputationManager.js.map +0 -1
  83. package/esm/mempool/store.d.ts +0 -22
  84. package/esm/mempool/store.js +0 -123
  85. package/esm/mempool/store.js.map +0 -1
  86. package/esm/rpc/EntryPointSimulationsV07.d.ts +0 -58
  87. package/esm/rpc/EntryPointSimulationsV07.js +0 -407
  88. package/esm/rpc/EntryPointSimulationsV07.js.map +0 -1
  89. package/esm/rpc/ExecuteSimulator.d.ts +0 -37
  90. package/esm/rpc/ExecuteSimulator.js +0 -48
  91. package/esm/rpc/ExecuteSimulator.js.map +0 -1
  92. package/esm/rpc/gasEstimation.d.ts +0 -17
  93. package/esm/rpc/gasEstimation.js +0 -410
  94. package/esm/rpc/gasEstimation.js.map +0 -1
  95. package/esm/rpc/index.d.ts +0 -5
  96. package/esm/rpc/index.js +0 -5
  97. package/esm/rpc/index.js.map +0 -1
  98. package/esm/rpc/nonceQueuer.d.ts +0 -25
  99. package/esm/rpc/nonceQueuer.js +0 -135
  100. package/esm/rpc/nonceQueuer.js.map +0 -1
  101. package/esm/rpc/rpcHandler.d.ts +0 -64
  102. package/esm/rpc/rpcHandler.js +0 -727
  103. package/esm/rpc/rpcHandler.js.map +0 -1
  104. package/esm/rpc/server.d.ts +0 -31
  105. package/esm/rpc/server.js +0 -239
  106. package/esm/rpc/server.js.map +0 -1
  107. package/esm/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  108. package/esm/rpc/validation/BundlerCollectorTracerV06.js +0 -255
  109. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  110. package/esm/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  111. package/esm/rpc/validation/BundlerCollectorTracerV07.js +0 -254
  112. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  113. package/esm/rpc/validation/SafeValidator.d.ts +0 -35
  114. package/esm/rpc/validation/SafeValidator.js +0 -487
  115. package/esm/rpc/validation/SafeValidator.js.map +0 -1
  116. package/esm/rpc/validation/TracerResultParserV06.d.ts +0 -13
  117. package/esm/rpc/validation/TracerResultParserV06.js +0 -578
  118. package/esm/rpc/validation/TracerResultParserV06.js.map +0 -1
  119. package/esm/rpc/validation/TracerResultParserV07.d.ts +0 -33
  120. package/esm/rpc/validation/TracerResultParserV07.js +0 -557
  121. package/esm/rpc/validation/TracerResultParserV07.js.map +0 -1
  122. package/esm/rpc/validation/UnsafeValidator.d.ts +0 -63
  123. package/esm/rpc/validation/UnsafeValidator.js +0 -257
  124. package/esm/rpc/validation/UnsafeValidator.js.map +0 -1
  125. package/esm/rpc/validation/index.d.ts +0 -3
  126. package/esm/rpc/validation/index.js +0 -3
  127. package/esm/rpc/validation/index.js.map +0 -1
  128. package/esm/rpc/validation/tracer.d.ts +0 -122
  129. package/esm/rpc/validation/tracer.js +0 -82
  130. package/esm/rpc/validation/tracer.js.map +0 -1
  131. package/esm/types/contracts/BundleBulker.d.ts +0 -120
  132. package/esm/types/contracts/BundleBulker.js +0 -157
  133. package/esm/types/contracts/BundleBulker.js.map +0 -1
  134. package/esm/types/contracts/CallEngine.d.ts +0 -28
  135. package/esm/types/contracts/CallEngine.js +0 -37
  136. package/esm/types/contracts/CallEngine.js.map +0 -1
  137. package/esm/types/contracts/CodeHashGetter.d.ts +0 -37
  138. package/esm/types/contracts/CodeHashGetter.js +0 -45
  139. package/esm/types/contracts/CodeHashGetter.js.map +0 -1
  140. package/esm/types/contracts/EntryPoint.d.ts +0 -1789
  141. package/esm/types/contracts/EntryPoint.js +0 -2304
  142. package/esm/types/contracts/EntryPoint.js.map +0 -1
  143. package/esm/types/contracts/EntryPointSimulations.d.ts +0 -153
  144. package/esm/types/contracts/EntryPointSimulations.js +0 -15
  145. package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
  146. package/esm/types/contracts/IOpInflator.d.ts +0 -61
  147. package/esm/types/contracts/IOpInflator.js +0 -80
  148. package/esm/types/contracts/IOpInflator.js.map +0 -1
  149. package/esm/types/contracts/IPaymaster.d.ts +0 -3
  150. package/esm/types/contracts/IPaymaster.js +0 -117
  151. package/esm/types/contracts/IPaymaster.js.map +0 -1
  152. package/esm/types/contracts/Inflator.d.ts +0 -65
  153. package/esm/types/contracts/Inflator.js +0 -84
  154. package/esm/types/contracts/Inflator.js.map +0 -1
  155. package/esm/types/contracts/PerOpInflator.d.ts +0 -176
  156. package/esm/types/contracts/PerOpInflator.js +0 -229
  157. package/esm/types/contracts/PerOpInflator.js.map +0 -1
  158. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -23
  159. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -33
  160. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  161. package/esm/types/contracts/SenderCreator.d.ts +0 -4
  162. package/esm/types/contracts/SenderCreator.js +0 -23
  163. package/esm/types/contracts/SenderCreator.js.map +0 -1
  164. package/esm/types/contracts/SimpleAccountFactory.d.ts +0 -57
  165. package/esm/types/contracts/SimpleAccountFactory.js +0 -76
  166. package/esm/types/contracts/SimpleAccountFactory.js.map +0 -1
  167. package/esm/types/contracts/TestOpcodesAccount.d.ts +0 -4
  168. package/esm/types/contracts/TestOpcodesAccount.js +0 -281
  169. package/esm/types/contracts/TestOpcodesAccount.js.map +0 -1
  170. package/esm/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  171. package/esm/types/contracts/TestOpcodesAccountFactory.js +0 -23
  172. package/esm/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  173. package/esm/types/contracts/TestStorageAccount.d.ts +0 -4
  174. package/esm/types/contracts/TestStorageAccount.js +0 -313
  175. package/esm/types/contracts/TestStorageAccount.js.map +0 -1
  176. package/esm/types/contracts/index.d.ts +0 -17
  177. package/esm/types/contracts/index.js +0 -17
  178. package/esm/types/contracts/index.js.map +0 -1
  179. package/esm/types/gasPrice.d.ts +0 -110
  180. package/esm/types/gasPrice.js +0 -52
  181. package/esm/types/gasPrice.js.map +0 -1
  182. package/esm/types/index.d.ts +0 -11
  183. package/esm/types/index.js +0 -11
  184. package/esm/types/index.js.map +0 -1
  185. package/esm/types/interfaces.d.ts +0 -26
  186. package/esm/types/interfaces.js +0 -2
  187. package/esm/types/interfaces.js.map +0 -1
  188. package/esm/types/mempool.d.ts +0 -79
  189. package/esm/types/mempool.js +0 -16
  190. package/esm/types/mempool.js.map +0 -1
  191. package/esm/types/schemas.d.ts +0 -4791
  192. package/esm/types/schemas.js +0 -497
  193. package/esm/types/schemas.js.map +0 -1
  194. package/esm/types/test/validationTestErrors.d.ts +0 -3
  195. package/esm/types/test/validationTestErrors.js +0 -229
  196. package/esm/types/test/validationTestErrors.js.map +0 -1
  197. package/esm/types/utils.d.ts +0 -24
  198. package/esm/types/utils.js +0 -30
  199. package/esm/types/utils.js.map +0 -1
  200. package/esm/types/validation.d.ts +0 -14327
  201. package/esm/types/validation.js +0 -304
  202. package/esm/types/validation.js.map +0 -1
  203. package/esm/utils/bigInt.d.ts +0 -3
  204. package/esm/utils/bigInt.js +0 -9
  205. package/esm/utils/bigInt.js.map +0 -1
  206. package/esm/utils/compressionHandler.d.ts +0 -11
  207. package/esm/utils/compressionHandler.js +0 -39
  208. package/esm/utils/compressionHandler.js.map +0 -1
  209. package/esm/utils/gasPriceManager.d.ts +0 -34
  210. package/esm/utils/gasPriceManager.js +0 -338
  211. package/esm/utils/gasPriceManager.js.map +0 -1
  212. package/esm/utils/helpers.d.ts +0 -4
  213. package/esm/utils/helpers.js +0 -13
  214. package/esm/utils/helpers.js.map +0 -1
  215. package/esm/utils/index.d.ts +0 -11
  216. package/esm/utils/index.js +0 -10
  217. package/esm/utils/index.js.map +0 -1
  218. package/esm/utils/logger.d.ts +0 -6
  219. package/esm/utils/logger.js +0 -76
  220. package/esm/utils/logger.js.map +0 -1
  221. package/esm/utils/metrics.d.ts +0 -22
  222. package/esm/utils/metrics.js +0 -150
  223. package/esm/utils/metrics.js.map +0 -1
  224. package/esm/utils/rpc-reply.d.ts +0 -17
  225. package/esm/utils/rpc-reply.js +0 -41
  226. package/esm/utils/rpc-reply.js.map +0 -1
  227. package/esm/utils/test.d.ts +0 -17
  228. package/esm/utils/test.js +0 -130
  229. package/esm/utils/test.js.map +0 -1
  230. package/esm/utils/userop.d.ts +0 -49
  231. package/esm/utils/userop.js +0 -408
  232. package/esm/utils/userop.js.map +0 -1
  233. package/esm/utils/validation.d.ts +0 -65
  234. package/esm/utils/validation.js +0 -461
  235. package/esm/utils/validation.js.map +0 -1
  236. package/lib/cli/alto.d.ts +0 -6
  237. package/lib/cli/alto.js +0 -123
  238. package/lib/cli/alto.js.map +0 -1
@@ -1,408 +0,0 @@
1
- import { EntryPointV06Abi, EntryPointV07Abi } from "../types/index.js";
2
- import * as sentry from "@sentry/node";
3
- import { decodeEventLog, encodeAbiParameters, getAddress, keccak256, toHex, concat, slice, pad } from "viem";
4
- import { areAddressesEqual } from "./helpers.js";
5
- // Type predicate check if the UserOperation is V06.
6
- export function isVersion06(operation) {
7
- return "initCode" in operation && "paymasterAndData" in operation;
8
- }
9
- // Type predicate to check if the UserOperation is V07.
10
- export function isVersion07(operation) {
11
- return "factory" in operation && "paymaster" in operation;
12
- }
13
- export function getInitCode(unpackedUserOperation) {
14
- return unpackedUserOperation.factory
15
- ? concat([
16
- unpackedUserOperation.factory,
17
- unpackedUserOperation.factoryData || "0x"
18
- ])
19
- : "0x";
20
- }
21
- export function unPackInitCode(initCode) {
22
- if (initCode === "0x") {
23
- return {
24
- factory: null,
25
- factoryData: null
26
- };
27
- }
28
- return {
29
- factory: getAddress(slice(initCode, 0, 20)),
30
- factoryData: slice(initCode, 20)
31
- };
32
- }
33
- export function getAccountGasLimits(unpackedUserOperation) {
34
- return concat([
35
- pad(toHex(unpackedUserOperation.verificationGasLimit), {
36
- size: 16
37
- }),
38
- pad(toHex(unpackedUserOperation.callGasLimit), { size: 16 })
39
- ]);
40
- }
41
- export function unpackAccountGasLimits(accountGasLimits) {
42
- return {
43
- verificationGasLimit: BigInt(slice(accountGasLimits, 0, 16)),
44
- callGasLimit: BigInt(slice(accountGasLimits, 16))
45
- };
46
- }
47
- export function getGasLimits(unpackedUserOperation) {
48
- return concat([
49
- pad(toHex(unpackedUserOperation.maxPriorityFeePerGas), {
50
- size: 16
51
- }),
52
- pad(toHex(unpackedUserOperation.maxFeePerGas), { size: 16 })
53
- ]);
54
- }
55
- export function unpackGasLimits(gasLimits) {
56
- return {
57
- maxPriorityFeePerGas: BigInt(slice(gasLimits, 0, 16)),
58
- maxFeePerGas: BigInt(slice(gasLimits, 16))
59
- };
60
- }
61
- export function getPaymasterAndData(unpackedUserOperation) {
62
- return unpackedUserOperation.paymaster
63
- ? concat([
64
- unpackedUserOperation.paymaster,
65
- pad(toHex(unpackedUserOperation.paymasterVerificationGasLimit || 0n), {
66
- size: 16
67
- }),
68
- pad(toHex(unpackedUserOperation.paymasterPostOpGasLimit || 0n), {
69
- size: 16
70
- }),
71
- unpackedUserOperation.paymasterData || "0x"
72
- ])
73
- : "0x";
74
- }
75
- export function unpackPaymasterAndData(paymasterAndData) {
76
- if (paymasterAndData === "0x") {
77
- return {
78
- paymaster: null,
79
- paymasterVerificationGasLimit: null,
80
- paymasterPostOpGasLimit: null,
81
- paymasterData: null
82
- };
83
- }
84
- return {
85
- paymaster: getAddress(slice(paymasterAndData, 0, 20)),
86
- paymasterVerificationGasLimit: BigInt(slice(paymasterAndData, 20, 36)),
87
- paymasterPostOpGasLimit: BigInt(slice(paymasterAndData, 36, 52)),
88
- paymasterData: slice(paymasterAndData, 52)
89
- };
90
- }
91
- export function toPackedUserOperation(unpackedUserOperation) {
92
- return {
93
- sender: unpackedUserOperation.sender,
94
- nonce: unpackedUserOperation.nonce,
95
- initCode: getInitCode(unpackedUserOperation),
96
- callData: unpackedUserOperation.callData,
97
- accountGasLimits: getAccountGasLimits(unpackedUserOperation),
98
- preVerificationGas: unpackedUserOperation.preVerificationGas,
99
- gasFees: getGasLimits(unpackedUserOperation),
100
- paymasterAndData: getPaymasterAndData(unpackedUserOperation),
101
- signature: unpackedUserOperation.signature
102
- };
103
- }
104
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
105
- export function deepHexlify(obj) {
106
- if (typeof obj === "function") {
107
- return undefined;
108
- }
109
- if (obj == null || typeof obj === "string" || typeof obj === "boolean") {
110
- return obj;
111
- }
112
- if (typeof obj === "bigint") {
113
- return toHex(obj);
114
- }
115
- if (obj._isBigNumber != null || typeof obj !== "object") {
116
- return toHex(obj).replace(/^0x0/, "0x");
117
- }
118
- if (Array.isArray(obj)) {
119
- return obj.map((member) => deepHexlify(member));
120
- }
121
- return Object.keys(obj).reduce(
122
- // biome-ignore lint/suspicious/noExplicitAny: it's a recursive function, so it's hard to type
123
- (set, key) => {
124
- set[key] = deepHexlify(obj[key]);
125
- return set;
126
- }, {});
127
- }
128
- export function getAddressFromInitCodeOrPaymasterAndData(data) {
129
- if (!data) {
130
- return null;
131
- }
132
- if (data.length >= 42) {
133
- return getAddress(data.slice(0, 42));
134
- }
135
- return null;
136
- }
137
- export const transactionIncluded = async (isVersion06, txHash, publicClient, entryPoint) => {
138
- try {
139
- const rcp = await publicClient.getTransactionReceipt({ hash: txHash });
140
- if (rcp.status === "success") {
141
- // find if any logs are UserOperationEvent or AccountDeployed
142
- const r = rcp.logs
143
- .map((l) => {
144
- if (areAddressesEqual(l.address, entryPoint)) {
145
- try {
146
- const log = decodeEventLog({
147
- abi: isVersion06
148
- ? EntryPointV06Abi
149
- : EntryPointV07Abi,
150
- data: l.data,
151
- topics: l.topics
152
- });
153
- if (log.eventName === "AccountDeployed") {
154
- return {
155
- userOperationHash: log.args.userOpHash,
156
- success: !!log.args.factory,
157
- accountDeployed: true
158
- };
159
- }
160
- if (log.eventName === "UserOperationEvent") {
161
- return {
162
- userOperationHash: log.args.userOpHash,
163
- success: !!log.args.success,
164
- accountDeployed: false
165
- };
166
- }
167
- return undefined;
168
- }
169
- catch (_e) {
170
- sentry.captureException(_e);
171
- return undefined;
172
- }
173
- }
174
- return undefined;
175
- })
176
- .reduce((result, log) => {
177
- if (log) {
178
- result[log.userOperationHash] = {
179
- userOperationHash: log.userOperationHash,
180
- accountDeployed: log.accountDeployed ||
181
- result[log.userOperationHash]
182
- ?.accountDeployed,
183
- success: log.success ||
184
- result[log.userOperationHash]?.success
185
- };
186
- return result;
187
- }
188
- return result;
189
- }, {});
190
- const success = Object.values(r).reduce((x, v) => x || v.success, false);
191
- if (success) {
192
- return {
193
- status: "included",
194
- ...r
195
- };
196
- }
197
- return {
198
- status: "reverted"
199
- };
200
- }
201
- return {
202
- status: "failed"
203
- };
204
- }
205
- catch (_e) {
206
- return {
207
- status: "not_found"
208
- };
209
- }
210
- };
211
- export const getUserOperationHashV06 = (userOperation, entryPointAddress, chainId) => {
212
- const hash = keccak256(encodeAbiParameters([
213
- {
214
- name: "sender",
215
- type: "address"
216
- },
217
- {
218
- name: "nonce",
219
- type: "uint256"
220
- },
221
- {
222
- name: "initCodeHash",
223
- type: "bytes32"
224
- },
225
- {
226
- name: "callDataHash",
227
- type: "bytes32"
228
- },
229
- {
230
- name: "callGasLimit",
231
- type: "uint256"
232
- },
233
- {
234
- name: "verificationGasLimit",
235
- type: "uint256"
236
- },
237
- {
238
- name: "preVerificationGas",
239
- type: "uint256"
240
- },
241
- {
242
- name: "maxFeePerGas",
243
- type: "uint256"
244
- },
245
- {
246
- name: "maxPriorityFeePerGas",
247
- type: "uint256"
248
- },
249
- {
250
- name: "paymasterAndDataHash",
251
- type: "bytes32"
252
- }
253
- ], [
254
- userOperation.sender,
255
- userOperation.nonce,
256
- keccak256(userOperation.initCode),
257
- keccak256(userOperation.callData),
258
- userOperation.callGasLimit,
259
- userOperation.verificationGasLimit,
260
- userOperation.preVerificationGas,
261
- userOperation.maxFeePerGas,
262
- userOperation.maxPriorityFeePerGas,
263
- keccak256(userOperation.paymasterAndData)
264
- ]));
265
- return keccak256(encodeAbiParameters([
266
- {
267
- name: "userOpHash",
268
- type: "bytes32"
269
- },
270
- {
271
- name: "entryPointAddress",
272
- type: "address"
273
- },
274
- {
275
- name: "chainId",
276
- type: "uint256"
277
- }
278
- ], [hash, entryPointAddress, BigInt(chainId)]));
279
- };
280
- export const getUserOperationHashV07 = (userOperation, entryPointAddress, chainId) => {
281
- const hash = keccak256(encodeAbiParameters([
282
- {
283
- name: "sender",
284
- type: "address"
285
- },
286
- {
287
- name: "nonce",
288
- type: "uint256"
289
- },
290
- {
291
- name: "initCodeHash",
292
- type: "bytes32"
293
- },
294
- {
295
- name: "callDataHash",
296
- type: "bytes32"
297
- },
298
- {
299
- name: "accountGasLimits",
300
- type: "bytes32"
301
- },
302
- {
303
- name: "preVerificationGas",
304
- type: "uint256"
305
- },
306
- {
307
- name: "gasFees",
308
- type: "bytes32"
309
- },
310
- {
311
- name: "paymasterAndDataHash",
312
- type: "bytes32"
313
- }
314
- ], [
315
- userOperation.sender,
316
- userOperation.nonce,
317
- keccak256(userOperation.initCode),
318
- keccak256(userOperation.callData),
319
- userOperation.accountGasLimits,
320
- userOperation.preVerificationGas,
321
- userOperation.gasFees,
322
- keccak256(userOperation.paymasterAndData)
323
- ]));
324
- return keccak256(encodeAbiParameters([
325
- {
326
- name: "userOpHash",
327
- type: "bytes32"
328
- },
329
- {
330
- name: "entryPointAddress",
331
- type: "address"
332
- },
333
- {
334
- name: "chainId",
335
- type: "uint256"
336
- }
337
- ], [hash, entryPointAddress, BigInt(chainId)]));
338
- };
339
- export const getUserOperationHash = (userOperation, entryPointAddress, chainId) => {
340
- if (isVersion06(userOperation)) {
341
- return getUserOperationHashV06(userOperation, entryPointAddress, chainId);
342
- }
343
- return getUserOperationHashV07(toPackedUserOperation(userOperation), entryPointAddress, chainId);
344
- };
345
- export const getNonceKeyAndValue = (nonce) => {
346
- const nonceKey = nonce >> 64n; // first 192 bits of nonce
347
- const userOperationNonceValue = nonce & 0xffffffffffffffffn; // last 64 bits of nonce
348
- return [nonceKey, userOperationNonceValue];
349
- };
350
- export function toUnpackedUserOperation(packedUserOperation) {
351
- const { factory, factoryData } = unPackInitCode(packedUserOperation.initCode);
352
- const { callGasLimit, verificationGasLimit } = unpackAccountGasLimits(packedUserOperation.accountGasLimits);
353
- const { maxFeePerGas, maxPriorityFeePerGas } = unpackGasLimits(packedUserOperation.gasFees);
354
- const { paymaster, paymasterVerificationGasLimit, paymasterPostOpGasLimit, paymasterData } = unpackPaymasterAndData(packedUserOperation.paymasterAndData);
355
- return {
356
- sender: packedUserOperation.sender,
357
- nonce: packedUserOperation.nonce,
358
- factory: factory,
359
- factoryData: factoryData,
360
- callData: packedUserOperation.callData,
361
- callGasLimit: callGasLimit,
362
- verificationGasLimit: verificationGasLimit,
363
- preVerificationGas: packedUserOperation.preVerificationGas,
364
- maxFeePerGas: maxFeePerGas,
365
- maxPriorityFeePerGas: maxPriorityFeePerGas,
366
- paymaster: paymaster,
367
- paymasterVerificationGasLimit: paymasterVerificationGasLimit,
368
- paymasterPostOpGasLimit: paymasterPostOpGasLimit,
369
- paymasterData: paymasterData,
370
- signature: packedUserOperation.signature
371
- };
372
- }
373
- /*
374
- function pack(
375
- UserOperation calldata userOp
376
- ) internal pure returns (bytes memory ret) {
377
- address sender = getSender(userOp);
378
- uint256 nonce = userOp.nonce;
379
- bytes32 hashInitCode = calldataKeccak(userOp.initCode);
380
- bytes32 hashCallData = calldataKeccak(userOp.callData);
381
- uint256 callGasLimit = userOp.callGasLimit;
382
- uint256 verificationGasLimit = userOp.verificationGasLimit;
383
- uint256 preVerificationGas = userOp.preVerificationGas;
384
- uint256 maxFeePerGas = userOp.maxFeePerGas;
385
- uint256 maxPriorityFeePerGas = userOp.maxPriorityFeePerGas;
386
- bytes32 hashPaymasterAndData = calldataKeccak(userOp.paymasterAndData);
387
-
388
- return abi.encode(
389
- sender, nonce,
390
- hashInitCode, hashCallData,
391
- callGasLimit, verificationGasLimit, preVerificationGas,
392
- maxFeePerGas, maxPriorityFeePerGas,
393
- hashPaymasterAndData
394
- );
395
- }
396
-
397
-
398
- const encodedData = encodeAbiParameters(
399
- [
400
- { name: 'x', type: 'string' },
401
- { name: 'y', type: 'uint' },
402
- { name: 'z', type: 'bool' }
403
- ],
404
- ['wagmi', 420n, true]
405
- )
406
-
407
- */
408
- //# sourceMappingURL=userop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userop.js","sourceRoot":"","sources":["../../utils/userop.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- import { type Address, type ChainType, type PackedUserOperation, type UserOperation, type UserOperationV06 } from "../types/index.js";
2
- import { type Chain, ContractFunctionRevertedError, EstimateGasExecutionError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooLowError, NonceTooLowError, type PublicClient, type Transport } from "viem";
3
- import type { GasPriceManager } from "./gasPriceManager.js";
4
- export interface GasOverheads {
5
- /**
6
- * fixed overhead for entire handleOp bundle.
7
- */
8
- fixed: number;
9
- /**
10
- * per userOp overhead, added on top of the above fixed per-bundle.
11
- */
12
- perUserOp: number;
13
- /**
14
- * overhead for userOp word (32 bytes) block
15
- */
16
- perUserOpWord: number;
17
- /**
18
- * zero byte cost, for calldata gas cost calculations
19
- */
20
- zeroByte: number;
21
- /**
22
- * non-zero byte cost, for calldata gas cost calculations
23
- */
24
- nonZeroByte: number;
25
- /**
26
- * expected bundle size, to split per-bundle overhead between all ops.
27
- */
28
- bundleSize: number;
29
- /**
30
- * expected length of the userOp signature.
31
- */
32
- sigSize: number;
33
- }
34
- export declare const DefaultGasOverheads: GasOverheads;
35
- /**
36
- * pack the userOperation
37
- * @param op
38
- * "false" to pack entire UserOp, for calculating the calldata cost of putting it on-chain.
39
- */
40
- export declare function packUserOpV06(op: UserOperationV06): `0x${string}`;
41
- export declare function removeZeroBytesFromUserOp<T extends UserOperation>(userOpearation: T): T extends UserOperationV06 ? UserOperationV06 : PackedUserOperation;
42
- export declare function packUserOpV07(op: PackedUserOperation): `0x${string}`;
43
- export declare function calcPreVerificationGas(publicClient: PublicClient<Transport, Chain>, userOperation: UserOperation, entryPoint: Address, chainId: number, chainType: ChainType, gasPriceManager: GasPriceManager, validate: boolean, // when calculating preVerificationGas for validation
44
- overheads?: GasOverheads): Promise<bigint>;
45
- export declare function calcVerificationGasAndCallGasLimit(userOperation: UserOperation, executionResult: {
46
- preOpGas: bigint;
47
- paid: bigint;
48
- }, chainId: number, callDataResult?: {
49
- gasUsed: bigint;
50
- }): {
51
- verificationGasLimit: bigint;
52
- callGasLimit: bigint;
53
- };
54
- /**
55
- * calculate the preVerificationGas of the given UserOperation
56
- * preVerificationGas (by definition) is the cost overhead that can't be calculated on-chain.
57
- * it is based on parameters that are defined by the Ethereum protocol for external transactions.
58
- * @param userOp filled userOp to calculate. The only possible missing fields can be the signature and preVerificationGas itself
59
- * @param overheads gas overheads to use, to override the default values
60
- */
61
- export declare function calcDefaultPreVerificationGas(userOperation: UserOperation, overheads?: Partial<GasOverheads>): bigint;
62
- export declare function calcOptimismPreVerificationGas(publicClient: PublicClient<Transport, Chain>, op: UserOperation, entryPoint: Address, staticFee: bigint, gasPriceManager: GasPriceManager, verify?: boolean): Promise<bigint>;
63
- export declare function calcArbitrumPreVerificationGas(publicClient: PublicClient<Transport, Chain | undefined>, op: UserOperation, entryPoint: Address, staticFee: bigint): Promise<bigint>;
64
- export declare function parseViemError(err: unknown): NonceTooLowError | FeeCapTooLowError | InsufficientFundsError | IntrinsicGasTooLowError | ContractFunctionRevertedError | EstimateGasExecutionError | undefined;
65
- //# sourceMappingURL=validation.d.ts.map