@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,721 +0,0 @@
1
- import { EntryPointV07Abi, EntryPointV07SimulationsAbi, ExecutionErrors, PimlicoEntryPointSimulationsAbi, RpcError, ValidationErrors, binarySearchCallResultSchema } from "../../types/index.js";
2
- import { getAuthorizationStateOverrides, getUserOperationHash, isVersion08, toPackedUserOperation } from "../../utils/index.js";
3
- import { decodeAbiParameters, decodeErrorResult, decodeFunctionResult, encodeFunctionData, slice, toFunctionSelector, toHex, zeroAddress } from "viem";
4
- import { AccountExecuteAbi } from "../../types/contracts/IAccountExecute.js";
5
- import { simulationValidationResultStruct } from "./types.js";
6
- export class GasEstimatorV07 {
7
- config;
8
- logger;
9
- constructor(config) {
10
- this.config = config;
11
- this.logger = config.getLogger({
12
- module: "gas-estimator-v07"
13
- }, {
14
- level: config.logLevel
15
- });
16
- }
17
- async simulateValidation({ entryPoint, userOperation, queuedUserOperations }) {
18
- const userOperations = [...queuedUserOperations, userOperation];
19
- const packedUserOperations = userOperations.map((uo) => toPackedUserOperation(uo));
20
- const simulateValidationLast = encodeFunctionData({
21
- abi: EntryPointV07SimulationsAbi,
22
- functionName: "simulateValidationLast",
23
- args: [packedUserOperations]
24
- });
25
- const stateOverrides = getAuthorizationStateOverrides({
26
- userOperations: [...queuedUserOperations, userOperation]
27
- });
28
- const isV8 = isVersion08(userOperation, entryPoint);
29
- const entryPointSimulationsAddress = isV8
30
- ? this.config.entrypointSimulationContractV8
31
- : this.config.entrypointSimulationContractV7;
32
- if (!entryPointSimulationsAddress) {
33
- throw new Error(`Cannot find entryPointSimulationsAddress for version ${isV8 ? "08" : "07"}`);
34
- }
35
- const errorResult = await this.callPimlicoEntryPointSimulations({
36
- entryPoint,
37
- entryPointSimulationsCallData: [simulateValidationLast],
38
- stateOverrides,
39
- entryPointSimulationsAddress
40
- });
41
- return {
42
- simulateValidationResult: getSimulateValidationResult(errorResult[0])
43
- };
44
- }
45
- async encodeUserOperationCalldata({ op, entryPoint }) {
46
- const packedOp = toPackedUserOperation(op);
47
- const executeUserOpMethodSig = toFunctionSelector(AccountExecuteAbi[0]);
48
- const callDataMethodSig = slice(packedOp.callData, 0, 4);
49
- if (executeUserOpMethodSig === callDataMethodSig) {
50
- return encodeFunctionData({
51
- abi: AccountExecuteAbi,
52
- functionName: "executeUserOp",
53
- args: [
54
- packedOp,
55
- await getUserOperationHash({
56
- userOperation: op,
57
- entryPointAddress: entryPoint,
58
- chainId: this.config.chainId,
59
- publicClient: this.config.publicClient
60
- })
61
- ]
62
- });
63
- }
64
- return packedOp.callData;
65
- }
66
- async encodeSimulateHandleOpLast({ userOperation, queuedUserOperations, entryPoint }) {
67
- const userOperations = [...queuedUserOperations, userOperation];
68
- const packedUserOperations = await Promise.all(userOperations.map(async (uop) => ({
69
- packedUserOperation: toPackedUserOperation(uop),
70
- userOperation: uop,
71
- userOperationHash: await getUserOperationHash({
72
- userOperation: uop,
73
- entryPointAddress: entryPoint,
74
- chainId: this.config.chainId,
75
- publicClient: this.config.publicClient
76
- })
77
- })));
78
- const simulateHandleOpCallData = encodeFunctionData({
79
- abi: EntryPointV07SimulationsAbi,
80
- functionName: "simulateHandleOpLast",
81
- args: [packedUserOperations.map((uop) => uop.packedUserOperation)]
82
- });
83
- return simulateHandleOpCallData;
84
- }
85
- async encodeBinarySearchGasLimit({ entryPoint, userOperation, queuedUserOperations, target, targetCallData, gasAllowance = this.config.binarySearchGasAllowance, initialMinGas = 0n, functionName }) {
86
- const queuedOps = await Promise.all(queuedUserOperations.map(async (op) => ({
87
- op: toPackedUserOperation(op),
88
- target: op.sender,
89
- targetCallData: await this.encodeUserOperationCalldata({
90
- op,
91
- entryPoint
92
- })
93
- })));
94
- const targetOp = {
95
- op: toPackedUserOperation(userOperation),
96
- target,
97
- targetCallData
98
- };
99
- const binarySearchVerificationGasLimit = encodeFunctionData({
100
- abi: EntryPointV07SimulationsAbi,
101
- functionName,
102
- args: [
103
- queuedOps,
104
- targetOp,
105
- entryPoint,
106
- initialMinGas,
107
- this.config.binarySearchToleranceDelta,
108
- gasAllowance
109
- ]
110
- });
111
- return binarySearchVerificationGasLimit;
112
- }
113
- // Try to get the calldata gas again if the initial simulation reverted due to hitting the eth_call gasLimit.
114
- async retryBinarySearch({ entryPoint, optimalGas, minGas, targetOp, target, targetCallData, functionName, queuedOps, stateOverrides = {} }) {
115
- const maxRetries = 3;
116
- let retryCount = 0;
117
- let currentOptimalGas = optimalGas;
118
- let currentMinGas = minGas;
119
- while (retryCount < maxRetries) {
120
- // OptimalGas represents the current lowest gasLimit, so we set the gasAllowance to search range minGas <-> optimalGas
121
- const gasAllowance = currentOptimalGas - currentMinGas;
122
- const binarySearchCallGasLimit = await this.encodeBinarySearchGasLimit({
123
- entryPoint,
124
- userOperation: targetOp,
125
- target,
126
- targetCallData,
127
- queuedUserOperations: queuedOps,
128
- initialMinGas: currentMinGas,
129
- gasAllowance,
130
- functionName
131
- });
132
- stateOverrides = getAuthorizationStateOverrides({
133
- userOperations: [...queuedOps, targetOp],
134
- stateOverrides
135
- });
136
- const isV8 = isVersion08(targetOp, entryPoint);
137
- const entryPointSimulationsAddress = isV8
138
- ? this.config.entrypointSimulationContractV8
139
- : this.config.entrypointSimulationContractV7;
140
- if (!entryPointSimulationsAddress) {
141
- throw new Error(`Cannot find entryPointSimulationsAddress for version ${isV8 ? "08" : "07"}`);
142
- }
143
- let cause = await this.callPimlicoEntryPointSimulations({
144
- entryPoint,
145
- entryPointSimulationsCallData: [binarySearchCallGasLimit],
146
- stateOverrides,
147
- entryPointSimulationsAddress
148
- });
149
- cause = cause.map((data) => {
150
- const decodedDelegateAndError = decodeErrorResult({
151
- abi: EntryPointV07Abi,
152
- data: data
153
- });
154
- if (!decodedDelegateAndError?.args?.[1]) {
155
- throw new Error("Unexpected error");
156
- }
157
- return decodedDelegateAndError.args[1];
158
- });
159
- const callGasLimitResult = validateBinarySearchDataResult(cause[0], functionName);
160
- if (callGasLimitResult.result === "failed") {
161
- return callGasLimitResult;
162
- }
163
- if (callGasLimitResult.result === "retry") {
164
- currentOptimalGas = callGasLimitResult.optimalGas;
165
- currentMinGas = callGasLimitResult.minGas;
166
- retryCount++;
167
- continue;
168
- }
169
- // If we reach here, it means we have a successful result
170
- return {
171
- result: "success",
172
- data: callGasLimitResult.data
173
- };
174
- }
175
- // If we've exhausted all retries, return a failure result
176
- return {
177
- result: "failed",
178
- data: "Max retries reached for getting call data gas",
179
- code: ValidationErrors.SimulateValidation
180
- };
181
- }
182
- async validateHandleOpV07({ entryPoint, userOperation, queuedUserOperations, stateOverrides = {} }) {
183
- const simulateHandleOpLast = await this.encodeSimulateHandleOpLast({
184
- entryPoint,
185
- userOperation,
186
- queuedUserOperations
187
- });
188
- stateOverrides = getAuthorizationStateOverrides({
189
- userOperations: [...queuedUserOperations, userOperation],
190
- stateOverrides
191
- });
192
- const isV8 = isVersion08(userOperation, entryPoint);
193
- const entryPointSimulationsAddress = isV8
194
- ? this.config.entrypointSimulationContractV8
195
- : this.config.entrypointSimulationContractV7;
196
- if (!entryPointSimulationsAddress) {
197
- throw new Error(`Cannot find entryPointSimulationsAddress for version ${isV8 ? "08" : "07"}`);
198
- }
199
- let cause = [
200
- (await this.callPimlicoEntryPointSimulations({
201
- entryPoint,
202
- entryPointSimulationsCallData: [simulateHandleOpLast],
203
- stateOverrides,
204
- entryPointSimulationsAddress
205
- }))[0]
206
- ];
207
- cause = cause.map((data) => {
208
- const decodedDelegateAndError = decodeErrorResult({
209
- abi: EntryPointV07Abi,
210
- data: data
211
- });
212
- const delegateAndRevertResponseBytes = decodedDelegateAndError?.args?.[1];
213
- if (!delegateAndRevertResponseBytes) {
214
- throw new Error("Unexpected error");
215
- }
216
- return delegateAndRevertResponseBytes;
217
- });
218
- const [simulateHandleOpLastCause] = cause;
219
- try {
220
- const simulateHandleOpLastResult = getSimulateHandleOpResult(simulateHandleOpLastCause);
221
- if (simulateHandleOpLastResult.result === "failed") {
222
- return simulateHandleOpLastResult;
223
- }
224
- return {
225
- result: "execution",
226
- data: {
227
- callGasLimit: 0n,
228
- verificationGasLimit: 0n,
229
- paymasterVerificationGasLimit: 0n,
230
- executionResult: simulateHandleOpLastResult.data.executionResult
231
- }
232
- };
233
- }
234
- catch (_e) {
235
- return {
236
- result: "failed",
237
- data: "Unknown error, could not parse simulate handle op result.",
238
- code: ValidationErrors.SimulateValidation
239
- };
240
- }
241
- }
242
- async simulateHandleOpV07({ entryPoint, userOperation, queuedUserOperations, stateOverrides = {} }) {
243
- const simulateHandleOpLast = await this.encodeSimulateHandleOpLast({
244
- entryPoint,
245
- userOperation,
246
- queuedUserOperations
247
- });
248
- const binarySearchVerificationGasLimit = await this.encodeBinarySearchGasLimit({
249
- initialMinGas: 9000n,
250
- entryPoint,
251
- userOperation,
252
- queuedUserOperations,
253
- target: zeroAddress,
254
- targetCallData: "0x",
255
- functionName: "binarySearchVerificationGasLimit"
256
- });
257
- const binarySearchPaymasterVerificationGasLimit = userOperation.paymaster
258
- ? await this.encodeBinarySearchGasLimit({
259
- initialMinGas: 9000n,
260
- entryPoint,
261
- userOperation,
262
- queuedUserOperations,
263
- target: zeroAddress,
264
- targetCallData: "0x",
265
- functionName: "binarySearchPaymasterVerificationGasLimit"
266
- })
267
- : null;
268
- const binarySearchCallGasLimit = await this.encodeBinarySearchGasLimit({
269
- initialMinGas: 9000n,
270
- entryPoint,
271
- userOperation,
272
- queuedUserOperations,
273
- target: userOperation.sender,
274
- targetCallData: await this.encodeUserOperationCalldata({
275
- op: userOperation,
276
- entryPoint
277
- }),
278
- functionName: "binarySearchCallGasLimit"
279
- });
280
- stateOverrides = getAuthorizationStateOverrides({
281
- userOperations: [...queuedUserOperations, userOperation],
282
- stateOverrides
283
- });
284
- let cause;
285
- const isV8 = isVersion08(userOperation, entryPoint);
286
- const entryPointSimulationsAddress = isV8
287
- ? this.config.entrypointSimulationContractV8
288
- : this.config.entrypointSimulationContractV7;
289
- if (!entryPointSimulationsAddress) {
290
- throw new Error(`Cannot find entryPointSimulationsAddress for version ${isV8 ? "08" : "07"}`);
291
- }
292
- if (this.config.splitSimulationCalls) {
293
- // due to Hedera specific restrictions, we can't combine these two calls.
294
- const [simulateHandleOpLastCause, binarySearchVerificationGasLimitCause, binarySearchPaymasterVerificationGasLimitCause, binarySearchCallGasLimitCause] = await Promise.all([
295
- this.callPimlicoEntryPointSimulations({
296
- entryPoint,
297
- entryPointSimulationsCallData: [simulateHandleOpLast],
298
- stateOverrides,
299
- entryPointSimulationsAddress
300
- }),
301
- this.callPimlicoEntryPointSimulations({
302
- entryPoint,
303
- entryPointSimulationsCallData: [
304
- binarySearchVerificationGasLimit
305
- ],
306
- stateOverrides,
307
- entryPointSimulationsAddress
308
- }),
309
- binarySearchPaymasterVerificationGasLimit
310
- ? this.callPimlicoEntryPointSimulations({
311
- entryPoint,
312
- entryPointSimulationsCallData: [
313
- binarySearchPaymasterVerificationGasLimit
314
- ],
315
- stateOverrides,
316
- entryPointSimulationsAddress
317
- })
318
- : null,
319
- this.callPimlicoEntryPointSimulations({
320
- entryPoint,
321
- entryPointSimulationsCallData: [binarySearchCallGasLimit],
322
- stateOverrides,
323
- entryPointSimulationsAddress
324
- })
325
- ]);
326
- cause = [
327
- simulateHandleOpLastCause[0],
328
- binarySearchVerificationGasLimitCause[0],
329
- binarySearchPaymasterVerificationGasLimitCause?.[0] ?? null,
330
- binarySearchCallGasLimitCause[0]
331
- ];
332
- }
333
- else {
334
- const [handleOpAndBinarySearchVerificationGasLimits, binarySearchCallDataGasLimits] = await Promise.all([
335
- binarySearchPaymasterVerificationGasLimit
336
- ? await this.callPimlicoEntryPointSimulations({
337
- entryPoint,
338
- entryPointSimulationsCallData: [
339
- simulateHandleOpLast,
340
- binarySearchVerificationGasLimit,
341
- binarySearchPaymasterVerificationGasLimit
342
- ],
343
- stateOverrides,
344
- entryPointSimulationsAddress
345
- })
346
- : await this.callPimlicoEntryPointSimulations({
347
- entryPoint,
348
- entryPointSimulationsCallData: [
349
- simulateHandleOpLast,
350
- binarySearchVerificationGasLimit
351
- ],
352
- stateOverrides,
353
- entryPointSimulationsAddress
354
- }),
355
- await this.callPimlicoEntryPointSimulations({
356
- entryPoint,
357
- entryPointSimulationsCallData: [binarySearchCallGasLimit],
358
- stateOverrides,
359
- entryPointSimulationsAddress
360
- })
361
- ]);
362
- cause = [
363
- handleOpAndBinarySearchVerificationGasLimits[0],
364
- handleOpAndBinarySearchVerificationGasLimits[1],
365
- binarySearchPaymasterVerificationGasLimit
366
- ? handleOpAndBinarySearchVerificationGasLimits[2]
367
- : null,
368
- binarySearchCallDataGasLimits[0]
369
- ];
370
- }
371
- cause = cause.map((data) => {
372
- if (!data) {
373
- return null;
374
- }
375
- const decodedDelegateAndError = decodeErrorResult({
376
- abi: EntryPointV07Abi,
377
- data: data
378
- });
379
- const delegateAndRevertResponseBytes = decodedDelegateAndError?.args?.[1];
380
- if (!delegateAndRevertResponseBytes) {
381
- throw new Error("Unexpected error");
382
- }
383
- return delegateAndRevertResponseBytes;
384
- });
385
- const [simulateHandleOpLastCause, binarySearchVerificationGasLimitCause, binarySearchPaymasterVerificationGasLimitCause, binarySearchCallGasLimitCause] = cause;
386
- try {
387
- const simulateHandleOpLastResult = getSimulateHandleOpResult(simulateHandleOpLastCause);
388
- if (simulateHandleOpLastResult.result === "failed") {
389
- return simulateHandleOpLastResult;
390
- }
391
- const verificationGasLimitResult = validateBinarySearchDataResult(binarySearchVerificationGasLimitCause, "binarySearchVerificationGasLimit");
392
- let verificationGasLimit = 0n;
393
- if (verificationGasLimitResult.result === "success") {
394
- verificationGasLimit = verificationGasLimitResult.data.gasUsed;
395
- }
396
- if (verificationGasLimitResult.result === "failed") {
397
- return verificationGasLimitResult;
398
- }
399
- if (verificationGasLimitResult.result === "retry") {
400
- const { optimalGas, minGas } = verificationGasLimitResult;
401
- const binarySearchResult = await this.retryBinarySearch({
402
- entryPoint,
403
- optimalGas,
404
- minGas,
405
- targetOp: userOperation,
406
- target: zeroAddress,
407
- targetCallData: "0x",
408
- functionName: "binarySearchVerificationGasLimit",
409
- queuedOps: queuedUserOperations,
410
- stateOverrides
411
- });
412
- if (binarySearchResult.result === "failed") {
413
- return binarySearchResult;
414
- }
415
- verificationGasLimit = binarySearchResult.data.gasUsed;
416
- }
417
- const paymasterVerificationGasLimitResult = binarySearchPaymasterVerificationGasLimitCause
418
- ? validateBinarySearchDataResult(binarySearchPaymasterVerificationGasLimitCause, "binarySearchPaymasterVerificationGasLimit")
419
- : {
420
- result: "success",
421
- data: {
422
- gasUsed: 0n,
423
- success: true,
424
- returnData: "0x"
425
- }
426
- };
427
- let paymasterVerificationGasLimit = 0n;
428
- if (paymasterVerificationGasLimitResult.result === "success") {
429
- paymasterVerificationGasLimit =
430
- paymasterVerificationGasLimitResult.data.gasUsed;
431
- }
432
- if (paymasterVerificationGasLimitResult.result === "failed") {
433
- return paymasterVerificationGasLimitResult;
434
- }
435
- if (paymasterVerificationGasLimitResult.result === "retry") {
436
- const { optimalGas, minGas } = paymasterVerificationGasLimitResult;
437
- const binarySearchResult = await this.retryBinarySearch({
438
- entryPoint,
439
- optimalGas,
440
- minGas,
441
- targetOp: userOperation,
442
- target: zeroAddress,
443
- targetCallData: "0x",
444
- functionName: "binarySearchPaymasterVerificationGasLimit",
445
- queuedOps: queuedUserOperations,
446
- stateOverrides
447
- });
448
- if (binarySearchResult.result === "failed") {
449
- return binarySearchResult;
450
- }
451
- paymasterVerificationGasLimit = binarySearchResult.data.gasUsed;
452
- }
453
- const callGasLimitResult = validateBinarySearchDataResult(binarySearchCallGasLimitCause, "binarySearchCallGasLimit");
454
- let callGasLimit = 0n;
455
- if (callGasLimitResult.result === "success") {
456
- callGasLimit = callGasLimitResult.data.gasUsed;
457
- }
458
- if (callGasLimitResult.result === "failed") {
459
- return callGasLimitResult;
460
- }
461
- if (callGasLimitResult.result === "retry") {
462
- const { optimalGas, minGas } = callGasLimitResult;
463
- const binarySearchResult = await this.retryBinarySearch({
464
- entryPoint,
465
- optimalGas,
466
- minGas,
467
- targetOp: userOperation,
468
- target: userOperation.sender,
469
- targetCallData: await this.encodeUserOperationCalldata({
470
- op: userOperation,
471
- entryPoint
472
- }),
473
- functionName: "binarySearchCallGasLimit",
474
- queuedOps: queuedUserOperations,
475
- stateOverrides
476
- });
477
- if (binarySearchResult.result === "failed") {
478
- return binarySearchResult;
479
- }
480
- callGasLimit = binarySearchResult.data.gasUsed;
481
- }
482
- return {
483
- result: "execution",
484
- data: {
485
- callGasLimit,
486
- verificationGasLimit,
487
- paymasterVerificationGasLimit,
488
- executionResult: simulateHandleOpLastResult.data.executionResult
489
- }
490
- };
491
- }
492
- catch (_e) {
493
- return {
494
- result: "failed",
495
- data: "Unknown error, could not parse simulate handle op result.",
496
- code: ValidationErrors.SimulateValidation
497
- };
498
- }
499
- }
500
- async callPimlicoEntryPointSimulations({ entryPoint, entryPointSimulationsCallData, stateOverrides, entryPointSimulationsAddress }) {
501
- const publicClient = this.config.publicClient;
502
- const blockTagSupport = this.config.blockTagSupport;
503
- const utilityWalletAddress = this.config.utilityPrivateKey?.address ??
504
- "0x4337000c2828F5260d8921fD25829F606b9E8680";
505
- const fixedGasLimitForEstimation = this.config.fixedGasLimitForEstimation;
506
- if (!entryPointSimulationsAddress) {
507
- throw new RpcError("entryPointSimulationsAddress must be provided for V07 UserOperation", ValidationErrors.InvalidFields);
508
- }
509
- const callData = encodeFunctionData({
510
- abi: PimlicoEntryPointSimulationsAbi,
511
- functionName: "simulateEntryPoint",
512
- args: [entryPoint, entryPointSimulationsCallData]
513
- });
514
- // Remove state override if not supported by network.
515
- if (!this.config.balanceOverride && !this.config.codeOverrideSupport) {
516
- stateOverrides = undefined;
517
- }
518
- const result = (await publicClient.request({
519
- method: "eth_call",
520
- params: [
521
- {
522
- to: entryPointSimulationsAddress,
523
- from: utilityWalletAddress,
524
- data: callData,
525
- ...(fixedGasLimitForEstimation !== undefined && {
526
- gas: `0x${fixedGasLimitForEstimation.toString(16)}`
527
- })
528
- },
529
- blockTagSupport
530
- ? "latest"
531
- : toHex(await publicClient.getBlockNumber()),
532
- // @ts-ignore
533
- ...(stateOverrides ? [stateOverrides] : [])
534
- ]
535
- }));
536
- try {
537
- const returnBytes = decodeAbiParameters([{ name: "ret", type: "bytes[]" }], result);
538
- return returnBytes[0];
539
- }
540
- catch (err) {
541
- this.logger.error({ err, result }, "Failed to decode simulation result");
542
- throw new RpcError("Failed to decode simulation result", ValidationErrors.SimulateValidation);
543
- }
544
- }
545
- }
546
- const panicCodes = {
547
- // from https://docs.soliditylang.org/en/v0.8.0/control-structures.html
548
- 1: "assert(false)",
549
- 17: "arithmetic overflow/underflow",
550
- 18: "divide by zero",
551
- 33: "invalid enum value",
552
- 34: "storage byte array that is incorrectly encoded",
553
- 49: ".pop() on an empty array.",
554
- 50: "array sout-of-bounds or negative index",
555
- 65: "memory overflow",
556
- 81: "zero-initialized variable of internal function type"
557
- };
558
- export function parseFailedOpWithRevert(data) {
559
- const methodSig = data.slice(0, 10);
560
- const dataParams = `0x${data.slice(10)}`;
561
- if (methodSig === "0x08c379a0") {
562
- const [err] = decodeAbiParameters([
563
- {
564
- name: "err",
565
- type: "string"
566
- }
567
- ], dataParams);
568
- return err;
569
- }
570
- if (methodSig === "0x4e487b71") {
571
- const [code] = decodeAbiParameters([
572
- {
573
- name: "err",
574
- type: "uint256"
575
- }
576
- ], dataParams);
577
- return panicCodes[Number(code)] ?? `${code}`;
578
- }
579
- return data;
580
- }
581
- export function getSimulateValidationResult(errorData) {
582
- const decodedDelegateAndError = decodeErrorResult({
583
- abi: EntryPointV07Abi,
584
- data: errorData
585
- });
586
- if (!decodedDelegateAndError?.args?.[1]) {
587
- throw new Error("Unexpected error");
588
- }
589
- try {
590
- const decodedError = decodeErrorResult({
591
- abi: EntryPointV07SimulationsAbi,
592
- data: decodedDelegateAndError.args[1]
593
- });
594
- if (decodedError &&
595
- decodedError.errorName === "FailedOp" &&
596
- decodedError.args) {
597
- return {
598
- status: "failed",
599
- data: decodedError.args[1]
600
- };
601
- }
602
- if (decodedError &&
603
- decodedError.errorName === "FailedOpWithRevert" &&
604
- decodedError.args) {
605
- return {
606
- status: "failed",
607
- data: `${decodedError.args?.[1]} - ${parseFailedOpWithRevert(decodedError.args?.[2])}`
608
- };
609
- }
610
- }
611
- catch {
612
- const decodedResult = decodeAbiParameters(simulationValidationResultStruct, decodedDelegateAndError.args[1])[0];
613
- return {
614
- status: "validation",
615
- data: decodedResult
616
- };
617
- }
618
- throw new Error("Unexpected error - errorName is not ValidationResult or ValidationResultWithAggregation");
619
- }
620
- function validateBinarySearchDataResult(data, fnName) {
621
- try {
622
- const targetCallResult = decodeFunctionResult({
623
- abi: EntryPointV07SimulationsAbi,
624
- functionName: fnName,
625
- data: data
626
- });
627
- const parsedTargetCallResult = binarySearchCallResultSchema.parse(targetCallResult);
628
- if (parsedTargetCallResult.success) {
629
- return {
630
- result: "success",
631
- data: parsedTargetCallResult
632
- };
633
- }
634
- return {
635
- result: "failed",
636
- data: parsedTargetCallResult.returnData,
637
- code: ExecutionErrors.UserOperationReverted
638
- };
639
- }
640
- catch (_e) {
641
- try {
642
- const res = decodeErrorResult({
643
- abi: EntryPointV07SimulationsAbi,
644
- data: data
645
- });
646
- if (res.errorName === "SimulationOutOfGas") {
647
- const [optimalGas, minGas, maxGas] = res.args;
648
- return {
649
- result: "retry",
650
- optimalGas,
651
- minGas,
652
- maxGas
653
- };
654
- }
655
- return {
656
- result: "failed",
657
- data,
658
- code: ExecutionErrors.UserOperationReverted
659
- };
660
- }
661
- catch {
662
- // no error we go the result
663
- return {
664
- result: "failed",
665
- data: "Unknown error, could not parse target call data result.",
666
- code: ExecutionErrors.UserOperationReverted
667
- };
668
- }
669
- }
670
- }
671
- function getSimulateHandleOpResult(data) {
672
- try {
673
- const decodedError = decodeErrorResult({
674
- abi: EntryPointV07SimulationsAbi,
675
- data: data
676
- });
677
- if (decodedError &&
678
- decodedError.errorName === "FailedOp" &&
679
- decodedError.args) {
680
- return {
681
- result: "failed",
682
- data: decodedError.args[1],
683
- code: ValidationErrors.SimulateValidation
684
- };
685
- }
686
- if (decodedError &&
687
- decodedError.errorName === "FailedOpWithRevert" &&
688
- decodedError.args) {
689
- return {
690
- result: "failed",
691
- data: `${decodedError.args[1]} ${parseFailedOpWithRevert(decodedError.args?.[2])}`,
692
- code: ValidationErrors.SimulateValidation
693
- };
694
- }
695
- if (decodedError &&
696
- decodedError.errorName === "CallPhaseReverted" &&
697
- decodedError.args) {
698
- return {
699
- result: "failed",
700
- data: decodedError.args[0],
701
- code: ValidationErrors.SimulateValidation
702
- };
703
- }
704
- }
705
- catch {
706
- // no error we go the result
707
- const decodedResult = decodeFunctionResult({
708
- abi: EntryPointV07SimulationsAbi,
709
- functionName: "simulateHandleOp",
710
- data
711
- });
712
- return {
713
- result: "execution",
714
- data: {
715
- executionResult: decodedResult
716
- }
717
- };
718
- }
719
- throw new Error("Unexpected error");
720
- }
721
- //# sourceMappingURL=gasEstimationsV07.js.map