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

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 (369) hide show
  1. package/lib/cli/config/bundler.js +73 -76
  2. package/lib/cli/config/bundler.js.map +1 -1
  3. package/lib/cli/config/index.js +2 -18
  4. package/lib/cli/config/index.js.map +1 -1
  5. package/lib/cli/config/options.js +10 -13
  6. package/lib/cli/config/options.js.map +1 -1
  7. package/lib/cli/customTransport.js +7 -11
  8. package/lib/cli/customTransport.js.map +1 -1
  9. package/lib/cli/handler.js +24 -28
  10. package/lib/cli/handler.js.map +1 -1
  11. package/lib/cli/index.d.ts +0 -1
  12. package/lib/cli/index.js +2 -19
  13. package/lib/cli/index.js.map +1 -1
  14. package/lib/cli/instrumentation.js +20 -22
  15. package/lib/cli/instrumentation.js.map +1 -1
  16. package/lib/cli/setupServer.js +17 -21
  17. package/lib/cli/setupServer.js.map +1 -1
  18. package/lib/cli/util.js +1 -5
  19. package/lib/cli/util.js.map +1 -1
  20. package/lib/executor/executor.js +56 -90
  21. package/lib/executor/executor.js.map +1 -1
  22. package/lib/executor/executorManager.js +7 -12
  23. package/lib/executor/executorManager.js.map +1 -1
  24. package/lib/executor/index.js +4 -20
  25. package/lib/executor/index.js.map +1 -1
  26. package/lib/executor/senderManager.js +8 -12
  27. package/lib/executor/senderManager.js.map +1 -1
  28. package/lib/executor/test/utils.js +22 -28
  29. package/lib/executor/test/utils.js.map +1 -1
  30. package/lib/executor/utils.js +32 -64
  31. package/lib/executor/utils.js.map +1 -1
  32. package/lib/index.d.ts +5 -1
  33. package/lib/index.js +91 -3
  34. package/lib/index.js.map +1 -1
  35. package/lib/mempool/index.js +4 -20
  36. package/lib/mempool/index.js.map +1 -1
  37. package/lib/mempool/mempool.js +55 -59
  38. package/lib/mempool/mempool.js.map +1 -1
  39. package/lib/mempool/monitoring.js +1 -5
  40. package/lib/mempool/monitoring.js.map +1 -1
  41. package/lib/mempool/nullMempool.js +1 -5
  42. package/lib/mempool/nullMempool.js.map +1 -1
  43. package/lib/mempool/reputationManager.js +44 -49
  44. package/lib/mempool/reputationManager.js.map +1 -1
  45. package/lib/mempool/store.js +1 -5
  46. package/lib/mempool/store.js.map +1 -1
  47. package/lib/rpc/EntryPointSimulationsV07.js +44 -50
  48. package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
  49. package/lib/rpc/ExecuteSimulator.js +2 -5
  50. package/lib/rpc/ExecuteSimulator.js.map +1 -1
  51. package/lib/rpc/gasEstimation.js +62 -69
  52. package/lib/rpc/gasEstimation.js.map +1 -1
  53. package/lib/rpc/index.js +4 -20
  54. package/lib/rpc/index.js.map +1 -1
  55. package/lib/rpc/nonceQueuer.js +16 -20
  56. package/lib/rpc/nonceQueuer.js.map +1 -1
  57. package/lib/rpc/rpcHandler.js +76 -103
  58. package/lib/rpc/rpcHandler.js.map +1 -1
  59. package/lib/rpc/server.js +27 -58
  60. package/lib/rpc/server.js.map +1 -1
  61. package/lib/rpc/validation/BundlerCollectorTracerV06.js +1 -5
  62. package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  63. package/lib/rpc/validation/BundlerCollectorTracerV07.js +1 -5
  64. package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  65. package/lib/rpc/validation/SafeValidator.js +65 -69
  66. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  67. package/lib/rpc/validation/TracerResultParserV06.js +26 -30
  68. package/lib/rpc/validation/TracerResultParserV06.js.map +1 -1
  69. package/lib/rpc/validation/TracerResultParserV07.js +29 -36
  70. package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
  71. package/lib/rpc/validation/UnsafeValidator.js +46 -73
  72. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  73. package/lib/rpc/validation/index.js +2 -18
  74. package/lib/rpc/validation/index.js.map +1 -1
  75. package/lib/rpc/validation/tracer.js +7 -37
  76. package/lib/rpc/validation/tracer.js.map +1 -1
  77. package/lib/types/contracts/BundleBulker.js +1 -4
  78. package/lib/types/contracts/BundleBulker.js.map +1 -1
  79. package/lib/types/contracts/CallEngine.js +1 -4
  80. package/lib/types/contracts/CallEngine.js.map +1 -1
  81. package/lib/types/contracts/CodeHashGetter.js +2 -5
  82. package/lib/types/contracts/CodeHashGetter.js.map +1 -1
  83. package/lib/types/contracts/EntryPoint.js +4 -7
  84. package/lib/types/contracts/EntryPoint.js.map +1 -1
  85. package/lib/types/contracts/EntryPointSimulations.js +3 -6
  86. package/lib/types/contracts/EntryPointSimulations.js.map +1 -1
  87. package/lib/types/contracts/IOpInflator.js +1 -4
  88. package/lib/types/contracts/IOpInflator.js.map +1 -1
  89. package/lib/types/contracts/IPaymaster.js +1 -4
  90. package/lib/types/contracts/IPaymaster.js.map +1 -1
  91. package/lib/types/contracts/Inflator.js +1 -4
  92. package/lib/types/contracts/Inflator.js.map +1 -1
  93. package/lib/types/contracts/PerOpInflator.js +1 -4
  94. package/lib/types/contracts/PerOpInflator.js.map +1 -1
  95. package/lib/types/contracts/PimlicoEntryPointSimulations.js +2 -5
  96. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  97. package/lib/types/contracts/SenderCreator.js +2 -5
  98. package/lib/types/contracts/SenderCreator.js.map +1 -1
  99. package/lib/types/contracts/SimpleAccountFactory.js +2 -5
  100. package/lib/types/contracts/SimpleAccountFactory.js.map +1 -1
  101. package/lib/types/contracts/TestOpcodesAccount.js +2 -5
  102. package/lib/types/contracts/TestOpcodesAccount.js.map +1 -1
  103. package/lib/types/contracts/TestOpcodesAccountFactory.js +2 -5
  104. package/lib/types/contracts/TestOpcodesAccountFactory.js.map +1 -1
  105. package/lib/types/contracts/TestStorageAccount.js +2 -5
  106. package/lib/types/contracts/TestStorageAccount.js.map +1 -1
  107. package/lib/types/contracts/index.js +16 -32
  108. package/lib/types/contracts/index.js.map +1 -1
  109. package/lib/types/gasPrice.js +14 -17
  110. package/lib/types/gasPrice.js.map +1 -1
  111. package/lib/types/index.js +10 -26
  112. package/lib/types/index.js.map +1 -1
  113. package/lib/types/interfaces.js +1 -2
  114. package/lib/types/mempool.d.ts +1 -2
  115. package/lib/types/mempool.js +5 -10
  116. package/lib/types/mempool.js.map +1 -1
  117. package/lib/types/schemas.js +254 -284
  118. package/lib/types/schemas.js.map +1 -1
  119. package/lib/types/test/validationTestErrors.js +2 -5
  120. package/lib/types/test/validationTestErrors.js.map +1 -1
  121. package/lib/types/utils.js +5 -9
  122. package/lib/types/utils.js.map +1 -1
  123. package/lib/types/validation.js +139 -142
  124. package/lib/types/validation.js.map +1 -1
  125. package/lib/utils/bigInt.js +2 -7
  126. package/lib/utils/bigInt.js.map +1 -1
  127. package/lib/utils/compressionHandler.js +7 -11
  128. package/lib/utils/compressionHandler.js.map +1 -1
  129. package/lib/utils/gasPriceManager.js +30 -57
  130. package/lib/utils/gasPriceManager.js.map +1 -1
  131. package/lib/utils/helpers.js +5 -10
  132. package/lib/utils/helpers.js.map +1 -1
  133. package/lib/utils/index.js +9 -25
  134. package/lib/utils/index.js.map +1 -1
  135. package/lib/utils/logger.js +10 -19
  136. package/lib/utils/logger.js.map +1 -1
  137. package/lib/utils/metrics.js +20 -24
  138. package/lib/utils/metrics.js.map +1 -1
  139. package/lib/utils/rpc-reply.js +1 -3
  140. package/lib/utils/rpc-reply.js.map +1 -1
  141. package/lib/utils/test.js +36 -67
  142. package/lib/utils/test.js.map +1 -1
  143. package/lib/utils/userop.js +62 -107
  144. package/lib/utils/userop.js.map +1 -1
  145. package/lib/utils/validation.js +64 -99
  146. package/lib/utils/validation.js.map +1 -1
  147. package/package.json +68 -70
  148. package/esm/cli/alto.d.ts +0 -6
  149. package/esm/cli/alto.js +0 -92
  150. package/esm/cli/alto.js.map +0 -1
  151. package/esm/cli/config/bundler.d.ts +0 -391
  152. package/esm/cli/config/bundler.js +0 -132
  153. package/esm/cli/config/bundler.js.map +0 -1
  154. package/esm/cli/config/index.d.ts +0 -3
  155. package/esm/cli/config/index.js +0 -3
  156. package/esm/cli/config/index.js.map +0 -1
  157. package/esm/cli/config/options.d.ts +0 -11
  158. package/esm/cli/config/options.js +0 -336
  159. package/esm/cli/config/options.js.map +0 -1
  160. package/esm/cli/customTransport.d.ts +0 -14
  161. package/esm/cli/customTransport.js +0 -53
  162. package/esm/cli/customTransport.js.map +0 -1
  163. package/esm/cli/handler.d.ts +0 -3
  164. package/esm/cli/handler.js +0 -116
  165. package/esm/cli/handler.js.map +0 -1
  166. package/esm/cli/index.d.ts +0 -4
  167. package/esm/cli/index.js +0 -4
  168. package/esm/cli/index.js.map +0 -1
  169. package/esm/cli/instrumentation.d.ts +0 -2
  170. package/esm/cli/instrumentation.js +0 -39
  171. package/esm/cli/instrumentation.js.map +0 -1
  172. package/esm/cli/setupServer.d.ts +0 -17
  173. package/esm/cli/setupServer.js +0 -155
  174. package/esm/cli/setupServer.js.map +0 -1
  175. package/esm/cli/util.d.ts +0 -22
  176. package/esm/cli/util.js +0 -30
  177. package/esm/cli/util.js.map +0 -1
  178. package/esm/executor/executor.d.ts +0 -54
  179. package/esm/executor/executor.js +0 -643
  180. package/esm/executor/executor.js.map +0 -1
  181. package/esm/executor/executorManager.d.ts +0 -34
  182. package/esm/executor/executorManager.js +0 -402
  183. package/esm/executor/executorManager.js.map +0 -1
  184. package/esm/executor/index.d.ts +0 -5
  185. package/esm/executor/index.js +0 -5
  186. package/esm/executor/index.js.map +0 -1
  187. package/esm/executor/senderManager.d.ts +0 -17
  188. package/esm/executor/senderManager.js +0 -160
  189. package/esm/executor/senderManager.js.map +0 -1
  190. package/esm/executor/test/utils.d.ts +0 -13
  191. package/esm/executor/test/utils.js +0 -75
  192. package/esm/executor/test/utils.js.map +0 -1
  193. package/esm/executor/utils.d.ts +0 -32
  194. package/esm/executor/utils.js +0 -241
  195. package/esm/executor/utils.js.map +0 -1
  196. package/esm/index.d.ts +0 -2
  197. package/esm/index.js +0 -2
  198. package/esm/index.js.map +0 -1
  199. package/esm/mempool/index.d.ts +0 -5
  200. package/esm/mempool/index.js +0 -5
  201. package/esm/mempool/index.js.map +0 -1
  202. package/esm/mempool/mempool.d.ts +0 -64
  203. package/esm/mempool/mempool.js +0 -489
  204. package/esm/mempool/mempool.js.map +0 -1
  205. package/esm/mempool/monitoring.d.ts +0 -10
  206. package/esm/mempool/monitoring.js +0 -34
  207. package/esm/mempool/monitoring.js.map +0 -1
  208. package/esm/mempool/nullMempool.d.ts +0 -15
  209. package/esm/mempool/nullMempool.js +0 -36
  210. package/esm/mempool/nullMempool.js.map +0 -1
  211. package/esm/mempool/reputationManager.d.ts +0 -115
  212. package/esm/mempool/reputationManager.js +0 -397
  213. package/esm/mempool/reputationManager.js.map +0 -1
  214. package/esm/mempool/store.d.ts +0 -22
  215. package/esm/mempool/store.js +0 -123
  216. package/esm/mempool/store.js.map +0 -1
  217. package/esm/rpc/EntryPointSimulationsV07.d.ts +0 -58
  218. package/esm/rpc/EntryPointSimulationsV07.js +0 -407
  219. package/esm/rpc/EntryPointSimulationsV07.js.map +0 -1
  220. package/esm/rpc/ExecuteSimulator.d.ts +0 -37
  221. package/esm/rpc/ExecuteSimulator.js +0 -48
  222. package/esm/rpc/ExecuteSimulator.js.map +0 -1
  223. package/esm/rpc/gasEstimation.d.ts +0 -17
  224. package/esm/rpc/gasEstimation.js +0 -410
  225. package/esm/rpc/gasEstimation.js.map +0 -1
  226. package/esm/rpc/index.d.ts +0 -5
  227. package/esm/rpc/index.js +0 -5
  228. package/esm/rpc/index.js.map +0 -1
  229. package/esm/rpc/nonceQueuer.d.ts +0 -25
  230. package/esm/rpc/nonceQueuer.js +0 -135
  231. package/esm/rpc/nonceQueuer.js.map +0 -1
  232. package/esm/rpc/rpcHandler.d.ts +0 -64
  233. package/esm/rpc/rpcHandler.js +0 -727
  234. package/esm/rpc/rpcHandler.js.map +0 -1
  235. package/esm/rpc/server.d.ts +0 -31
  236. package/esm/rpc/server.js +0 -239
  237. package/esm/rpc/server.js.map +0 -1
  238. package/esm/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  239. package/esm/rpc/validation/BundlerCollectorTracerV06.js +0 -255
  240. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  241. package/esm/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  242. package/esm/rpc/validation/BundlerCollectorTracerV07.js +0 -254
  243. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  244. package/esm/rpc/validation/SafeValidator.d.ts +0 -35
  245. package/esm/rpc/validation/SafeValidator.js +0 -487
  246. package/esm/rpc/validation/SafeValidator.js.map +0 -1
  247. package/esm/rpc/validation/TracerResultParserV06.d.ts +0 -13
  248. package/esm/rpc/validation/TracerResultParserV06.js +0 -578
  249. package/esm/rpc/validation/TracerResultParserV06.js.map +0 -1
  250. package/esm/rpc/validation/TracerResultParserV07.d.ts +0 -33
  251. package/esm/rpc/validation/TracerResultParserV07.js +0 -557
  252. package/esm/rpc/validation/TracerResultParserV07.js.map +0 -1
  253. package/esm/rpc/validation/UnsafeValidator.d.ts +0 -63
  254. package/esm/rpc/validation/UnsafeValidator.js +0 -257
  255. package/esm/rpc/validation/UnsafeValidator.js.map +0 -1
  256. package/esm/rpc/validation/index.d.ts +0 -3
  257. package/esm/rpc/validation/index.js +0 -3
  258. package/esm/rpc/validation/index.js.map +0 -1
  259. package/esm/rpc/validation/tracer.d.ts +0 -122
  260. package/esm/rpc/validation/tracer.js +0 -82
  261. package/esm/rpc/validation/tracer.js.map +0 -1
  262. package/esm/types/contracts/BundleBulker.d.ts +0 -120
  263. package/esm/types/contracts/BundleBulker.js +0 -157
  264. package/esm/types/contracts/BundleBulker.js.map +0 -1
  265. package/esm/types/contracts/CallEngine.d.ts +0 -28
  266. package/esm/types/contracts/CallEngine.js +0 -37
  267. package/esm/types/contracts/CallEngine.js.map +0 -1
  268. package/esm/types/contracts/CodeHashGetter.d.ts +0 -37
  269. package/esm/types/contracts/CodeHashGetter.js +0 -45
  270. package/esm/types/contracts/CodeHashGetter.js.map +0 -1
  271. package/esm/types/contracts/EntryPoint.d.ts +0 -1789
  272. package/esm/types/contracts/EntryPoint.js +0 -2304
  273. package/esm/types/contracts/EntryPoint.js.map +0 -1
  274. package/esm/types/contracts/EntryPointSimulations.d.ts +0 -153
  275. package/esm/types/contracts/EntryPointSimulations.js +0 -15
  276. package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
  277. package/esm/types/contracts/IOpInflator.d.ts +0 -61
  278. package/esm/types/contracts/IOpInflator.js +0 -80
  279. package/esm/types/contracts/IOpInflator.js.map +0 -1
  280. package/esm/types/contracts/IPaymaster.d.ts +0 -3
  281. package/esm/types/contracts/IPaymaster.js +0 -117
  282. package/esm/types/contracts/IPaymaster.js.map +0 -1
  283. package/esm/types/contracts/Inflator.d.ts +0 -65
  284. package/esm/types/contracts/Inflator.js +0 -84
  285. package/esm/types/contracts/Inflator.js.map +0 -1
  286. package/esm/types/contracts/PerOpInflator.d.ts +0 -176
  287. package/esm/types/contracts/PerOpInflator.js +0 -229
  288. package/esm/types/contracts/PerOpInflator.js.map +0 -1
  289. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -23
  290. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -33
  291. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  292. package/esm/types/contracts/SenderCreator.d.ts +0 -4
  293. package/esm/types/contracts/SenderCreator.js +0 -23
  294. package/esm/types/contracts/SenderCreator.js.map +0 -1
  295. package/esm/types/contracts/SimpleAccountFactory.d.ts +0 -57
  296. package/esm/types/contracts/SimpleAccountFactory.js +0 -76
  297. package/esm/types/contracts/SimpleAccountFactory.js.map +0 -1
  298. package/esm/types/contracts/TestOpcodesAccount.d.ts +0 -4
  299. package/esm/types/contracts/TestOpcodesAccount.js +0 -281
  300. package/esm/types/contracts/TestOpcodesAccount.js.map +0 -1
  301. package/esm/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  302. package/esm/types/contracts/TestOpcodesAccountFactory.js +0 -23
  303. package/esm/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  304. package/esm/types/contracts/TestStorageAccount.d.ts +0 -4
  305. package/esm/types/contracts/TestStorageAccount.js +0 -313
  306. package/esm/types/contracts/TestStorageAccount.js.map +0 -1
  307. package/esm/types/contracts/index.d.ts +0 -17
  308. package/esm/types/contracts/index.js +0 -17
  309. package/esm/types/contracts/index.js.map +0 -1
  310. package/esm/types/gasPrice.d.ts +0 -110
  311. package/esm/types/gasPrice.js +0 -52
  312. package/esm/types/gasPrice.js.map +0 -1
  313. package/esm/types/index.d.ts +0 -11
  314. package/esm/types/index.js +0 -11
  315. package/esm/types/index.js.map +0 -1
  316. package/esm/types/interfaces.d.ts +0 -26
  317. package/esm/types/interfaces.js +0 -2
  318. package/esm/types/interfaces.js.map +0 -1
  319. package/esm/types/mempool.d.ts +0 -79
  320. package/esm/types/mempool.js +0 -16
  321. package/esm/types/mempool.js.map +0 -1
  322. package/esm/types/schemas.d.ts +0 -4791
  323. package/esm/types/schemas.js +0 -497
  324. package/esm/types/schemas.js.map +0 -1
  325. package/esm/types/test/validationTestErrors.d.ts +0 -3
  326. package/esm/types/test/validationTestErrors.js +0 -229
  327. package/esm/types/test/validationTestErrors.js.map +0 -1
  328. package/esm/types/utils.d.ts +0 -24
  329. package/esm/types/utils.js +0 -30
  330. package/esm/types/utils.js.map +0 -1
  331. package/esm/types/validation.d.ts +0 -14327
  332. package/esm/types/validation.js +0 -304
  333. package/esm/types/validation.js.map +0 -1
  334. package/esm/utils/bigInt.d.ts +0 -3
  335. package/esm/utils/bigInt.js +0 -9
  336. package/esm/utils/bigInt.js.map +0 -1
  337. package/esm/utils/compressionHandler.d.ts +0 -11
  338. package/esm/utils/compressionHandler.js +0 -39
  339. package/esm/utils/compressionHandler.js.map +0 -1
  340. package/esm/utils/gasPriceManager.d.ts +0 -34
  341. package/esm/utils/gasPriceManager.js +0 -338
  342. package/esm/utils/gasPriceManager.js.map +0 -1
  343. package/esm/utils/helpers.d.ts +0 -4
  344. package/esm/utils/helpers.js +0 -13
  345. package/esm/utils/helpers.js.map +0 -1
  346. package/esm/utils/index.d.ts +0 -11
  347. package/esm/utils/index.js +0 -10
  348. package/esm/utils/index.js.map +0 -1
  349. package/esm/utils/logger.d.ts +0 -6
  350. package/esm/utils/logger.js +0 -76
  351. package/esm/utils/logger.js.map +0 -1
  352. package/esm/utils/metrics.d.ts +0 -22
  353. package/esm/utils/metrics.js +0 -150
  354. package/esm/utils/metrics.js.map +0 -1
  355. package/esm/utils/rpc-reply.d.ts +0 -17
  356. package/esm/utils/rpc-reply.js +0 -41
  357. package/esm/utils/rpc-reply.js.map +0 -1
  358. package/esm/utils/test.d.ts +0 -17
  359. package/esm/utils/test.js +0 -130
  360. package/esm/utils/test.js.map +0 -1
  361. package/esm/utils/userop.d.ts +0 -49
  362. package/esm/utils/userop.js +0 -408
  363. package/esm/utils/userop.js.map +0 -1
  364. package/esm/utils/validation.d.ts +0 -65
  365. package/esm/utils/validation.js +0 -461
  366. package/esm/utils/validation.js.map +0 -1
  367. package/lib/cli/alto.d.ts +0 -6
  368. package/lib/cli/alto.js +0 -123
  369. package/lib/cli/alto.js.map +0 -1
