@pimlico/alto 0.0.18 → 0.0.20

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 (749) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -0
  2. package/contracts/ERC165.sol/ERC165.json +1 -0
  3. package/contracts/ERC20.sol/ERC20.json +1 -0
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -0
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -0
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -0
  15. package/contracts/IAccount.sol/IAccount.json +1 -0
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -0
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -0
  18. package/contracts/IERC165.sol/IERC165.json +1 -0
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -0
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -0
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -0
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -0
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -0
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -0
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -0
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -0
  29. package/contracts/Math.sol/Math.json +1 -0
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -0
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -0
  32. package/contracts/Panic.sol/Panic.json +1 -0
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -0
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -0
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -0
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -0
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -0
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -0
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -0
  43. package/contracts/Strings.sol/Strings.json +1 -0
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -0
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -0
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -0
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/338795fc743ca612.json +1 -0
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/8dbf8a4ad39019b5.json +1 -0
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -0
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/alto.js +16 -7
  80. package/esm/cli/alto.js.map +1 -1
  81. package/esm/cli/config/bundler.d.ts +690 -540
  82. package/esm/cli/config/bundler.js +101 -66
  83. package/esm/cli/config/bundler.js.map +1 -1
  84. package/esm/cli/config/options.d.ts +2 -1
  85. package/esm/cli/config/options.js +207 -59
  86. package/esm/cli/config/options.js.map +1 -1
  87. package/esm/cli/customTransport.d.ts +3 -3
  88. package/esm/cli/customTransport.js +4 -3
  89. package/esm/cli/customTransport.js.map +1 -1
  90. package/esm/cli/deploySimulationsContract.d.ts +5 -2
  91. package/esm/cli/deploySimulationsContract.js +108 -40
  92. package/esm/cli/deploySimulationsContract.js.map +1 -1
  93. package/esm/cli/handler.js +94 -22
  94. package/esm/cli/handler.js.map +1 -1
  95. package/esm/cli/instrumentation.js +7 -1
  96. package/esm/cli/instrumentation.js.map +1 -1
  97. package/esm/cli/parseArgs.js.map +1 -1
  98. package/esm/cli/setupServer.js +63 -63
  99. package/esm/cli/setupServer.js.map +1 -1
  100. package/esm/cli/shutDown.d.ts +20 -0
  101. package/esm/cli/shutDown.js +260 -0
  102. package/esm/cli/shutDown.js.map +1 -0
  103. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  104. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  105. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  106. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  107. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  108. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  109. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
  110. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  111. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  112. package/esm/createConfig.d.ts +12 -4
  113. package/esm/createConfig.js +2 -0
  114. package/esm/createConfig.js.map +1 -1
  115. package/esm/executor/bundleManager.d.ts +111 -0
  116. package/esm/executor/bundleManager.js +354 -0
  117. package/esm/executor/bundleManager.js.map +1 -0
  118. package/esm/executor/executor.d.ts +18 -23
  119. package/esm/executor/executor.js +183 -119
  120. package/esm/executor/executor.js.map +1 -1
  121. package/esm/executor/executorManager.d.ts +39 -88
  122. package/esm/executor/executorManager.js +325 -550
  123. package/esm/executor/executorManager.js.map +1 -1
  124. package/esm/executor/filterOpsAndEstimateGas.d.ts +39 -0
  125. package/esm/executor/filterOpsAndEstimateGas.js +280 -0
  126. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -0
  127. package/esm/executor/getBundleStatus.d.ts +25 -0
  128. package/esm/executor/getBundleStatus.js +35 -0
  129. package/esm/executor/getBundleStatus.js.map +1 -0
  130. package/esm/executor/index.d.ts +1 -0
  131. package/esm/executor/index.js +1 -0
  132. package/esm/executor/index.js.map +1 -1
  133. package/esm/executor/senderManager/createMemorySenderManager.d.ts +3 -3
  134. package/esm/executor/senderManager/createMemorySenderManager.js +14 -1
  135. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
  136. package/esm/executor/senderManager/createRedisSenderManager.d.ts +5 -4
  137. package/esm/executor/senderManager/createRedisSenderManager.js +4 -7
  138. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  139. package/esm/executor/senderManager/flushOnStartUp.d.ts +3 -3
  140. package/esm/executor/senderManager/flushOnStartUp.js +4 -4
  141. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
  142. package/esm/executor/senderManager/index.d.ts +4 -3
  143. package/esm/executor/senderManager/index.js +6 -2
  144. package/esm/executor/senderManager/index.js.map +1 -1
  145. package/esm/executor/senderManager/validateAndRefill.d.ts +4 -4
  146. package/esm/executor/senderManager/validateAndRefill.js +3 -3
  147. package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
  148. package/esm/executor/utilityWalletMonitor.d.ts +5 -5
  149. package/esm/executor/utilityWalletMonitor.js +1 -1
  150. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  151. package/esm/executor/utils.d.ts +14 -6
  152. package/esm/executor/utils.js +68 -37
  153. package/esm/executor/utils.js.map +1 -1
  154. package/esm/handlers/arbitrumGasPriceManager.d.ts +4 -3
  155. package/esm/handlers/arbitrumGasPriceManager.js +9 -5
  156. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  157. package/esm/handlers/eventManager.d.ts +19 -18
  158. package/esm/handlers/eventManager.js +81 -61
  159. package/esm/handlers/eventManager.js.map +1 -1
  160. package/esm/handlers/gasPriceManager.d.ts +12 -10
  161. package/esm/handlers/gasPriceManager.js +79 -125
  162. package/esm/handlers/gasPriceManager.js.map +1 -1
  163. package/esm/handlers/mantleGasPriceManager.d.ts +5 -5
  164. package/esm/handlers/mantleGasPriceManager.js +4 -4
  165. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  166. package/esm/handlers/optimismManager.d.ts +2 -2
  167. package/esm/handlers/optimismManager.js +1 -1
  168. package/esm/handlers/optimismManager.js.map +1 -1
  169. package/esm/mempool/index.d.ts +1 -1
  170. package/esm/mempool/index.js +1 -1
  171. package/esm/mempool/index.js.map +1 -1
  172. package/esm/mempool/mempool.d.ts +71 -33
  173. package/esm/mempool/mempool.js +231 -155
  174. package/esm/mempool/mempool.js.map +1 -1
  175. package/esm/mempool/reputationManager.d.ts +36 -36
  176. package/esm/mempool/reputationManager.js +93 -97
  177. package/esm/mempool/reputationManager.js.map +1 -1
  178. package/esm/mempool/statusManager.d.ts +20 -0
  179. package/esm/mempool/statusManager.js +143 -0
  180. package/esm/mempool/statusManager.js.map +1 -0
  181. package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
  182. package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
  183. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
  184. package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
  185. package/esm/receiptCache/createRedisReceiptCache.js +56 -0
  186. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
  187. package/esm/receiptCache/index.d.ts +11 -0
  188. package/esm/receiptCache/index.js +21 -0
  189. package/esm/receiptCache/index.js.map +1 -0
  190. package/esm/rpc/createMethodHandler.d.ts +2 -2
  191. package/esm/rpc/createMethodHandler.js.map +1 -1
  192. package/esm/rpc/estimation/gasEstimationHandler.d.ts +15 -16
  193. package/esm/rpc/estimation/gasEstimationHandler.js +24 -24
  194. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  195. package/esm/rpc/estimation/gasEstimations06.d.ts +18 -0
  196. package/esm/rpc/estimation/gasEstimations06.js +45 -0
  197. package/esm/rpc/estimation/gasEstimations06.js.map +1 -0
  198. package/esm/rpc/estimation/gasEstimations07.d.ts +63 -0
  199. package/esm/rpc/estimation/gasEstimations07.js +384 -0
  200. package/esm/rpc/estimation/gasEstimations07.js.map +1 -0
  201. package/esm/rpc/estimation/preVerificationGasCalculator.d.ts +56 -0
  202. package/esm/rpc/estimation/preVerificationGasCalculator.js +467 -0
  203. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
  204. package/esm/rpc/estimation/types.d.ts +25 -111
  205. package/esm/rpc/estimation/types.js +5 -121
  206. package/esm/rpc/estimation/types.js.map +1 -1
  207. package/esm/rpc/estimation/utils.d.ts +69 -0
  208. package/esm/rpc/estimation/utils.js +240 -0
  209. package/esm/rpc/estimation/utils.js.map +1 -0
  210. package/{lib/rpc/methods/pimlico_sendUserOperationNow.d.ts → esm/rpc/methods/boost_sendUserOperation.d.ts} +299 -385
  211. package/esm/rpc/methods/boost_sendUserOperation.js +57 -0
  212. package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -0
  213. package/esm/rpc/methods/debug_bundler_clearReputation.js +2 -2
  214. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  215. package/esm/rpc/methods/debug_bundler_clearState.js +2 -2
  216. package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
  217. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  218. package/esm/rpc/methods/debug_bundler_dumpMempool.js +1 -1
  219. package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
  220. package/esm/rpc/methods/debug_bundler_dumpReputation.js +2 -2
  221. package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
  222. package/esm/rpc/methods/debug_bundler_getStakeStatus.js +1 -2
  223. package/esm/rpc/methods/debug_bundler_getStakeStatus.js.map +1 -1
  224. package/esm/rpc/methods/debug_bundler_sendBundleNow.js +10 -2
  225. package/esm/rpc/methods/debug_bundler_sendBundleNow.js.map +1 -1
  226. package/esm/rpc/methods/debug_bundler_setBundlingMode.js +1 -1
  227. package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
  228. package/esm/rpc/methods/debug_bundler_setReputation.js +1 -1
  229. package/esm/rpc/methods/debug_bundler_setReputation.js.map +1 -1
  230. package/esm/rpc/methods/eth_chainId.js +1 -1
  231. package/esm/rpc/methods/eth_chainId.js.map +1 -1
  232. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +910 -301
  233. package/esm/rpc/methods/eth_estimateUserOperationGas.js +228 -12
  234. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  235. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  236. package/esm/rpc/methods/eth_getUserOperationByHash.js +8 -8
  237. package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
  238. package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
  239. package/esm/rpc/methods/eth_getUserOperationReceipt.js +10 -4
  240. package/esm/rpc/methods/eth_getUserOperationReceipt.js.map +1 -1
  241. package/esm/rpc/methods/eth_sendUserOperation.d.ts +319 -2
  242. package/esm/rpc/methods/eth_sendUserOperation.js +223 -20
  243. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  244. package/esm/rpc/methods/eth_supportedEntryPoints.js +1 -1
  245. package/esm/rpc/methods/eth_supportedEntryPoints.js.map +1 -1
  246. package/esm/rpc/methods/index.js +11 -6
  247. package/esm/rpc/methods/index.js.map +1 -1
  248. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js +1 -1
  249. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js.map +1 -1
  250. package/esm/rpc/methods/pimlico_getUserOperationStatus.d.ts +6 -6
  251. package/esm/rpc/methods/pimlico_getUserOperationStatus.js +3 -3
  252. package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
  253. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
  254. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +27 -24
  255. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  256. package/{lib/rpc/methods/eth_estimateUserOperationGas.d.ts → esm/rpc/methods/pimlico_simulateAssetChange.d.ts} +891 -333
  257. package/esm/rpc/methods/pimlico_simulateAssetChange.js +113 -0
  258. package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -0
  259. package/esm/rpc/rpcHandler.d.ts +30 -54
  260. package/esm/rpc/rpcHandler.js +137 -315
  261. package/esm/rpc/rpcHandler.js.map +1 -1
  262. package/esm/rpc/server.d.ts +5 -5
  263. package/esm/rpc/server.js +15 -11
  264. package/esm/rpc/server.js.map +1 -1
  265. package/esm/rpc/validation/BundlerCollectorTracerV06.js +2 -2
  266. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  267. package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
  268. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  269. package/esm/rpc/validation/SafeValidator.d.ts +20 -22
  270. package/esm/rpc/validation/SafeValidator.js +87 -100
  271. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  272. package/esm/rpc/validation/TracerResultParserV06.d.ts +3 -3
  273. package/esm/rpc/validation/TracerResultParserV06.js +19 -19
  274. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  275. package/esm/rpc/validation/TracerResultParserV07.d.ts +3 -3
  276. package/esm/rpc/validation/TracerResultParserV07.js +25 -25
  277. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  278. package/esm/rpc/validation/UnsafeValidator.d.ts +32 -33
  279. package/esm/rpc/validation/UnsafeValidator.js +117 -101
  280. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  281. package/esm/rpc/validation/tracer.d.ts +1 -1
  282. package/esm/store/createMempoolStore.d.ts +3 -3
  283. package/esm/store/createMempoolStore.js +100 -113
  284. package/esm/store/createMempoolStore.js.map +1 -1
  285. package/esm/store/index.d.ts +4 -80
  286. package/esm/store/index.js +4 -1
  287. package/esm/store/index.js.map +1 -1
  288. package/esm/store/outstanding/index.d.ts +13 -0
  289. package/esm/store/outstanding/index.js +16 -0
  290. package/esm/store/outstanding/index.js.map +1 -0
  291. package/esm/store/outstanding/memory.d.ts +29 -0
  292. package/esm/store/outstanding/memory.js +263 -0
  293. package/esm/store/outstanding/memory.js.map +1 -0
  294. package/esm/store/outstanding/redis.d.ts +11 -0
  295. package/esm/store/outstanding/redis.js +229 -0
  296. package/esm/store/outstanding/redis.js.map +1 -0
  297. package/esm/store/outstanding/types.d.ts +19 -0
  298. package/esm/store/outstanding/types.js +2 -0
  299. package/esm/store/outstanding/types.js.map +1 -0
  300. package/esm/store/processing/index.d.ts +11 -0
  301. package/esm/store/processing/index.js +17 -0
  302. package/esm/store/processing/index.js.map +1 -0
  303. package/esm/store/processing/memory.d.ts +16 -0
  304. package/esm/store/processing/memory.js +58 -0
  305. package/esm/store/processing/memory.js.map +1 -0
  306. package/esm/store/processing/redis.d.ts +23 -0
  307. package/esm/store/processing/redis.js +85 -0
  308. package/esm/store/processing/redis.js.map +1 -0
  309. package/esm/store/processing/types.d.ts +10 -0
  310. package/esm/store/processing/types.js +2 -0
  311. package/esm/store/processing/types.js.map +1 -0
  312. package/esm/store/types.d.ts +50 -0
  313. package/esm/store/types.js +2 -0
  314. package/esm/store/types.js.map +1 -0
  315. package/esm/types/contracts/PimlicoSimulations.d.ts +1661 -0
  316. package/esm/types/contracts/{EntryPointSimulationsV7.js → PimlicoSimulations.js} +1104 -1788
  317. package/esm/types/contracts/PimlicoSimulations.js.map +1 -0
  318. package/esm/types/contracts/index.d.ts +1 -3
  319. package/esm/types/contracts/index.js +1 -3
  320. package/esm/types/contracts/index.js.map +1 -1
  321. package/esm/types/gasPrice.js +0 -18
  322. package/esm/types/gasPrice.js.map +1 -1
  323. package/esm/types/interfaces.d.ts +26 -26
  324. package/esm/types/mempool.d.ts +14 -28
  325. package/esm/types/mempool.js +1 -7
  326. package/esm/types/mempool.js.map +1 -1
  327. package/esm/types/schemas.d.ts +26347 -10767
  328. package/esm/types/schemas.js +202 -38
  329. package/esm/types/schemas.js.map +1 -1
  330. package/esm/types/utils.d.ts +2 -5
  331. package/esm/types/utils.js +16 -18
  332. package/esm/types/utils.js.map +1 -1
  333. package/esm/types/validation.d.ts +9447 -8727
  334. package/esm/types/validation.js +123 -161
  335. package/esm/types/validation.js.map +1 -1
  336. package/esm/utils/asyncTimeout.d.ts +5 -0
  337. package/esm/utils/asyncTimeout.js +23 -0
  338. package/esm/utils/asyncTimeout.js.map +1 -0
  339. package/esm/utils/bigInt.d.ts +9 -0
  340. package/esm/utils/bigInt.js +19 -2
  341. package/esm/utils/bigInt.js.map +1 -1
  342. package/esm/utils/eip7702.d.ts +4 -3
  343. package/esm/utils/eip7702.js +16 -7
  344. package/esm/utils/eip7702.js.map +1 -1
  345. package/esm/utils/entryPointOverrides.d.ts +12 -0
  346. package/esm/utils/entryPointOverrides.js +71 -0
  347. package/esm/utils/entryPointOverrides.js.map +1 -0
  348. package/esm/utils/helpers.d.ts +5 -3
  349. package/esm/utils/helpers.js +36 -13
  350. package/esm/utils/helpers.js.map +1 -1
  351. package/esm/utils/index.d.ts +2 -2
  352. package/esm/utils/index.js +1 -1
  353. package/esm/utils/index.js.map +1 -1
  354. package/esm/utils/metrics.d.ts +11 -9
  355. package/esm/utils/metrics.js +44 -25
  356. package/esm/utils/metrics.js.map +1 -1
  357. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +2 -2
  358. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +2 -2
  359. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
  360. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +26 -4
  361. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +111 -71
  362. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  363. package/esm/utils/minMaxQueue/index.d.ts +3 -3
  364. package/esm/utils/minMaxQueue/index.js +4 -3
  365. package/esm/utils/minMaxQueue/index.js.map +1 -1
  366. package/esm/utils/rpc-reply.d.ts +3 -3
  367. package/esm/utils/rpc-reply.js.map +1 -1
  368. package/esm/utils/toViemStateOverrides.d.ts +4 -0
  369. package/esm/utils/toViemStateOverrides.js +44 -0
  370. package/esm/utils/toViemStateOverrides.js.map +1 -0
  371. package/esm/utils/userop.d.ts +89 -87
  372. package/esm/utils/userop.js +207 -439
  373. package/esm/utils/userop.js.map +1 -1
  374. package/package.json +12 -7
  375. package/esm/executor/fastlane.d.ts +0 -9
  376. package/esm/executor/fastlane.js +0 -37
  377. package/esm/executor/fastlane.js.map +0 -1
  378. package/esm/executor/filterOpsAndEStimateGas.d.ts +0 -29
  379. package/esm/executor/filterOpsAndEStimateGas.js +0 -198
  380. package/esm/executor/filterOpsAndEStimateGas.js.map +0 -1
  381. package/esm/mempool/monitoring.d.ts +0 -14
  382. package/esm/mempool/monitoring.js +0 -97
  383. package/esm/mempool/monitoring.js.map +0 -1
  384. package/esm/rpc/estimation/gasEstimationsV06.d.ts +0 -19
  385. package/esm/rpc/estimation/gasEstimationsV06.js +0 -144
  386. package/esm/rpc/estimation/gasEstimationsV06.js.map +0 -1
  387. package/esm/rpc/estimation/gasEstimationsV07.d.ts +0 -101
  388. package/esm/rpc/estimation/gasEstimationsV07.js +0 -721
  389. package/esm/rpc/estimation/gasEstimationsV07.js.map +0 -1
  390. package/esm/store/createMemoryOutstandingStore.d.ts +0 -28
  391. package/esm/store/createMemoryOutstandingStore.js +0 -231
  392. package/esm/store/createMemoryOutstandingStore.js.map +0 -1
  393. package/esm/store/createRedisOutstandingStore.d.ts +0 -27
  394. package/esm/store/createRedisOutstandingStore.js +0 -344
  395. package/esm/store/createRedisOutstandingStore.js.map +0 -1
  396. package/esm/store/createRedisStore.d.ts +0 -9
  397. package/esm/store/createRedisStore.js +0 -131
  398. package/esm/store/createRedisStore.js.map +0 -1
  399. package/esm/store/createStore.d.ts +0 -6
  400. package/esm/store/createStore.js +0 -66
  401. package/esm/store/createStore.js.map +0 -1
  402. package/esm/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
  403. package/esm/types/contracts/EntryPointSimulationsV6.js +0 -48
  404. package/esm/types/contracts/EntryPointSimulationsV6.js.map +0 -1
  405. package/esm/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
  406. package/esm/types/contracts/EntryPointSimulationsV7.js.map +0 -1
  407. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
  408. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -38
  409. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  410. package/esm/utils/validation.d.ts +0 -76
  411. package/esm/utils/validation.js +0 -484
  412. package/esm/utils/validation.js.map +0 -1
  413. package/lib/cli/alto.d.ts +0 -7
  414. package/lib/cli/alto.js +0 -141
  415. package/lib/cli/alto.js.map +0 -1
  416. package/lib/cli/config/bundler.d.ts +0 -2836
  417. package/lib/cli/config/bundler.js +0 -222
  418. package/lib/cli/config/bundler.js.map +0 -1
  419. package/lib/cli/config/index.d.ts +0 -3
  420. package/lib/cli/config/index.js +0 -19
  421. package/lib/cli/config/index.js.map +0 -1
  422. package/lib/cli/config/options.d.ts +0 -13
  423. package/lib/cli/config/options.js +0 -553
  424. package/lib/cli/config/options.js.map +0 -1
  425. package/lib/cli/customTransport.d.ts +0 -14
  426. package/lib/cli/customTransport.js +0 -94
  427. package/lib/cli/customTransport.js.map +0 -1
  428. package/lib/cli/deploySimulationsContract.d.ts +0 -13
  429. package/lib/cli/deploySimulationsContract.js +0 -112
  430. package/lib/cli/deploySimulationsContract.js.map +0 -1
  431. package/lib/cli/handler.d.ts +0 -3
  432. package/lib/cli/handler.js +0 -157
  433. package/lib/cli/handler.js.map +0 -1
  434. package/lib/cli/index.d.ts +0 -4
  435. package/lib/cli/index.js +0 -20
  436. package/lib/cli/index.js.map +0 -1
  437. package/lib/cli/instrumentation.d.ts +0 -2
  438. package/lib/cli/instrumentation.js +0 -47
  439. package/lib/cli/instrumentation.js.map +0 -1
  440. package/lib/cli/parseArgs.d.ts +0 -8
  441. package/lib/cli/parseArgs.js +0 -25
  442. package/lib/cli/parseArgs.js.map +0 -1
  443. package/lib/cli/setupServer.d.ts +0 -13
  444. package/lib/cli/setupServer.js +0 -266
  445. package/lib/cli/setupServer.js.map +0 -1
  446. package/lib/cli/util.d.ts +0 -22
  447. package/lib/cli/util.js +0 -34
  448. package/lib/cli/util.js.map +0 -1
  449. package/lib/createConfig.d.ts +0 -16
  450. package/lib/createConfig.js +0 -13
  451. package/lib/createConfig.js.map +0 -1
  452. package/lib/executor/executor.d.ts +0 -65
  453. package/lib/executor/executor.js +0 -285
  454. package/lib/executor/executor.js.map +0 -1
  455. package/lib/executor/executorManager.d.ts +0 -107
  456. package/lib/executor/executorManager.js +0 -682
  457. package/lib/executor/executorManager.js.map +0 -1
  458. package/lib/executor/fastlane.d.ts +0 -9
  459. package/lib/executor/fastlane.js +0 -41
  460. package/lib/executor/fastlane.js.map +0 -1
  461. package/lib/executor/filterOpsAndEStimateGas.d.ts +0 -29
  462. package/lib/executor/filterOpsAndEStimateGas.js +0 -225
  463. package/lib/executor/filterOpsAndEStimateGas.js.map +0 -1
  464. package/lib/executor/index.d.ts +0 -5
  465. package/lib/executor/index.js +0 -21
  466. package/lib/executor/index.js.map +0 -1
  467. package/lib/executor/senderManager/createMemorySenderManager.d.ts +0 -8
  468. package/lib/executor/senderManager/createMemorySenderManager.js +0 -45
  469. package/lib/executor/senderManager/createMemorySenderManager.js.map +0 -1
  470. package/lib/executor/senderManager/createRedisSenderManager.d.ts +0 -8
  471. package/lib/executor/senderManager/createRedisSenderManager.js +0 -85
  472. package/lib/executor/senderManager/createRedisSenderManager.js.map +0 -1
  473. package/lib/executor/senderManager/flushOnStartUp.d.ts +0 -9
  474. package/lib/executor/senderManager/flushOnStartUp.js +0 -37
  475. package/lib/executor/senderManager/flushOnStartUp.js.map +0 -1
  476. package/lib/executor/senderManager/index.d.ts +0 -15
  477. package/lib/executor/senderManager/index.js +0 -25
  478. package/lib/executor/senderManager/index.js.map +0 -1
  479. package/lib/executor/senderManager/validateAndRefill.d.ts +0 -11
  480. package/lib/executor/senderManager/validateAndRefill.js +0 -115
  481. package/lib/executor/senderManager/validateAndRefill.js.map +0 -1
  482. package/lib/executor/utilityWalletMonitor.d.ts +0 -19
  483. package/lib/executor/utilityWalletMonitor.js +0 -42
  484. package/lib/executor/utilityWalletMonitor.js.map +0 -1
  485. package/lib/executor/utils.d.ts +0 -31
  486. package/lib/executor/utils.js +0 -170
  487. package/lib/executor/utils.js.map +0 -1
  488. package/lib/handlers/arbitrumGasPriceManager.d.ts +0 -14
  489. package/lib/handlers/arbitrumGasPriceManager.js +0 -39
  490. package/lib/handlers/arbitrumGasPriceManager.js.map +0 -1
  491. package/lib/handlers/eventManager.d.ts +0 -28
  492. package/lib/handlers/eventManager.js +0 -207
  493. package/lib/handlers/eventManager.js.map +0 -1
  494. package/lib/handlers/gasPriceManager.d.ts +0 -36
  495. package/lib/handlers/gasPriceManager.js +0 -423
  496. package/lib/handlers/gasPriceManager.js.map +0 -1
  497. package/lib/handlers/index.d.ts +0 -3
  498. package/lib/handlers/index.js +0 -19
  499. package/lib/handlers/index.js.map +0 -1
  500. package/lib/handlers/mantleGasPriceManager.d.ts +0 -23
  501. package/lib/handlers/mantleGasPriceManager.js +0 -44
  502. package/lib/handlers/mantleGasPriceManager.js.map +0 -1
  503. package/lib/handlers/optimismManager.d.ts +0 -10
  504. package/lib/handlers/optimismManager.js +0 -21
  505. package/lib/handlers/optimismManager.js.map +0 -1
  506. package/lib/index.d.ts +0 -2
  507. package/lib/index.js +0 -4
  508. package/lib/index.js.map +0 -1
  509. package/lib/mempool/index.d.ts +0 -4
  510. package/lib/mempool/index.js +0 -20
  511. package/lib/mempool/index.js.map +0 -1
  512. package/lib/mempool/mempool.d.ts +0 -191
  513. package/lib/mempool/mempool.js +0 -498
  514. package/lib/mempool/mempool.js.map +0 -1
  515. package/lib/mempool/monitoring.d.ts +0 -14
  516. package/lib/mempool/monitoring.js +0 -101
  517. package/lib/mempool/monitoring.js.map +0 -1
  518. package/lib/mempool/reputationManager.d.ts +0 -121
  519. package/lib/mempool/reputationManager.js +0 -472
  520. package/lib/mempool/reputationManager.js.map +0 -1
  521. package/lib/rpc/createMethodHandler.d.ts +0 -31
  522. package/lib/rpc/createMethodHandler.js +0 -34
  523. package/lib/rpc/createMethodHandler.js.map +0 -1
  524. package/lib/rpc/estimation/gasEstimationHandler.d.ts +0 -30
  525. package/lib/rpc/estimation/gasEstimationHandler.js +0 -50
  526. package/lib/rpc/estimation/gasEstimationHandler.js.map +0 -1
  527. package/lib/rpc/estimation/gasEstimationsV06.d.ts +0 -19
  528. package/lib/rpc/estimation/gasEstimationsV06.js +0 -148
  529. package/lib/rpc/estimation/gasEstimationsV06.js.map +0 -1
  530. package/lib/rpc/estimation/gasEstimationsV07.d.ts +0 -101
  531. package/lib/rpc/estimation/gasEstimationsV07.js +0 -727
  532. package/lib/rpc/estimation/gasEstimationsV07.js.map +0 -1
  533. package/lib/rpc/estimation/types.d.ts +0 -120
  534. package/lib/rpc/estimation/types.js +0 -125
  535. package/lib/rpc/estimation/types.js.map +0 -1
  536. package/lib/rpc/index.d.ts +0 -4
  537. package/lib/rpc/index.js +0 -20
  538. package/lib/rpc/index.js.map +0 -1
  539. package/lib/rpc/methods/debug_bundler_clearReputation.d.ts +0 -22
  540. package/lib/rpc/methods/debug_bundler_clearReputation.js +0 -15
  541. package/lib/rpc/methods/debug_bundler_clearReputation.js.map +0 -1
  542. package/lib/rpc/methods/debug_bundler_clearState.d.ts +0 -22
  543. package/lib/rpc/methods/debug_bundler_clearState.js +0 -16
  544. package/lib/rpc/methods/debug_bundler_clearState.js.map +0 -1
  545. package/lib/rpc/methods/debug_bundler_dumpMempool.d.ts +0 -973
  546. package/lib/rpc/methods/debug_bundler_dumpMempool.js +0 -16
  547. package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +0 -1
  548. package/lib/rpc/methods/debug_bundler_dumpReputation.d.ts +0 -57
  549. package/lib/rpc/methods/debug_bundler_dumpReputation.js +0 -16
  550. package/lib/rpc/methods/debug_bundler_dumpReputation.js.map +0 -1
  551. package/lib/rpc/methods/debug_bundler_getStakeStatus.d.ts +0 -79
  552. package/lib/rpc/methods/debug_bundler_getStakeStatus.js +0 -25
  553. package/lib/rpc/methods/debug_bundler_getStakeStatus.js.map +0 -1
  554. package/lib/rpc/methods/debug_bundler_sendBundleNow.d.ts +0 -22
  555. package/lib/rpc/methods/debug_bundler_sendBundleNow.js +0 -15
  556. package/lib/rpc/methods/debug_bundler_sendBundleNow.js.map +0 -1
  557. package/lib/rpc/methods/debug_bundler_setBundlingMode.d.ts +0 -22
  558. package/lib/rpc/methods/debug_bundler_setBundlingMode.js +0 -16
  559. package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +0 -1
  560. package/lib/rpc/methods/debug_bundler_setReputation.d.ts +0 -46
  561. package/lib/rpc/methods/debug_bundler_setReputation.js +0 -16
  562. package/lib/rpc/methods/debug_bundler_setReputation.js.map +0 -1
  563. package/lib/rpc/methods/eth_chainId.d.ts +0 -22
  564. package/lib/rpc/methods/eth_chainId.js +0 -13
  565. package/lib/rpc/methods/eth_chainId.js.map +0 -1
  566. package/lib/rpc/methods/eth_estimateUserOperationGas.js +0 -26
  567. package/lib/rpc/methods/eth_estimateUserOperationGas.js.map +0 -1
  568. package/lib/rpc/methods/eth_getUserOperationByHash.d.ts +0 -1775
  569. package/lib/rpc/methods/eth_getUserOperationByHash.js +0 -101
  570. package/lib/rpc/methods/eth_getUserOperationByHash.js.map +0 -1
  571. package/lib/rpc/methods/eth_getUserOperationReceipt.d.ts +0 -412
  572. package/lib/rpc/methods/eth_getUserOperationReceipt.js +0 -14
  573. package/lib/rpc/methods/eth_getUserOperationReceipt.js.map +0 -1
  574. package/lib/rpc/methods/eth_sendUserOperation.d.ts +0 -878
  575. package/lib/rpc/methods/eth_sendUserOperation.js +0 -44
  576. package/lib/rpc/methods/eth_sendUserOperation.js.map +0 -1
  577. package/lib/rpc/methods/eth_supportedEntryPoints.d.ts +0 -22
  578. package/lib/rpc/methods/eth_supportedEntryPoints.js +0 -13
  579. package/lib/rpc/methods/eth_supportedEntryPoints.js.map +0 -1
  580. package/lib/rpc/methods/index.d.ts +0 -3
  581. package/lib/rpc/methods/index.js +0 -44
  582. package/lib/rpc/methods/index.js.map +0 -1
  583. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.d.ts +0 -131
  584. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js +0 -33
  585. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js.map +0 -1
  586. package/lib/rpc/methods/pimlico_getUserOperationStatus.d.ts +0 -43
  587. package/lib/rpc/methods/pimlico_getUserOperationStatus.js +0 -14
  588. package/lib/rpc/methods/pimlico_getUserOperationStatus.js.map +0 -1
  589. package/lib/rpc/methods/pimlico_sendUserOperationNow.js +0 -53
  590. package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +0 -1
  591. package/lib/rpc/rpcHandler.d.ts +0 -75
  592. package/lib/rpc/rpcHandler.js +0 -408
  593. package/lib/rpc/rpcHandler.js.map +0 -1
  594. package/lib/rpc/server.d.ts +0 -26
  595. package/lib/rpc/server.js +0 -283
  596. package/lib/rpc/server.js.map +0 -1
  597. package/lib/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  598. package/lib/rpc/validation/BundlerCollectorTracerV06.js +0 -262
  599. package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  600. package/lib/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  601. package/lib/rpc/validation/BundlerCollectorTracerV07.js +0 -261
  602. package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  603. package/lib/rpc/validation/SafeValidator.d.ts +0 -52
  604. package/lib/rpc/validation/SafeValidator.js +0 -350
  605. package/lib/rpc/validation/SafeValidator.js.map +0 -1
  606. package/lib/rpc/validation/TracerResultParserV06.d.ts +0 -13
  607. package/lib/rpc/validation/TracerResultParserV06.js +0 -582
  608. package/lib/rpc/validation/TracerResultParserV06.js.map +0 -1
  609. package/lib/rpc/validation/TracerResultParserV07.d.ts +0 -33
  610. package/lib/rpc/validation/TracerResultParserV07.js +0 -599
  611. package/lib/rpc/validation/TracerResultParserV07.js.map +0 -1
  612. package/lib/rpc/validation/UnsafeValidator.d.ts +0 -98
  613. package/lib/rpc/validation/UnsafeValidator.js +0 -326
  614. package/lib/rpc/validation/UnsafeValidator.js.map +0 -1
  615. package/lib/rpc/validation/index.d.ts +0 -3
  616. package/lib/rpc/validation/index.js +0 -19
  617. package/lib/rpc/validation/index.js.map +0 -1
  618. package/lib/rpc/validation/tracer.d.ts +0 -125
  619. package/lib/rpc/validation/tracer.js +0 -112
  620. package/lib/rpc/validation/tracer.js.map +0 -1
  621. package/lib/store/createMemoryOutstandingStore.d.ts +0 -28
  622. package/lib/store/createMemoryOutstandingStore.js +0 -236
  623. package/lib/store/createMemoryOutstandingStore.js.map +0 -1
  624. package/lib/store/createMempoolStore.d.ts +0 -8
  625. package/lib/store/createMempoolStore.js +0 -199
  626. package/lib/store/createMempoolStore.js.map +0 -1
  627. package/lib/store/createRedisOutstandingStore.d.ts +0 -27
  628. package/lib/store/createRedisOutstandingStore.js +0 -349
  629. package/lib/store/createRedisOutstandingStore.js.map +0 -1
  630. package/lib/store/createRedisStore.d.ts +0 -9
  631. package/lib/store/createRedisStore.js +0 -138
  632. package/lib/store/createRedisStore.js.map +0 -1
  633. package/lib/store/createStore.d.ts +0 -6
  634. package/lib/store/createStore.js +0 -70
  635. package/lib/store/createStore.js.map +0 -1
  636. package/lib/store/index.d.ts +0 -81
  637. package/lib/store/index.js +0 -6
  638. package/lib/store/index.js.map +0 -1
  639. package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +0 -32
  640. package/lib/types/contracts/ArbitrumL1FeeAbi.js +0 -45
  641. package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +0 -1
  642. package/lib/types/contracts/CallEngine.d.ts +0 -28
  643. package/lib/types/contracts/CallEngine.js +0 -40
  644. package/lib/types/contracts/CallEngine.js.map +0 -1
  645. package/lib/types/contracts/CodeHashGetter.d.ts +0 -37
  646. package/lib/types/contracts/CodeHashGetter.js +0 -48
  647. package/lib/types/contracts/CodeHashGetter.js.map +0 -1
  648. package/lib/types/contracts/EntryPoint.d.ts +0 -1789
  649. package/lib/types/contracts/EntryPoint.js +0 -2307
  650. package/lib/types/contracts/EntryPoint.js.map +0 -1
  651. package/lib/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
  652. package/lib/types/contracts/EntryPointSimulationsV6.js +0 -51
  653. package/lib/types/contracts/EntryPointSimulationsV6.js.map +0 -1
  654. package/lib/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
  655. package/lib/types/contracts/EntryPointSimulationsV7.js +0 -2828
  656. package/lib/types/contracts/EntryPointSimulationsV7.js.map +0 -1
  657. package/lib/types/contracts/IAccountExecute.d.ts +0 -53
  658. package/lib/types/contracts/IAccountExecute.js +0 -71
  659. package/lib/types/contracts/IAccountExecute.js.map +0 -1
  660. package/lib/types/contracts/IPaymaster.d.ts +0 -3
  661. package/lib/types/contracts/IPaymaster.js +0 -120
  662. package/lib/types/contracts/IPaymaster.js.map +0 -1
  663. package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +0 -219
  664. package/lib/types/contracts/MantleBvmGasPriceOracle.js +0 -180
  665. package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +0 -1
  666. package/lib/types/contracts/OpL1FeeAbi.d.ts +0 -114
  667. package/lib/types/contracts/OpL1FeeAbi.js +0 -77
  668. package/lib/types/contracts/OpL1FeeAbi.js.map +0 -1
  669. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
  670. package/lib/types/contracts/PimlicoEntryPointSimulations.js +0 -41
  671. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  672. package/lib/types/contracts/SenderCreator.d.ts +0 -4
  673. package/lib/types/contracts/SenderCreator.js +0 -26
  674. package/lib/types/contracts/SenderCreator.js.map +0 -1
  675. package/lib/types/contracts/SimpleAccountFactory.d.ts +0 -57
  676. package/lib/types/contracts/SimpleAccountFactory.js +0 -79
  677. package/lib/types/contracts/SimpleAccountFactory.js.map +0 -1
  678. package/lib/types/contracts/TestOpcodesAccount.d.ts +0 -4
  679. package/lib/types/contracts/TestOpcodesAccount.js +0 -284
  680. package/lib/types/contracts/TestOpcodesAccount.js.map +0 -1
  681. package/lib/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  682. package/lib/types/contracts/TestOpcodesAccountFactory.js +0 -26
  683. package/lib/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  684. package/lib/types/contracts/TestStorageAccount.d.ts +0 -4
  685. package/lib/types/contracts/TestStorageAccount.js +0 -316
  686. package/lib/types/contracts/TestStorageAccount.js.map +0 -1
  687. package/lib/types/contracts/index.d.ts +0 -17
  688. package/lib/types/contracts/index.js +0 -33
  689. package/lib/types/contracts/index.js.map +0 -1
  690. package/lib/types/gasPrice.d.ts +0 -110
  691. package/lib/types/gasPrice.js +0 -55
  692. package/lib/types/gasPrice.js.map +0 -1
  693. package/lib/types/index.d.ts +0 -11
  694. package/lib/types/index.js +0 -27
  695. package/lib/types/index.js.map +0 -1
  696. package/lib/types/interfaces.d.ts +0 -59
  697. package/lib/types/interfaces.js +0 -3
  698. package/lib/types/interfaces.js.map +0 -1
  699. package/lib/types/mempool.d.ts +0 -60
  700. package/lib/types/mempool.js +0 -11
  701. package/lib/types/mempool.js.map +0 -1
  702. package/lib/types/schemas.d.ts +0 -20779
  703. package/lib/types/schemas.js +0 -638
  704. package/lib/types/schemas.js.map +0 -1
  705. package/lib/types/utils.d.ts +0 -25
  706. package/lib/types/utils.js +0 -35
  707. package/lib/types/utils.js.map +0 -1
  708. package/lib/types/validation.d.ts +0 -14327
  709. package/lib/types/validation.js +0 -312
  710. package/lib/types/validation.js.map +0 -1
  711. package/lib/utils/bigInt.d.ts +0 -4
  712. package/lib/utils/bigInt.js +0 -19
  713. package/lib/utils/bigInt.js.map +0 -1
  714. package/lib/utils/eip7702.d.ts +0 -4
  715. package/lib/utils/eip7702.js +0 -21
  716. package/lib/utils/eip7702.js.map +0 -1
  717. package/lib/utils/fastify-rpc-decorators.d.ts +0 -19
  718. package/lib/utils/fastify-rpc-decorators.js +0 -23
  719. package/lib/utils/fastify-rpc-decorators.js.map +0 -1
  720. package/lib/utils/helpers.d.ts +0 -15
  721. package/lib/utils/helpers.js +0 -59
  722. package/lib/utils/helpers.js.map +0 -1
  723. package/lib/utils/index.d.ts +0 -8
  724. package/lib/utils/index.js +0 -23
  725. package/lib/utils/index.js.map +0 -1
  726. package/lib/utils/logger.d.ts +0 -6
  727. package/lib/utils/logger.js +0 -85
  728. package/lib/utils/logger.js.map +0 -1
  729. package/lib/utils/metrics.d.ts +0 -28
  730. package/lib/utils/metrics.js +0 -192
  731. package/lib/utils/metrics.js.map +0 -1
  732. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +0 -6
  733. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +0 -57
  734. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +0 -1
  735. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +0 -7
  736. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +0 -105
  737. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +0 -1
  738. package/lib/utils/minMaxQueue/index.d.ts +0 -12
  739. package/lib/utils/minMaxQueue/index.js +0 -16
  740. package/lib/utils/minMaxQueue/index.js.map +0 -1
  741. package/lib/utils/rpc-reply.d.ts +0 -16
  742. package/lib/utils/rpc-reply.js +0 -41
  743. package/lib/utils/rpc-reply.js.map +0 -1
  744. package/lib/utils/userop.d.ts +0 -138
  745. package/lib/utils/userop.js +0 -620
  746. package/lib/utils/userop.js.map +0 -1
  747. package/lib/utils/validation.d.ts +0 -76
  748. package/lib/utils/validation.js +0 -500
  749. package/lib/utils/validation.js.map +0 -1
