@pimlico/alto 0.0.0-main.20250428T212302 → 0.0.0-main.20250429T151930

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 (386) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -0
  2. package/contracts/ERC165.sol/ERC165.json +1 -0
  3. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -0
  4. package/contracts/EntryPoint.sol/EntryPoint.json +1 -0
  5. package/contracts/EntryPointCodeOverride.sol/EntryPointCodeOverride.json +1 -0
  6. package/contracts/EntryPointSimulations.sol/EntryPointSimulations.json +1 -0
  7. package/contracts/Exec.sol/Exec.json +1 -0
  8. package/contracts/IAccount.sol/IAccount.json +1 -0
  9. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -0
  10. package/contracts/IAggregator.sol/IAggregator.json +1 -0
  11. package/contracts/IERC165.sol/IERC165.json +1 -0
  12. package/contracts/IERC5267.sol/IERC5267.json +1 -0
  13. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -0
  14. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -0
  15. package/contracts/INonceManager.sol/INonceManager.json +1 -0
  16. package/contracts/IPaymaster.sol/IPaymaster.json +1 -0
  17. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -0
  18. package/contracts/IStakeManager.sol/IStakeManager.json +1 -0
  19. package/contracts/Math.sol/Math.json +1 -0
  20. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -0
  21. package/contracts/NonceManager.sol/NonceManager.json +1 -0
  22. package/contracts/Panic.sol/Panic.json +1 -0
  23. package/contracts/PimlicoEntryPointSimulationsV7.sol/PimlicoEntryPointSimulationsV7.json +1 -0
  24. package/contracts/PimlicoEntryPointSimulationsV8.sol/PimlicoEntryPointSimulationsV8.json +1 -0
  25. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  26. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -0
  27. package/contracts/SafeCast.sol/SafeCast.json +1 -0
  28. package/contracts/SenderCreator.sol/SenderCreator.json +1 -0
  29. package/contracts/ShortStrings.sol/ShortStrings.json +1 -0
  30. package/contracts/SignedMath.sol/SignedMath.json +1 -0
  31. package/contracts/StakeManager.sol/StakeManager.json +1 -0
  32. package/contracts/StorageSlot.sol/StorageSlot.json +1 -0
  33. package/contracts/Strings.sol/Strings.json +1 -0
  34. package/contracts/TransientSlot.sol/TransientSlot.json +1 -0
  35. package/contracts/UserOperation.sol/UserOperationLib.json +1 -0
  36. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -0
  37. package/contracts/build-info/0c52dc19c74a9a932ddddcca463ce398.json +1 -0
  38. package/contracts/build-info/a1d9af887789a0ade8ffbc8b045f0780.json +1 -0
  39. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  40. package/esm/cli/deploySimulationsContract.js +14 -5
  41. package/esm/cli/deploySimulationsContract.js.map +1 -1
  42. package/esm/cli/handler.js +4 -0
  43. package/esm/cli/handler.js.map +1 -1
  44. package/package.json +2 -1
  45. package/lib/cli/alto.d.ts +0 -7
  46. package/lib/cli/alto.js +0 -141
  47. package/lib/cli/alto.js.map +0 -1
  48. package/lib/cli/config/bundler.d.ts +0 -2872
  49. package/lib/cli/config/bundler.js +0 -242
  50. package/lib/cli/config/bundler.js.map +0 -1
  51. package/lib/cli/config/index.d.ts +0 -3
  52. package/lib/cli/config/index.js +0 -19
  53. package/lib/cli/config/index.js.map +0 -1
  54. package/lib/cli/config/options.d.ts +0 -13
  55. package/lib/cli/config/options.js +0 -587
  56. package/lib/cli/config/options.js.map +0 -1
  57. package/lib/cli/customTransport.d.ts +0 -14
  58. package/lib/cli/customTransport.js +0 -94
  59. package/lib/cli/customTransport.js.map +0 -1
  60. package/lib/cli/deploySimulationsContract.d.ts +0 -13
  61. package/lib/cli/deploySimulationsContract.js +0 -100
  62. package/lib/cli/deploySimulationsContract.js.map +0 -1
  63. package/lib/cli/handler.d.ts +0 -3
  64. package/lib/cli/handler.js +0 -157
  65. package/lib/cli/handler.js.map +0 -1
  66. package/lib/cli/index.d.ts +0 -4
  67. package/lib/cli/index.js +0 -20
  68. package/lib/cli/index.js.map +0 -1
  69. package/lib/cli/instrumentation.d.ts +0 -2
  70. package/lib/cli/instrumentation.js +0 -47
  71. package/lib/cli/instrumentation.js.map +0 -1
  72. package/lib/cli/parseArgs.d.ts +0 -8
  73. package/lib/cli/parseArgs.js +0 -25
  74. package/lib/cli/parseArgs.js.map +0 -1
  75. package/lib/cli/setupServer.d.ts +0 -13
  76. package/lib/cli/setupServer.js +0 -266
  77. package/lib/cli/setupServer.js.map +0 -1
  78. package/lib/cli/util.d.ts +0 -22
  79. package/lib/cli/util.js +0 -34
  80. package/lib/cli/util.js.map +0 -1
  81. package/lib/createConfig.d.ts +0 -16
  82. package/lib/createConfig.js +0 -13
  83. package/lib/createConfig.js.map +0 -1
  84. package/lib/executor/executor.d.ts +0 -65
  85. package/lib/executor/executor.js +0 -301
  86. package/lib/executor/executor.js.map +0 -1
  87. package/lib/executor/executorManager.d.ts +0 -108
  88. package/lib/executor/executorManager.js +0 -702
  89. package/lib/executor/executorManager.js.map +0 -1
  90. package/lib/executor/fastlane.d.ts +0 -9
  91. package/lib/executor/fastlane.js +0 -41
  92. package/lib/executor/fastlane.js.map +0 -1
  93. package/lib/executor/filterOpsAndEStimateGas.d.ts +0 -29
  94. package/lib/executor/filterOpsAndEStimateGas.js +0 -225
  95. package/lib/executor/filterOpsAndEStimateGas.js.map +0 -1
  96. package/lib/executor/index.d.ts +0 -5
  97. package/lib/executor/index.js +0 -21
  98. package/lib/executor/index.js.map +0 -1
  99. package/lib/executor/senderManager/createMemorySenderManager.d.ts +0 -8
  100. package/lib/executor/senderManager/createMemorySenderManager.js +0 -45
  101. package/lib/executor/senderManager/createMemorySenderManager.js.map +0 -1
  102. package/lib/executor/senderManager/createRedisSenderManager.d.ts +0 -8
  103. package/lib/executor/senderManager/createRedisSenderManager.js +0 -85
  104. package/lib/executor/senderManager/createRedisSenderManager.js.map +0 -1
  105. package/lib/executor/senderManager/flushOnStartUp.d.ts +0 -9
  106. package/lib/executor/senderManager/flushOnStartUp.js +0 -37
  107. package/lib/executor/senderManager/flushOnStartUp.js.map +0 -1
  108. package/lib/executor/senderManager/index.d.ts +0 -15
  109. package/lib/executor/senderManager/index.js +0 -25
  110. package/lib/executor/senderManager/index.js.map +0 -1
  111. package/lib/executor/senderManager/validateAndRefill.d.ts +0 -11
  112. package/lib/executor/senderManager/validateAndRefill.js +0 -115
  113. package/lib/executor/senderManager/validateAndRefill.js.map +0 -1
  114. package/lib/executor/utilityWalletMonitor.d.ts +0 -19
  115. package/lib/executor/utilityWalletMonitor.js +0 -42
  116. package/lib/executor/utilityWalletMonitor.js.map +0 -1
  117. package/lib/executor/utils.d.ts +0 -34
  118. package/lib/executor/utils.js +0 -167
  119. package/lib/executor/utils.js.map +0 -1
  120. package/lib/handlers/arbitrumGasPriceManager.d.ts +0 -14
  121. package/lib/handlers/arbitrumGasPriceManager.js +0 -39
  122. package/lib/handlers/arbitrumGasPriceManager.js.map +0 -1
  123. package/lib/handlers/eventManager.d.ts +0 -29
  124. package/lib/handlers/eventManager.js +0 -225
  125. package/lib/handlers/eventManager.js.map +0 -1
  126. package/lib/handlers/gasPriceManager.d.ts +0 -36
  127. package/lib/handlers/gasPriceManager.js +0 -391
  128. package/lib/handlers/gasPriceManager.js.map +0 -1
  129. package/lib/handlers/index.d.ts +0 -3
  130. package/lib/handlers/index.js +0 -19
  131. package/lib/handlers/index.js.map +0 -1
  132. package/lib/handlers/mantleGasPriceManager.d.ts +0 -23
  133. package/lib/handlers/mantleGasPriceManager.js +0 -44
  134. package/lib/handlers/mantleGasPriceManager.js.map +0 -1
  135. package/lib/handlers/optimismManager.d.ts +0 -10
  136. package/lib/handlers/optimismManager.js +0 -21
  137. package/lib/handlers/optimismManager.js.map +0 -1
  138. package/lib/index.d.ts +0 -2
  139. package/lib/index.js +0 -4
  140. package/lib/index.js.map +0 -1
  141. package/lib/mempool/index.d.ts +0 -4
  142. package/lib/mempool/index.js +0 -20
  143. package/lib/mempool/index.js.map +0 -1
  144. package/lib/mempool/mempool.d.ts +0 -191
  145. package/lib/mempool/mempool.js +0 -499
  146. package/lib/mempool/mempool.js.map +0 -1
  147. package/lib/mempool/monitoring.d.ts +0 -14
  148. package/lib/mempool/monitoring.js +0 -101
  149. package/lib/mempool/monitoring.js.map +0 -1
  150. package/lib/mempool/reputationManager.d.ts +0 -121
  151. package/lib/mempool/reputationManager.js +0 -472
  152. package/lib/mempool/reputationManager.js.map +0 -1
  153. package/lib/rpc/createMethodHandler.d.ts +0 -31
  154. package/lib/rpc/createMethodHandler.js +0 -34
  155. package/lib/rpc/createMethodHandler.js.map +0 -1
  156. package/lib/rpc/estimation/gasEstimationHandler.d.ts +0 -30
  157. package/lib/rpc/estimation/gasEstimationHandler.js +0 -50
  158. package/lib/rpc/estimation/gasEstimationHandler.js.map +0 -1
  159. package/lib/rpc/estimation/gasEstimationsV06.d.ts +0 -19
  160. package/lib/rpc/estimation/gasEstimationsV06.js +0 -148
  161. package/lib/rpc/estimation/gasEstimationsV06.js.map +0 -1
  162. package/lib/rpc/estimation/gasEstimationsV07.d.ts +0 -101
  163. package/lib/rpc/estimation/gasEstimationsV07.js +0 -727
  164. package/lib/rpc/estimation/gasEstimationsV07.js.map +0 -1
  165. package/lib/rpc/estimation/types.d.ts +0 -120
  166. package/lib/rpc/estimation/types.js +0 -125
  167. package/lib/rpc/estimation/types.js.map +0 -1
  168. package/lib/rpc/index.d.ts +0 -4
  169. package/lib/rpc/index.js +0 -20
  170. package/lib/rpc/index.js.map +0 -1
  171. package/lib/rpc/methods/debug_bundler_clearReputation.d.ts +0 -22
  172. package/lib/rpc/methods/debug_bundler_clearReputation.js +0 -15
  173. package/lib/rpc/methods/debug_bundler_clearReputation.js.map +0 -1
  174. package/lib/rpc/methods/debug_bundler_clearState.d.ts +0 -22
  175. package/lib/rpc/methods/debug_bundler_clearState.js +0 -16
  176. package/lib/rpc/methods/debug_bundler_clearState.js.map +0 -1
  177. package/lib/rpc/methods/debug_bundler_dumpMempool.d.ts +0 -973
  178. package/lib/rpc/methods/debug_bundler_dumpMempool.js +0 -16
  179. package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +0 -1
  180. package/lib/rpc/methods/debug_bundler_dumpReputation.d.ts +0 -57
  181. package/lib/rpc/methods/debug_bundler_dumpReputation.js +0 -16
  182. package/lib/rpc/methods/debug_bundler_dumpReputation.js.map +0 -1
  183. package/lib/rpc/methods/debug_bundler_getStakeStatus.d.ts +0 -79
  184. package/lib/rpc/methods/debug_bundler_getStakeStatus.js +0 -25
  185. package/lib/rpc/methods/debug_bundler_getStakeStatus.js.map +0 -1
  186. package/lib/rpc/methods/debug_bundler_sendBundleNow.d.ts +0 -22
  187. package/lib/rpc/methods/debug_bundler_sendBundleNow.js +0 -15
  188. package/lib/rpc/methods/debug_bundler_sendBundleNow.js.map +0 -1
  189. package/lib/rpc/methods/debug_bundler_setBundlingMode.d.ts +0 -22
  190. package/lib/rpc/methods/debug_bundler_setBundlingMode.js +0 -16
  191. package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +0 -1
  192. package/lib/rpc/methods/debug_bundler_setReputation.d.ts +0 -46
  193. package/lib/rpc/methods/debug_bundler_setReputation.js +0 -16
  194. package/lib/rpc/methods/debug_bundler_setReputation.js.map +0 -1
  195. package/lib/rpc/methods/eth_chainId.d.ts +0 -22
  196. package/lib/rpc/methods/eth_chainId.js +0 -13
  197. package/lib/rpc/methods/eth_chainId.js.map +0 -1
  198. package/lib/rpc/methods/eth_estimateUserOperationGas.d.ts +0 -1891
  199. package/lib/rpc/methods/eth_estimateUserOperationGas.js +0 -26
  200. package/lib/rpc/methods/eth_estimateUserOperationGas.js.map +0 -1
  201. package/lib/rpc/methods/eth_getUserOperationByHash.d.ts +0 -1775
  202. package/lib/rpc/methods/eth_getUserOperationByHash.js +0 -101
  203. package/lib/rpc/methods/eth_getUserOperationByHash.js.map +0 -1
  204. package/lib/rpc/methods/eth_getUserOperationReceipt.d.ts +0 -412
  205. package/lib/rpc/methods/eth_getUserOperationReceipt.js +0 -14
  206. package/lib/rpc/methods/eth_getUserOperationReceipt.js.map +0 -1
  207. package/lib/rpc/methods/eth_sendUserOperation.d.ts +0 -878
  208. package/lib/rpc/methods/eth_sendUserOperation.js +0 -44
  209. package/lib/rpc/methods/eth_sendUserOperation.js.map +0 -1
  210. package/lib/rpc/methods/eth_supportedEntryPoints.d.ts +0 -22
  211. package/lib/rpc/methods/eth_supportedEntryPoints.js +0 -13
  212. package/lib/rpc/methods/eth_supportedEntryPoints.js.map +0 -1
  213. package/lib/rpc/methods/index.d.ts +0 -3
  214. package/lib/rpc/methods/index.js +0 -44
  215. package/lib/rpc/methods/index.js.map +0 -1
  216. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.d.ts +0 -131
  217. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js +0 -33
  218. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js.map +0 -1
  219. package/lib/rpc/methods/pimlico_getUserOperationStatus.d.ts +0 -43
  220. package/lib/rpc/methods/pimlico_getUserOperationStatus.js +0 -14
  221. package/lib/rpc/methods/pimlico_getUserOperationStatus.js.map +0 -1
  222. package/lib/rpc/methods/pimlico_sendUserOperationNow.d.ts +0 -1268
  223. package/lib/rpc/methods/pimlico_sendUserOperationNow.js +0 -55
  224. package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +0 -1
  225. package/lib/rpc/rpcHandler.d.ts +0 -75
  226. package/lib/rpc/rpcHandler.js +0 -391
  227. package/lib/rpc/rpcHandler.js.map +0 -1
  228. package/lib/rpc/server.d.ts +0 -26
  229. package/lib/rpc/server.js +0 -283
  230. package/lib/rpc/server.js.map +0 -1
  231. package/lib/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  232. package/lib/rpc/validation/BundlerCollectorTracerV06.js +0 -262
  233. package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  234. package/lib/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  235. package/lib/rpc/validation/BundlerCollectorTracerV07.js +0 -261
  236. package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  237. package/lib/rpc/validation/SafeValidator.d.ts +0 -51
  238. package/lib/rpc/validation/SafeValidator.js +0 -327
  239. package/lib/rpc/validation/SafeValidator.js.map +0 -1
  240. package/lib/rpc/validation/TracerResultParserV06.d.ts +0 -13
  241. package/lib/rpc/validation/TracerResultParserV06.js +0 -582
  242. package/lib/rpc/validation/TracerResultParserV06.js.map +0 -1
  243. package/lib/rpc/validation/TracerResultParserV07.d.ts +0 -33
  244. package/lib/rpc/validation/TracerResultParserV07.js +0 -599
  245. package/lib/rpc/validation/TracerResultParserV07.js.map +0 -1
  246. package/lib/rpc/validation/UnsafeValidator.d.ts +0 -97
  247. package/lib/rpc/validation/UnsafeValidator.js +0 -303
  248. package/lib/rpc/validation/UnsafeValidator.js.map +0 -1
  249. package/lib/rpc/validation/index.d.ts +0 -3
  250. package/lib/rpc/validation/index.js +0 -19
  251. package/lib/rpc/validation/index.js.map +0 -1
  252. package/lib/rpc/validation/tracer.d.ts +0 -125
  253. package/lib/rpc/validation/tracer.js +0 -112
  254. package/lib/rpc/validation/tracer.js.map +0 -1
  255. package/lib/store/createMemoryOutstandingStore.d.ts +0 -28
  256. package/lib/store/createMemoryOutstandingStore.js +0 -236
  257. package/lib/store/createMemoryOutstandingStore.js.map +0 -1
  258. package/lib/store/createMempoolStore.d.ts +0 -8
  259. package/lib/store/createMempoolStore.js +0 -199
  260. package/lib/store/createMempoolStore.js.map +0 -1
  261. package/lib/store/createRedisOutstandingStore.d.ts +0 -27
  262. package/lib/store/createRedisOutstandingStore.js +0 -349
  263. package/lib/store/createRedisOutstandingStore.js.map +0 -1
  264. package/lib/store/createRedisStore.d.ts +0 -9
  265. package/lib/store/createRedisStore.js +0 -138
  266. package/lib/store/createRedisStore.js.map +0 -1
  267. package/lib/store/createStore.d.ts +0 -6
  268. package/lib/store/createStore.js +0 -70
  269. package/lib/store/createStore.js.map +0 -1
  270. package/lib/store/index.d.ts +0 -81
  271. package/lib/store/index.js +0 -6
  272. package/lib/store/index.js.map +0 -1
  273. package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +0 -32
  274. package/lib/types/contracts/ArbitrumL1FeeAbi.js +0 -45
  275. package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +0 -1
  276. package/lib/types/contracts/CallEngine.d.ts +0 -28
  277. package/lib/types/contracts/CallEngine.js +0 -40
  278. package/lib/types/contracts/CallEngine.js.map +0 -1
  279. package/lib/types/contracts/CodeHashGetter.d.ts +0 -37
  280. package/lib/types/contracts/CodeHashGetter.js +0 -48
  281. package/lib/types/contracts/CodeHashGetter.js.map +0 -1
  282. package/lib/types/contracts/EntryPoint.d.ts +0 -1789
  283. package/lib/types/contracts/EntryPoint.js +0 -2307
  284. package/lib/types/contracts/EntryPoint.js.map +0 -1
  285. package/lib/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
  286. package/lib/types/contracts/EntryPointSimulationsV6.js +0 -51
  287. package/lib/types/contracts/EntryPointSimulationsV6.js.map +0 -1
  288. package/lib/types/contracts/EntryPointSimulationsV7.d.ts +0 -2076
  289. package/lib/types/contracts/EntryPointSimulationsV7.js +0 -2678
  290. package/lib/types/contracts/EntryPointSimulationsV7.js.map +0 -1
  291. package/lib/types/contracts/IAccountExecute.d.ts +0 -53
  292. package/lib/types/contracts/IAccountExecute.js +0 -71
  293. package/lib/types/contracts/IAccountExecute.js.map +0 -1
  294. package/lib/types/contracts/IPaymaster.d.ts +0 -3
  295. package/lib/types/contracts/IPaymaster.js +0 -120
  296. package/lib/types/contracts/IPaymaster.js.map +0 -1
  297. package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +0 -219
  298. package/lib/types/contracts/MantleBvmGasPriceOracle.js +0 -180
  299. package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +0 -1
  300. package/lib/types/contracts/OpL1FeeAbi.d.ts +0 -114
  301. package/lib/types/contracts/OpL1FeeAbi.js +0 -77
  302. package/lib/types/contracts/OpL1FeeAbi.js.map +0 -1
  303. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -25
  304. package/lib/types/contracts/PimlicoEntryPointSimulations.js +0 -42
  305. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  306. package/lib/types/contracts/SenderCreator.d.ts +0 -4
  307. package/lib/types/contracts/SenderCreator.js +0 -26
  308. package/lib/types/contracts/SenderCreator.js.map +0 -1
  309. package/lib/types/contracts/SimpleAccountFactory.d.ts +0 -57
  310. package/lib/types/contracts/SimpleAccountFactory.js +0 -79
  311. package/lib/types/contracts/SimpleAccountFactory.js.map +0 -1
  312. package/lib/types/contracts/TestOpcodesAccount.d.ts +0 -4
  313. package/lib/types/contracts/TestOpcodesAccount.js +0 -284
  314. package/lib/types/contracts/TestOpcodesAccount.js.map +0 -1
  315. package/lib/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  316. package/lib/types/contracts/TestOpcodesAccountFactory.js +0 -26
  317. package/lib/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  318. package/lib/types/contracts/TestStorageAccount.d.ts +0 -4
  319. package/lib/types/contracts/TestStorageAccount.js +0 -316
  320. package/lib/types/contracts/TestStorageAccount.js.map +0 -1
  321. package/lib/types/contracts/index.d.ts +0 -17
  322. package/lib/types/contracts/index.js +0 -33
  323. package/lib/types/contracts/index.js.map +0 -1
  324. package/lib/types/gasPrice.d.ts +0 -110
  325. package/lib/types/gasPrice.js +0 -55
  326. package/lib/types/gasPrice.js.map +0 -1
  327. package/lib/types/index.d.ts +0 -11
  328. package/lib/types/index.js +0 -27
  329. package/lib/types/index.js.map +0 -1
  330. package/lib/types/interfaces.d.ts +0 -58
  331. package/lib/types/interfaces.js +0 -3
  332. package/lib/types/interfaces.js.map +0 -1
  333. package/lib/types/mempool.d.ts +0 -60
  334. package/lib/types/mempool.js +0 -11
  335. package/lib/types/mempool.js.map +0 -1
  336. package/lib/types/schemas.d.ts +0 -20785
  337. package/lib/types/schemas.js +0 -679
  338. package/lib/types/schemas.js.map +0 -1
  339. package/lib/types/utils.d.ts +0 -25
  340. package/lib/types/utils.js +0 -35
  341. package/lib/types/utils.js.map +0 -1
  342. package/lib/types/validation.d.ts +0 -14327
  343. package/lib/types/validation.js +0 -312
  344. package/lib/types/validation.js.map +0 -1
  345. package/lib/utils/asyncTimeout.d.ts +0 -5
  346. package/lib/utils/asyncTimeout.js +0 -51
  347. package/lib/utils/asyncTimeout.js.map +0 -1
  348. package/lib/utils/bigInt.d.ts +0 -8
  349. package/lib/utils/bigInt.js +0 -24
  350. package/lib/utils/bigInt.js.map +0 -1
  351. package/lib/utils/eip7702.d.ts +0 -4
  352. package/lib/utils/eip7702.js +0 -21
  353. package/lib/utils/eip7702.js.map +0 -1
  354. package/lib/utils/fastify-rpc-decorators.d.ts +0 -19
  355. package/lib/utils/fastify-rpc-decorators.js +0 -23
  356. package/lib/utils/fastify-rpc-decorators.js.map +0 -1
  357. package/lib/utils/helpers.d.ts +0 -15
  358. package/lib/utils/helpers.js +0 -59
  359. package/lib/utils/helpers.js.map +0 -1
  360. package/lib/utils/index.d.ts +0 -9
  361. package/lib/utils/index.js +0 -24
  362. package/lib/utils/index.js.map +0 -1
  363. package/lib/utils/logger.d.ts +0 -6
  364. package/lib/utils/logger.js +0 -85
  365. package/lib/utils/logger.js.map +0 -1
  366. package/lib/utils/metrics.d.ts +0 -29
  367. package/lib/utils/metrics.js +0 -199
  368. package/lib/utils/metrics.js.map +0 -1
  369. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +0 -6
  370. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +0 -57
  371. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +0 -1
  372. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +0 -7
  373. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +0 -105
  374. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +0 -1
  375. package/lib/utils/minMaxQueue/index.d.ts +0 -12
  376. package/lib/utils/minMaxQueue/index.js +0 -16
  377. package/lib/utils/minMaxQueue/index.js.map +0 -1
  378. package/lib/utils/rpc-reply.d.ts +0 -16
  379. package/lib/utils/rpc-reply.js +0 -41
  380. package/lib/utils/rpc-reply.js.map +0 -1
  381. package/lib/utils/userop.d.ts +0 -138
  382. package/lib/utils/userop.js +0 -620
  383. package/lib/utils/userop.js.map +0 -1
  384. package/lib/utils/validation.d.ts +0 -76
  385. package/lib/utils/validation.js +0 -491
  386. package/lib/utils/validation.js.map +0 -1