@@ -1,16 +1,13 @@
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 {
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 {
14
11
  senderManager;
15
12
  constructor(publicClient, senderManager, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly = false, balanceOverrideEnabled = false) {
16
13
  super(publicClient, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly, balanceOverrideEnabled);
@@ -21,16 +18,16 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
21
18
  const validationResult = await this.getValidationResult(userOperation, queuedUserOperations, entryPoint, referencedContracts);
22
19
  if (shouldCheckPrefund) {
23
20
  const prefund = validationResult.returnInfo.prefund;
24
- const { verificationGasLimit, callGasLimit } = (0, utils_1.calcVerificationGasAndCallGasLimit)(userOperation, {
21
+ const { verificationGasLimit, callGasLimit } = calcVerificationGasAndCallGasLimit(userOperation, {
25
22
  preOpGas: validationResult.returnInfo.preOpGas,
26
23
  paid: validationResult.returnInfo.prefund
27
24
  }, this.chainId);
28
25
  let mul = 1n;
29
- if ((0, utils_1.isVersion06)(userOperation) &&
26
+ if (isVersion06(userOperation) &&
30
27
  userOperation.paymasterAndData) {
31
28
  mul = 3n;
32
29
  }
33
- if ((0, utils_1.isVersion07)(userOperation) &&
30
+ if (isVersion07(userOperation) &&
34
31
  userOperation.paymaster === "0x") {
35
32
  mul = 3n;
36
33
  }
@@ -38,7 +35,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
38
35
  verificationGasLimit * mul +
39
36
  userOperation.preVerificationGas;
40
37
  if (requiredPreFund > prefund) {
41
- throw new types_1.RpcError(`prefund is not enough, required: ${requiredPreFund}, got: ${prefund}`, types_1.ValidationErrors.SimulateValidation);
38
+ throw new RpcError(`prefund is not enough, required: ${requiredPreFund}, got: ${prefund}`, ValidationErrors.SimulateValidation);
42
39
  }
43
40
  // TODO prefund should be greater than it costs us to add it to mempool
44
41
  }
@@ -51,9 +48,9 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
51
48
  }
52
49
  }
53
50
  async getCodeHashes(addresses) {
54
- const deployData = (0, viem_1.encodeDeployData)({
55
- abi: types_1.CodeHashGetterAbi,
56
- bytecode: types_1.CodeHashGetterBytecode,
51
+ const deployData = encodeDeployData({
52
+ abi: CodeHashGetterAbi,
53
+ bytecode: CodeHashGetterBytecode,
57
54
  args: [addresses]
58
55
  });
59
56
  const wallet = await this.senderManager.getWallet();
@@ -82,30 +79,30 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
82
79
  if (preCodeHashes && preCodeHashes.addresses.length > 0) {
83
80
  const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
84
81
  if (hash !== preCodeHashes.hash) {
85
- throw new types_1.RpcError("code hashes mismatch", types_1.ValidationErrors.OpcodeValidation);
82
+ throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
86
83
  }
87
84
  }
88
85
  const [res, tracerResult] = await this.getValidationResultWithTracerV07(userOperation, entryPoint);
89
- const [contractAddresses, storageMap] = (0, TracerResultParserV07_1.tracerResultParserV07)(userOperation, tracerResult, res, entryPoint.toLowerCase());
86
+ const [contractAddresses, storageMap] = tracerResultParserV07(userOperation, tracerResult, res, entryPoint.toLowerCase());
90
87
  const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
91
88
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
92
89
  if (res === "0x") {
93
90
  throw new Error("simulateValidation reverted with no revert string!");
94
91
  }
95
92
  if (res.returnInfo.accountSigFailed) {
96
- throw new types_1.RpcError("Invalid UserOp signature", types_1.ValidationErrors.InvalidSignature);
93
+ throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
97
94
  }
98
95
  if (res.returnInfo.paymasterSigFailed) {
99
- throw new types_1.RpcError("Invalid UserOp paymasterData", types_1.ValidationErrors.InvalidSignature);
96
+ throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
100
97
  }
101
98
  const now = Math.floor(Date.now() / 1000);
102
99
  if (res.returnInfo.validAfter === undefined ||
103
100
  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);
101
+ throw new RpcError(`User operation is not valid yet, validAfter=${res.returnInfo.validAfter}, now=${now}`, ValidationErrors.ExpiresShortly);
105
102
  }
106
103
  if (res.returnInfo.validUntil === undefined ||
107
104
  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);
105
+ throw new RpcError(`UserOperation expires too soon, validUntil=${res.returnInfo.validUntil}, now=${now}`, ValidationErrors.ExpiresShortly);
109
106
  }
110
107
  return {
111
108
  ...res,
@@ -120,11 +117,11 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
120
117
  if (preCodeHashes && preCodeHashes.addresses.length > 0) {
121
118
  const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
122
119
  if (hash !== preCodeHashes.hash) {
123
- throw new types_1.RpcError("code hashes mismatch", types_1.ValidationErrors.OpcodeValidation);
120
+ throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
124
121
  }
125
122
  }
126
123
  const [res, tracerResult] = await this.getValidationResultWithTracerV06(userOperation, entryPoint);
127
- const [contractAddresses, storageMap] = (0, TracerResultParserV06_1.tracerResultParserV06)(userOperation, tracerResult, res, entryPoint.toLowerCase());
124
+ const [contractAddresses, storageMap] = tracerResultParserV06(userOperation, tracerResult, res, entryPoint.toLowerCase());
128
125
  const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
129
126
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
130
127
  if (res === "0x") {
@@ -136,7 +133,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
136
133
  storageMap
137
134
  };
138
135
  if (validationResult.returnInfo.sigFailed) {
139
- throw new types_1.RpcError("Invalid UserOp signature or paymaster signature", types_1.ValidationErrors.InvalidSignature);
136
+ throw new RpcError("Invalid UserOp signature or paymaster signature", ValidationErrors.InvalidSignature);
140
137
  }
141
138
  const now = Date.now() / 1000;
142
139
  this.logger.debug({
@@ -145,24 +142,24 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
145
142
  now: now
146
143
  });
147
144
  if (validationResult.returnInfo.validAfter > now - 5) {
148
- throw new types_1.RpcError("User operation is not valid yet", types_1.ValidationErrors.ExpiresShortly);
145
+ throw new RpcError("User operation is not valid yet", ValidationErrors.ExpiresShortly);
149
146
  }
150
147
  if (validationResult.returnInfo.validUntil < now + 30) {
151
- throw new types_1.RpcError("expires too soon", types_1.ValidationErrors.ExpiresShortly);
148
+ throw new RpcError("expires too soon", ValidationErrors.ExpiresShortly);
152
149
  }
153
150
  return validationResult;
154
151
  }
155
152
  async getValidationResultWithTracerV06(userOperation, entryPoint) {
156
- const tracerResult = await (0, tracer_1.debug_traceCall)(this.publicClient, {
157
- from: viem_1.zeroAddress,
153
+ const tracerResult = await debug_traceCall(this.publicClient, {
154
+ from: zeroAddress,
158
155
  to: entryPoint,
159
- data: (0, viem_1.encodeFunctionData)({
160
- abi: types_1.EntryPointV06Abi,
156
+ data: encodeFunctionData({
157
+ abi: EntryPointV06Abi,
161
158
  functionName: "simulateValidation",
162
159
  args: [userOperation]
163
160
  })
164
161
  }, {
165
- tracer: BundlerCollectorTracerV06_1.bundlerCollectorTracer
162
+ tracer: bundlerCollectorTracer
166
163
  });
167
164
  const lastResult = tracerResult.calls.slice(-1)[0];
168
165
  if (lastResult.type !== "REVERT") {
@@ -174,8 +171,8 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
174
171
  return [data, tracerResult];
175
172
  }
176
173
  try {
177
- const { errorName, args: errorArgs } = (0, viem_1.decodeErrorResult)({
178
- abi: types_1.EntryPointV06Abi,
174
+ const { errorName, args: errorArgs } = decodeErrorResult({
175
+ abi: EntryPointV06Abi,
179
176
  data
180
177
  });
181
178
  const errFullName = `${errorName}(${errorArgs.toString()})`;
@@ -196,7 +193,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
196
193
  if (e.code != null) {
197
194
  throw e;
198
195
  }
199
- throw new types_1.RpcError(data);
196
+ throw new RpcError(data);
200
197
  }
201
198
  }
202
199
  parseErrorResultV06(userOperation,
@@ -206,15 +203,15 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
206
203
  // parse it as FailedOp
207
204
  // if its FailedOp, then we have the paymaster param... otherwise its an Error(string)
208
205
  let paymaster = errorResult.errorArgs.paymaster;
209
- if (paymaster === viem_1.zeroAddress) {
206
+ if (paymaster === zeroAddress) {
210
207
  paymaster = undefined;
211
208
  }
212
209
  // eslint-disable-next-line
213
210
  const msg = errorResult.errorArgs[1] ?? errorResult.toString();
214
211
  if (paymaster == null) {
215
- throw new types_1.RpcError(`account validation failed: ${msg}`, types_1.ValidationErrors.SimulateValidation);
212
+ throw new RpcError(`account validation failed: ${msg}`, ValidationErrors.SimulateValidation);
216
213
  }
217
- throw new types_1.RpcError(`paymaster validation failed: ${msg}`, types_1.ValidationErrors.SimulatePaymasterValidation, {
214
+ throw new RpcError(`paymaster validation failed: ${msg}`, ValidationErrors.SimulatePaymasterValidation, {
218
215
  paymaster
219
216
  });
220
217
  }
@@ -224,7 +221,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
224
221
  // add it as "addr" member to the "stakeinfo" struct
225
222
  // if no address, then return "undefined" instead of struct.
226
223
  function fillEntity(data, info) {
227
- const addr = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(data);
224
+ const addr = getAddressFromInitCodeOrPaymasterAndData(data);
228
225
  return addr == null
229
226
  ? undefined
230
227
  : {
@@ -233,7 +230,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
233
230
  };
234
231
  }
235
232
  function fillEntityAggregator(data, info) {
236
- const addr = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(data);
233
+ const addr = getAddressFromInitCodeOrPaymasterAndData(data);
237
234
  return addr == null
238
235
  ? undefined
239
236
  : {
@@ -256,22 +253,22 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
256
253
  };
257
254
  }
258
255
  async getValidationResultWithTracerV07(userOperation, entryPoint) {
259
- const packedUserOperation = (0, utils_1.toPackedUserOperation)(userOperation);
260
- const entryPointSimulationsCallData = (0, viem_1.encodeFunctionData)({
261
- abi: types_1.EntryPointV07SimulationsAbi,
256
+ const packedUserOperation = toPackedUserOperation(userOperation);
257
+ const entryPointSimulationsCallData = encodeFunctionData({
258
+ abi: EntryPointV07SimulationsAbi,
262
259
  functionName: "simulateValidation",
263
260
  args: [packedUserOperation]
264
261
  });
265
- const callData = (0, viem_1.encodeDeployData)({
266
- abi: types_1.PimlicoEntryPointSimulationsAbi,
267
- bytecode: types_1.PimlicoEntryPointSimulationsBytecode,
262
+ const callData = encodeDeployData({
263
+ abi: PimlicoEntryPointSimulationsAbi,
264
+ bytecode: PimlicoEntryPointSimulationsBytecode,
268
265
  args: [entryPoint, entryPointSimulationsCallData]
269
266
  });
270
- const tracerResult = await (0, tracer_1.debug_traceCall)(this.publicClient, {
271
- from: viem_1.zeroAddress,
267
+ const tracerResult = await debug_traceCall(this.publicClient, {
268
+ from: zeroAddress,
272
269
  data: callData
273
270
  }, {
274
- tracer: BundlerCollectorTracerV06_1.bundlerCollectorTracer
271
+ tracer: bundlerCollectorTracer
275
272
  });
276
273
  const lastResult = tracerResult.calls.slice(-1)[0];
277
274
  if (lastResult.type !== "REVERT") {
@@ -283,8 +280,8 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
283
280
  return [data, tracerResult];
284
281
  }
285
282
  try {
286
- const { errorName, args: errorArgs } = (0, viem_1.decodeErrorResult)({
287
- abi: types_1.EntryPointV07Abi,
283
+ const { errorName, args: errorArgs } = decodeErrorResult({
284
+ abi: EntryPointV07Abi,
288
285
  data
289
286
  });
290
287
  const errorResult = this.parseErrorResultV07(userOperation, {
@@ -300,7 +297,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
300
297
  if (e.code != null) {
301
298
  throw e;
302
299
  }
303
- throw new types_1.RpcError(data);
300
+ throw new RpcError(data);
304
301
  }
305
302
  }
306
303
  parseErrorResultV07(userOperation,
@@ -308,35 +305,35 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
308
305
  errorResult) {
309
306
  let decodedResult;
310
307
  try {
311
- (0, viem_1.decodeErrorResult)({
312
- abi: types_1.EntryPointV07SimulationsAbi,
308
+ decodeErrorResult({
309
+ abi: EntryPointV07SimulationsAbi,
313
310
  data: errorResult.errorArgs[1]
314
311
  });
315
- const result = (0, viem_1.decodeErrorResult)({
316
- abi: types_1.EntryPointV07SimulationsAbi,
312
+ const result = decodeErrorResult({
313
+ abi: EntryPointV07SimulationsAbi,
317
314
  data: errorResult.errorArgs[1]
318
315
  });
319
316
  if (result.errorName === "FailedOp") {
320
317
  if ((result.args?.[1]).includes("AA24")) {
321
- throw new types_1.RpcError("Invalid UserOp signature", types_1.ValidationErrors.InvalidSignature);
318
+ throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
322
319
  }
323
320
  if ((result.args?.[1]).includes("AA34")) {
324
- throw new types_1.RpcError("Invalid UserOp paymasterData", types_1.ValidationErrors.InvalidSignature);
321
+ throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
325
322
  }
326
- throw new types_1.RpcError(`ValidationResult error: ${result.args?.[1]}`, types_1.ValidationErrors.SimulateValidation);
323
+ throw new RpcError(`ValidationResult error: ${result.args?.[1]}`, ValidationErrors.SimulateValidation);
327
324
  }
328
325
  if (result.errorName === "FailedOpWithRevert") {
329
326
  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);
327
+ const error = parseFailedOpWithRevert(data);
328
+ throw new RpcError(`ValidationResult error: ${result.args?.[1]} with revert error as: Panic(${error})`, ValidationErrors.SimulateValidation);
332
329
  }
333
- throw new types_1.RpcError(`ValidationResult error: ${result.errorName}`, types_1.ValidationErrors.SimulateValidation);
330
+ throw new RpcError(`ValidationResult error: ${result.errorName}`, ValidationErrors.SimulateValidation);
334
331
  }
335
332
  catch (e) {
336
- if (e instanceof types_1.RpcError) {
333
+ if (e instanceof RpcError) {
337
334
  throw e;
338
335
  }
339
- decodedResult = (0, viem_1.decodeAbiParameters)([
336
+ decodedResult = decodeAbiParameters([
340
337
  {
341
338
  components: [
342
339
  {
@@ -487,5 +484,4 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
487
484
  };
488
485
  }
489
486
  }
490
- exports.SafeValidator = SafeValidator;
491
487
  //# 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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"}
@@ -1,17 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tracerResultParserV06 = void 0;
4
- const types_1 = require("../../types/index.js");
1
+ import { EntryPointV06Abi, PaymasterAbi, RpcError, SenderCreatorAbi, ValidationErrors } from "../../types/index.js";
5
2
  // This file contains references to validation rules, in the format [xxx-###]
6
3
  // where xxx is OP/STO/COD/EP/SREP/EREP/UREP/ALT, and ### is a number
7
4
  // the validation rules are defined in erc-aa-validation.md
8
- const viem_1 = require("viem");
9
- const abi = [...types_1.SenderCreatorAbi, ...types_1.EntryPointV06Abi, ...types_1.PaymasterAbi];
5
+ import { decodeErrorResult, decodeFunctionResult, getFunctionSelector, hexToBigInt, keccak256, pad } from "viem";
6
+ const abi = [...SenderCreatorAbi, ...EntryPointV06Abi, ...PaymasterAbi];
10
7
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
11
8
  const functionSignatureToMethodName = (hash) => {
12
9
  let functionName = undefined;
13
10
  for (const item of abi) {
14
- const signature = (0, viem_1.getFunctionSelector)(item);
11
+ const signature = getFunctionSelector(item);
15
12
  if (signature === hash) {
16
13
  functionName = item.name;
17
14
  }
@@ -61,7 +58,7 @@ function parseCallStack(tracerResults) {
61
58
  else {
62
59
  const method = callCatch(() => functionSignatureToMethodName(top.method), top.method);
63
60
  if (c.type === "REVERT") {
64
- const parsedError = callCatch(() => (0, viem_1.decodeErrorResult)({ abi: abi, data: returnData }), returnData);
61
+ const parsedError = callCatch(() => decodeErrorResult({ abi: abi, data: returnData }), returnData);
65
62
  out.push({
66
63
  to: top.to,
67
64
  from: top.from,
@@ -72,7 +69,7 @@ function parseCallStack(tracerResults) {
72
69
  });
73
70
  }
74
71
  else {
75
- const ret = callCatch(() => (0, viem_1.decodeFunctionResult)({
72
+ const ret = callCatch(() => decodeFunctionResult({
76
73
  abi: abi,
77
74
  functionName: method,
78
75
  data: returnData
@@ -114,14 +111,14 @@ function parseEntitySlots(stakeInfoEntities, keccak) {
114
111
  if (!addr) {
115
112
  continue;
116
113
  }
117
- const addrPadded = (0, viem_1.pad)(addr).toLowerCase();
114
+ const addrPadded = pad(addr).toLowerCase();
118
115
  if (!entitySlots[addr]) {
119
116
  entitySlots[addr] = new Set();
120
117
  }
121
118
  const currentEntitySlots = entitySlots[addr];
122
119
  // valid slot: the slot was generated by keccak(entityAddr || ...)
123
120
  if (k.startsWith(addrPadded)) {
124
- currentEntitySlots.add((0, viem_1.keccak256)(k));
121
+ currentEntitySlots.add(keccak256(k));
125
122
  }
126
123
  // disabled 2nd rule: .. or by keccak( ... || OWN) where OWN is previous allowed slot
127
124
  // if (k.length === 130 && currentEntitySlots.has(k.slice(-64))) {
@@ -133,7 +130,7 @@ function parseEntitySlots(stakeInfoEntities, keccak) {
133
130
  }
134
131
  // method-signature for calls from entryPoint
135
132
  const callsFromEntryPointMethodSigs = {
136
- factory: (0, viem_1.getFunctionSelector)({
133
+ factory: getFunctionSelector({
137
134
  inputs: [
138
135
  {
139
136
  internalType: "bytes",
@@ -152,7 +149,7 @@ const callsFromEntryPointMethodSigs = {
152
149
  stateMutability: "nonpayable",
153
150
  type: "function"
154
151
  }),
155
- account: (0, viem_1.getFunctionSelector)({
152
+ account: getFunctionSelector({
156
153
  inputs: [
157
154
  {
158
155
  components: [
@@ -238,7 +235,7 @@ const callsFromEntryPointMethodSigs = {
238
235
  stateMutability: "nonpayable",
239
236
  type: "function"
240
237
  }),
241
- paymaster: (0, viem_1.getFunctionSelector)({
238
+ paymaster: getFunctionSelector({
242
239
  inputs: [
243
240
  {
244
241
  components: [
@@ -338,7 +335,7 @@ const callsFromEntryPointMethodSigs = {
338
335
  * @param entryPoint the entryPoint that hosted the "simulatedValidation" traced call.
339
336
  * @return list of contract addresses referenced by this UserOp
340
337
  */
341
- function tracerResultParserV06(userOperation, tracerResults, validationResult, entryPointAddress) {
338
+ export function tracerResultParserV06(userOperation, tracerResults, validationResult, entryPointAddress) {
342
339
  // todo: block access to no-code addresses (might need update to tracer)
343
340
  // opcodes from [OP-011]
344
341
  const bannedOpCodes = new Set([
@@ -372,13 +369,13 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
372
369
  call.method !== "depositTo");
373
370
  // [OP-054]
374
371
  if (callInfoEntryPoint) {
375
- throw new types_1.RpcError(`illegal call into EntryPoint during validation ${callInfoEntryPoint?.method}`, types_1.ValidationErrors.OpcodeValidation);
372
+ throw new RpcError(`illegal call into EntryPoint during validation ${callInfoEntryPoint?.method}`, ValidationErrors.OpcodeValidation);
376
373
  }
377
374
  // [OP-061]
378
375
  const illegalNonZeroValueCall = callStack.find((call) => call.to !== entryPointAddress &&
379
- (0, viem_1.hexToBigInt)(call.value ?? "0x0") !== 0n);
376
+ hexToBigInt(call.value ?? "0x0") !== 0n);
380
377
  if (illegalNonZeroValueCall) {
381
- throw new types_1.RpcError("May not may CALL with value", types_1.ValidationErrors.OpcodeValidation);
378
+ throw new RpcError("May not may CALL with value", ValidationErrors.OpcodeValidation);
382
379
  }
383
380
  const sender = userOperation.sender.toLowerCase();
384
381
  // stake info per "number" level (factory, sender, paymaster)
@@ -405,22 +402,22 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
405
402
  const access = currentNumLevel.access;
406
403
  // [OP-020]
407
404
  if (currentNumLevel.oog ?? false) {
408
- throw new types_1.RpcError(`${entityTitle} internally reverts on oog`, types_1.ValidationErrors.OpcodeValidation);
405
+ throw new RpcError(`${entityTitle} internally reverts on oog`, ValidationErrors.OpcodeValidation);
409
406
  }
410
407
  // opcodes from [OP-011]
411
408
  for (const opcode of Object.keys(opcodes)) {
412
409
  if (bannedOpCodes.has(opcode)) {
413
- throw new types_1.RpcError(`${entityTitle} uses banned opcode: ${opcode}`, types_1.ValidationErrors.OpcodeValidation);
410
+ throw new RpcError(`${entityTitle} uses banned opcode: ${opcode}`, ValidationErrors.OpcodeValidation);
414
411
  }
415
412
  }
416
413
  // [OP-031]
417
414
  if (entityTitle === "factory") {
418
415
  if ((opcodes.CREATE2 ?? 0) > 1) {
419
- throw new types_1.RpcError(`${entityTitle} with too many CREATE2`, types_1.ValidationErrors.OpcodeValidation);
416
+ throw new RpcError(`${entityTitle} with too many CREATE2`, ValidationErrors.OpcodeValidation);
420
417
  }
421
418
  }
422
419
  else if (opcodes.CREATE2) {
423
- throw new types_1.RpcError(`${entityTitle} uses banned opcode: CREATE2`, types_1.ValidationErrors.OpcodeValidation);
420
+ throw new RpcError(`${entityTitle} uses banned opcode: CREATE2`, ValidationErrors.OpcodeValidation);
424
421
  }
425
422
  for (const [addr, { reads, writes }] of Object.entries(access)) {
426
423
  // testing read/write access on contract "addr"
@@ -439,7 +436,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
439
436
  // @param addr - the address we try to check for association with
440
437
  // @param reverseKeccak - a mapping we built for keccak values that contained the address
441
438
  function associatedWith(slot, addr, entitySlots) {
442
- const addrPadded = (0, viem_1.pad)(addr, {
439
+ const addrPadded = pad(addr, {
443
440
  size: 32
444
441
  }).toLowerCase();
445
442
  if (slot.toLowerCase() === addrPadded) {
@@ -449,11 +446,11 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
449
446
  if (!k) {
450
447
  return false;
451
448
  }
452
- const slotN = (0, viem_1.hexToBigInt)(slot);
449
+ const slotN = hexToBigInt(slot);
453
450
  // scan all slot entries to check of the given slot is within a structure, starting at that offset.
454
451
  // assume a maximum size on a (static) structure size.
455
452
  for (const k1 of k.keys()) {
456
- const kn = (0, viem_1.hexToBigInt)(k1);
453
+ const kn = hexToBigInt(k1);
457
454
  if (slotN >= kn && slotN < kn + 128n) {
458
455
  return true;
459
456
  }
@@ -497,7 +494,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
497
494
  ? "write to"
498
495
  : "read from";
499
496
  const message = `${entityTitle} has forbidden ${readWrite} ${nameAddr(addr, entityTitle)} slot ${slot}`;
500
- throw new types_1.RpcError(message, types_1.ValidationErrors.OpcodeValidation, {
497
+ throw new RpcError(message, ValidationErrors.OpcodeValidation, {
501
498
  [entityTitle]: entStakes?.addr
502
499
  });
503
500
  }
@@ -534,7 +531,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
534
531
  throw new Error(`internal: ${entityTitle} not in userOp, but has storage accesses in ${JSON.stringify(access)}`);
535
532
  }
536
533
  if (!isStaked(entStake)) {
537
- throw new types_1.RpcError(failureMessage, types_1.ValidationErrors.OpcodeValidation, {
534
+ throw new RpcError(failureMessage, ValidationErrors.OpcodeValidation, {
538
535
  [entityTitle]: entStakes?.addr
539
536
  });
540
537
  }
@@ -554,7 +551,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
554
551
  }
555
552
  // [OP-041]
556
553
  if (illegalZeroCodeAccess) {
557
- throw new types_1.RpcError(`${entityTitle} accesses un-deployed contract address ${illegalZeroCodeAccess?.address} with opcode ${illegalZeroCodeAccess?.opcode}`, types_1.ValidationErrors.OpcodeValidation);
554
+ throw new RpcError(`${entityTitle} accesses un-deployed contract address ${illegalZeroCodeAccess?.address} with opcode ${illegalZeroCodeAccess?.opcode}`, ValidationErrors.OpcodeValidation);
558
555
  }
559
556
  let illegalEntryPointCodeAccess = undefined;
560
557
  for (const addr of Object.keys(currentNumLevel.extCodeAccessInfo)) {
@@ -565,7 +562,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
565
562
  }
566
563
  }
567
564
  if (illegalEntryPointCodeAccess) {
568
- throw new types_1.RpcError(`${entityTitle} accesses EntryPoint contract address ${entryPointAddress} with opcode ${illegalEntryPointCodeAccess}`, types_1.ValidationErrors.OpcodeValidation);
565
+ throw new RpcError(`${entityTitle} accesses EntryPoint contract address ${entryPointAddress} with opcode ${illegalEntryPointCodeAccess}`, ValidationErrors.OpcodeValidation);
569
566
  }
570
567
  }
571
568
  // return list of contract addresses by this UserOp. already known not to contain zero-sized addresses.
@@ -578,5 +575,4 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
578
575
  }
579
576
  return [addresses, storageMap];
580
577
  }
581
- exports.tracerResultParserV06 = tracerResultParserV06;
582
578
  //# sourceMappingURL=TracerResultParserV06.js.map