@@ -1,35 +1,31 @@
1
- import { EntryPointV06Abi, EntryPointV07Abi, logSchema, receiptSchema } from "../types/index.js";
2
- import * as sentry from "@sentry/node";
3
- import { concat, decodeErrorResult, decodeEventLog, encodeAbiParameters, encodeEventTopics, getAddress, keccak256, pad, parseAbi, parseEventLogs, size, slice, toHex, zeroAddress } from "viem";
1
+ import { logSchema, receiptSchema } from "../types/index.js";
2
+ import { decodeEventLog, getAbiItem, getAddress, size, slice, toHex, zeroAddress } from "viem";
3
+ import { entryPoint07Abi, getUserOperationHash, toPackedUserOperation } from "viem/account-abstraction";
4
4
  import { z } from "zod";
5
- import { fromZodError } from "zod-validation-error";
6
- import { areAddressesEqual, getAuthorizationStateOverrides } from "./helpers.js";
7
- // Type predicate check if the UserOperation is V06.
5
+ import { getEip7702AuthAddress } from "./eip7702.js";
6
+ // Type predicate check if the UserOperation is v0.6
8
7
  export function isVersion06(operation) {
9
8
  return "initCode" in operation && "paymasterAndData" in operation;
10
9
  }
11
- // Type predicate to check if the UserOperation is V07.
10
+ // Type predicate to check if the UserOperation is v0.7
12
11
  export function isVersion07(operation) {
13
12
  return "factory" in operation && "paymaster" in operation;
14
13
  }