@@ -1,499 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mempool = 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 reputationManager_1 = require("./reputationManager.js");
8
- const utils_2 = require("../executor/utils.js");
9
- const accounts_1 = require("viem/accounts");
10
- class Mempool {
11
- config;
12
- monitor;
13
- reputationManager;
14
- store;
15
- throttledEntityBundleCount;
16
- logger;
17
- validator;
18
- eventManager;
19
- constructor({ config, monitor, reputationManager, validator, store, eventManager }) {
20
- this.store = store;
21
- this.config = config;
22
- this.reputationManager = reputationManager;
23
- this.monitor = monitor;
24
- this.validator = validator;
25
- this.logger = config.getLogger({ module: "mempool" }, {
26
- level: config.logLevel
27
- });
28
- this.throttledEntityBundleCount = 4; // we don't have any config for this as of now
29
- this.eventManager = eventManager;
30
- }
31
- async replaceSubmitted({ userOpInfo, transactionInfo }) {
32
- const entryPoint = transactionInfo.bundle.entryPoint;
33
- const { userOpHash } = userOpInfo;
34
- const sumbittedUserOps = await this.store.dumpSubmitted(entryPoint);
35
- const existingUserOpToReplace = sumbittedUserOps.find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
36
- if (existingUserOpToReplace) {
37
- await this.store.removeSubmitted({ entryPoint, userOpHash });
38
- await this.store.addSubmitted({
39
- entryPoint,
40
- submittedUserOp: {
41
- ...userOpInfo,
42
- transactionInfo
43
- }
44
- });
45
- await this.monitor.setUserOperationStatus(userOpHash, {
46
- status: "submitted",
47
- transactionHash: transactionInfo.transactionHash
48
- });
49
- }
50
- }
51
- async markSubmitted({ userOpHash, transactionInfo }) {
52
- const entryPoint = transactionInfo.bundle.entryPoint;
53
- const processingUserOps = await this.store.dumpProcessing(entryPoint);
54
- const processingUserOp = processingUserOps.find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
55
- if (processingUserOp) {
56
- await this.store.removeProcessing({ entryPoint, userOpHash });
57
- await this.store.addSubmitted({
58
- entryPoint,
59
- submittedUserOp: {
60
- ...processingUserOp,
61
- transactionInfo
62
- }
63
- });
64
- await this.monitor.setUserOperationStatus(userOpHash, {
65
- status: "submitted",
66
- transactionHash: transactionInfo.transactionHash
67
- });
68
- }
69
- }
70
- async dumpOutstanding(entryPoint) {
71
- return await this.store.dumpOutstanding(entryPoint);
72
- }
73
- async dumpProcessing(entryPoint) {
74
- return await this.store.dumpProcessing(entryPoint);
75
- }
76
- async dumpSubmittedOps(entryPoint) {
77
- return await this.store.dumpSubmitted(entryPoint);
78
- }
79
- async removeSubmitted({ entryPoint, userOpHash }) {
80
- await this.store.removeSubmitted({ entryPoint, userOpHash });
81
- }
82
- async removeProcessing({ entryPoint, userOpHash }) {
83
- await this.store.removeProcessing({ entryPoint, userOpHash });
84
- }
85
- async checkEntityMultipleRoleViolation(entryPoint, op) {
86
- if (!this.config.safeMode) {
87
- return Promise.resolve();
88
- }
89
- const knownEntities = await this.getKnownEntities(entryPoint);
90
- if (knownEntities.paymasters.has(op.sender) ||
91
- knownEntities.factories.has(op.sender)) {
92
- throw new types_1.RpcError(`The sender address "${op.sender}" is used as a different entity in another UserOperation currently in mempool`, types_1.ValidationErrors.OpcodeValidation);
93
- }
94
- let paymaster = null;
95
- let factory = null;
96
- if ((0, utils_1.isVersion06)(op)) {
97
- paymaster = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(op.paymasterAndData);
98
- factory = (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(op.initCode);
99
- }
100
- if ((0, utils_1.isVersion07)(op)) {
101
- paymaster = op.paymaster;
102
- factory = op.factory;
103
- }
104
- if (paymaster && knownEntities.sender.has(paymaster)) {
105
- throw new types_1.RpcError(`A Paymaster at ${paymaster} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`, types_1.ValidationErrors.OpcodeValidation);
106
- }
107
- if (factory && knownEntities.sender.has(factory)) {
108
- throw new types_1.RpcError(`A Factory at ${factory} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`, types_1.ValidationErrors.OpcodeValidation);
109
- }
110
- return Promise.resolve();
111
- }
112
- async getKnownEntities(entryPoint) {
113
- // TODO: this won't work with redis
114
- const allOps = await this.store.dumpOutstanding(entryPoint);
115
- const entities = {
116
- sender: new Set(),
117
- paymasters: new Set(),
118
- factories: new Set()
119
- };
120
- for (const userOpInfo of allOps) {
121
- const { userOp } = userOpInfo;
122
- entities.sender.add(userOp.sender);
123
- const isUserOpV06 = (0, utils_1.isVersion06)(userOp);
124
- const paymaster = isUserOpV06
125
- ? (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(userOp.paymasterAndData)
126
- : userOp.paymaster;
127
- if (paymaster) {
128
- entities.paymasters.add(paymaster);
129
- }
130
- const factory = isUserOpV06
131
- ? (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(userOp.initCode)
132
- : userOp.factory;
133
- if (factory) {
134
- entities.factories.add(factory);
135
- }
136
- }
137
- return entities;
138
- }
139
- async add(userOp, entryPoint, referencedContracts) {
140
- const userOpHash = await (0, utils_1.getUserOperationHash)({
141
- userOperation: userOp,
142
- entryPointAddress: entryPoint,
143
- chainId: this.config.chainId,
144
- publicClient: this.config.publicClient
145
- });
146
- // Check if the exact same userOperation is already in the mempool.
147
- if (await this.store.isInMempool({ userOpHash, entryPoint })) {
148
- return [false, "Already known"];
149
- }
150
- // Check if there is a conflicting userOp already being processed
151
- const validation = await this.store.validateSubmittedOrProcessing({
152
- entryPoint,
153
- userOp
154
- });
155
- if (!validation.valid) {
156
- return [false, validation.reason];
157
- }
158
- // Check if there is a userOp we can replace
159
- const conflicting = await this.store.popConflictingOustanding({
160
- entryPoint,
161
- userOp
162
- });
163
- if (conflicting) {
164
- const { userOpInfo, reason } = conflicting;
165
- const conflictingUserOp = userOpInfo.userOp;
166
- const hasHigherPriorityFee = userOp.maxPriorityFeePerGas >=
167
- (0, utils_1.scaleBigIntByPercent)(conflictingUserOp.maxPriorityFeePerGas, 110n);
168
- const hasHigherMaxFee = userOp.maxFeePerGas >=
169
- (0, utils_1.scaleBigIntByPercent)(conflictingUserOp.maxFeePerGas, 110n);
170
- const hasHigherFees = hasHigherPriorityFee && hasHigherMaxFee;
171
- if (!hasHigherFees) {
172
- const message = reason === "conflicting_deployment"
173
- ? "AA10 sender already constructed: A conflicting userOperation with initCode for this sender is already in the mempool"
174
- : "AA25 invalid account nonce: User operation already present in mempool";
175
- // Re-add to outstanding as it wasn't replaced
176
- await this.store.addOutstanding({
177
- entryPoint,
178
- userOpInfo: conflicting.userOpInfo
179
- });
180
- return [false, `${message}, bump the gas price by minimum 10%`];
181
- }
182
- await this.reputationManager.replaceUserOperationSeenStatus(conflictingUserOp, entryPoint);
183
- }
184
- await this.reputationManager.increaseUserOperationSeenStatus(userOp, entryPoint);
185
- await this.store.addOutstanding({
186
- entryPoint,
187
- userOpInfo: {
188
- userOp,
189
- userOpHash,
190
- referencedContracts,
191
- addedToMempool: Date.now(),
192
- submissionAttempts: 0
193
- }
194
- });
195
- await this.monitor.setUserOperationStatus(userOpHash, {
196
- status: "not_submitted",
197
- transactionHash: null
198
- });
199
- this.eventManager.emitAddedToMempool(userOpHash);
200
- return [true, ""];
201
- }
202
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>
203
- async shouldSkip({ userOpInfo, paymasterDeposit, stakedEntityCount, knownEntities, senders, storageMap, entryPoint }) {
204
- if (!this.config.safeMode) {
205
- return {
206
- skip: false,
207
- paymasterDeposit,
208
- stakedEntityCount,
209
- knownEntities,
210
- senders,
211
- storageMap
212
- };
213
- }
214
- const { userOp, userOpHash, referencedContracts } = userOpInfo;
215
- const isUserOpV06 = (0, utils_1.isVersion06)(userOp);
216
- const paymaster = isUserOpV06
217
- ? (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(userOp.paymasterAndData)
218
- : userOp.paymaster;
219
- const factory = isUserOpV06
220
- ? (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(userOp.initCode)
221
- : userOp.factory;
222
- const paymasterStatus = this.reputationManager.getStatus(entryPoint, paymaster);
223
- const factoryStatus = this.reputationManager.getStatus(entryPoint, factory);
224
- if (paymasterStatus === reputationManager_1.ReputationStatuses.banned ||
225
- factoryStatus === reputationManager_1.ReputationStatuses.banned) {
226
- return {
227
- skip: true,
228
- removeOutstanding: true,
229
- paymasterDeposit,
230
- stakedEntityCount,
231
- knownEntities,
232
- senders,
233
- storageMap
234
- };
235
- }
236
- if (paymasterStatus === reputationManager_1.ReputationStatuses.throttled &&
237
- paymaster &&
238
- stakedEntityCount[paymaster] >= this.throttledEntityBundleCount) {
239
- this.logger.trace({
240
- paymaster,
241
- userOpHash
242
- }, "Throttled paymaster skipped");
243
- return {
244
- skip: true,
245
- paymasterDeposit,
246
- stakedEntityCount,
247
- knownEntities,
248
- senders,
249
- storageMap
250
- };
251
- }
252
- if (factoryStatus === reputationManager_1.ReputationStatuses.throttled &&
253
- factory &&
254
- stakedEntityCount[factory] >= this.throttledEntityBundleCount) {
255
- this.logger.trace({
256
- factory,
257
- userOpHash
258
- }, "Throttled factory skipped");
259
- return {
260
- skip: true,
261
- paymasterDeposit,
262
- stakedEntityCount,
263
- knownEntities,
264
- senders,
265
- storageMap
266
- };
267
- }
268
- if (senders.has(userOp.sender) &&
269
- this.config.enforceUniqueSendersPerBundle) {
270
- this.logger.trace({
271
- sender: userOp.sender,
272
- userOpHash
273
- }, "Sender skipped because already included in bundle");
274
- return {
275
- skip: true,
276
- paymasterDeposit,
277
- stakedEntityCount,
278
- knownEntities,
279
- senders,
280
- storageMap
281
- };
282
- }
283
- let validationResult;
284
- try {
285
- let queuedUserOperations = [];
286
- if (!isUserOpV06) {
287
- queuedUserOperations = await this.getQueuedOustandingUserOps({
288
- userOp,
289
- entryPoint
290
- });
291
- }
292
- validationResult = await this.validator.validateUserOperation({
293
- userOperation: userOp,
294
- queuedUserOperations,
295
- entryPoint,
296
- referencedContracts
297
- });
298
- }
299
- catch (e) {
300
- this.logger.error({
301
- userOpHash,
302
- error: JSON.stringify(e)
303
- }, "2nd Validation error");
304
- this.store.removeOutstanding({ entryPoint, userOpHash });
305
- this.reputationManager.decreaseUserOperationSeenStatus(userOp, entryPoint, e instanceof types_1.RpcError ? e.message : JSON.stringify(e));
306
- return {
307
- skip: true,
308
- paymasterDeposit,
309
- stakedEntityCount,
310
- knownEntities,
311
- senders,
312
- storageMap
313
- };
314
- }
315
- for (const storageAddress of Object.keys(validationResult.storageMap)) {
316
- const address = (0, viem_1.getAddress)(storageAddress);
317
- if (address !== userOp.sender &&
318
- knownEntities.sender.has(address)) {
319
- this.logger.trace({
320
- storageAddress,
321
- userOpHash
322
- }, "Storage address skipped");
323
- return {
324
- skip: true,
325
- paymasterDeposit,
326
- stakedEntityCount,
327
- knownEntities,
328
- senders,
329
- storageMap
330
- };
331
- }
332
- }
333
- if (paymaster) {
334
- if (paymasterDeposit[paymaster] === undefined) {
335
- const entryPointContract = (0, viem_1.getContract)({
336
- abi: isUserOpV06 ? types_1.EntryPointV06Abi : types_1.EntryPointV07Abi,
337
- address: entryPoint,
338
- client: {
339
- public: this.config.publicClient
340
- }
341
- });
342
- paymasterDeposit[paymaster] =
343
- await entryPointContract.read.balanceOf([paymaster]);
344
- }
345
- if (paymasterDeposit[paymaster] <
346
- validationResult.returnInfo.prefund) {
347
- this.logger.trace({
348
- paymaster,
349
- userOpHash
350
- }, "Paymaster skipped because of insufficient balance left to sponsor all user ops in the bundle");
351
- return {
352
- skip: true,
353
- paymasterDeposit,
354
- stakedEntityCount,
355
- knownEntities,
356
- senders,
357
- storageMap
358
- };
359
- }
360
- stakedEntityCount[paymaster] =
361
- (stakedEntityCount[paymaster] ?? 0) + 1;
362
- paymasterDeposit[paymaster] -= validationResult.returnInfo.prefund;
363
- }
364
- if (factory) {
365
- stakedEntityCount[factory] = (stakedEntityCount[factory] ?? 0) + 1;
366
- }
367
- senders.add(userOp.sender);
368
- return {
369
- skip: false,
370
- paymasterDeposit,
371
- stakedEntityCount,
372
- knownEntities,
373
- senders,
374
- storageMap
375
- };
376
- }
377
- async getBundles(maxBundleCount) {
378
- const bundlePromises = this.config.entrypoints.map(async (entryPoint) => {
379
- return await this.process({
380
- entryPoint,
381
- maxGasLimit: this.config.maxGasPerBundle,
382
- minOpsPerBundle: 1,
383
- maxBundleCount
384
- });
385
- });
386
- const bundlesNested = await Promise.all(bundlePromises);
387
- const bundles = bundlesNested.flat();
388
- return bundles;
389
- }
390
- // Returns a bundle of userOperations in array format.
391
- async process({ maxGasLimit, entryPoint, minOpsPerBundle, maxBundleCount }) {
392
- // Check if there are any operations in the store
393
- const firstOp = await this.store.peekOutstanding(entryPoint);
394
- if (!firstOp) {
395
- return [];
396
- }
397
- // Get EntryPoint version
398
- const isV6 = (0, utils_1.isVersion06)(firstOp.userOp);
399
- const bundles = [];
400
- const seenOps = new Set();
401
- let breakLoop = false;
402
- // Process operations until no more are available or we hit maxBundleCount
403
- while (await this.store.peekOutstanding(entryPoint)) {
404
- // If maxBundles is set and we reached the limit, break
405
- if (maxBundleCount && bundles.length >= maxBundleCount) {
406
- break;
407
- }
408
- // Setup for next bundle
409
- const currentBundle = {
410
- entryPoint,
411
- version: isV6 ? "0.6" : "0.7",
412
- userOps: []
413
- };
414
- let gasUsed = 0n;
415
- let paymasterDeposit = {};
416
- let stakedEntityCount = {};
417
- let senders = new Set();
418
- let knownEntities = await this.getKnownEntities(entryPoint);
419
- let storageMap = {};
420
- if (breakLoop) {
421
- break;
422
- }
423
- // Keep adding ops to current bundle
424
- while (await this.store.peekOutstanding(entryPoint)) {
425
- const userOpInfo = await this.store.popOutstanding(entryPoint);
426
- if (!userOpInfo) {
427
- break;
428
- }
429
- if (seenOps.has(userOpInfo.userOpHash)) {
430
- breakLoop = true;
431
- await this.store.addOutstanding({
432
- entryPoint,
433
- userOpInfo
434
- });
435
- break;
436
- }
437
- seenOps.add(userOpInfo.userOpHash);
438
- const { userOp } = userOpInfo;
439
- // Check if we should skip this operation
440
- const skipResult = await this.shouldSkip({
441
- userOpInfo,
442
- paymasterDeposit,
443
- stakedEntityCount,
444
- knownEntities,
445
- senders,
446
- storageMap,
447
- entryPoint
448
- });
449
- if (skipResult.skip) {
450
- // Re-add to outstanding
451
- if (!skipResult.removeOutstanding) {
452
- await this.store.addOutstanding({
453
- entryPoint,
454
- userOpInfo
455
- });
456
- }
457
- continue;
458
- }
459
- const beneficiary = this.config.utilityPrivateKey?.address ||
460
- (0, accounts_1.privateKeyToAddress)((0, accounts_1.generatePrivateKey)());
461
- gasUsed += (0, utils_2.calculateAA95GasFloor)({
462
- userOps: [userOp],
463
- beneficiary
464
- });
465
- // Only break on gas limit if we've hit minOpsPerBundle
466
- if (gasUsed > maxGasLimit &&
467
- currentBundle.userOps.length >= minOpsPerBundle) {
468
- // Put the operation back in the store
469
- await this.store.addOutstanding({ entryPoint, userOpInfo });
470
- break;
471
- }
472
- // Update state based on skip result
473
- paymasterDeposit = skipResult.paymasterDeposit;
474
- stakedEntityCount = skipResult.stakedEntityCount;
475
- knownEntities = skipResult.knownEntities;
476
- senders = skipResult.senders;
477
- storageMap = skipResult.storageMap;
478
- this.reputationManager.decreaseUserOperationCount(userOp);
479
- this.store.addProcessing({ entryPoint, userOpInfo });
480
- // Add op to current bundle
481
- currentBundle.userOps.push(userOpInfo);
482
- }
483
- if (currentBundle.userOps.length > 0) {
484
- bundles.push(currentBundle);
485
- }
486
- }
487
- return bundles;
488
- }
489
- clear() {
490
- for (const entryPoint of this.config.entrypoints) {
491
- this.store.clearOutstanding(entryPoint);
492
- }
493
- }
494
- async getQueuedOustandingUserOps(args) {
495
- return await this.store.getQueuedOutstandingUserOps(args);
496
- }
497
- }
498
- exports.Mempool = Mempool;
499
- //# sourceMappingURL=mempool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { HexData32, UserOperationStatus } from "../types/index.js";
2
- import { AltoConfig } from "../createConfig.js";
3
- export declare class Monitor {
4
- private statusStore;
5
- private userOperationTimeouts;
6
- private timeout;
7
- constructor({ config, timeout }: {
8
- config: AltoConfig;
9
- timeout?: number;
10
- });
11
- setUserOperationStatus(userOperation: HexData32, status: UserOperationStatus): Promise<void>;
12
- getUserOperationStatus(userOperation: HexData32): Promise<UserOperationStatus>;
13
- }
14
- //# sourceMappingURL=monitoring.d.ts.map
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Monitor = void 0;
4
- const ioredis_1 = require("ioredis");
5
- const schemas_1 = require("../types/schemas.js");
6
- class InMemoryUserOperationStatusStore {
7
- store = {};
8
- async set(userOpHash, status) {
9
- this.store[userOpHash] = status;
10
- }
11
- async get(userOpHash) {
12
- return this.store[userOpHash];
13
- }
14
- async delete(userOpHash) {
15
- delete this.store[userOpHash];
16
- }
17
- }
18
- class RedisUserOperationStatusStore {
19
- redis;
20
- keyPrefix;
21
- constructor(redisUrl, chainId) {
22
- this.redis = new ioredis_1.Redis(redisUrl);
23
- this.keyPrefix = `${chainId}:userop_status`;
24
- }
25
- getKey(userOpHash) {
26
- return `${this.keyPrefix}:${userOpHash}`;
27
- }
28
- serialize(status) {
29
- try {
30
- return JSON.stringify(status);
31
- }
32
- catch (error) {
33
- throw new Error(`Failed to serialize UserOperationStatus: ${error instanceof Error ? error.message : "Unknown error"}`);
34
- }
35
- }
36
- deserialize(data) {
37
- try {
38
- const parsed = JSON.parse(data);
39
- const result = schemas_1.userOperationStatusSchema.safeParse(parsed);
40
- if (!result.success) {
41
- throw new Error(`Invalid UserOperationStatus format: ${result.error.message}`);
42
- }
43
- return result.data;
44
- }
45
- catch (error) {
46
- throw new Error(`Failed to deserialize UserOperationStatus: ${error instanceof Error ? error.message : "Unknown error"}`);
47
- }
48
- }
49
- async set(userOpHash, status) {
50
- await this.redis.set(this.getKey(userOpHash), this.serialize(status));
51
- }
52
- async get(userOpHash) {
53
- const data = await this.redis.get(this.getKey(userOpHash));
54
- if (!data)
55
- return undefined;
56
- return this.deserialize(data);
57
- }
58
- async delete(userOpHash) {
59
- await this.redis.del(this.getKey(userOpHash));
60
- }
61
- }
62
- class Monitor {
63
- statusStore;
64
- userOperationTimeouts;
65
- timeout;
66
- constructor({ config, timeout = 60 * 60 * 1000 }) {
67
- this.timeout = timeout;
68
- this.userOperationTimeouts = {};
69
- if (config?.redisMempoolUrl) {
70
- this.statusStore = new RedisUserOperationStatusStore(config.redisMempoolUrl, config.chainId);
71
- }
72
- else {
73
- this.statusStore = new InMemoryUserOperationStatusStore();
74
- }
75
- }
76
- async setUserOperationStatus(userOperation, status) {
77
- // Clear existing timer if it exists
78
- if (this.userOperationTimeouts[userOperation]) {
79
- clearTimeout(this.userOperationTimeouts[userOperation]);
80
- }
81
- // Set the user operation status
82
- await this.statusStore.set(userOperation, status);
83
- // Set a new timer and store its identifier
84
- this.userOperationTimeouts[userOperation] = setTimeout(async () => {
85
- await this.statusStore.delete(userOperation);
86
- delete this.userOperationTimeouts[userOperation];
87
- }, this.timeout);
88
- }
89
- async getUserOperationStatus(userOperation) {
90
- const status = await this.statusStore.get(userOperation);
91
- if (status === undefined) {
92
- return {
93
- status: "not_found",
94
- transactionHash: null
95
- };
96
- }
97
- return status;
98
- }
99
- }
100
- exports.Monitor = Monitor;
101
- //# sourceMappingURL=monitoring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../mempool/monitoring.ts"],"names":[],"mappings":"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"}