@pimlico/alto 0.0.19 → 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 (337) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  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 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  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/{880955d5786bfdae.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  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 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  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 -1
  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 -1
  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 +13 -6
  80. package/esm/cli/alto.js.map +1 -1
  81. package/esm/cli/config/bundler.d.ts +190 -148
  82. package/esm/cli/config/bundler.js +72 -83
  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 +105 -68
  86. package/esm/cli/config/options.js.map +1 -1
  87. package/esm/cli/customTransport.d.ts +3 -3
  88. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  89. package/esm/cli/deploySimulationsContract.js +41 -5
  90. package/esm/cli/deploySimulationsContract.js.map +1 -1
  91. package/esm/cli/handler.js +48 -52
  92. package/esm/cli/handler.js.map +1 -1
  93. package/esm/cli/setupServer.js +46 -47
  94. package/esm/cli/setupServer.js.map +1 -1
  95. package/esm/cli/shutDown.d.ts +20 -0
  96. package/esm/cli/shutDown.js +260 -0
  97. package/esm/cli/shutDown.js.map +1 -0
  98. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  99. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  100. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  101. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  102. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  103. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  104. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  105. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  106. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  107. package/esm/createConfig.d.ts +9 -2
  108. package/esm/createConfig.js.map +1 -1
  109. package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +38 -32
  110. package/esm/executor/{userOpMonitor.js → bundleManager.js} +127 -99
  111. package/esm/executor/bundleManager.js.map +1 -0
  112. package/esm/executor/executor.d.ts +4 -3
  113. package/esm/executor/executor.js +33 -20
  114. package/esm/executor/executor.js.map +1 -1
  115. package/esm/executor/executorManager.d.ts +17 -15
  116. package/esm/executor/executorManager.js +130 -55
  117. package/esm/executor/executorManager.js.map +1 -1
  118. package/esm/executor/filterOpsAndEstimateGas.d.ts +17 -2
  119. package/esm/executor/filterOpsAndEstimateGas.js +100 -77
  120. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  121. package/esm/executor/index.d.ts +1 -0
  122. package/esm/executor/index.js +1 -0
  123. package/esm/executor/index.js.map +1 -1
  124. package/esm/executor/senderManager/createMemorySenderManager.js +13 -0
  125. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
  126. package/esm/executor/senderManager/createRedisSenderManager.d.ts +2 -1
  127. package/esm/executor/senderManager/createRedisSenderManager.js +3 -6
  128. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  129. package/esm/executor/senderManager/flushOnStartUp.js +4 -4
  130. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
  131. package/esm/executor/senderManager/index.d.ts +1 -0
  132. package/esm/executor/senderManager/index.js +6 -2
  133. package/esm/executor/senderManager/index.js.map +1 -1
  134. package/esm/executor/senderManager/validateAndRefill.js +2 -2
  135. package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
  136. package/esm/executor/utilityWalletMonitor.d.ts +4 -4
  137. package/esm/executor/utilityWalletMonitor.js +1 -1
  138. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  139. package/esm/executor/utils.d.ts +7 -2
  140. package/esm/executor/utils.js +57 -26
  141. package/esm/executor/utils.js.map +1 -1
  142. package/esm/handlers/arbitrumGasPriceManager.d.ts +3 -2
  143. package/esm/handlers/arbitrumGasPriceManager.js +6 -2
  144. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  145. package/esm/handlers/eventManager.d.ts +9 -9
  146. package/esm/handlers/eventManager.js +59 -60
  147. package/esm/handlers/eventManager.js.map +1 -1
  148. package/esm/handlers/gasPriceManager.d.ts +8 -9
  149. package/esm/handlers/gasPriceManager.js +68 -80
  150. package/esm/handlers/gasPriceManager.js.map +1 -1
  151. package/esm/handlers/mantleGasPriceManager.d.ts +4 -4
  152. package/esm/handlers/mantleGasPriceManager.js +4 -4
  153. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  154. package/esm/handlers/optimismManager.d.ts +1 -1
  155. package/esm/handlers/optimismManager.js +1 -1
  156. package/esm/handlers/optimismManager.js.map +1 -1
  157. package/esm/mempool/index.d.ts +1 -1
  158. package/esm/mempool/index.js +1 -1
  159. package/esm/mempool/index.js.map +1 -1
  160. package/esm/mempool/mempool.d.ts +57 -22
  161. package/esm/mempool/mempool.js +180 -134
  162. package/esm/mempool/mempool.js.map +1 -1
  163. package/esm/mempool/reputationManager.d.ts +14 -14
  164. package/esm/mempool/reputationManager.js +36 -39
  165. package/esm/mempool/reputationManager.js.map +1 -1
  166. package/esm/mempool/statusManager.d.ts +20 -0
  167. package/esm/mempool/statusManager.js +143 -0
  168. package/esm/mempool/statusManager.js.map +1 -0
  169. package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
  170. package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
  171. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
  172. package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
  173. package/esm/receiptCache/createRedisReceiptCache.js +56 -0
  174. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
  175. package/esm/receiptCache/index.d.ts +11 -0
  176. package/esm/receiptCache/index.js +21 -0
  177. package/esm/receiptCache/index.js.map +1 -0
  178. package/esm/rpc/createMethodHandler.js.map +1 -1
  179. package/esm/rpc/estimation/gasEstimationHandler.d.ts +2 -4
  180. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  181. package/esm/rpc/estimation/gasEstimations06.d.ts +6 -7
  182. package/esm/rpc/estimation/gasEstimations06.js +1 -5
  183. package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
  184. package/esm/rpc/estimation/gasEstimations07.d.ts +13 -41
  185. package/esm/rpc/estimation/gasEstimations07.js +27 -34
  186. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  187. package/esm/{utils/preVerificationGasCalulator.d.ts → rpc/estimation/preVerificationGasCalculator.d.ts} +20 -6
  188. package/esm/{utils/preVerificationGasCalulator.js → rpc/estimation/preVerificationGasCalculator.js} +95 -47
  189. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
  190. package/esm/rpc/estimation/types.d.ts +4 -2
  191. package/esm/rpc/estimation/utils.d.ts +10 -8
  192. package/esm/rpc/estimation/utils.js +54 -48
  193. package/esm/rpc/estimation/utils.js.map +1 -1
  194. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  195. package/esm/rpc/methods/debug_bundler_clearReputation.js +1 -1
  196. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  197. package/esm/rpc/methods/debug_bundler_clearState.js +1 -1
  198. package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
  199. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  200. package/esm/rpc/methods/debug_bundler_dumpReputation.js +1 -1
  201. package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
  202. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  203. package/esm/rpc/methods/eth_estimateUserOperationGas.js +50 -29
  204. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  205. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  206. package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
  207. package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
  208. package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
  209. package/esm/rpc/methods/eth_sendUserOperation.d.ts +305 -1
  210. package/esm/rpc/methods/eth_sendUserOperation.js +132 -36
  211. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  212. package/esm/rpc/methods/pimlico_getUserOperationStatus.js +1 -1
  213. package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
  214. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
  215. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +15 -27
  216. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  217. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  218. package/esm/rpc/methods/pimlico_simulateAssetChange.js +14 -19
  219. package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -1
  220. package/esm/rpc/rpcHandler.d.ts +21 -22
  221. package/esm/rpc/rpcHandler.js +15 -17
  222. package/esm/rpc/rpcHandler.js.map +1 -1
  223. package/esm/rpc/server.d.ts +5 -5
  224. package/esm/rpc/server.js +15 -11
  225. package/esm/rpc/server.js.map +1 -1
  226. package/esm/rpc/validation/BundlerCollectorTracerV06.js +1 -1
  227. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  228. package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
  229. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  230. package/esm/rpc/validation/SafeValidator.d.ts +13 -14
  231. package/esm/rpc/validation/SafeValidator.js +24 -24
  232. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  233. package/esm/rpc/validation/TracerResultParserV06.d.ts +2 -2
  234. package/esm/rpc/validation/TracerResultParserV06.js +11 -11
  235. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  236. package/esm/rpc/validation/TracerResultParserV07.d.ts +2 -2
  237. package/esm/rpc/validation/TracerResultParserV07.js +13 -13
  238. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  239. package/esm/rpc/validation/UnsafeValidator.d.ts +18 -14
  240. package/esm/rpc/validation/UnsafeValidator.js +71 -40
  241. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  242. package/esm/store/createMempoolStore.d.ts +1 -1
  243. package/esm/store/createMempoolStore.js +63 -139
  244. package/esm/store/createMempoolStore.js.map +1 -1
  245. package/esm/store/index.d.ts +4 -75
  246. package/esm/store/index.js +4 -1
  247. package/esm/store/index.js.map +1 -1
  248. package/esm/store/outstanding/index.d.ts +13 -0
  249. package/esm/store/outstanding/index.js +16 -0
  250. package/esm/store/outstanding/index.js.map +1 -0
  251. package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +14 -13
  252. package/esm/store/outstanding/memory.js +263 -0
  253. package/esm/store/outstanding/memory.js.map +1 -0
  254. package/esm/store/outstanding/redis.d.ts +11 -0
  255. package/esm/store/outstanding/redis.js +229 -0
  256. package/esm/store/outstanding/redis.js.map +1 -0
  257. package/esm/store/outstanding/types.d.ts +19 -0
  258. package/esm/store/outstanding/types.js +2 -0
  259. package/esm/store/outstanding/types.js.map +1 -0
  260. package/esm/store/processing/index.d.ts +11 -0
  261. package/esm/store/processing/index.js +17 -0
  262. package/esm/store/processing/index.js.map +1 -0
  263. package/esm/store/processing/memory.d.ts +16 -0
  264. package/esm/store/processing/memory.js +58 -0
  265. package/esm/store/processing/memory.js.map +1 -0
  266. package/esm/store/processing/redis.d.ts +23 -0
  267. package/esm/store/processing/redis.js +85 -0
  268. package/esm/store/processing/redis.js.map +1 -0
  269. package/esm/store/processing/types.d.ts +10 -0
  270. package/esm/store/processing/types.js +2 -0
  271. package/esm/store/processing/types.js.map +1 -0
  272. package/esm/store/types.d.ts +50 -0
  273. package/esm/store/types.js +2 -0
  274. package/esm/store/types.js.map +1 -0
  275. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  276. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  277. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  278. package/esm/types/gasPrice.js +0 -18
  279. package/esm/types/gasPrice.js.map +1 -1
  280. package/esm/types/interfaces.d.ts +15 -10
  281. package/esm/types/mempool.d.ts +3 -0
  282. package/esm/types/schemas.d.ts +13174 -4732
  283. package/esm/types/schemas.js +113 -25
  284. package/esm/types/schemas.js.map +1 -1
  285. package/esm/types/utils.d.ts +2 -5
  286. package/esm/types/utils.js +16 -18
  287. package/esm/types/utils.js.map +1 -1
  288. package/esm/types/validation.d.ts +7646 -6912
  289. package/esm/types/validation.js +122 -152
  290. package/esm/types/validation.js.map +1 -1
  291. package/esm/utils/eip7702.d.ts +2 -1
  292. package/esm/utils/eip7702.js +14 -8
  293. package/esm/utils/eip7702.js.map +1 -1
  294. package/esm/utils/entryPointOverrides.js +18 -4
  295. package/esm/utils/entryPointOverrides.js.map +1 -1
  296. package/esm/utils/helpers.d.ts +2 -1
  297. package/esm/utils/helpers.js +30 -11
  298. package/esm/utils/helpers.js.map +1 -1
  299. package/esm/utils/index.d.ts +0 -1
  300. package/esm/utils/index.js +0 -1
  301. package/esm/utils/index.js.map +1 -1
  302. package/esm/utils/metrics.d.ts +2 -1
  303. package/esm/utils/metrics.js +15 -8
  304. package/esm/utils/metrics.js.map +1 -1
  305. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +8 -9
  306. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
  307. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +24 -2
  308. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +85 -64
  309. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  310. package/esm/utils/minMaxQueue/index.d.ts +2 -2
  311. package/esm/utils/minMaxQueue/index.js +4 -3
  312. package/esm/utils/minMaxQueue/index.js.map +1 -1
  313. package/esm/utils/rpc-reply.d.ts +3 -3
  314. package/esm/utils/rpc-reply.js.map +1 -1
  315. package/esm/utils/toViemStateOverrides.js +7 -7
  316. package/esm/utils/toViemStateOverrides.js.map +1 -1
  317. package/esm/utils/userop.d.ts +87 -55
  318. package/esm/utils/userop.js +138 -248
  319. package/esm/utils/userop.js.map +1 -1
  320. package/package.json +4 -2
  321. package/contracts/build-info/7710b5a048396e70.json +0 -1
  322. package/esm/executor/userOpMonitor.js.map +0 -1
  323. package/esm/mempool/monitoring.d.ts +0 -15
  324. package/esm/mempool/monitoring.js +0 -118
  325. package/esm/mempool/monitoring.js.map +0 -1
  326. package/esm/store/createMemoryOutstandingStore.js +0 -240
  327. package/esm/store/createMemoryOutstandingStore.js.map +0 -1
  328. package/esm/store/createRedisOutstandingStore.d.ts +0 -27
  329. package/esm/store/createRedisOutstandingStore.js +0 -344
  330. package/esm/store/createRedisOutstandingStore.js.map +0 -1
  331. package/esm/store/createRedisStore.d.ts +0 -9
  332. package/esm/store/createRedisStore.js +0 -131
  333. package/esm/store/createRedisStore.js.map +0 -1
  334. package/esm/store/createStore.d.ts +0 -6
  335. package/esm/store/createStore.js +0 -66
  336. package/esm/store/createStore.js.map +0 -1
  337. package/esm/utils/preVerificationGasCalulator.js.map +0 -1
@@ -1,14 +1,12 @@
1
1
  import crypto from "node:crypto";
2
- import { MantleBvmGasPriceOracleAbi, OpL1FeeAbi } from "../types/index.js";
2
+ import { encodeHandleOpsCalldata, getBundleGasLimit } from "../../executor/index.js";
3
+ import { ArbitrumL1FeeAbi, MantleBvmGasPriceOracleAbi, OpL1FeeAbi } from "../../types/index.js";
4
+ import { isVersion06, isVersion07, maxBigInt, minBigInt, randomBigInt, scaleBigIntByPercent, toPackedUserOp, unscaleBigIntByPercent } from "../../utils/index.js";
3
5
  import { bytesToHex, concat, encodeAbiParameters, getContract, maxUint64, maxUint128, maxUint256, parseEther, serializeTransaction, size, slice, toBytes, toHex } from "viem";
4
- import { encodeHandleOpsCalldata } from "../executor/utils.js";
5
- import { ArbitrumL1FeeAbi } from "../types/contracts/ArbitrumL1FeeAbi.js";
6
- import { maxBigInt, minBigInt, randomBigInt, unscaleBigIntByPercent } from "./bigInt.js";
7
- import { isVersion06, isVersion07, toPackedUserOp } from "./userop.js";
8
6
  // Encodes a user operation into bytes for gas calculation
9
- export function encodeUserOp(userOp) {
10
- const p = fillUserOpWithDummyData(userOp);
11
- if (isVersion06(userOp)) {
7
+ function encodeUserOp(userOp) {
8
+ const filledUserOp = fillUserOpWithDummyData(userOp);
9
+ if (isVersion06(filledUserOp)) {
12
10
  return toBytes(encodeAbiParameters([
13
11
  {
14
12
  components: [
@@ -27,10 +25,10 @@ export function encodeUserOp(userOp) {
27
25
  name: "userOperation",
28
26
  type: "tuple"
29
27
  }
30
- ], [p]));
28
+ ], [filledUserOp]));
31
29
  }
32
- // For v0.7, we need to pack the user operation
33
- const packedOp = toPackedUserOp(p);
30
+ // For 0.7, 0.8, 0.9 we need to pack the user operation
31
+ const packedUserOp = toPackedUserOp(filledUserOp);
34
32
  return toBytes(encodeAbiParameters([
35
33
  {
36
34
  components: [
@@ -47,7 +45,7 @@ export function encodeUserOp(userOp) {
47
45
  name: "userOperation",
48
46
  type: "tuple"
49
47
  }
50
- ], [packedOp]));
48
+ ], [packedUserOp]));
51
49
  }
52
50
  const defaultOverHeads = {
53
51
  tokensPerNonzeroByte: 4n,
@@ -66,7 +64,7 @@ const defaultOverHeads = {
66
64
  expectedBundleSize: 1n,
67
65
  floorPerTokenGasCost: 10n
68
66
  };
69
- export function fillUserOpWithDummyData(userOp) {
67
+ function fillUserOpWithDummyData(userOp) {
70
68
  if (isVersion06(userOp)) {
71
69
  return {
72
70
  ...userOp,
@@ -227,8 +225,8 @@ export function getSerializedHandleOpsTx({ userOps, entryPoint, chainId, removeZ
227
225
  // Process operations based on configuration
228
226
  let processedOps = userOps;
229
227
  if (randomizeSignature) {
230
- processedOps = userOps.map((op) => {
231
- const sigLength = size(op.signature);
228
+ processedOps = userOps.map((userOp) => {
229
+ const sigLength = size(userOp.signature);
232
230
  let newSignature;
233
231
  const randomizeBytes = (length) => toHex(crypto.randomBytes(length).toString("hex"));
234
232
  if (sigLength < 65) {
@@ -237,19 +235,19 @@ export function getSerializedHandleOpsTx({ userOps, entryPoint, chainId, removeZ
237
235
  }
238
236
  else {
239
237
  // For longer signatures, only randomize the last 65 bytes
240
- const originalPart = slice(op.signature, 0, sigLength - 65);
238
+ const originalPart = slice(userOp.signature, 0, sigLength - 65);
241
239
  const randomPart = randomizeBytes(65);
242
240
  newSignature = concat([originalPart, randomPart]);
243
241
  }
244
242
  return {
245
- ...op,
243
+ ...userOp,
246
244
  signature: newSignature
247
245
  };
248
246
  });
249
247
  }
250
248
  // Apply removeZeros logic if needed
251
249
  const finalOps = removeZeros
252
- ? processedOps.map((op) => fillUserOpWithDummyData(op))
250
+ ? processedOps.map((userOp) => fillUserOpWithDummyData(userOp))
253
251
  : processedOps;
254
252
  const data = encodeHandleOpsCalldata({
255
253
  userOps: finalOps,
@@ -263,9 +261,33 @@ export function getSerializedHandleOpsTx({ userOps, entryPoint, chainId, removeZ
263
261
  };
264
262
  return serializeTxWithDefaults(txParams);
265
263
  }
266
- async function calcEtherlinkPvg(op, entryPoint, gasPriceManager, verify) {
264
+ // Shared utility for Arbitrum L1 gas estimation
265
+ export async function getArbitrumL1GasEstimate({ publicClient, userOps, entryPoint }) {
266
+ const precompileAddress = "0x00000000000000000000000000000000000000C8";
267
267
  const serializedTx = getSerializedHandleOpsTx({
268
- userOps: [op],
268
+ userOps,
269
+ entryPoint,
270
+ chainId: publicClient.chain?.id ?? 10,
271
+ removeZeros: false
272
+ });
273
+ const arbGasPriceOracle = getContract({
274
+ abi: ArbitrumL1FeeAbi,
275
+ address: precompileAddress,
276
+ client: {
277
+ public: publicClient
278
+ }
279
+ });
280
+ const { result } = await arbGasPriceOracle.simulate.gasEstimateL1Component([
281
+ entryPoint,
282
+ false,
283
+ serializedTx
284
+ ]);
285
+ const [gasForL1, l2BaseFee, l1BaseFeeEstimate] = result;
286
+ return { gasForL1, l2BaseFee, l1BaseFeeEstimate };
287
+ }
288
+ async function calcEtherlinkPvg(userOp, entryPoint, gasPriceManager, verify) {
289
+ const serializedTx = getSerializedHandleOpsTx({
290
+ userOps: [userOp],
269
291
  entryPoint,
270
292
  chainId: 128123 // Etherlink chain ID
271
293
  });
@@ -284,9 +306,9 @@ async function calcEtherlinkPvg(op, entryPoint, gasPriceManager, verify) {
284
306
  const inclusionFeeInGas = inclusionFee / maxFeePerGas;
285
307
  return inclusionFeeInGas;
286
308
  }
287
- async function calcMantlePvg(publicClient, op, entryPoint, gasPriceManager, verify) {
309
+ async function calcMantlePvg(publicClient, userOp, entryPoint, gasPriceManager, verify) {
288
310
  const serializedTx = getSerializedHandleOpsTx({
289
- userOps: [op],
311
+ userOps: [userOp],
290
312
  entryPoint,
291
313
  chainId: publicClient.chain.id
292
314
  });
@@ -344,9 +366,9 @@ async function calcMantlePvg(publicClient, op, entryPoint, gasPriceManager, veri
344
366
  const l2MaxFee = BigInt(maxFeePerGas);
345
367
  return l1RollupFee / l2MaxFee;
346
368
  }
347
- async function calcOptimismPvg(publicClient, op, entryPoint, gasPriceManager, validate) {
369
+ async function calcOptimismPvg(publicClient, userOp, entryPoint, gasPriceManager, validate) {
348
370
  const serializedTx = getSerializedHandleOpsTx({
349
- userOps: [op],
371
+ userOps: [userOp],
350
372
  entryPoint,
351
373
  chainId: publicClient.chain.id,
352
374
  removeZeros: false,
@@ -383,37 +405,63 @@ async function calcOptimismPvg(publicClient, op, entryPoint, gasPriceManager, va
383
405
  const l2price = minBigInt(l2MaxFee, l2PriorityFee);
384
406
  return l1Fee / l2price;
385
407
  }
386
- async function calcArbitrumPvg(publicClient, op, entryPoint, gasPriceManager, validate) {
387
- const precompileAddress = "0x00000000000000000000000000000000000000C8";
388
- const serializedTx = getSerializedHandleOpsTx({
389
- userOps: [op],
390
- entryPoint,
391
- chainId: publicClient.chain?.id ?? 10
392
- });
393
- const arbGasPriceOracle = getContract({
394
- abi: ArbitrumL1FeeAbi,
395
- address: precompileAddress,
396
- client: {
397
- public: publicClient
398
- }
408
+ async function calcArbitrumPvg(publicClient, userOp, entryPoint, gasPriceManager, validate) {
409
+ const { gasForL1, l2BaseFee, l1BaseFeeEstimate } = await getArbitrumL1GasEstimate({
410
+ publicClient,
411
+ userOps: [userOp],
412
+ entryPoint
399
413
  });
400
- const { result } = await arbGasPriceOracle.simulate.gasEstimateL1Component([
401
- entryPoint,
402
- false,
403
- serializedTx
404
- ]);
405
- let [gasForL1, l2BaseFee, l1BaseFeeEstimate] = result;
406
414
  const arbitrumManager = gasPriceManager.arbitrumManager;
407
415
  arbitrumManager.saveL1BaseFee(l1BaseFeeEstimate);
408
416
  arbitrumManager.saveL2BaseFee(l2BaseFee);
409
417
  if (validate) {
410
- const [maxL1Fee, minL1Fee, maxL2Fee] = await Promise.all([
418
+ const [maxL1Fee, minL1Fee, maxL2BaseFee, minL2BaseFee] = await Promise.all([
411
419
  l1BaseFeeEstimate || arbitrumManager.getMaxL1BaseFee(),
412
420
  arbitrumManager.getMinL1BaseFee(),
413
- arbitrumManager.getMaxL2BaseFee()
421
+ arbitrumManager.getMaxL2BaseFee(),
422
+ arbitrumManager.getMinL2BaseFee()
414
423
  ]);
415
- gasForL1 = (gasForL1 * l2BaseFee * minL1Fee) / (maxL1Fee * maxL2Fee);
424
+ const pvg = (gasForL1 * minL2BaseFee * minL1Fee) / (maxL1Fee * maxL2BaseFee);
425
+ // Accept 5% tolerance during validation to account for changes in L1State during getArbitrumL1GasEstimate.
426
+ return scaleBigIntByPercent(pvg, 95n);
416
427
  }
417
428
  return gasForL1;
418
429
  }
419
- //# sourceMappingURL=preVerificationGasCalulator.js.map
430
+ // Monad consumes the entire gasLimit set by TX. To account for this, we need to know the gasLimit
431
+ // the bundler sets for this userOp.
432
+ export async function calcMonadPvg({ userOp, config, entryPoint, validate }) {
433
+ const { utilityWalletAddress: beneficiary, v6CallGasLimitMultiplier, v6VerificationGasLimitMultiplier, v7VerificationGasLimitMultiplier, v7PaymasterVerificationGasLimitMultiplier, v7CallGasLimitMultiplier, v7PaymasterPostOpGasLimitMultiplier } = config;
434
+ const bundlerGasLimit = await getBundleGasLimit({
435
+ config,
436
+ userOps: [userOp],
437
+ entryPoint,
438
+ executorAddress: beneficiary
439
+ });
440
+ // Calculate actual gas used by removing multipliers based on version
441
+ let gasUsedByUserOp = 0n;
442
+ if (isVersion06(userOp)) {
443
+ const realCallGasLimit = unscaleBigIntByPercent(userOp.callGasLimit, BigInt(v6CallGasLimitMultiplier));
444
+ const realVerificationGasLimit = unscaleBigIntByPercent(userOp.verificationGasLimit, BigInt(v6VerificationGasLimitMultiplier));
445
+ gasUsedByUserOp = realCallGasLimit + realVerificationGasLimit;
446
+ }
447
+ if (isVersion07(userOp)) {
448
+ const realCallGasLimit = unscaleBigIntByPercent(userOp.callGasLimit, BigInt(v7CallGasLimitMultiplier));
449
+ const realVerificationGasLimit = unscaleBigIntByPercent(userOp.verificationGasLimit, BigInt(v7VerificationGasLimitMultiplier));
450
+ const realPaymasterVerificationGasLimit = unscaleBigIntByPercent(userOp.paymasterVerificationGasLimit ?? 0n, BigInt(v7PaymasterVerificationGasLimitMultiplier));
451
+ const realPaymasterPostOpGasLimit = unscaleBigIntByPercent(userOp.paymasterPostOpGasLimit ?? 0n, BigInt(v7PaymasterPostOpGasLimitMultiplier));
452
+ gasUsedByUserOp =
453
+ realCallGasLimit +
454
+ realVerificationGasLimit +
455
+ realPaymasterVerificationGasLimit +
456
+ realPaymasterPostOpGasLimit;
457
+ }
458
+ // Monad uses the entire tx.gasLimit.
459
+ let burnedGas = bundlerGasLimit - scaleBigIntByPercent(gasUsedByUserOp, 70n);
460
+ if (validate) {
461
+ // We scale down 10% during validation to account for the variance in
462
+ // dummy paymasterData and signature fields.
463
+ burnedGas = scaleBigIntByPercent(burnedGas, 90n);
464
+ }
465
+ return burnedGas;
466
+ }
467
+ //# sourceMappingURL=preVerificationGasCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preVerificationGasCalculator.js","sourceRoot":"","sources":["../../../rpc/estimation/preVerificationGasCalculator.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,12 @@ export declare enum BinarySearchResultType {
4
4
  Success = 0,
5
5
  OutOfGas = 1
6
6
  }
7
- export type SimulateHandleOpResult = {
7
+ export type SimulateHandleOpFailResult = {
8
8
  result: "failed";
9
9
  data: string;
10
10
  code: number;
11
- } | {
11
+ };
12
+ export type SimulateHandleOpSuccessResult = {
12
13
  result: "execution";
13
14
  data: {
14
15
  callGasLimit?: bigint;
@@ -17,6 +18,7 @@ export type SimulateHandleOpResult = {
17
18
  executionResult: ExecutionResult;
18
19
  };
19
20
  };
21
+ export type SimulateHandleOpResult = SimulateHandleOpFailResult | SimulateHandleOpSuccessResult;
20
22
  export type SimulateBinarySearchResult = {
21
23
  result: "success";
22
24
  data: {
@@ -1,4 +1,5 @@
1
- import type { StateOverrides, UserOperationV06, UserOperationV07 } from "../../types/index.js";
1
+ import type { StateOverrides, UserOperation06, UserOperation07 } from "../../types/index.js";
2
+ import { ERC7769Errors } from "../../types/index.js";
2
3
  import { type Logger } from "../../utils/index.js";
3
4
  import { type Address, type Hex, type StateOverride } from "viem";
4
5
  import type { AltoConfig } from "../../createConfig.js";
@@ -6,8 +7,8 @@ import type { GasPriceManager } from "../../handlers/gasPriceManager.js";
6
7
  import type { SimulateHandleOpResult } from "../estimation/types.js";
7
8
  export declare function parseFailedOpWithRevert(data: Hex): string;
8
9
  export declare function prepareStateOverride({ userOps, queuedUserOps, stateOverrides, config }: {
9
- userOps: (UserOperationV06 | UserOperationV07)[];
10
- queuedUserOps: (UserOperationV06 | UserOperationV07)[];
10
+ userOps: (UserOperation06 | UserOperation07)[];
11
+ queuedUserOps: (UserOperation06 | UserOperation07)[];
11
12
  stateOverrides?: StateOverrides;
12
13
  config: Pick<AltoConfig, "balanceOverride" | "codeOverrideSupport">;
13
14
  }): StateOverride | undefined;
@@ -48,18 +49,19 @@ export declare const simulationErrors: readonly [{
48
49
  readonly name: "reason";
49
50
  }];
50
51
  }];
52
+ export declare const toErc7769Code: (entryPointError: string) => ERC7769Errors.SimulateValidation | ERC7769Errors.SimulatePaymasterValidation | ERC7769Errors.ExpiresShortly | ERC7769Errors.InvalidSignature | ERC7769Errors.PaymasterDepositTooLow;
51
53
  export declare function decodeSimulateHandleOpError(error: unknown, logger: Logger): SimulateHandleOpResult;
52
54
  export declare function prepareSimulationOverrides06({ userOp, entryPoint, userStateOverrides, useCodeOverride, config }: {
53
- userOp: UserOperationV06;
55
+ userOp: UserOperation06;
54
56
  entryPoint: Address;
55
57
  userStateOverrides?: StateOverrides;
56
58
  useCodeOverride: boolean;
57
59
  config: Pick<AltoConfig, "codeOverrideSupport" | "balanceOverride">;
58
60
  }): Promise<StateOverride | undefined>;
59
- export declare function prepareSimulationOverrides07({ userOp, queuedUserOps, epSimulationsAddress, gasPriceManager, userStateOverrides, config }: {
60
- userOp: UserOperationV07;
61
- queuedUserOps: UserOperationV07[];
62
- epSimulationsAddress: Address;
61
+ export declare function prepareSimulationOverrides07({ userOp, queuedUserOps, entryPoint, gasPriceManager, userStateOverrides, config }: {
62
+ userOp: UserOperation07;
63
+ queuedUserOps: UserOperation07[];
64
+ entryPoint: Address;
63
65
  gasPriceManager: GasPriceManager;
64
66
  userStateOverrides?: StateOverrides;
65
67
  config: Pick<AltoConfig, "codeOverrideSupport" | "balanceOverride">;
@@ -1,4 +1,4 @@
1
- import { ValidationErrors, executionResultSchema } from "../../types/index.js";
1
+ import { ERC7769Errors, executionResultSchema } from "../../types/index.js";
2
2
  import { deepHexlify, getAuthorizationStateOverrides } from "../../utils/index.js";
3
3
  import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, decodeErrorResult, getAbiItem, keccak256, parseAbi, toHex } from "viem";
4
4
  import { entryPoint06Abi } from "viem/account-abstraction";
@@ -54,15 +54,29 @@ export const simulationErrors = parseAbi([
54
54
  "error FailedOpWithRevert(uint256 opIndex, string reason, bytes inner)",
55
55
  "error CallPhaseReverted(bytes reason)"
56
56
  ]);
57
+ // Returns error code based on EntryPoint's AA error message.
58
+ export const toErc7769Code = (entryPointError) => {
59
+ if (entryPointError.includes("AA24") || entryPointError.includes("AA34")) {
60
+ return ERC7769Errors.InvalidSignature;
61
+ }
62
+ if (entryPointError.includes("AA31")) {
63
+ return ERC7769Errors.PaymasterDepositTooLow;
64
+ }
65
+ if (entryPointError.includes("AA32")) {
66
+ return ERC7769Errors.ExpiresShortly;
67
+ }
68
+ if (entryPointError.includes("AA30") ||
69
+ entryPointError.includes("AA33") ||
70
+ entryPointError.includes("AA36")) {
71
+ return ERC7769Errors.SimulatePaymasterValidation;
72
+ }
73
+ return ERC7769Errors.SimulateValidation;
74
+ };
57
75
  export function decodeSimulateHandleOpError(error, logger) {
58
76
  // Check if it's a BaseError with ContractFunctionRevertedError
59
77
  if (!(error instanceof BaseError)) {
60
78
  logger.warn("Not a BaseError");
61
- return {
62
- result: "failed",
63
- data: "Unknown error, could not parse simulate validation result.",
64
- code: ValidationErrors.SimulateValidation
65
- };
79
+ throw new Error("Unknown error, could not parse simulate validation result.");
66
80
  }
67
81
  let errorName;
68
82
  let args;
@@ -76,16 +90,12 @@ export function decodeSimulateHandleOpError(error, logger) {
76
90
  return {
77
91
  result: "failed",
78
92
  data: "Sender has no code or factory not deployed",
79
- code: ValidationErrors.SimulateValidation
93
+ code: ERC7769Errors.SimulateValidation
80
94
  };
81
95
  }
82
96
  if (!error.data?.args) {
83
97
  logger.warn("Missing args");
84
- return {
85
- result: "failed",
86
- data: "Unknown error, could not parse simulate validation result.",
87
- code: ValidationErrors.SimulateValidation
88
- };
98
+ throw new Error("Unknown error, could not parse simulate validation result.");
89
99
  }
90
100
  errorName = error.data.errorName;
91
101
  args = error.data.args;
@@ -105,11 +115,7 @@ export function decodeSimulateHandleOpError(error, logger) {
105
115
  });
106
116
  if (!rawRevertBytes) {
107
117
  logger.warn("Failed to find raw revert bytes");
108
- return {
109
- result: "failed",
110
- data: "Unknown error, could not parse simulate validation result.",
111
- code: ValidationErrors.SimulateValidation
112
- };
118
+ throw new Error("Unknown error, could not parse simulate validation result.");
113
119
  }
114
120
  try {
115
121
  const decoded = decodeErrorResult({
@@ -125,47 +131,49 @@ export function decodeSimulateHandleOpError(error, logger) {
125
131
  errorName = decoded.errorName;
126
132
  args = decoded.args || [];
127
133
  }
128
- catch (decodeError) {
134
+ catch {
129
135
  logger.warn({ rawRevertBytes }, "Failed to decode raw revert bytes");
130
- return {
131
- result: "failed",
132
- data: "Unknown error, could not parse simulate validation result.",
133
- code: ValidationErrors.SimulateValidation
134
- };
136
+ throw new Error("Unknown error, could not parse simulate validation result.");
135
137
  }
136
138
  }
137
139
  else {
138
- return {
139
- result: "failed",
140
- data: "Unknown error, could not parse simulate validation result.",
141
- code: ValidationErrors.SimulateValidation
142
- };
140
+ logger.warn({ err: contractFunctionRevertedError }, "Unknown error, could not parse simulate validation result.");
141
+ throw new Error("Unknown error, could not parse simulate validation result.");
143
142
  }
144
143
  switch (errorName) {
145
- case "FailedOp":
144
+ case "FailedOp": {
145
+ const errorMessage = args[1];
146
146
  return {
147
147
  result: "failed",
148
- data: args[1],
149
- code: ValidationErrors.SimulateValidation
148
+ data: errorMessage,
149
+ code: toErc7769Code(errorMessage)
150
150
  };
151
- case "FailedOpWithRevert":
151
+ }
152
+ case "FailedOpWithRevert": {
153
+ const errorMessage = args[1];
154
+ const revertReason = parseFailedOpWithRevert(args[2]);
152
155
  return {
153
156
  result: "failed",
154
- data: `${args[1]} ${parseFailedOpWithRevert(args[2])}`,
155
- code: ValidationErrors.SimulateValidation
157
+ data: `${errorMessage} ${revertReason}`,
158
+ code: toErc7769Code(errorMessage)
156
159
  };
157
- case "CallPhaseReverted":
160
+ }
161
+ case "CallPhaseReverted": {
162
+ const errorMessage = args[0];
158
163
  return {
159
164
  result: "failed",
160
- data: args[0],
161
- code: ValidationErrors.SimulateValidation
165
+ data: errorMessage,
166
+ code: ERC7769Errors.UserOperationReverted
162
167
  };
163
- case "Error":
168
+ }
169
+ case "Error": {
170
+ const errorMessage = args[0];
164
171
  return {
165
172
  result: "failed",
166
- data: args[0],
167
- code: ValidationErrors.SimulateValidation
173
+ data: errorMessage,
174
+ code: toErc7769Code(errorMessage)
168
175
  };
176
+ }
169
177
  // 0.6 handleOp reverts with ExecutionResult if successful
170
178
  case "ExecutionResult": {
171
179
  const parsedExecutionResult = executionResultSchema.parse(args);
@@ -178,11 +186,7 @@ export function decodeSimulateHandleOpError(error, logger) {
178
186
  }
179
187
  default: {
180
188
  logger.warn({ errorName }, "Unknown ContractFunctionRevertedError name");
181
- return {
182
- result: "failed",
183
- data: "Unknown error, could not parse simulate validation result.",
184
- code: ValidationErrors.SimulateValidation
185
- };
189
+ throw new Error("Unknown error, could not parse simulate validation result.");
186
190
  }
187
191
  }
188
192
  }
@@ -209,16 +213,18 @@ export async function prepareSimulationOverrides06({ userOp, entryPoint, userSta
209
213
  });
210
214
  }
211
215
  // Helper function to prepare state overrides for v0.7 simulations
212
- export async function prepareSimulationOverrides07({ userOp, queuedUserOps, epSimulationsAddress, gasPriceManager, userStateOverrides = {}, config }) {
216
+ export async function prepareSimulationOverrides07({ userOp, queuedUserOps, entryPoint, gasPriceManager, userStateOverrides = {}, config }) {
213
217
  const mergedStateOverrides = { ...userStateOverrides };
214
218
  // Add baseFee override for v0.7 EntryPoint simulations
215
219
  if (config.codeOverrideSupport) {
216
- const baseFee = await gasPriceManager.getBaseFee().catch(() => 0n);
220
+ const baseFee = await gasPriceManager.getBaseFee();
217
221
  if (baseFee > 0n) {
218
222
  const slot = keccak256(toHex("BLOCK_BASE_FEE_PER_GAS"));
219
223
  const value = toHex(baseFee, { size: 32 });
220
- mergedStateOverrides[epSimulationsAddress] = {
224
+ mergedStateOverrides[entryPoint] = {
225
+ ...deepHexlify(mergedStateOverrides?.[entryPoint] || {}),
221
226
  stateDiff: {
227
+ ...(mergedStateOverrides[entryPoint]?.stateDiff || {}),
222
228
  [slot]: value
223
229
  }
224
230
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../rpc/estimation/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../rpc/estimation/utils.ts"],"names":[],"mappings":"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"}