@pimlico/alto 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/338795fc743ca612.json +1 -0
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/{880955d5786bfdae.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -1
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/alto.js +13 -6
  80. package/esm/cli/alto.js.map +1 -1
  81. package/esm/cli/config/bundler.d.ts +190 -148
  82. package/esm/cli/config/bundler.js +72 -83
  83. package/esm/cli/config/bundler.js.map +1 -1
  84. package/esm/cli/config/options.d.ts +2 -1
  85. package/esm/cli/config/options.js +105 -68
  86. package/esm/cli/config/options.js.map +1 -1
  87. package/esm/cli/customTransport.d.ts +3 -3
  88. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  89. package/esm/cli/deploySimulationsContract.js +41 -5
  90. package/esm/cli/deploySimulationsContract.js.map +1 -1
  91. package/esm/cli/handler.js +48 -52
  92. package/esm/cli/handler.js.map +1 -1
  93. package/esm/cli/setupServer.js +46 -47
  94. package/esm/cli/setupServer.js.map +1 -1
  95. package/esm/cli/shutDown.d.ts +20 -0
  96. package/esm/cli/shutDown.js +260 -0
  97. package/esm/cli/shutDown.js.map +1 -0
  98. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  99. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  100. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  101. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  102. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  103. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  104. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  105. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  106. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  107. package/esm/createConfig.d.ts +9 -2
  108. package/esm/createConfig.js.map +1 -1
  109. package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +38 -32
  110. package/esm/executor/{userOpMonitor.js → bundleManager.js} +127 -99
  111. package/esm/executor/bundleManager.js.map +1 -0
  112. package/esm/executor/executor.d.ts +4 -3
  113. package/esm/executor/executor.js +33 -20
  114. package/esm/executor/executor.js.map +1 -1
  115. package/esm/executor/executorManager.d.ts +17 -15
  116. package/esm/executor/executorManager.js +130 -55
  117. package/esm/executor/executorManager.js.map +1 -1
  118. package/esm/executor/filterOpsAndEstimateGas.d.ts +17 -2
  119. package/esm/executor/filterOpsAndEstimateGas.js +100 -77
  120. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  121. package/esm/executor/index.d.ts +1 -0
  122. package/esm/executor/index.js +1 -0
  123. package/esm/executor/index.js.map +1 -1
  124. package/esm/executor/senderManager/createMemorySenderManager.js +13 -0
  125. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
  126. package/esm/executor/senderManager/createRedisSenderManager.d.ts +2 -1
  127. package/esm/executor/senderManager/createRedisSenderManager.js +3 -6
  128. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  129. package/esm/executor/senderManager/flushOnStartUp.js +4 -4
  130. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
  131. package/esm/executor/senderManager/index.d.ts +1 -0
  132. package/esm/executor/senderManager/index.js +6 -2
  133. package/esm/executor/senderManager/index.js.map +1 -1
  134. package/esm/executor/senderManager/validateAndRefill.js +2 -2
  135. package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
  136. package/esm/executor/utilityWalletMonitor.d.ts +4 -4
  137. package/esm/executor/utilityWalletMonitor.js +1 -1
  138. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  139. package/esm/executor/utils.d.ts +7 -2
  140. package/esm/executor/utils.js +57 -26
  141. package/esm/executor/utils.js.map +1 -1
  142. package/esm/handlers/arbitrumGasPriceManager.d.ts +3 -2
  143. package/esm/handlers/arbitrumGasPriceManager.js +6 -2
  144. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  145. package/esm/handlers/eventManager.d.ts +9 -9
  146. package/esm/handlers/eventManager.js +59 -60
  147. package/esm/handlers/eventManager.js.map +1 -1
  148. package/esm/handlers/gasPriceManager.d.ts +8 -9
  149. package/esm/handlers/gasPriceManager.js +68 -80
  150. package/esm/handlers/gasPriceManager.js.map +1 -1
  151. package/esm/handlers/mantleGasPriceManager.d.ts +4 -4
  152. package/esm/handlers/mantleGasPriceManager.js +4 -4
  153. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  154. package/esm/handlers/optimismManager.d.ts +1 -1
  155. package/esm/handlers/optimismManager.js +1 -1
  156. package/esm/handlers/optimismManager.js.map +1 -1
  157. package/esm/mempool/index.d.ts +1 -1
  158. package/esm/mempool/index.js +1 -1
  159. package/esm/mempool/index.js.map +1 -1
  160. package/esm/mempool/mempool.d.ts +57 -22
  161. package/esm/mempool/mempool.js +180 -134
  162. package/esm/mempool/mempool.js.map +1 -1
  163. package/esm/mempool/reputationManager.d.ts +14 -14
  164. package/esm/mempool/reputationManager.js +36 -39
  165. package/esm/mempool/reputationManager.js.map +1 -1
  166. package/esm/mempool/statusManager.d.ts +20 -0
  167. package/esm/mempool/statusManager.js +143 -0
  168. package/esm/mempool/statusManager.js.map +1 -0
  169. package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
  170. package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
  171. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
  172. package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
  173. package/esm/receiptCache/createRedisReceiptCache.js +56 -0
  174. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
  175. package/esm/receiptCache/index.d.ts +11 -0
  176. package/esm/receiptCache/index.js +21 -0
  177. package/esm/receiptCache/index.js.map +1 -0
  178. package/esm/rpc/createMethodHandler.js.map +1 -1
  179. package/esm/rpc/estimation/gasEstimationHandler.d.ts +2 -4
  180. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  181. package/esm/rpc/estimation/gasEstimations06.d.ts +6 -7
  182. package/esm/rpc/estimation/gasEstimations06.js +1 -5
  183. package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
  184. package/esm/rpc/estimation/gasEstimations07.d.ts +13 -41
  185. package/esm/rpc/estimation/gasEstimations07.js +27 -34
  186. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  187. package/esm/{utils/preVerificationGasCalulator.d.ts → rpc/estimation/preVerificationGasCalculator.d.ts} +20 -6
  188. package/esm/{utils/preVerificationGasCalulator.js → rpc/estimation/preVerificationGasCalculator.js} +95 -47
  189. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
  190. package/esm/rpc/estimation/types.d.ts +4 -2
  191. package/esm/rpc/estimation/utils.d.ts +10 -8
  192. package/esm/rpc/estimation/utils.js +54 -48
  193. package/esm/rpc/estimation/utils.js.map +1 -1
  194. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  195. package/esm/rpc/methods/debug_bundler_clearReputation.js +1 -1
  196. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  197. package/esm/rpc/methods/debug_bundler_clearState.js +1 -1
  198. package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
  199. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  200. package/esm/rpc/methods/debug_bundler_dumpReputation.js +1 -1
  201. package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
  202. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  203. package/esm/rpc/methods/eth_estimateUserOperationGas.js +50 -29
  204. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  205. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  206. package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
  207. package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
  208. package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
  209. package/esm/rpc/methods/eth_sendUserOperation.d.ts +305 -1
  210. package/esm/rpc/methods/eth_sendUserOperation.js +132 -36
  211. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  212. package/esm/rpc/methods/pimlico_getUserOperationStatus.js +1 -1
  213. package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
  214. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
  215. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +15 -27
  216. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  217. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  218. package/esm/rpc/methods/pimlico_simulateAssetChange.js +14 -19
  219. package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -1
  220. package/esm/rpc/rpcHandler.d.ts +21 -22
  221. package/esm/rpc/rpcHandler.js +15 -17
  222. package/esm/rpc/rpcHandler.js.map +1 -1
  223. package/esm/rpc/server.d.ts +5 -5
  224. package/esm/rpc/server.js +15 -11
  225. package/esm/rpc/server.js.map +1 -1
  226. package/esm/rpc/validation/BundlerCollectorTracerV06.js +1 -1
  227. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  228. package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
  229. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  230. package/esm/rpc/validation/SafeValidator.d.ts +13 -14
  231. package/esm/rpc/validation/SafeValidator.js +24 -24
  232. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  233. package/esm/rpc/validation/TracerResultParserV06.d.ts +2 -2
  234. package/esm/rpc/validation/TracerResultParserV06.js +11 -11
  235. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  236. package/esm/rpc/validation/TracerResultParserV07.d.ts +2 -2
  237. package/esm/rpc/validation/TracerResultParserV07.js +13 -13
  238. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  239. package/esm/rpc/validation/UnsafeValidator.d.ts +18 -14
  240. package/esm/rpc/validation/UnsafeValidator.js +71 -40
  241. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  242. package/esm/store/createMempoolStore.d.ts +1 -1
  243. package/esm/store/createMempoolStore.js +63 -139
  244. package/esm/store/createMempoolStore.js.map +1 -1
  245. package/esm/store/index.d.ts +4 -75
  246. package/esm/store/index.js +4 -1
  247. package/esm/store/index.js.map +1 -1
  248. package/esm/store/outstanding/index.d.ts +13 -0
  249. package/esm/store/outstanding/index.js +16 -0
  250. package/esm/store/outstanding/index.js.map +1 -0
  251. package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +14 -13
  252. package/esm/store/outstanding/memory.js +263 -0
  253. package/esm/store/outstanding/memory.js.map +1 -0
  254. package/esm/store/outstanding/redis.d.ts +11 -0
  255. package/esm/store/outstanding/redis.js +229 -0
  256. package/esm/store/outstanding/redis.js.map +1 -0
  257. package/esm/store/outstanding/types.d.ts +19 -0
  258. package/esm/store/outstanding/types.js +2 -0
  259. package/esm/store/outstanding/types.js.map +1 -0
  260. package/esm/store/processing/index.d.ts +11 -0
  261. package/esm/store/processing/index.js +17 -0
  262. package/esm/store/processing/index.js.map +1 -0
  263. package/esm/store/processing/memory.d.ts +16 -0
  264. package/esm/store/processing/memory.js +58 -0
  265. package/esm/store/processing/memory.js.map +1 -0
  266. package/esm/store/processing/redis.d.ts +23 -0
  267. package/esm/store/processing/redis.js +85 -0
  268. package/esm/store/processing/redis.js.map +1 -0
  269. package/esm/store/processing/types.d.ts +10 -0
  270. package/esm/store/processing/types.js +2 -0
  271. package/esm/store/processing/types.js.map +1 -0
  272. package/esm/store/types.d.ts +50 -0
  273. package/esm/store/types.js +2 -0
  274. package/esm/store/types.js.map +1 -0
  275. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  276. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  277. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  278. package/esm/types/gasPrice.js +0 -18
  279. package/esm/types/gasPrice.js.map +1 -1
  280. package/esm/types/interfaces.d.ts +15 -10
  281. package/esm/types/mempool.d.ts +3 -0
  282. package/esm/types/schemas.d.ts +13174 -4732
  283. package/esm/types/schemas.js +113 -25
  284. package/esm/types/schemas.js.map +1 -1
  285. package/esm/types/utils.d.ts +2 -5
  286. package/esm/types/utils.js +16 -18
  287. package/esm/types/utils.js.map +1 -1
  288. package/esm/types/validation.d.ts +7646 -6912
  289. package/esm/types/validation.js +122 -152
  290. package/esm/types/validation.js.map +1 -1
  291. package/esm/utils/eip7702.d.ts +2 -1
  292. package/esm/utils/eip7702.js +14 -8
  293. package/esm/utils/eip7702.js.map +1 -1
  294. package/esm/utils/entryPointOverrides.js +18 -4
  295. package/esm/utils/entryPointOverrides.js.map +1 -1
  296. package/esm/utils/helpers.d.ts +2 -1
  297. package/esm/utils/helpers.js +30 -11
  298. package/esm/utils/helpers.js.map +1 -1
  299. package/esm/utils/index.d.ts +0 -1
  300. package/esm/utils/index.js +0 -1
  301. package/esm/utils/index.js.map +1 -1
  302. package/esm/utils/metrics.d.ts +2 -1
  303. package/esm/utils/metrics.js +15 -8
  304. package/esm/utils/metrics.js.map +1 -1
  305. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +8 -9
  306. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
  307. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +24 -2
  308. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +85 -64
  309. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  310. package/esm/utils/minMaxQueue/index.d.ts +2 -2
  311. package/esm/utils/minMaxQueue/index.js +4 -3
  312. package/esm/utils/minMaxQueue/index.js.map +1 -1
  313. package/esm/utils/rpc-reply.d.ts +3 -3
  314. package/esm/utils/rpc-reply.js.map +1 -1
  315. package/esm/utils/toViemStateOverrides.js +7 -7
  316. package/esm/utils/toViemStateOverrides.js.map +1 -1
  317. package/esm/utils/userop.d.ts +87 -55
  318. package/esm/utils/userop.js +138 -248
  319. package/esm/utils/userop.js.map +1 -1
  320. package/package.json +4 -2
  321. package/contracts/build-info/7710b5a048396e70.json +0 -1
  322. package/esm/executor/userOpMonitor.js.map +0 -1
  323. package/esm/mempool/monitoring.d.ts +0 -15
  324. package/esm/mempool/monitoring.js +0 -118
  325. package/esm/mempool/monitoring.js.map +0 -1
  326. package/esm/store/createMemoryOutstandingStore.js +0 -240
  327. package/esm/store/createMemoryOutstandingStore.js.map +0 -1
  328. package/esm/store/createRedisOutstandingStore.d.ts +0 -27
  329. package/esm/store/createRedisOutstandingStore.js +0 -344
  330. package/esm/store/createRedisOutstandingStore.js.map +0 -1
  331. package/esm/store/createRedisStore.d.ts +0 -9
  332. package/esm/store/createRedisStore.js +0 -131
  333. package/esm/store/createRedisStore.js.map +0 -1
  334. package/esm/store/createStore.d.ts +0 -6
  335. package/esm/store/createStore.js +0 -66
  336. package/esm/store/createStore.js.map +0 -1
  337. package/esm/utils/preVerificationGasCalulator.js.map +0 -1
@@ -15,7 +15,7 @@ export class Executor {
15
15
  this.eventManager = eventManager;
16
16
  }
17
17
  getBundleGasPrice({ bundle, networkGasPrice, networkBaseFee, totalBeneficiaryFees, bundleGasUsed }) {
18
- const { bundlerInitialCommission, resubmitMultiplierCeiling, legacyTransactions, chainType, arbitrumGasBidMultiplier } = this.config;
18
+ const { bundlerInitialCommission, resubmitMultiplierCeiling, legacyTransactions, chainType, arbitrumBaseFeeMultiplier } = this.config;
19
19
  // Arbtirum's sequencer orders based on first come first serve.
20
20
  // Because of this, maxFee/maxPriorityFee is ignored and the bundler *always* pays the network's baseFee.
21
21
  // The bundler need to set a large enough gasBid to account for network baseFee fluctuations.
@@ -23,8 +23,8 @@ export class Executor {
23
23
  if (chainType === "arbitrum") {
24
24
  const scaledBaseFee = scaleBigIntByPercent(networkBaseFee, 100n + 20n * BigInt(bundle.submissionAttempts));
25
25
  return {
26
- maxFeePerGas: scaledBaseFee * arbitrumGasBidMultiplier,
27
- maxPriorityFeePerGas: scaledBaseFee * arbitrumGasBidMultiplier
26
+ maxFeePerGas: scaleBigIntByPercent(scaledBaseFee, arbitrumBaseFeeMultiplier),
27
+ maxPriorityFeePerGas: scaleBigIntByPercent(scaledBaseFee, arbitrumBaseFeeMultiplier)
28
28
  };
29
29
  }
30
30
  // Increase network gas price for resubmissions to improve tx inclusion
@@ -63,8 +63,14 @@ export class Executor {
63
63
  maxPriorityFeePerGas: networkMaxPriorityFeePerGas
64
64
  };
65
65
  }
66
- async sendHandleOpsTransaction({ txParam, gasOpts }) {
67
- const { executorGasMultiplier, sendHandleOpsRetryCount, transactionUnderpricedMultiplier, walletClient, publicClient } = this.config;
66
+ async sendHandleOpsTransaction({ txParam, gasOpts, childLogger, submissionAttempts }) {
67
+ const { executorGasMultiplier, sendHandleOpsRetryCount, transactionUnderpricedMultiplier, walletClients, publicClient, privateEndpointSubmissionAttempts } = this.config;
68
+ // Use private wallet for configured number of attempts if available, then switch to public
69
+ const usePrivateEndpoint = walletClients.private &&
70
+ submissionAttempts < privateEndpointSubmissionAttempts;
71
+ const walletClient = usePrivateEndpoint
72
+ ? walletClients.private
73
+ : walletClients.public;
68
74
  const { entryPoint, userOps, account, gas, nonce } = txParam;
69
75
  const handleOpsCalldata = encodeHandleOpsCalldata({
70
76
  userOps: userOps.map(({ userOp }) => userOp),
@@ -93,12 +99,22 @@ export class Executor {
93
99
  multiple: this.config.gasLimitRoundingMultiple
94
100
  });
95
101
  transactionHash = await walletClient.sendTransaction(request);
102
+ childLogger.info({
103
+ transactionRequest: {
104
+ executor: request.account.address,
105
+ maxFeePerGas: request.maxFeePerGas,
106
+ maxPriorityFeePerGas: request.maxPriorityFeePerGas,
107
+ nonce: request.nonce
108
+ },
109
+ txHash: transactionHash,
110
+ isPrivate: usePrivateEndpoint
111
+ }, "submitted bundle transaction");
96
112
  break;
97
113
  }
98
114
  catch (e) {
99
115
  if (e instanceof BaseError) {
100
116
  if (isTransactionUnderpricedError(e)) {
101
- this.logger.warn("Transaction underpriced, retrying");
117
+ childLogger.warn("Transaction underpriced, retrying");
102
118
  request.nonce = await publicClient.getTransactionCount({
103
119
  address: account.address,
104
120
  blockTag: "latest"
@@ -115,7 +131,7 @@ export class Executor {
115
131
  }
116
132
  }
117
133
  if (e instanceof FeeCapTooLowError) {
118
- this.logger.warn("max fee < basefee, retrying");
134
+ childLogger.warn("max fee < basefee, retrying");
119
135
  if (request.gasPrice) {
120
136
  request.gasPrice = scaleBigIntByPercent(request.gasPrice, 125n);
121
137
  }
@@ -130,21 +146,21 @@ export class Executor {
130
146
  if (error instanceof TransactionExecutionError) {
131
147
  const cause = error.cause;
132
148
  if (cause instanceof NonceTooLowError) {
133
- this.logger.warn("Nonce too low, retrying");
149
+ childLogger.warn("Nonce too low, retrying");
134
150
  request.nonce = await publicClient.getTransactionCount({
135
151
  address: request.from,
136
152
  blockTag: "latest"
137
153
  });
138
154
  }
139
155
  if (cause instanceof NonceTooHighError) {
140
- this.logger.warn("Nonce too high, retrying");
156
+ childLogger.warn("Nonce too high, retrying");
141
157
  request.nonce = await publicClient.getTransactionCount({
142
158
  address: request.from,
143
159
  blockTag: "latest"
144
160
  });
145
161
  }
146
162
  if (cause instanceof IntrinsicGasTooLowError) {
147
- this.logger.warn("Intrinsic gas too low, retrying");
163
+ childLogger.warn("Intrinsic gas too low, retrying");
148
164
  request.gas = scaleBigIntByPercent(request.gas, 150n);
149
165
  }
150
166
  }
@@ -162,13 +178,13 @@ export class Executor {
162
178
  }
163
179
  async bundle({ executor, userOpBundle, networkGasPrice, networkBaseFee, nonce }) {
164
180
  const { entryPoint, userOps } = userOpBundle;
165
- const isReplacementTx = userOpBundle.submissionAttempts > 0;
166
181
  let childLogger = this.logger.child({
167
- isReplacementTx,
182
+ submissionAttempts: userOpBundle.submissionAttempts,
168
183
  userOperations: getUserOpHashes(userOps),
169
184
  entryPoint
170
185
  });
171
186
  const filterOpsResult = await filterOpsAndEstimateGas({
187
+ checkEip7702AuthNonces: false, // Ignore EIP-7702 auth nonce check to save latency.
172
188
  networkBaseFee,
173
189
  userOpBundle,
174
190
  config: this.config,
@@ -195,8 +211,8 @@ export class Executor {
195
211
  const { userOpsToBundle, rejectedUserOps, bundleGasUsed, bundleGasLimit, totalBeneficiaryFees } = filterOpsResult;
196
212
  // Update child logger with userOperations being sent for bundling.
197
213
  childLogger = this.logger.child({
198
- isReplacementTx,
199
- userOperations: getUserOpHashes(userOpsToBundle),
214
+ userOps: getUserOpHashes(userOpsToBundle),
215
+ submissionAttempts: userOpBundle.submissionAttempts,
200
216
  entryPoint
201
217
  });
202
218
  const { maxFeePerGas, maxPriorityFeePerGas } = this.getBundleGasPrice({
@@ -240,7 +256,9 @@ export class Executor {
240
256
  userOps: userOpsToBundle,
241
257
  entryPoint
242
258
  },
243
- gasOpts
259
+ childLogger,
260
+ gasOpts,
261
+ submissionAttempts: userOpBundle.submissionAttempts
244
262
  });
245
263
  this.eventManager.emitSubmitted({
246
264
  userOpHashes: getUserOpHashes(userOpsToBundle),
@@ -298,11 +316,6 @@ export class Executor {
298
316
  nonce
299
317
  }
300
318
  };
301
- childLogger.info({
302
- transactionRequest: bundleResult.transactionRequest,
303
- txHash: transactionHash,
304
- opHashes: getUserOpHashes(userOpsBundled)
305
- }, "submitted bundle transaction");
306
319
  return bundleResult;
307
320
  }
308
321
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,aAAa,EACb,oBAAoB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAEH,SAAS,EACT,8BAA8B,EAC9B,iBAAiB,EAEjB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,MAAM,CAAA;AAIb,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAChC,MAAM,SAAS,CAAA;AA+BhB,MAAM,OAAO,QAAQ;IACjB,MAAM,CAAY;IAClB,MAAM,CAAQ;IACd,YAAY,CAAc;IAE1B,YAAY,EACR,MAAM,EACN,YAAY,EAIf;QACG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAC1B,EAAE,MAAM,EAAE,UAAU,EAAE,EACtB;YACI,KAAK,EAAE,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ;SACpD,CACJ,CAAA;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,iBAAiB,CAAC,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,aAAa,EAOhB;QACG,MAAM,EACF,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,SAAS,EACT,wBAAwB,EAC3B,GAAG,IAAI,CAAC,MAAM,CAAA;QAEf,+DAA+D;QAC/D,yGAAyG;QACzG,6FAA6F;QAC7F,wCAAwC;QACxC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,oBAAoB,CACtC,cAAc,EACd,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACjD,CAAA;YAED,OAAO;gBACH,YAAY,EAAE,aAAa,GAAG,wBAAwB;gBACtD,oBAAoB,EAAE,aAAa,GAAG,wBAAwB;aACjE,CAAA;QACL,CAAC;QAED,uEAAuE;QACvE,IAAI,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,GAAG;YACrD,eAAe,CAAC,YAAY;YAC5B,eAAe,CAAC,oBAAoB;SACvC,CAAA;QAED,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAA;YAEjE,mBAAmB,GAAG,oBAAoB,CACtC,mBAAmB,EACnB,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CACnD,CAAA;YACD,2BAA2B,GAAG,oBAAoB,CAC9C,2BAA2B,EAC3B,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CACnD,CAAA;QACL,CAAC;QAED,qFAAqF;QACrF,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,aAAa,CAAA;QAE9D,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,iBAAiB,GACnB,wBAAwB,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACtE,MAAM,cAAc,GAAG,IAAI,GAAG,iBAAiB,CAAA;QAE/C,MAAM,gBAAgB,GAAG,oBAAoB,CACzC,iBAAiB,EACjB,cAAc,CACjB,CAAA;QAED,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;YACjE,OAAO;gBACH,YAAY,EAAE,QAAQ;gBACtB,oBAAoB,EAAE,QAAQ;aACjC,CAAA;QACL,CAAC;QAED,MAAM,iBAAiB,GAAG,SAAS,CAC/B,mBAAmB,EACnB,cAAc,GAAG,2BAA2B,CAC/C,CAAA;QAED,IAAI,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;YACvC,OAAO;gBACH,YAAY,EAAE,gBAAgB;gBAC9B,oBAAoB,EAAE,gBAAgB;aACzC,CAAA;QACL,CAAC;QAED,OAAO;YACH,YAAY,EAAE,mBAAmB;YACjC,oBAAoB,EAAE,2BAA2B;SACpD,CAAA;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAC3B,OAAO,EACP,OAAO,EAIV;QACG,MAAM,EACF,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,YAAY,EACZ,YAAY,EACf,GAAG,IAAI,CAAC,MAAM,CAAA;QAEf,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;QAE5D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YAC5C,WAAW,EAAE,OAAO,CAAC,OAAO;SAC/B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG;YACZ,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,GAAG;YACH,OAAO;YACP,KAAK;YACL,GAAG,OAAO;SACb,CAAA;QAED,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;QAEtE,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,eAAgC,CAAA;QACpC,MAAM,WAAW,GAAG,uBAAuB,CAAA;QAE3C,iFAAiF;QACjF,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,wCAAwC;gBACxC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,GAAG;oBAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;iBACjD,CAAC,CAAA;gBAEF,eAAe,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBAE7D,MAAK;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;oBACzB,IAAI,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;wBAErD,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;wBAEF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;4BACvB,OAAO,CAAC,YAAY,GAAG,oBAAoB,CACvC,OAAO,CAAC,YAAY,EACpB,gCAAgC,CACnC,CAAA;wBACL,CAAC;wBAED,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;4BAC/B,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAC/C,OAAO,CAAC,oBAAoB,EAC5B,gCAAgC,CACnC,CAAA;wBACL,CAAC;wBAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACnB,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,QAAQ,EAChB,gCAAgC,CACnC,CAAA;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,YAAY,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;oBAE/C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACnB,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,QAAQ,EAChB,IAAI,CACP,CAAA;oBACL,CAAC;oBAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBACvB,OAAO,CAAC,YAAY,GAAG,oBAAoB,CACvC,OAAO,CAAC,YAAY,EACpB,IAAI,CACP,CAAA;oBACL,CAAC;oBAED,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;wBAC/B,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAC/C,OAAO,CAAC,oBAAoB,EAC5B,IAAI,CACP,CAAA;oBACL,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,CAA6B,CAAA;gBAE3C,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;oBAEzB,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;wBAC3C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;wBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;wBAC5C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;wBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;wBACnD,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;oBACzD,CAAC;gBACL,CAAC;gBAED,QAAQ,EAAE,CAAA;gBAEV,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,eAAsB,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,KAAK,EAOR;QACG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAA;QAE5C,MAAM,eAAe,GAAG,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC3D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC;YACxC,UAAU;SACb,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC;YAClD,cAAc;YACd,YAAY;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,WAAW;SACtB,CAAC,CAAA;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YAC/C,WAAW,CAAC,KAAK,CACb,2DAA2D,CAC9D,CAAA;YACD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,kBAAkB;gBAC1B,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,cAAc,EAAE,EAAE;aACrB,CAAA;QACL,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YACvD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,kBAAkB;gBAC1B,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,cAAc,EAAE,EAAE;aACrB,CAAA;QACL,CAAC;QAED,MAAM,EACF,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACvB,GAAG,eAAe,CAAA;QAEnB,mEAAmE;QACnE,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,eAAe,CAAC;YAChD,UAAU;SACb,CAAC,CAAA;QAEF,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAClE,MAAM,EAAE,YAAY;YACpB,eAAe;YACf,cAAc;YACd,oBAAoB;YACpB,aAAa;SAChB,CAAC,CAAA;QAEF,IAAI,eAA0B,CAAA;QAC9B,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;YAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;YAE/D,IAAI,OAA2B,CAAA;YAC/B,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,GAAG;oBACN,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,YAAY;iBACzB,CAAA;YACL,CAAC;iBAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC3B,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;oBACpB,iBAAiB;iBACpB,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;iBACvB,CAAA;YACL,CAAC;YAED,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC;gBAClD,OAAO,EAAE;oBACL,OAAO,EAAE,QAAQ;oBACjB,KAAK;oBACL,GAAG,EAAE,cAAc;oBACnB,OAAO,EAAE,eAAe;oBACxB,UAAU;iBACb;gBACD,OAAO;aACV,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC5B,YAAY,EAAE,eAAe,CAAC,eAAe,CAAC;gBAC9C,eAAe;aAClB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,eAAe,CAAA;YAE5D,MAAM,oBAAoB,GACtB,GAAG,YAAY,8BAA8B;gBAC7C,GAAG,YAAY,yBAAyB,CAAA;YAE5C,0CAA0C;YAC1C,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACxB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;gBAC5B,WAAW,CAAC,KAAK,CACb,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAC5B,6CAA6C,CAChD,CAAA;gBACD,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,eAAe;oBACvB,eAAe;oBACf,cAAc,EAAE,eAAe;iBAClC,CAAA;YACL,CAAC;YAED,2CAA2C;YAC3C,MAAM,wBAAwB,GAAG,GAAG,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,sBAAsB,CAC7C,CAAA;YACD,IAAI,wBAAwB,EAAE,CAAC;gBAC3B,WAAW,CAAC,IAAI,CACZ;oBACI,QAAQ,EAAE,QAAQ,CAAC,OAAO;oBAC1B,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC;iBACpC,EACD,iCAAiC,CACpC,CAAA;gBACD,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,oBAAoB;oBAC5B,eAAe;oBACf,cAAc,EAAE,eAAe;iBAClC,CAAA;YACL,CAAC;YAED,WAAW,CAAC,KAAK,CACb;gBACI,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC;aACpC,EACD,qCAAqC,CACxC,CAAA;YAED,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,eAAe;gBACvB,eAAe;gBACf,cAAc,EAAE,eAAe;aAClC,CAAA;QACL,CAAC;QAED,MAAM,cAAc,GAAG,eAAe,CAAA;QAEtC,MAAM,YAAY,GAAiB;YAC/B,OAAO,EAAE,IAAI;YACb,cAAc;YACd,eAAe;YACf,eAAe;YACf,kBAAkB,EAAE;gBAChB,YAAY;gBACZ,oBAAoB;gBACpB,KAAK;aACR;SACJ,CAAA;QAED,WAAW,CAAC,IAAI,CACZ;YACI,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;YACnD,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC;SAC5C,EACD,8BAA8B,CACjC,CAAA;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
1
  import type { GasPriceManager } from "../handlers/index.js";
2
2
  import type { Mempool } from "../mempool/index.js";
3
- import type { BundlingMode, SubmittedBundleInfo, UserOperationBundle } from "../types/index.js";
4
- import type { GasPriceParameters } from "../types/index.js";
3
+ import type { BundlingMode, GasPriceParameters, SubmittedBundleInfo, UserOperationBundle } from "../types/index.js";
5
4
  import { type Metrics } from "../utils/index.js";
6
5
  import type { Hex } from "viem";
7
6
  import type { AltoConfig } from "../createConfig.js";
7
+ import type { BundleManager } from "./bundleManager.js";
8
8
  import type { Executor } from "./executor.js";
9
9
  import type { SenderManager } from "./senderManager/index.js";
10
- import type { UserOpMonitor } from "./userOpMonitor.js";
11
10
  export declare class ExecutorManager {
12
- private senderManager;
13
- private config;
14
- private executor;
15
- private mempool;
16
- private logger;
17
- private metrics;
18
- private gasPriceManager;
11
+ private readonly senderManager;
12
+ private readonly config;
13
+ private readonly executor;
14
+ private readonly mempool;
15
+ private readonly logger;
16
+ private readonly metrics;
17
+ private readonly gasPriceManager;
18
+ private readonly bundleManager;
19
19
  private opsCount;
20
20
  private bundlingMode;
21
- private userOpMonitor;
22
21
  private unWatch;
23
22
  private currentlyHandlingBlock;
24
- constructor({ config, executor, mempool, metrics, gasPriceManager, senderManager, userOpMonitor }: {
23
+ constructor({ config, executor, mempool, metrics, gasPriceManager, senderManager, bundleManager }: {
25
24
  config: AltoConfig;
26
25
  executor: Executor;
27
26
  mempool: Mempool;
28
27
  metrics: Metrics;
29
28
  gasPriceManager: GasPriceManager;
30
29
  senderManager: SenderManager;
31
- userOpMonitor: UserOpMonitor;
30
+ bundleManager: BundleManager;
32
31
  });
32
+ start(): void;
33
33
  setBundlingMode(bundleMode: BundlingMode): Promise<void>;
34
34
  autoScalingBundling(): Promise<void>;
35
35
  startWatchingBlocks(): void;
@@ -37,7 +37,8 @@ export declare class ExecutorManager {
37
37
  sendBundleToExecutor(userOpBundle: UserOperationBundle): Promise<Hex | undefined>;
38
38
  stopWatchingBlocks(): void;
39
39
  private handleBlock;
40
- potentiallyResubmitBundle({ submittedBundle, networkGasPrice, networkBaseFee }: {
40
+ potentiallyResubmitBundle({ blockReceivedTimestamp, submittedBundle, networkGasPrice, networkBaseFee }: {
41
+ blockReceivedTimestamp: number;
41
42
  submittedBundle: SubmittedBundleInfo;
42
43
  networkGasPrice: {
43
44
  maxFeePerGas: bigint;
@@ -46,7 +47,8 @@ export declare class ExecutorManager {
46
47
  networkBaseFee: bigint;
47
48
  }): void;
48
49
  cancelBundle(submittedBundle: SubmittedBundleInfo): Promise<void>;
49
- replaceTransaction({ submittedBundle, networkGasPrice, networkBaseFee, reason }: {
50
+ replaceTransaction({ blockReceivedTimestamp, submittedBundle, networkGasPrice, networkBaseFee, reason }: {
51
+ blockReceivedTimestamp: number;
50
52
  submittedBundle: SubmittedBundleInfo;
51
53
  networkGasPrice: GasPriceParameters;
52
54
  networkBaseFee: bigint;
@@ -10,12 +10,12 @@ export class ExecutorManager {
10
10
  logger;
11
11
  metrics;
12
12
  gasPriceManager;
13
+ bundleManager;
13
14
  opsCount = [];
14
15
  bundlingMode;
15
- userOpMonitor;
16
16
  unWatch;
17
17
  currentlyHandlingBlock = false;
18
- constructor({ config, executor, mempool, metrics, gasPriceManager, senderManager, userOpMonitor }) {
18
+ constructor({ config, executor, mempool, metrics, gasPriceManager, senderManager, bundleManager }) {
19
19
  this.config = config;
20
20
  this.executor = executor;
21
21
  this.mempool = mempool;
@@ -26,7 +26,9 @@ export class ExecutorManager {
26
26
  this.gasPriceManager = gasPriceManager;
27
27
  this.senderManager = senderManager;
28
28
  this.bundlingMode = this.config.bundleMode;
29
- this.userOpMonitor = userOpMonitor;
29
+ this.bundleManager = bundleManager;
30
+ }
31
+ start() {
30
32
  if (this.bundlingMode === "auto") {
31
33
  this.autoScalingBundling();
32
34
  }
@@ -43,7 +45,7 @@ export class ExecutorManager {
43
45
  async autoScalingBundling() {
44
46
  const now = Date.now();
45
47
  this.opsCount = this.opsCount.filter((timestamp) => now - timestamp < RPM_WINDOW);
46
- const bundles = await this.mempool.getBundles();
48
+ const bundles = await this.mempool.getBundles(this.config.maxBundleCount);
47
49
  if (bundles.length > 0) {
48
50
  // Count total ops and add timestamps
49
51
  const totalOps = bundles.reduce((sum, bundle) => sum + bundle.userOps.length, 0);
@@ -66,16 +68,35 @@ export class ExecutorManager {
66
68
  if (this.unWatch) {
67
69
  return;
68
70
  }
69
- this.unWatch = this.config.publicClient.watchBlocks({
70
- onBlock: async (block) => {
71
- await this.handleBlock(block);
72
- },
73
- onError: (error) => {
74
- this.logger.error({ error }, "error while watching blocks");
75
- },
76
- includeTransactions: false,
77
- emitMissed: false
78
- });
71
+ // If preconfirmationTime is set, poll at intervals instead of watching blocks
72
+ if (this.config.flashblocksPreconfirmationTime) {
73
+ // Set up interval to call handleBlock
74
+ const intervalId = setInterval(async () => {
75
+ try {
76
+ await this.handleBlock();
77
+ }
78
+ catch (err) {
79
+ this.logger.error({ err }, "error while polling blocks");
80
+ }
81
+ }, this.config.flashblocksPreconfirmationTime);
82
+ // Store cleanup function
83
+ this.unWatch = () => {
84
+ clearInterval(intervalId);
85
+ };
86
+ }
87
+ else {
88
+ // Default behavior - watch blocks
89
+ this.unWatch = this.config.publicClient.watchBlocks({
90
+ onBlock: async (block) => {
91
+ await this.handleBlock(block);
92
+ },
93
+ onError: (err) => {
94
+ this.logger.error({ err }, "error while watching blocks");
95
+ },
96
+ includeTransactions: false,
97
+ emitMissed: false
98
+ });
99
+ }
79
100
  this.logger.debug("started watching blocks");
80
101
  }
81
102
  async getBaseFee() {
@@ -119,21 +140,49 @@ export class ExecutorManager {
119
140
  });
120
141
  if (!bundleResult.success) {
121
142
  const { rejectedUserOps, recoverableOps, reason } = bundleResult;
143
+ // Recover any userOps that can be resubmitted.
144
+ await this.mempool.resubmitUserOps({
145
+ userOps: recoverableOps,
146
+ entryPoint,
147
+ reason
148
+ });
149
+ // For rejected userOps, we need to check for frontruns
150
+ const shouldCheckFrontrun = rejectedUserOps.some(({ reason }) => reason.includes("AA25 invalid account nonce") ||
151
+ reason.includes("AA10 sender already constructed"));
152
+ if (shouldCheckFrontrun) {
153
+ // Check each rejected userOp for frontrun or included
154
+ const results = await Promise.all(rejectedUserOps.map(async (userOpInfo) => ({
155
+ userOpInfo,
156
+ status: await this.bundleManager.getUserOpStatus({
157
+ userOpInfo,
158
+ entryPoint,
159
+ bundlerTxs: [],
160
+ blockReceivedTimestamp: Date.now()
161
+ })
162
+ })));
163
+ // Drop userOps that were rejected but not frontrun or included
164
+ const notFoundUserOps = results
165
+ .filter(({ status }) => status === "not_found")
166
+ .map(({ userOpInfo }) => userOpInfo);
167
+ await this.mempool.dropUserOps(entryPoint, notFoundUserOps);
168
+ // Stop tracking userOps that were included onchain either due to frontrun or included
169
+ const confirmedUserOps = results
170
+ .filter(({ status }) => ["frontran", "included"].includes(status))
171
+ .map(({ userOpInfo }) => userOpInfo);
172
+ await this.mempool.removeProcessing({
173
+ entryPoint,
174
+ userOps: confirmedUserOps
175
+ });
176
+ }
177
+ else {
178
+ this.logger.warn({ reason }, "failed to send bundle transaction");
179
+ await this.mempool.dropUserOps(entryPoint, rejectedUserOps);
180
+ }
122
181
  // Free wallet as no bundle was sent.
123
182
  await this.senderManager.markWalletProcessed(wallet);
124
- // Drop rejected ops
125
- await this.mempool.dropUserOps(entryPoint, rejectedUserOps);
126
183
  this.metrics.userOpsSubmitted
127
184
  .labels({ status: "failed" })
128
185
  .inc(rejectedUserOps.length);
129
- // Handle recoverable ops
130
- if (recoverableOps.length > 0) {
131
- await this.mempool.resubmitUserOps({
132
- userOps: recoverableOps,
133
- entryPoint,
134
- reason
135
- });
136
- }
137
186
  if (reason === "filterops_failed" || reason === "generic_error") {
138
187
  this.metrics.bundlesSubmitted.labels({ status: "failed" }).inc();
139
188
  }
@@ -160,14 +209,13 @@ export class ExecutorManager {
160
209
  previousTransactionHashes: [],
161
210
  lastReplaced: Date.now()
162
211
  };
163
- this.userOpMonitor.trackBundle(submittedBundle);
212
+ // Track bundle and start loop to watch blocks
213
+ this.bundleManager.trackBundle(submittedBundle);
214
+ this.startWatchingBlocks();
164
215
  await this.mempool.markUserOpsAsSubmitted({
165
216
  userOps: submittedBundle.bundle.userOps,
166
- entryPoint: submittedBundle.bundle.entryPoint,
167
217
  transactionHash: submittedBundle.transactionHash
168
218
  });
169
- // Start watching blocks after marking operations as submitted
170
- this.startWatchingBlocks();
171
219
  await this.mempool.dropUserOps(entryPoint, rejectedUserOps);
172
220
  this.metrics.bundlesSubmitted.labels({ status: "success" }).inc();
173
221
  return transactionHash;
@@ -183,37 +231,41 @@ export class ExecutorManager {
183
231
  return;
184
232
  }
185
233
  this.currentlyHandlingBlock = true;
186
- const pendingBundles = this.userOpMonitor.getPendingBundles();
234
+ const blockReceivedTimestamp = Date.now();
235
+ const pendingBundles = this.bundleManager.getPendingBundles();
187
236
  if (pendingBundles.length === 0) {
188
237
  this.stopWatchingBlocks();
189
238
  this.currentlyHandlingBlock = false;
190
239
  return;
191
240
  }
192
- const [receipts, networkGasPrice, networkBaseFee] = await Promise.all([
193
- this.userOpMonitor.getReceipts(pendingBundles),
241
+ const [bundleStatuses, networkGasPrice, networkBaseFee] = await Promise.all([
242
+ this.bundleManager.getBundleStatuses(pendingBundles),
194
243
  this.gasPriceManager.tryGetNetworkGasPrice().catch(() => ({
195
244
  maxFeePerGas: 0n,
196
245
  maxPriorityFeePerGas: 0n
197
246
  })),
198
247
  this.getBaseFee().catch(() => 0n)
199
248
  ]);
200
- await Promise.all(receipts.map(async (receipt, index) => {
201
- if (receipt.status === "included") {
202
- await this.userOpMonitor.processIncludedBundle({
249
+ await Promise.all(bundleStatuses.map(async (bundleStatus, index) => {
250
+ if (bundleStatus.status === "included") {
251
+ await this.bundleManager.processIncludedBundle({
203
252
  submittedBundle: pendingBundles[index],
204
- bundleReceipt: receipt
253
+ bundleReceipt: bundleStatus,
254
+ blockReceivedTimestamp
205
255
  });
206
256
  }
207
- if (receipt.status === "reverted") {
208
- await this.userOpMonitor.processRevertedBundle({
257
+ if (bundleStatus.status === "reverted") {
258
+ await this.bundleManager.processRevertedBundle({
259
+ blockReceivedTimestamp,
209
260
  submittedBundle: pendingBundles[index],
210
- bundleReceipt: receipt,
261
+ bundleReceipt: bundleStatus,
211
262
  block
212
263
  });
213
264
  }
214
265
  // can be potentially resubmitted - so we first submit it again to optimize for the speed
215
- if (receipt.status === "not_found") {
266
+ if (bundleStatus.status === "not_found") {
216
267
  this.potentiallyResubmitBundle({
268
+ blockReceivedTimestamp,
217
269
  submittedBundle: pendingBundles[index],
218
270
  networkGasPrice,
219
271
  networkBaseFee
@@ -222,15 +274,16 @@ export class ExecutorManager {
222
274
  }));
223
275
  this.currentlyHandlingBlock = false;
224
276
  }
225
- potentiallyResubmitBundle({ submittedBundle, networkGasPrice, networkBaseFee }) {
277
+ potentiallyResubmitBundle({ blockReceivedTimestamp, submittedBundle, networkGasPrice, networkBaseFee }) {
226
278
  const { transactionRequest, lastReplaced } = submittedBundle;
227
279
  const { maxFeePerGas, maxPriorityFeePerGas } = transactionRequest;
228
280
  const isGasPriceTooLow = maxFeePerGas < networkGasPrice.maxFeePerGas ||
229
281
  maxPriorityFeePerGas < networkGasPrice.maxPriorityFeePerGas;
230
282
  const isStuck = Date.now() - lastReplaced > this.config.resubmitStuckTimeout;
231
283
  if (isGasPriceTooLow) {
232
- this.userOpMonitor.stopTrackingBundle(submittedBundle);
284
+ this.bundleManager.stopTrackingBundle(submittedBundle);
233
285
  this.replaceTransaction({
286
+ blockReceivedTimestamp,
234
287
  submittedBundle,
235
288
  networkGasPrice,
236
289
  networkBaseFee,
@@ -238,8 +291,9 @@ export class ExecutorManager {
238
291
  });
239
292
  }
240
293
  else if (isStuck) {
241
- this.userOpMonitor.stopTrackingBundle(submittedBundle);
294
+ this.bundleManager.stopTrackingBundle(submittedBundle);
242
295
  this.replaceTransaction({
296
+ blockReceivedTimestamp,
243
297
  submittedBundle,
244
298
  networkGasPrice,
245
299
  networkBaseFee,
@@ -249,7 +303,8 @@ export class ExecutorManager {
249
303
  }
250
304
  async cancelBundle(submittedBundle) {
251
305
  const { bundle: { userOps }, executor, transactionRequest, transactionHash } = submittedBundle;
252
- const { walletClient, publicClient, blockTime } = this.config;
306
+ const { walletClients, publicClient, blockTime } = this.config;
307
+ const walletClient = walletClients.public;
253
308
  const logger = this.logger.child({
254
309
  userOps: getUserOpHashes(userOps)
255
310
  });
@@ -284,14 +339,14 @@ export class ExecutorManager {
284
339
  await new Promise((resolve) => setTimeout(resolve, blockTime / 2));
285
340
  }
286
341
  catch (err) {
287
- logger.warn({ error: err }, "failed to cancel bundle");
342
+ logger.warn({ err }, "failed to cancel bundle");
288
343
  gasMultiplier += 20n; // Increase gas by additional 20% each retry
289
344
  }
290
345
  }
291
346
  // All retries exhausted
292
347
  logger.error({ transactionHash }, "failed to cancel bundle after max retries");
293
348
  }
294
- async replaceTransaction({ submittedBundle, networkGasPrice, networkBaseFee, reason }) {
349
+ async replaceTransaction({ blockReceivedTimestamp, submittedBundle, networkGasPrice, networkBaseFee, reason }) {
295
350
  const { bundle, executor, transactionRequest, transactionHash: oldTxHash } = submittedBundle;
296
351
  const { entryPoint } = bundle;
297
352
  const bundleResult = await this.executor.bundle({
@@ -314,22 +369,38 @@ export class ExecutorManager {
314
369
  const shouldCheckFrontrun = rejectedUserOps.some(({ reason }) => reason.includes("AA25 invalid account nonce") ||
315
370
  reason.includes("AA10 sender already constructed"));
316
371
  if (shouldCheckFrontrun) {
317
- // Check each rejected userOp for frontrun
318
- const frontrunResults = await Promise.all(rejectedUserOps.map(async (userOpInfo) => ({
372
+ // Check each rejected userOp for frontrun or included
373
+ const results = await Promise.all(rejectedUserOps.map(async (userOpInfo) => ({
319
374
  userOpInfo,
320
- wasFrontrun: await this.userOpMonitor.checkFrontrun(userOpInfo)
375
+ status: await this.bundleManager.getUserOpStatus({
376
+ userOpInfo,
377
+ entryPoint,
378
+ bundlerTxs: [
379
+ submittedBundle.transactionHash,
380
+ ...submittedBundle.previousTransactionHashes
381
+ ],
382
+ blockReceivedTimestamp
383
+ })
321
384
  })));
322
- const hasFrontrun = frontrunResults.some(({ wasFrontrun }) => wasFrontrun);
385
+ const hasFrontrun = results.some(({ status }) => status === "frontran");
323
386
  // If one userOp in the bundle was frontrun, we need to cancel the entire bundle
324
387
  // as it will fail onchain
325
388
  if (hasFrontrun) {
326
389
  await this.cancelBundle(submittedBundle);
327
390
  }
328
- // Drop userOps that were rejected but not frontrun
329
- const nonFrontrunUserOps = frontrunResults
330
- .filter(({ wasFrontrun }) => !wasFrontrun)
391
+ // Drop userOps that were rejected but not frontrun or included
392
+ const notFoundUserOps = results
393
+ .filter(({ status }) => status === "not_found")
331
394
  .map(({ userOpInfo }) => userOpInfo);
332
- await this.mempool.dropUserOps(entryPoint, nonFrontrunUserOps);
395
+ await this.mempool.dropUserOps(entryPoint, notFoundUserOps);
396
+ // Stop tracking userOps that were included onchain either due to frontrun or included
397
+ const confirmedUserOps = results
398
+ .filter(({ status }) => ["frontran", "included"].includes(status))
399
+ .map(({ userOpInfo }) => userOpInfo);
400
+ await this.mempool.removeProcessing({
401
+ entryPoint,
402
+ userOps: confirmedUserOps
403
+ });
333
404
  }
334
405
  else {
335
406
  this.logger.warn({ oldTxHash, reason }, "failed to replace transaction");
@@ -364,7 +435,9 @@ export class ExecutorManager {
364
435
  submissionAttempts: bundle.submissionAttempts + 1
365
436
  }
366
437
  };
367
- this.userOpMonitor.trackBundle(newTxInfo);
438
+ // Track bundle and start loop to watch blocks
439
+ this.bundleManager.trackBundle(newTxInfo);
440
+ this.startWatchingBlocks();
368
441
  // Drop all userOperations that were rejected during simulation.
369
442
  await this.mempool.dropUserOps(entryPoint, rejectedUserOps);
370
443
  this.logger.info({
@@ -372,7 +445,9 @@ export class ExecutorManager {
372
445
  newTxHash,
373
446
  reason
374
447
  }, "replaced transaction");
375
- return;
448
+ this.metrics.replacedTransactions
449
+ .labels({ reason, status: "success" })
450
+ .inc();
376
451
  }
377
452
  }
378
453
  //# sourceMappingURL=executorManager.js.map