@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,682 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExecutorManager = void 0;
4
- const types_1 = require("../types/index.js");
5
- const utils_1 = require("../utils/index.js");
6
- const viem_1 = require("viem");
7
- const abitype_1 = require("abitype");
8
- const utils_2 = require("./utils.js");
9
- function getTransactionsFromUserOperationEntries(submittedOps) {
10
- const transactionInfos = submittedOps.map((userOpInfo) => userOpInfo.transactionInfo);
11
- // Remove duplicates
12
- return Array.from(new Set(transactionInfos));
13
- }
14
- const MIN_INTERVAL = 100; // 0.1 seconds (100ms)
15
- const MAX_INTERVAL = 1000; // Capped at 1 second (1000ms)
16
- const SCALE_FACTOR = 10; // Interval increases by 5ms per task per minute
17
- const RPM_WINDOW = 60000; // 1 minute window in ms
18
- class ExecutorManager {
19
- senderManager;
20
- config;
21
- executor;
22
- mempool;
23
- monitor;
24
- logger;
25
- metrics;
26
- reputationManager;
27
- unWatch;
28
- currentlyHandlingBlock = false;
29
- gasPriceManager;
30
- eventManager;
31
- opsCount = [];
32
- bundlingMode;
33
- constructor({ config, executor, mempool, monitor, reputationManager, metrics, gasPriceManager, eventManager, senderManager }) {
34
- this.config = config;
35
- this.reputationManager = reputationManager;
36
- this.executor = executor;
37
- this.mempool = mempool;
38
- this.monitor = monitor;
39
- this.logger = config.getLogger({ module: "executor_manager" }, {
40
- level: config.executorLogLevel || config.logLevel
41
- });
42
- this.metrics = metrics;
43
- this.gasPriceManager = gasPriceManager;
44
- this.eventManager = eventManager;
45
- this.senderManager = senderManager;
46
- this.bundlingMode = this.config.bundleMode;
47
- if (this.bundlingMode === "auto") {
48
- this.autoScalingBundling();
49
- }
50
- }
51
- async setBundlingMode(bundleMode) {
52
- this.bundlingMode = bundleMode;
53
- if (bundleMode === "manual") {
54
- await new Promise((resolve) => setTimeout(resolve, 2 * MAX_INTERVAL));
55
- }
56
- if (bundleMode === "auto") {
57
- this.autoScalingBundling();
58
- }
59
- }
60
- async autoScalingBundling() {
61
- const now = Date.now();
62
- this.opsCount = this.opsCount.filter((timestamp) => now - timestamp < RPM_WINDOW);
63
- const bundles = await this.mempool.getBundles();
64
- if (bundles.length > 0) {
65
- const opsCount = bundles
66
- .map(({ userOps }) => userOps.length)
67
- .reduce((a, b) => a + b);
68
- // Add timestamps for each task
69
- const timestamp = Date.now();
70
- this.opsCount.push(...Array(opsCount).fill(timestamp));
71
- // Send bundles to executor
72
- await Promise.all(bundles.map(async (bundle) => {
73
- await this.sendBundleToExecutor(bundle);
74
- }));
75
- }
76
- const rpm = this.opsCount.length;
77
- // Calculate next interval with linear scaling
78
- const nextInterval = Math.min(MIN_INTERVAL + rpm * SCALE_FACTOR, // Linear scaling
79
- MAX_INTERVAL // Cap at 1000ms
80
- );
81
- if (this.bundlingMode === "auto") {
82
- setTimeout(this.autoScalingBundling.bind(this), nextInterval);
83
- }
84
- }
85
- // Debug endpoint
86
- async sendBundleNow() {
87
- const bundles = await this.mempool.getBundles(1);
88
- const bundle = bundles[0];
89
- if (bundles.length === 0 || bundle.userOps.length === 0) {
90
- return;
91
- }
92
- const txHash = await this.sendBundleToExecutor(bundle);
93
- if (!txHash) {
94
- throw new Error("no tx hash");
95
- }
96
- return txHash;
97
- }
98
- async sendBundleToExecutor(userOpBundle) {
99
- const { entryPoint, userOps, version } = userOpBundle;
100
- if (userOps.length === 0) {
101
- return undefined;
102
- }
103
- const wallet = await this.senderManager.getWallet();
104
- const [gasPriceParams, nonce] = await Promise.all([
105
- this.gasPriceManager.tryGetNetworkGasPrice(),
106
- this.config.publicClient.getTransactionCount({
107
- address: wallet.address,
108
- blockTag: "latest"
109
- })
110
- ]).catch((_) => {
111
- return [];
112
- });
113
- if (!gasPriceParams || nonce === undefined) {
114
- await this.resubmitUserOperations(userOps, entryPoint, "Failed to get nonce and gas parameters for bundling");
115
- // Free executor if failed to get initial params.
116
- await this.senderManager.markWalletProcessed(wallet);
117
- return undefined;
118
- }
119
- const bundleResult = await this.executor.bundle({
120
- executor: wallet,
121
- userOpBundle,
122
- nonce,
123
- gasPriceParams,
124
- isReplacementTx: false
125
- });
126
- // Free wallet if no bundle was sent.
127
- if (bundleResult.status !== "bundle_success") {
128
- await this.senderManager.markWalletProcessed(wallet);
129
- }
130
- // All ops failed simulation, drop them and return.
131
- if (bundleResult.status === "all_ops_failed_simulation") {
132
- const { rejectedUserOps } = bundleResult;
133
- await this.dropUserOps(entryPoint, rejectedUserOps);
134
- return undefined;
135
- }
136
- // Unhandled error during simulation, drop all ops.
137
- if (bundleResult.status === "unhandled_simulation_failure") {
138
- const { rejectedUserOps } = bundleResult;
139
- await this.dropUserOps(entryPoint, rejectedUserOps);
140
- this.metrics.bundlesSubmitted.labels({ status: "failed" }).inc();
141
- return undefined;
142
- }
143
- // Resubmit if executor has insufficient funds.
144
- if (bundleResult.status === "bundle_submission_failure" &&
145
- bundleResult.reason instanceof viem_1.InsufficientFundsError) {
146
- const { reason, userOpsToBundle, rejectedUserOps } = bundleResult;
147
- await this.dropUserOps(entryPoint, rejectedUserOps);
148
- await this.resubmitUserOperations(userOpsToBundle, entryPoint, reason.name);
149
- this.metrics.bundlesSubmitted.labels({ status: "resubmit" }).inc();
150
- return undefined;
151
- }
152
- // Encountered unhandled error during bundle simulation.
153
- if (bundleResult.status === "bundle_submission_failure") {
154
- const { rejectedUserOps, userOpsToBundle, reason } = bundleResult;
155
- await this.dropUserOps(entryPoint, rejectedUserOps);
156
- // NOTE: these ops passed validation, so we can try resubmitting them
157
- await this.resubmitUserOperations(userOpsToBundle, entryPoint, reason instanceof abitype_1.BaseError
158
- ? reason.name
159
- : "Encountered unhandled error during bundle simulation");
160
- this.metrics.bundlesSubmitted.labels({ status: "failed" }).inc();
161
- return undefined;
162
- }
163
- if (bundleResult.status === "bundle_success") {
164
- const { userOpsBundled, rejectedUserOps, transactionRequest, transactionHash } = bundleResult;
165
- const transactionInfo = {
166
- executor: wallet,
167
- transactionHash,
168
- transactionRequest,
169
- bundle: {
170
- entryPoint,
171
- version,
172
- userOps: userOpsBundled
173
- },
174
- previousTransactionHashes: [],
175
- lastReplaced: Date.now(),
176
- firstSubmitted: Date.now(),
177
- timesPotentiallyIncluded: 0
178
- };
179
- await this.markUserOperationsAsSubmitted(userOpsBundled, transactionInfo);
180
- await this.dropUserOps(entryPoint, rejectedUserOps);
181
- this.metrics.bundlesSubmitted.labels({ status: "success" }).inc();
182
- return transactionHash;
183
- }
184
- return undefined;
185
- }
186
- startWatchingBlocks(handleBlock) {
187
- if (this.unWatch) {
188
- return;
189
- }
190
- this.unWatch = this.config.publicClient.watchBlocks({
191
- onBlock: handleBlock,
192
- onError: (error) => {
193
- this.logger.error({ error }, "error while watching blocks");
194
- },
195
- emitMissed: false,
196
- includeTransactions: false,
197
- pollingInterval: this.config.pollingInterval
198
- });
199
- this.logger.debug("started watching blocks");
200
- }
201
- stopWatchingBlocks() {
202
- if (this.unWatch) {
203
- this.logger.debug("stopped watching blocks");
204
- this.unWatch();
205
- this.unWatch = undefined;
206
- }
207
- }
208
- // update the current status of the bundling transaction/s
209
- async refreshTransactionStatus(transactionInfo) {
210
- const { transactionHash: currentTxhash, bundle, previousTransactionHashes } = transactionInfo;
211
- const { userOps, entryPoint } = bundle;
212
- const txHashesToCheck = [currentTxhash, ...previousTransactionHashes];
213
- const transactionDetails = await Promise.all(txHashesToCheck.map(async (transactionHash) => ({
214
- transactionHash,
215
- ...(await (0, utils_1.getBundleStatus)({
216
- transactionHash,
217
- bundle: transactionInfo.bundle,
218
- publicClient: this.config.publicClient,
219
- logger: this.logger
220
- }))
221
- })));
222
- // first check if bundling txs returns status "mined", if not, check for reverted
223
- const mined = transactionDetails.find(({ bundlingStatus }) => bundlingStatus.status === "included");
224
- const reverted = transactionDetails.find(({ bundlingStatus }) => bundlingStatus.status === "reverted");
225
- const finalizedTransaction = mined ?? reverted;
226
- if (!finalizedTransaction) {
227
- return;
228
- }
229
- const { bundlingStatus, transactionHash, blockNumber } = finalizedTransaction;
230
- // TODO: there has to be a better way of solving onchain AA95 errors.
231
- if (bundlingStatus.status === "reverted" && bundlingStatus.isAA95) {
232
- // resubmit with more gas when bundler encounters AA95
233
- transactionInfo.transactionRequest.gas = (0, utils_1.scaleBigIntByPercent)(transactionInfo.transactionRequest.gas, this.config.aa95GasMultiplier);
234
- transactionInfo.transactionRequest.nonce += 1;
235
- await this.replaceTransaction(transactionInfo, "AA95");
236
- return;
237
- }
238
- // Free executor if tx landed onchain
239
- if (bundlingStatus.status !== "not_found") {
240
- await this.senderManager.markWalletProcessed(transactionInfo.executor);
241
- }
242
- if (bundlingStatus.status === "included") {
243
- const { userOperationDetails } = bundlingStatus;
244
- await this.markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails);
245
- }
246
- if (bundlingStatus.status === "reverted") {
247
- await Promise.all(userOps.map(async (userOpInfo) => {
248
- const { userOpHash } = userOpInfo;
249
- await this.checkFrontrun({
250
- entryPoint,
251
- userOpHash,
252
- transactionHash,
253
- blockNumber
254
- });
255
- }));
256
- await this.removeSubmitted(entryPoint, userOps);
257
- }
258
- }
259
- async checkFrontrun({ userOpHash, entryPoint, transactionHash, blockNumber }) {
260
- const unwatch = this.config.publicClient.watchBlockNumber({
261
- onBlockNumber: async (currentBlockNumber) => {
262
- if (currentBlockNumber > blockNumber + 1n) {
263
- try {
264
- const userOperationReceipt = await this.getUserOperationReceipt(userOpHash);
265
- if (userOperationReceipt) {
266
- const transactionHash = userOperationReceipt.receipt.transactionHash;
267
- const blockNumber = userOperationReceipt.receipt.blockNumber;
268
- await this.mempool.removeSubmitted({
269
- entryPoint,
270
- userOpHash
271
- });
272
- await this.monitor.setUserOperationStatus(userOpHash, {
273
- status: "included",
274
- transactionHash
275
- });
276
- await this.eventManager.emitFrontranOnChain(userOpHash, transactionHash, blockNumber);
277
- this.logger.info({
278
- userOpHash,
279
- transactionHash
280
- }, "user op frontrun onchain");
281
- this.metrics.userOperationsOnChain
282
- .labels({ status: "frontran" })
283
- .inc(1);
284
- }
285
- else {
286
- await this.monitor.setUserOperationStatus(userOpHash, {
287
- status: "failed",
288
- transactionHash
289
- });
290
- await this.eventManager.emitFailedOnChain(userOpHash, transactionHash, blockNumber);
291
- this.logger.info({
292
- userOpHash,
293
- transactionHash
294
- }, "user op failed onchain");
295
- this.metrics.userOperationsOnChain
296
- .labels({ status: "reverted" })
297
- .inc(1);
298
- }
299
- }
300
- catch (error) {
301
- this.logger.error({
302
- userOpHash,
303
- transactionHash,
304
- error
305
- }, "Error checking frontrun status");
306
- // Still mark as failed since we couldn't verify inclusion
307
- await this.monitor.setUserOperationStatus(userOpHash, {
308
- status: "failed",
309
- transactionHash
310
- });
311
- }
312
- unwatch();
313
- }
314
- }
315
- });
316
- }
317
- async getUserOperationReceipt(userOperationHash) {
318
- const userOperationEventAbiItem = (0, viem_1.getAbiItem)({
319
- abi: types_1.EntryPointV06Abi,
320
- name: "UserOperationEvent"
321
- });
322
- let fromBlock = undefined;
323
- let toBlock = undefined;
324
- if (this.config.maxBlockRange !== undefined) {
325
- const latestBlock = await this.config.publicClient.getBlockNumber();
326
- fromBlock = latestBlock - BigInt(this.config.maxBlockRange);
327
- if (fromBlock < 0n) {
328
- fromBlock = 0n;
329
- }
330
- toBlock = "latest";
331
- }
332
- const filterResult = await this.config.publicClient.getLogs({
333
- address: this.config.entrypoints,
334
- event: userOperationEventAbiItem,
335
- fromBlock,
336
- toBlock,
337
- args: {
338
- userOpHash: userOperationHash
339
- }
340
- });
341
- this.logger.debug({
342
- filterResult: filterResult.length,
343
- userOperationEvent: filterResult.length === 0
344
- ? undefined
345
- : filterResult[0].transactionHash
346
- }, "filter result length");
347
- if (filterResult.length === 0) {
348
- return null;
349
- }
350
- const userOperationEvent = filterResult[0];
351
- // throw if any of the members of userOperationEvent are undefined
352
- if (userOperationEvent.args.actualGasCost === undefined ||
353
- userOperationEvent.args.sender === undefined ||
354
- userOperationEvent.args.nonce === undefined ||
355
- userOperationEvent.args.userOpHash === undefined ||
356
- userOperationEvent.args.success === undefined ||
357
- userOperationEvent.args.paymaster === undefined ||
358
- userOperationEvent.args.actualGasUsed === undefined) {
359
- throw new Error("userOperationEvent has undefined members");
360
- }
361
- const txHash = userOperationEvent.transactionHash;
362
- if (txHash === null) {
363
- // transaction pending
364
- return null;
365
- }
366
- const getTransactionReceipt = async (txHash) => {
367
- while (true) {
368
- try {
369
- const transactionReceipt = await this.config.publicClient.getTransactionReceipt({
370
- hash: txHash
371
- });
372
- let effectiveGasPrice = transactionReceipt.effectiveGasPrice ??
373
- transactionReceipt.gasPrice ??
374
- undefined;
375
- if (effectiveGasPrice === undefined) {
376
- const tx = await this.config.publicClient.getTransaction({
377
- hash: txHash
378
- });
379
- effectiveGasPrice = tx.gasPrice ?? undefined;
380
- }
381
- if (effectiveGasPrice) {
382
- transactionReceipt.effectiveGasPrice = effectiveGasPrice;
383
- }
384
- return transactionReceipt;
385
- }
386
- catch (e) {
387
- if (e instanceof viem_1.TransactionReceiptNotFoundError) {
388
- continue;
389
- }
390
- throw e;
391
- }
392
- }
393
- };
394
- const receipt = await getTransactionReceipt(txHash);
395
- const logs = receipt.logs;
396
- if (logs.some((log) => log.blockHash === null ||
397
- log.blockNumber === null ||
398
- log.transactionIndex === null ||
399
- log.transactionHash === null ||
400
- log.logIndex === null ||
401
- log.topics.length === 0)) {
402
- // transaction pending
403
- return null;
404
- }
405
- const userOperationReceipt = (0, utils_1.parseUserOperationReceipt)(userOperationHash, receipt);
406
- return userOperationReceipt;
407
- }
408
- async handleBlock(block) {
409
- if (this.currentlyHandlingBlock) {
410
- return;
411
- }
412
- this.currentlyHandlingBlock = true;
413
- this.logger.debug({ blockNumber: block.number }, "handling block");
414
- const dumpSubmittedEntries = async () => {
415
- const submittedEntries = [];
416
- for (const entryPoint of this.config.entrypoints) {
417
- const entries = await this.mempool.dumpSubmittedOps(entryPoint);
418
- submittedEntries.push(...entries);
419
- }
420
- return submittedEntries;
421
- };
422
- const submittedEntries = await dumpSubmittedEntries();
423
- if (submittedEntries.length === 0) {
424
- this.stopWatchingBlocks();
425
- this.currentlyHandlingBlock = false;
426
- return;
427
- }
428
- // refresh op statuses
429
- const ops = await dumpSubmittedEntries();
430
- const txs = getTransactionsFromUserOperationEntries(ops);
431
- await Promise.all(txs.map((txInfo) => this.refreshTransactionStatus(txInfo)));
432
- // for all still not included check if needs to be replaced (based on gas price)
433
- const gasPriceParameters = await this.gasPriceManager
434
- .tryGetNetworkGasPrice()
435
- .catch(() => ({
436
- maxFeePerGas: 0n,
437
- maxPriorityFeePerGas: 0n
438
- }));
439
- const transactionInfos = getTransactionsFromUserOperationEntries(await dumpSubmittedEntries());
440
- await Promise.all(transactionInfos.map(async (txInfo) => {
441
- const { transactionRequest } = txInfo;
442
- const { maxFeePerGas, maxPriorityFeePerGas } = transactionRequest;
443
- const isMaxFeeTooLow = maxFeePerGas < gasPriceParameters.maxFeePerGas;
444
- const isPriorityFeeTooLow = maxPriorityFeePerGas <
445
- gasPriceParameters.maxPriorityFeePerGas;
446
- const isStuck = Date.now() - txInfo.lastReplaced >
447
- this.config.resubmitStuckTimeout;
448
- if (isMaxFeeTooLow || isPriorityFeeTooLow) {
449
- await this.replaceTransaction(txInfo, "gas_price");
450
- return;
451
- }
452
- if (isStuck) {
453
- await this.replaceTransaction(txInfo, "stuck");
454
- return;
455
- }
456
- }));
457
- this.currentlyHandlingBlock = false;
458
- }
459
- async replaceTransaction(txInfo, reason) {
460
- // Setup vars
461
- const { bundle, executor, transactionRequest, transactionHash: oldTxHash } = txInfo;
462
- const { userOps, entryPoint } = bundle;
463
- const gasPriceParameters = await this.gasPriceManager
464
- .tryGetNetworkGasPrice()
465
- .catch((_) => {
466
- return undefined;
467
- });
468
- if (!gasPriceParameters) {
469
- const rejectedUserOps = userOps.map((userOpInfo) => ({
470
- ...userOpInfo,
471
- reason: "Failed to get network gas price during replacement"
472
- }));
473
- await this.failedToReplaceTransaction({
474
- entryPoint,
475
- rejectedUserOps,
476
- oldTxHash,
477
- reason: "Failed to get network gas price during replacement"
478
- });
479
- // Free executor if failed to get initial params.
480
- await this.senderManager.markWalletProcessed(txInfo.executor);
481
- return;
482
- }
483
- const bundleResult = await this.executor.bundle({
484
- executor: executor,
485
- userOpBundle: bundle,
486
- nonce: transactionRequest.nonce,
487
- gasPriceParams: {
488
- maxFeePerGas: (0, utils_1.scaleBigIntByPercent)(gasPriceParameters.maxFeePerGas, 115n),
489
- maxPriorityFeePerGas: (0, utils_1.scaleBigIntByPercent)(gasPriceParameters.maxPriorityFeePerGas, 115n)
490
- },
491
- gasLimitSuggestion: transactionRequest.gas,
492
- isReplacementTx: true
493
- });
494
- // Free wallet and return if potentially included too many times.
495
- if (txInfo.timesPotentiallyIncluded >= 3) {
496
- this.removeSubmitted(entryPoint, bundle.userOps);
497
- this.logger.warn({
498
- oldTxHash,
499
- userOps: (0, utils_2.getUserOpHashes)(bundleResult.rejectedUserOps)
500
- }, "transaction potentially already included too many times, removing");
501
- await this.senderManager.markWalletProcessed(txInfo.executor);
502
- return;
503
- }
504
- // Free wallet if no bundle was sent or potentially included.
505
- if (bundleResult.status !== "bundle_success") {
506
- await this.senderManager.markWalletProcessed(txInfo.executor);
507
- }
508
- // Check if the transaction is potentially included.
509
- const nonceTooLow = bundleResult.status === "bundle_submission_failure" &&
510
- bundleResult.reason instanceof viem_1.NonceTooLowError;
511
- const allOpsFailedSimulation = bundleResult.status === "all_ops_failed_simulation" &&
512
- bundleResult.rejectedUserOps.every((op) => op.reason === "AA25 invalid account nonce" ||
513
- op.reason === "AA10 sender already constructed");
514
- const potentiallyIncluded = nonceTooLow || allOpsFailedSimulation;
515
- // log metrics
516
- const replaceStatus = (() => {
517
- switch (true) {
518
- case potentiallyIncluded:
519
- return "potentially_already_included";
520
- case bundleResult?.status === "bundle_success":
521
- return "replaced";
522
- default:
523
- return "failed";
524
- }
525
- })();
526
- this.metrics.replacedTransactions
527
- .labels({ reason, status: replaceStatus })
528
- .inc();
529
- if (potentiallyIncluded) {
530
- this.logger.info({
531
- oldTxHash,
532
- userOpHashes: (0, utils_2.getUserOpHashes)(bundleResult.rejectedUserOps)
533
- }, "transaction potentially already included");
534
- txInfo.timesPotentiallyIncluded += 1;
535
- return;
536
- }
537
- if (bundleResult.status === "unhandled_simulation_failure") {
538
- const { rejectedUserOps, reason } = bundleResult;
539
- await this.failedToReplaceTransaction({
540
- entryPoint,
541
- oldTxHash,
542
- reason,
543
- rejectedUserOps
544
- });
545
- return;
546
- }
547
- if (bundleResult.status === "all_ops_failed_simulation") {
548
- await this.failedToReplaceTransaction({
549
- entryPoint,
550
- oldTxHash,
551
- reason: "all ops failed simulation",
552
- rejectedUserOps: bundleResult.rejectedUserOps
553
- });
554
- return;
555
- }
556
- if (bundleResult.status === "bundle_submission_failure") {
557
- const { reason, rejectedUserOps } = bundleResult;
558
- const submissionFailureReason = reason instanceof abitype_1.BaseError ? reason.name : "INTERNAL FAILURE";
559
- await this.failedToReplaceTransaction({
560
- oldTxHash,
561
- rejectedUserOps,
562
- reason: submissionFailureReason,
563
- entryPoint
564
- });
565
- return;
566
- }
567
- const { rejectedUserOps, userOpsBundled, transactionRequest: newTransactionRequest, transactionHash: newTxHash } = bundleResult;
568
- const userOpsReplaced = userOpsBundled;
569
- const newTxInfo = {
570
- ...txInfo,
571
- transactionRequest: newTransactionRequest,
572
- transactionHash: newTxHash,
573
- previousTransactionHashes: [
574
- txInfo.transactionHash,
575
- ...txInfo.previousTransactionHashes
576
- ],
577
- lastReplaced: Date.now(),
578
- bundle: {
579
- ...txInfo.bundle,
580
- userOps: userOpsReplaced
581
- }
582
- };
583
- await Promise.all(userOpsReplaced.map(async (userOpInfo) => {
584
- await this.mempool.replaceSubmitted({
585
- userOpInfo,
586
- transactionInfo: newTxInfo
587
- });
588
- }));
589
- // Drop all userOperations that were rejected during simulation.
590
- await this.dropUserOps(entryPoint, rejectedUserOps);
591
- this.logger.info({
592
- oldTxHash,
593
- newTxHash,
594
- reason
595
- }, "replaced transaction");
596
- return;
597
- }
598
- async markUserOperationsAsSubmitted(userOpInfos, transactionInfo) {
599
- await Promise.all(userOpInfos.map(async (userOpInfo) => {
600
- const { userOpHash } = userOpInfo;
601
- await this.mempool.markSubmitted({
602
- userOpHash,
603
- transactionInfo
604
- });
605
- this.startWatchingBlocks(this.handleBlock.bind(this));
606
- this.metrics.userOperationsSubmitted
607
- .labels({ status: "success" })
608
- .inc();
609
- }));
610
- }
611
- async resubmitUserOperations(userOps, entryPoint, reason) {
612
- await Promise.all(userOps.map(async (userOpInfo) => {
613
- const { userOpHash, userOp } = userOpInfo;
614
- this.logger.warn({
615
- userOpHash,
616
- reason
617
- }, "resubmitting user operation");
618
- await this.mempool.removeProcessing({ entryPoint, userOpHash });
619
- await this.mempool.add(userOp, entryPoint);
620
- this.metrics.userOperationsResubmitted.inc();
621
- }));
622
- }
623
- async failedToReplaceTransaction({ oldTxHash, rejectedUserOps, reason, entryPoint }) {
624
- this.logger.warn({ oldTxHash, reason }, "failed to replace transaction");
625
- await this.dropUserOps(entryPoint, rejectedUserOps);
626
- }
627
- async removeSubmitted(entryPoint, userOps) {
628
- await Promise.all(userOps.map(async (userOpInfo) => {
629
- const { userOpHash } = userOpInfo;
630
- await this.mempool.removeSubmitted({ entryPoint, userOpHash });
631
- }));
632
- }
633
- async markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails) {
634
- await Promise.all(userOps.map(async (userOpInfo) => {
635
- this.metrics.userOperationsOnChain
636
- .labels({ status: "included" })
637
- .inc();
638
- const { userOpHash, userOp } = userOpInfo;
639
- const opDetails = userOperationDetails[userOpHash];
640
- const firstSubmitted = userOpInfo.addedToMempool;
641
- this.metrics.userOperationInclusionDuration.observe((Date.now() - firstSubmitted) / 1000);
642
- await this.mempool.removeSubmitted({ entryPoint, userOpHash });
643
- this.reputationManager.updateUserOperationIncludedStatus(userOp, entryPoint, opDetails.accountDeployed);
644
- if (opDetails.status === "succesful") {
645
- await this.eventManager.emitIncludedOnChain(userOpHash, transactionHash, blockNumber);
646
- }
647
- else {
648
- await this.eventManager.emitExecutionRevertedOnChain(userOpHash, transactionHash, opDetails.revertReason || "0x", blockNumber);
649
- }
650
- await this.monitor.setUserOperationStatus(userOpHash, {
651
- status: "included",
652
- transactionHash
653
- });
654
- this.logger.info({
655
- opHash: userOpHash,
656
- transactionHash
657
- }, "user op included");
658
- }));
659
- }
660
- async dropUserOps(entryPoint, rejectedUserOps) {
661
- await Promise.all(rejectedUserOps.map(async (rejectedUserOp) => {
662
- const { userOp, reason, userOpHash } = rejectedUserOp;
663
- await this.mempool.removeProcessing({ entryPoint, userOpHash });
664
- await this.mempool.removeSubmitted({ entryPoint, userOpHash });
665
- await this.eventManager.emitDropped(userOpHash, reason, (0, utils_1.getAAError)(reason));
666
- await this.monitor.setUserOperationStatus(userOpHash, {
667
- status: "rejected",
668
- transactionHash: null
669
- });
670
- this.logger.warn({
671
- userOperation: JSON.stringify(userOp, (_k, v) => typeof v === "bigint" ? v.toString() : v),
672
- userOpHash,
673
- reason
674
- }, "user operation rejected");
675
- this.metrics.userOperationsSubmitted
676
- .labels({ status: "failed" })
677
- .inc();
678
- }));
679
- }
680
- }
681
- exports.ExecutorManager = ExecutorManager;
682
- //# sourceMappingURL=executorManager.js.map