15
- // Type predicate to check if the UserOperation is V07.
14
+ // Type predicate to check if the UserOperation is v0.8
16
15
  export function isVersion08(operation, entryPointAddress) {
17
- return entryPointAddress.startsWith("0x4337");
16
+ return entryPointAddress.startsWith("0x433708");
18
17
  }
19
- export function getInitCode(unpackedUserOperation) {
20
- return unpackedUserOperation.factory
21
- ? concat([
22
- unpackedUserOperation.factory === "0x7702"
23
- ? pad(unpackedUserOperation.factory, {
24
- dir: "right",
25
- size: 20
26
- })
27
- : unpackedUserOperation.factory,
28
- unpackedUserOperation.factoryData || "0x"
29
- ])
30
- : "0x";
18
+ // Type predicate to check if the UserOperation is v0.9
19
+ export function isVersion09(operation, entryPointAddress) {
20
+ return entryPointAddress.startsWith("0x433709");
31
21
  }
32
- export function unPackInitCode(initCode) {
22
+ // Check if a userOperation is a deployment operation
23
+ export function isDeployment(userOp) {
24
+ const isDeployment06 = isVersion06(userOp) && !!userOp.initCode && userOp.initCode !== "0x";
25
+ const isDeployment07 = isVersion07(userOp) && !!userOp.factory && userOp.factory !== "0x";
26
+ return isDeployment06 || isDeployment07;
27
+ }
28
+ function unPackInitCode(initCode) {
33
29
  if (initCode === "0x") {
34
30
  return {
35
31
  factory: null,
@@ -41,49 +37,19 @@ export function unPackInitCode(initCode) {
41
37
  factoryData: size(initCode) > 20 ? slice(initCode, 20) : null
42
38
  };
43
39
  }
44
- export function getAccountGasLimits(unpackedUserOperation) {
45
- return concat([
46
- pad(toHex(unpackedUserOperation.verificationGasLimit), {
47
- size: 16
48
- }),
49
- pad(toHex(unpackedUserOperation.callGasLimit), { size: 16 })
50
- ]);
51
- }
52
- export function unpackAccountGasLimits(accountGasLimits) {
40
+ function unpackAccountGasLimits(accountGasLimits) {
53
41
  return {
54
42
  verificationGasLimit: BigInt(slice(accountGasLimits, 0, 16)),
55
43
  callGasLimit: BigInt(slice(accountGasLimits, 16))
56
44
  };
57
45
  }
58
- export function getGasLimits(unpackedUserOperation) {
59
- return concat([
60
- pad(toHex(unpackedUserOperation.maxPriorityFeePerGas), {
61
- size: 16
62
- }),
63
- pad(toHex(unpackedUserOperation.maxFeePerGas), { size: 16 })
64
- ]);
65
- }
66
- export function unpackGasLimits(gasLimits) {
46
+ function unpackGasLimits(gasLimits) {
67
47
  return {
68
48
  maxPriorityFeePerGas: BigInt(slice(gasLimits, 0, 16)),
69
49
  maxFeePerGas: BigInt(slice(gasLimits, 16))
70
50
  };
71
51
  }
72
- export function getPaymasterAndData(unpackedUserOperation) {
73
- return unpackedUserOperation.paymaster
74
- ? concat([
75
- unpackedUserOperation.paymaster,
76
- pad(toHex(unpackedUserOperation.paymasterVerificationGasLimit || 0n), {
77
- size: 16
78
- }),
79
- pad(toHex(unpackedUserOperation.paymasterPostOpGasLimit || 0n), {
80
- size: 16
81
- }),
82
- unpackedUserOperation.paymasterData || "0x"
83
- ])
84
- : "0x";
85
- }
86
- export function unpackPaymasterAndData(paymasterAndData) {
52
+ function unpackPaymasterAndData(paymasterAndData) {
87
53
  if (paymasterAndData === "0x") {
88
54
  return {
89
55
  paymaster: null,
@@ -100,18 +66,28 @@ export function unpackPaymasterAndData(paymasterAndData) {
100
66
  paymasterData: paymasterAndDataSize > 52 ? slice(paymasterAndData, 52) : null
101
67
  };
102
68
  }
103
- export function toPackedUserOperation(unpackedUserOperation) {
104
- return {
105
- sender: unpackedUserOperation.sender,
106
- nonce: unpackedUserOperation.nonce,
107
- initCode: getInitCode(unpackedUserOperation),
108
- callData: unpackedUserOperation.callData,
109
- accountGasLimits: getAccountGasLimits(unpackedUserOperation),
110
- preVerificationGas: unpackedUserOperation.preVerificationGas,
111
- gasFees: getGasLimits(unpackedUserOperation),
112
- paymasterAndData: getPaymasterAndData(unpackedUserOperation),
113
- signature: unpackedUserOperation.signature
69
+ // Convert Alto's UserOperation07/08/09 (with null) to viem's format (with undefined)
70
+ export function toViemUserOp(userOp) {
71
+ const base = {
72
+ ...userOp,
73
+ paymaster: userOp.paymaster ?? undefined,
74
+ paymasterData: userOp.paymasterData ?? undefined,
75
+ paymasterVerificationGasLimit: userOp.paymasterVerificationGasLimit ?? undefined,
76
+ paymasterPostOpGasLimit: userOp.paymasterPostOpGasLimit ?? undefined,
77
+ factory: userOp.factory ?? undefined,
78
+ factoryData: userOp.factoryData ?? undefined
114
79
  };
80
+ // UserOperation09 has paymasterSignature field
81
+ if ("paymasterSignature" in userOp) {
82
+ return {
83
+ ...base,
84
+ paymasterSignature: userOp.paymasterSignature ?? undefined
85
+ };
86
+ }
87
+ return base;
88
+ }
89
+ export function toPackedUserOp(unpacked) {
90
+ return toPackedUserOperation(toViemUserOp(unpacked));
115
91
  }
116
92
  // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
117
93
  export function deepHexlify(obj) {
@@ -146,425 +122,217 @@ export function getAddressFromInitCodeOrPaymasterAndData(data) {
146
122
  }
147
123
  return null;
148
124
  }
149
- // Return the status of the bundling transaction.
150
- export const getBundleStatus = async ({ transactionHash, publicClient, bundle, logger }) => {
151
- try {
152
- const { entryPoint, version } = bundle;
153
- const isVersion06 = version === "0.6";
154
- const receipt = await publicClient.getTransactionReceipt({
155
- hash: transactionHash
156
- });
157
- const blockNumber = receipt.blockNumber;
158
- if (receipt.status === "reverted") {
159
- const bundlingStatus = {
160
- status: "reverted",
161
- isAA95: false
162
- };
163
- if ("error" in receipt) {
164
- try {
165
- const match = receipt.error.match(/0x([a-fA-F0-9]+)?/);
166
- if (match) {
167
- const revertReason = match[0];
168
- const decoded = decodeErrorResult({
169
- data: revertReason,
170
- abi: parseAbi([
171
- "error FailedOp(uint256 opIndex, string reason)"
172
- ])
173
- });
174
- if (decoded.args[1] === "AA95 out of gas") {
175
- bundlingStatus.isAA95 = true;
176
- }
177
- }
178
- }
179
- catch (e) {
180
- logger.error("Failed to decode userOperation revert reason due to ", e);
181
- }
125
+ export function getUserOpHash({ userOp, entryPointAddress, chainId }) {
126
+ if (isVersion09(userOp, entryPointAddress)) {
127
+ const authorization = userOp.eip7702Auth
128
+ ? {
129
+ address: getEip7702AuthAddress(userOp.eip7702Auth),
130
+ chainId: userOp.eip7702Auth.chainId,
131
+ nonce: userOp.eip7702Auth.nonce,
132
+ r: userOp.eip7702Auth.r,
133
+ s: userOp.eip7702Auth.s,
134
+ yParity: userOp.eip7702Auth.yParity,
135
+ v: userOp.eip7702Auth.v
182
136
  }
183
- return { bundlingStatus, blockNumber };
184
- }
185
- const userOperationDetails = receipt.logs
186
- .filter((log) => areAddressesEqual(log.address, entryPoint))
187
- .reduce((result, log) => {
188
- try {
189
- const { data, topics } = log;
190
- const { eventName, args } = decodeEventLog({
191
- abi: isVersion06 ? EntryPointV06Abi : EntryPointV07Abi,
192
- data,
193
- topics
194
- });
195
- if (eventName === "AccountDeployed" ||
196
- eventName === "UserOperationRevertReason" ||
197
- eventName === "UserOperationEvent") {
198
- const opHash = args.userOpHash;
199
- // create result entry if doesn't exist
200
- result[opHash] ??= {
201
- accountDeployed: false,
202
- status: "succesful"
203
- };
204
- switch (eventName) {
205
- case "AccountDeployed": {
206
- result[opHash].accountDeployed = true;
207
- break;
208
- }
209
- case "UserOperationRevertReason": {
210
- result[opHash].revertReason = args.revertReason;
211
- break;
212
- }
213
- case "UserOperationEvent": {
214
- const status = args.success
215
- ? "succesful"
216
- : "calldata_phase_reverted";
217
- result[opHash].status = status;
218
- break;
219
- }
220
- }
221
- }
222
- }
223
- catch (e) {
224
- sentry.captureException(e);
137
+ : undefined;
138
+ return getUserOperationHash({
139
+ chainId,
140
+ entryPointAddress,
141
+ entryPointVersion: "0.9",
142
+ userOperation: {
143
+ ...toViemUserOp(userOp),
144
+ authorization
225
145
  }
226
- return result;
227
- }, {});
228
- return {
229
- bundlingStatus: {
230
- status: "included",
231
- userOperationDetails
232
- },
233
- blockNumber
234
- };
235
- }
236
- catch {
237
- return {
238
- bundlingStatus: {
239
- status: "not_found"
240
- },
241
- blockNumber: undefined
242
- };
146
+ });
243
147
  }
244
- };
245
- export const getUserOperationHashV06 = ({ userOperation, entryPointAddress, chainId }) => {
246
- const hash = keccak256(encodeAbiParameters([
247
- {
248
- name: "sender",
249
- type: "address"
250
- },
251
- {
252
- name: "nonce",
253
- type: "uint256"
254
- },
255
- {
256
- name: "initCodeHash",
257
- type: "bytes32"
258
- },
259
- {
260
- name: "callDataHash",
261
- type: "bytes32"
262
- },
263
- {
264
- name: "callGasLimit",
265
- type: "uint256"
266
- },
267
- {
268
- name: "verificationGasLimit",
269
- type: "uint256"
270
- },
271
- {
272
- name: "preVerificationGas",
273
- type: "uint256"
274
- },
275
- {
276
- name: "maxFeePerGas",
277
- type: "uint256"
278
- },
279
- {
280
- name: "maxPriorityFeePerGas",
281
- type: "uint256"
282
- },
283
- {
284
- name: "paymasterAndDataHash",
285
- type: "bytes32"
286
- }
287
- ], [
288
- userOperation.sender,
289
- userOperation.nonce,
290
- keccak256(userOperation.initCode),
291
- keccak256(userOperation.callData),
292
- userOperation.callGasLimit,
293
- userOperation.verificationGasLimit,
294
- userOperation.preVerificationGas,
295
- userOperation.maxFeePerGas,
296
- userOperation.maxPriorityFeePerGas,
297
- keccak256(userOperation.paymasterAndData)
298
- ]));
299
- return keccak256(encodeAbiParameters([
300
- {
301
- name: "userOpHash",
302
- type: "bytes32"
303
- },
304
- {
305
- name: "entryPointAddress",
306
- type: "address"
307
- },
308
- {
309
- name: "chainId",
310
- type: "uint256"
311
- }
312
- ], [hash, entryPointAddress, BigInt(chainId)]));
313
- };
314
- export const getUserOperationHashV07 = ({ userOperation, entryPointAddress, chainId }) => {
315
- const hash = keccak256(encodeAbiParameters([
316
- {
317
- name: "sender",
318
- type: "address"
319
- },
320
- {
321
- name: "nonce",
322
- type: "uint256"
323
- },
324
- {
325
- name: "initCodeHash",
326
- type: "bytes32"
327
- },
328
- {
329
- name: "callDataHash",
330
- type: "bytes32"
331
- },
332
- {
333
- name: "accountGasLimits",
334
- type: "bytes32"
335
- },
336
- {
337
- name: "preVerificationGas",
338
- type: "uint256"
339
- },
340
- {
341
- name: "gasFees",
342
- type: "bytes32"
343
- },
344
- {
345
- name: "paymasterAndDataHash",
346
- type: "bytes32"
347
- }
348
- ], [
349
- userOperation.sender,
350
- userOperation.nonce,
351
- keccak256(userOperation.initCode),
352
- keccak256(userOperation.callData),
353
- userOperation.accountGasLimits,
354
- userOperation.preVerificationGas,
355
- userOperation.gasFees,
356
- keccak256(userOperation.paymasterAndData)
357
- ]));
358
- return keccak256(encodeAbiParameters([
359
- {
360
- name: "userOpHash",
361
- type: "bytes32"
362
- },
363
- {
364
- name: "entryPointAddress",
365
- type: "address"
366
- },
367
- {
368
- name: "chainId",
369
- type: "uint256"
370
- }
371
- ], [hash, entryPointAddress, BigInt(chainId)]));
372
- };
373
- export const getUserOperationHashV08 = async ({ userOperation, entryPointAddress, publicClient }) => {
374
- const packedUserOp = toPackedUserOperation(userOperation);
375
- // : concat(["0xef0100", code ?? "0x"])
376
- const stateOverrides = getAuthorizationStateOverrides({
377
- userOperations: [userOperation]
378
- });
379
- const hash = await publicClient.readContract({
380
- address: entryPointAddress,
381
- abi: [
382
- {
383
- inputs: [
384
- {
385
- components: [
386
- { name: "sender", type: "address" },
387
- { name: "nonce", type: "uint256" },
388
- { name: "initCode", type: "bytes" },
389
- { name: "callData", type: "bytes" },
390
- { name: "accountGasLimits", type: "bytes32" },
391
- { name: "preVerificationGas", type: "uint256" },
392
- { name: "gasFees", type: "bytes32" },
393
- { name: "paymasterAndData", type: "bytes" },
394
- { name: "signature", type: "bytes" }
395
- ],
396
- name: "userOp",
397
- type: "tuple"
398
- }
399
- ],
400
- name: "getUserOpHash",
401
- outputs: [{ name: "", type: "bytes32" }],
402
- stateMutability: "view",
403
- type: "function"
148
+ if (isVersion08(userOp, entryPointAddress)) {
149
+ const authorization = userOp.eip7702Auth
150
+ ? {
151
+ address: getEip7702AuthAddress(userOp.eip7702Auth),
152
+ chainId: userOp.eip7702Auth.chainId,
153
+ nonce: userOp.eip7702Auth.nonce,
154
+ r: userOp.eip7702Auth.r,
155
+ s: userOp.eip7702Auth.s,
156
+ yParity: userOp.eip7702Auth.yParity,
157
+ v: userOp.eip7702Auth.v
404
158
  }
405
- ],
406
- functionName: "getUserOpHash",
407
- args: [packedUserOp],
408
- stateOverride: [
409
- ...Object.keys(stateOverrides).map((address) => ({
410
- address: address,
411
- code: stateOverrides[address]?.code ?? "0x"
412
- }))
413
- ]
414
- });
415
- return hash;
416
- };
417
- export const getUserOperationHash = ({ userOperation, entryPointAddress, chainId, publicClient }) => {
418
- if (isVersion06(userOperation)) {
419
- return getUserOperationHashV06({
420
- userOperation,
159
+ : undefined;
160
+ return getUserOperationHash({
161
+ chainId,
421
162
  entryPointAddress,
422
- chainId
163
+ entryPointVersion: "0.8",
164
+ userOperation: {
165
+ ...toViemUserOp(userOp),
166
+ authorization
167
+ }
423
168
  });
424
169
  }
425
- if (isVersion08(userOperation, entryPointAddress)) {
426
- return getUserOperationHashV08({
427
- userOperation,
428
- entryPointAddress,
170
+ if (isVersion07(userOp)) {
171
+ return getUserOperationHash({
429
172
  chainId,
430
- publicClient
173
+ entryPointAddress,
174
+ entryPointVersion: "0.7",
175
+ userOperation: toViemUserOp(userOp)
431
176
  });
432
177
  }
433
- return getUserOperationHashV07({
434
- userOperation: toPackedUserOperation(userOperation),
178
+ return getUserOperationHash({
179
+ chainId,
435
180
  entryPointAddress,
436
- chainId
181
+ entryPointVersion: "0.6",
182
+ userOperation: userOp
437
183
  });
438
- };
184
+ }
439
185
  export const getNonceKeyAndSequence = (nonce) => {
440
186
  const nonceKey = nonce >> 64n; // first 192 bits of nonce
441
187
  const nonceSequence = nonce & 0xffffffffffffffffn; // last 64 bits of nonce
442
188
  return [nonceKey, nonceSequence];
443
189
  };
444
- export const encodeNonce = ({ nonceKey, nonceSequence }) => {
445
- return (nonceKey << 64n) | nonceSequence;
446
- };
447
- export function toUnpackedUserOperation(packedUserOperation) {
448
- const { factory, factoryData } = unPackInitCode(packedUserOperation.initCode);
449
- const { callGasLimit, verificationGasLimit } = unpackAccountGasLimits(packedUserOperation.accountGasLimits);
450
- const { maxFeePerGas, maxPriorityFeePerGas } = unpackGasLimits(packedUserOperation.gasFees);
451
- const { paymaster, paymasterVerificationGasLimit, paymasterPostOpGasLimit, paymasterData } = unpackPaymasterAndData(packedUserOperation.paymasterAndData);
190
+ // Check if a userOperation has a paymaster
191
+ export function hasPaymaster(userOp) {
192
+ if (isVersion06(userOp)) {
193
+ return !!userOp.paymasterAndData && userOp.paymasterAndData !== "0x";
194
+ }
195
+ return !!userOp.paymaster && userOp.paymaster !== "0x";
196
+ }
197
+ export function calculateRequiredPrefund(userOp) {
198
+ if (isVersion06(userOp)) {
199
+ const mul = hasPaymaster(userOp) ? 3n : 1n;
200
+ const requiredGas = userOp.callGasLimit +
201
+ userOp.verificationGasLimit * mul +
202
+ userOp.preVerificationGas;
203
+ return requiredGas * userOp.maxFeePerGas;
204
+ }
205
+ // v0.7/v0.8 logic: sum all gas limits directly
206
+ const paymasterVerificationGasLimit = userOp.paymasterVerificationGasLimit ?? 0n;
207
+ const paymasterPostOpGasLimit = userOp.paymasterPostOpGasLimit ?? 0n;
208
+ const requiredGas = userOp.verificationGasLimit +
209
+ userOp.callGasLimit +
210
+ paymasterVerificationGasLimit +
211
+ paymasterPostOpGasLimit +
212
+ userOp.preVerificationGas;
213
+ return requiredGas * userOp.maxFeePerGas;
214
+ }
215
+ export function toUnpackedUserOp(packedUserOp) {
216
+ const { factory, factoryData } = unPackInitCode(packedUserOp.initCode);
217
+ const { callGasLimit, verificationGasLimit } = unpackAccountGasLimits(packedUserOp.accountGasLimits);
218
+ const { maxFeePerGas, maxPriorityFeePerGas } = unpackGasLimits(packedUserOp.gasFees);
219
+ const { paymaster, paymasterVerificationGasLimit, paymasterPostOpGasLimit, paymasterData } = unpackPaymasterAndData(packedUserOp.paymasterAndData);
452
220
  return {
453
- sender: packedUserOperation.sender,
454
- nonce: packedUserOperation.nonce,
221
+ sender: packedUserOp.sender,
222
+ nonce: packedUserOp.nonce,
455
223
  factory: factory,
456
224
  factoryData: factoryData,
457
- callData: packedUserOperation.callData,
225
+ callData: packedUserOp.callData,
458
226
  callGasLimit: callGasLimit,
459
227
  verificationGasLimit: verificationGasLimit,
460
- preVerificationGas: packedUserOperation.preVerificationGas,
228
+ preVerificationGas: packedUserOp.preVerificationGas,
461
229
  maxFeePerGas: maxFeePerGas,
462
230
  maxPriorityFeePerGas: maxPriorityFeePerGas,
463
231
  paymaster: paymaster,
464
232
  paymasterVerificationGasLimit: paymasterVerificationGasLimit,
465
233
  paymasterPostOpGasLimit: paymasterPostOpGasLimit,
466
234
  paymasterData: paymasterData,
467
- signature: packedUserOperation.signature
235
+ signature: packedUserOp.signature
468
236
  };
469
237
  }
470
- export const getRequiredPrefund = (userOperation) => {
471
- if (isVersion06(userOperation)) {
472
- const op = userOperation;
473
- const multiplier = (op.paymasterAndData?.length ?? 0) > 2 ? BigInt(3) : BigInt(1);
474
- const requiredGas = op.callGasLimit +
475
- op.verificationGasLimit * multiplier +
476
- op.preVerificationGas;
477
- return BigInt(requiredGas) * BigInt(op.maxFeePerGas);
478
- }
479
- const op = userOperation;
480
- const requiredGas = op.verificationGasLimit +
481
- op.callGasLimit +
482
- (op.paymasterVerificationGasLimit || 0n) +
483
- (op.paymasterPostOpGasLimit || 0n) +
484
- op.preVerificationGas;
485
- return requiredGas * op.maxFeePerGas;
486
- };
487
- export function parseUserOperationReceipt(userOpHash, receipt) {
488
- const userOperationRevertReasonAbi = parseAbi([
489
- "event UserOperationRevertReason(bytes32 indexed userOpHash, address indexed sender, uint256 nonce, bytes revertReason)"
490
- ]);
491
- const userOperationEventTopic = encodeEventTopics({
492
- abi: EntryPointV06Abi,
493
- eventName: "UserOperationEvent"
494
- });
495
- const userOperationRevertReasonTopicEvent = encodeEventTopics({
496
- abi: userOperationRevertReasonAbi
497
- })[0];
238
+ export function parseUserOpReceipt(userOpHash, receipt) {
498
239
  let entryPoint = zeroAddress;
499
- let revertReason = undefined;
240
+ let revertReason;
241
+ let userOpEventArgs;
500
242
  let startIndex = -1;
501
- let endIndex = -1;
502
- receipt.logs.forEach((log, index) => {
503
- if (log?.topics[0] === userOperationEventTopic[0]) {
504
- // process UserOperationEvent
505
- if (log.topics[1] === userOpHash) {
506
- // it's our userOpHash. save as end of logs array
507
- endIndex = index;
508
- entryPoint = log.address;
509
- }
510
- else if (endIndex === -1) {
511
- // it's a different hash. remember it as beginning index, but only if we didn't find our end index yet.
243
+ let userOpEventIndex = -1;
244
+ // Find our UserOpEvent and determine the starting point for logs
245
+ for (let index = 0; index < receipt.logs.length; index++) {
246
+ const log = receipt.logs[index];
247
+ try {
248
+ const { eventName, args } = decodeEventLog({
249
+ abi: [
250
+ getAbiItem({
251
+ abi: entryPoint07Abi,
252
+ name: "UserOperationEvent"
253
+ }),
254
+ getAbiItem({
255
+ abi: entryPoint07Abi,
256
+ name: "UserOperationRevertReason"
257
+ }),
258
+ getAbiItem({
259
+ abi: entryPoint07Abi,
260
+ name: "BeforeExecution"
261
+ })
262
+ ],
263
+ data: log.data,
264
+ topics: log.topics
265
+ });
266
+ if (eventName === "BeforeExecution") {
267
+ // BeforeExecution is emitted once and before individually executing UserOperations.
512
268
  startIndex = index;
513
269
  }
514
- }
515
- if (log?.topics[0] === userOperationRevertReasonTopicEvent) {
516
- // process UserOperationRevertReason
517
- if (log.topics[1] === userOpHash) {
518
- // it's our userOpHash. capture revert reason.
519
- const decodedLog = decodeEventLog({
520
- abi: userOperationRevertReasonAbi,
521
- data: log.data,
522
- topics: log.topics
523
- });
524
- revertReason = decodedLog.args.revertReason;
270
+ if (eventName === "UserOperationRevertReason" &&
271
+ args.userOpHash === userOpHash) {
272
+ revertReason = args.revertReason;
273
+ }
274
+ if (eventName === "UserOperationEvent") {
275
+ if (args.userOpHash === userOpHash) {
276
+ userOpEventIndex = index;
277
+ entryPoint = log.address;
278
+ userOpEventArgs = args;
279
+ break;
280
+ }
281
+ // Update startIndex to this UserOpEvent for the next UserOp's logs
282
+ startIndex = index;
525
283
  }
526
284
  }
527
- });
528
- if (endIndex === -1) {
529
- throw new Error("fatal: no UserOperationEvent in logs");
285
+ catch { }
530
286
  }
531
- const filteredLogs = receipt.logs.slice(startIndex + 1, endIndex);
532
- const logsParsing = z.array(logSchema).safeParse(filteredLogs);
533
- if (!logsParsing.success) {
534
- const err = fromZodError(logsParsing.error);
535
- throw err;
287
+ if (userOpEventIndex === -1 || startIndex === -1 || !userOpEventArgs) {
288
+ throw new Error("fatal: no UserOpEvent in logs");
536
289
  }
537
- const receiptParsing = receiptSchema.safeParse({
290
+ // Get logs between the starting point and our UserOpEvent
291
+ const filteredLogs = receipt.logs.slice(startIndex + 1, userOpEventIndex);
292
+ const parsedLogs = z.array(logSchema).parse(filteredLogs);
293
+ const parsedReceipt = receiptSchema.parse({
538
294
  ...receipt,
539
295
  status: receipt.status === "success" ? 1 : 0
540
296
  });
541
- if (!receiptParsing.success) {
542
- const err = fromZodError(receiptParsing.error);
543
- throw err;
297
+ let paymaster = userOpEventArgs.paymaster;
298
+ if (paymaster === zeroAddress) {
299
+ paymaster = undefined;
544
300
  }
545
- const userOperationEvent = parseEventLogs({
546
- abi: EntryPointV06Abi,
547
- eventName: "UserOperationEvent",
548
- args: {
549
- userOpHash
550
- },
551
- logs: receipt.logs
552
- })[0];
553
- let paymaster = userOperationEvent.args.paymaster;
554
- paymaster = paymaster === zeroAddress ? undefined : paymaster;
555
- const userOperationReceipt = {
301
+ const userOpReceipt = {
556
302
  userOpHash,
557
303
  entryPoint,
558
- sender: userOperationEvent.args.sender,
559
- nonce: userOperationEvent.args.nonce,
560
304
  paymaster,
561
- actualGasUsed: userOperationEvent.args.actualGasUsed,
562
- actualGasCost: userOperationEvent.args.actualGasCost,
563
- success: userOperationEvent.args.success,
305
+ sender: userOpEventArgs.sender,
306
+ nonce: userOpEventArgs.nonce,
307
+ actualGasUsed: userOpEventArgs.actualGasUsed,
308
+ actualGasCost: userOpEventArgs.actualGasCost,
309
+ success: userOpEventArgs.success,
564
310
  reason: revertReason,
565
- logs: logsParsing.data,
566
- receipt: receiptParsing.data
311
+ logs: parsedLogs,
312
+ receipt: parsedReceipt
567
313
  };
568
- return userOperationReceipt;
314
+ return userOpReceipt;
569
315
  }
316
+ export const getViemEntryPointVersion = (userOp, entryPoint) => {
317
+ if (isVersion09(userOp, entryPoint)) {
318
+ return "0.9";
319
+ }
320
+ if (isVersion08(userOp, entryPoint)) {
321
+ return "0.8";
322
+ }
323
+ if (isVersion07(userOp)) {
324
+ return "0.7";
325
+ }
326
+ return "0.6";
327
+ };
328
+ export const getEntryPointSimulationsAddress = ({ version, config }) => {
329
+ switch (version) {
330
+ case "0.9":
331
+ return config.entrypointSimulationContractV9;
332
+ case "0.8":
333
+ return config.entrypointSimulationContractV8;
334
+ default:
335
+ return config.entrypointSimulationContractV7;
336
+ }
337
+ };
570
338
  //# sourceMappingURL=userop.js.map