@pimlico/alto 0.0.0-main.20250307T203608 → 0.0.0-main.20250324T173034

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 (289) hide show
  1. package/esm/cli/alto.js +5 -3
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +87 -36
  4. package/esm/cli/config/bundler.js +15 -3
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.d.ts +2 -1
  7. package/esm/cli/config/options.js +59 -5
  8. package/esm/cli/config/options.js.map +1 -1
  9. package/esm/cli/handler.js +3 -4
  10. package/esm/cli/handler.js.map +1 -1
  11. package/esm/cli/setupServer.d.ts +1 -1
  12. package/esm/cli/setupServer.js +109 -49
  13. package/esm/cli/setupServer.js.map +1 -1
  14. package/esm/createConfig.d.ts +1 -0
  15. package/esm/createConfig.js +1 -0
  16. package/esm/createConfig.js.map +1 -1
  17. package/esm/executor/executor.d.ts +3 -3
  18. package/esm/executor/executor.js +1 -3
  19. package/esm/executor/executor.js.map +1 -1
  20. package/esm/executor/executorManager.d.ts +14 -12
  21. package/esm/executor/executorManager.js +131 -97
  22. package/esm/executor/executorManager.js.map +1 -1
  23. package/esm/executor/index.d.ts +1 -1
  24. package/esm/executor/index.js +1 -1
  25. package/esm/executor/senderManager/createMemorySenderManager.d.ts +8 -0
  26. package/esm/executor/senderManager/createMemorySenderManager.js +41 -0
  27. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -0
  28. package/esm/executor/senderManager/createRedisSenderManager.d.ts +8 -0
  29. package/esm/executor/senderManager/createRedisSenderManager.js +78 -0
  30. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -0
  31. package/esm/executor/senderManager/flushOnStartUp.d.ts +9 -0
  32. package/esm/executor/senderManager/flushOnStartUp.js +33 -0
  33. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -0
  34. package/esm/executor/senderManager/index.d.ts +15 -0
  35. package/esm/executor/senderManager/index.js +20 -0
  36. package/esm/executor/senderManager/index.js.map +1 -0
  37. package/esm/executor/senderManager/validateAndRefill.d.ts +11 -0
  38. package/esm/executor/senderManager/validateAndRefill.js +111 -0
  39. package/esm/executor/senderManager/validateAndRefill.js.map +1 -0
  40. package/esm/executor/utils.d.ts +8 -2
  41. package/esm/executor/utils.js +9 -1
  42. package/esm/executor/utils.js.map +1 -1
  43. package/esm/handlers/arbitrumGasPriceManager.d.ts +7 -4
  44. package/esm/handlers/arbitrumGasPriceManager.js +19 -13
  45. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  46. package/esm/handlers/eventManager.js +5 -4
  47. package/esm/handlers/eventManager.js.map +1 -1
  48. package/esm/handlers/gasPriceManager.d.ts +1 -4
  49. package/esm/handlers/gasPriceManager.js +81 -48
  50. package/esm/handlers/gasPriceManager.js.map +1 -1
  51. package/esm/handlers/mantleGasPriceManager.d.ts +6 -3
  52. package/esm/handlers/mantleGasPriceManager.js +23 -11
  53. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  54. package/esm/handlers/optimismManager.d.ts +5 -2
  55. package/esm/handlers/optimismManager.js +8 -5
  56. package/esm/handlers/optimismManager.js.map +1 -1
  57. package/esm/mempool/index.d.ts +0 -1
  58. package/esm/mempool/index.js +0 -1
  59. package/esm/mempool/index.js.map +1 -1
  60. package/esm/mempool/mempool.d.ts +95 -27
  61. package/esm/mempool/mempool.js +132 -252
  62. package/esm/mempool/mempool.js.map +1 -1
  63. package/esm/mempool/monitoring.d.ts +8 -4
  64. package/esm/mempool/monitoring.js +72 -9
  65. package/esm/mempool/monitoring.js.map +1 -1
  66. package/esm/rpc/estimation/gasEstimationHandler.d.ts +10 -4
  67. package/esm/rpc/estimation/gasEstimationHandler.js +16 -19
  68. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  69. package/esm/rpc/estimation/gasEstimationsV07.d.ts +7 -0
  70. package/esm/rpc/estimation/gasEstimationsV07.js +69 -4
  71. package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
  72. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  73. package/esm/rpc/methods/debug_bundler_dumpMempool.js +2 -2
  74. package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
  75. package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
  76. package/esm/rpc/methods/eth_chainId.js +1 -1
  77. package/esm/rpc/methods/eth_chainId.js.map +1 -1
  78. package/esm/rpc/methods/eth_sendUserOperation.js +2 -2
  79. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  80. package/esm/rpc/methods/index.js +0 -5
  81. package/esm/rpc/methods/index.js.map +1 -1
  82. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +2 -3
  83. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  84. package/esm/rpc/rpcHandler.d.ts +4 -7
  85. package/esm/rpc/rpcHandler.js +37 -37
  86. package/esm/rpc/rpcHandler.js.map +1 -1
  87. package/esm/rpc/validation/SafeValidator.js +2 -2
  88. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  89. package/esm/rpc/validation/UnsafeValidator.d.ts +7 -2
  90. package/esm/rpc/validation/UnsafeValidator.js +20 -4
  91. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  92. package/esm/store/createMemoryOutstandingStore.d.ts +28 -0
  93. package/esm/store/createMemoryOutstandingStore.js +221 -0
  94. package/esm/store/createMemoryOutstandingStore.js.map +1 -0
  95. package/esm/store/createMempoolStore.d.ts +8 -0
  96. package/esm/store/createMempoolStore.js +193 -0
  97. package/esm/store/createMempoolStore.js.map +1 -0
  98. package/esm/store/createRedisOutstandingStore.d.ts +27 -0
  99. package/esm/store/createRedisOutstandingStore.js +344 -0
  100. package/esm/store/createRedisOutstandingStore.js.map +1 -0
  101. package/esm/store/createRedisStore.d.ts +9 -0
  102. package/esm/store/createRedisStore.js +131 -0
  103. package/esm/store/createRedisStore.js.map +1 -0
  104. package/esm/store/createStore.d.ts +6 -0
  105. package/esm/store/createStore.js +66 -0
  106. package/esm/store/createStore.js.map +1 -0
  107. package/esm/store/index.d.ts +81 -0
  108. package/esm/store/index.js +2 -0
  109. package/esm/store/index.js.map +1 -0
  110. package/esm/types/interfaces.d.ts +7 -3
  111. package/esm/types/mempool.d.ts +2 -15
  112. package/esm/types/mempool.js.map +1 -1
  113. package/esm/types/schemas.d.ts +4617 -7632
  114. package/esm/types/schemas.js +19 -42
  115. package/esm/types/schemas.js.map +1 -1
  116. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +6 -0
  117. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +53 -0
  118. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -0
  119. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +7 -0
  120. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +98 -0
  121. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -0
  122. package/esm/utils/minMaxQueue/index.d.ts +12 -0
  123. package/esm/utils/minMaxQueue/index.js +12 -0
  124. package/esm/utils/minMaxQueue/index.js.map +1 -0
  125. package/esm/utils/validation.js +8 -10
  126. package/esm/utils/validation.js.map +1 -1
  127. package/lib/cli/alto.js +3 -1
  128. package/lib/cli/alto.js.map +1 -1
  129. package/lib/cli/config/bundler.d.ts +87 -36
  130. package/lib/cli/config/bundler.js +16 -4
  131. package/lib/cli/config/bundler.js.map +1 -1
  132. package/lib/cli/config/options.d.ts +2 -1
  133. package/lib/cli/config/options.js +60 -6
  134. package/lib/cli/config/options.js.map +1 -1
  135. package/lib/cli/handler.js +3 -4
  136. package/lib/cli/handler.js.map +1 -1
  137. package/lib/cli/setupServer.d.ts +1 -1
  138. package/lib/cli/setupServer.js +108 -48
  139. package/lib/cli/setupServer.js.map +1 -1
  140. package/lib/createConfig.d.ts +1 -0
  141. package/lib/createConfig.js +1 -0
  142. package/lib/createConfig.js.map +1 -1
  143. package/lib/executor/executor.d.ts +3 -3
  144. package/lib/executor/executor.js +1 -3
  145. package/lib/executor/executor.js.map +1 -1
  146. package/lib/executor/executorManager.d.ts +14 -12
  147. package/lib/executor/executorManager.js +131 -97
  148. package/lib/executor/executorManager.js.map +1 -1
  149. package/lib/executor/index.d.ts +1 -1
  150. package/lib/executor/index.js +1 -1
  151. package/lib/executor/senderManager/createMemorySenderManager.d.ts +8 -0
  152. package/lib/executor/senderManager/createMemorySenderManager.js +45 -0
  153. package/lib/executor/senderManager/createMemorySenderManager.js.map +1 -0
  154. package/lib/executor/senderManager/createRedisSenderManager.d.ts +8 -0
  155. package/lib/executor/senderManager/createRedisSenderManager.js +85 -0
  156. package/lib/executor/senderManager/createRedisSenderManager.js.map +1 -0
  157. package/lib/executor/senderManager/flushOnStartUp.d.ts +9 -0
  158. package/lib/executor/senderManager/flushOnStartUp.js +37 -0
  159. package/lib/executor/senderManager/flushOnStartUp.js.map +1 -0
  160. package/lib/executor/senderManager/index.d.ts +15 -0
  161. package/lib/executor/senderManager/index.js +25 -0
  162. package/lib/executor/senderManager/index.js.map +1 -0
  163. package/lib/executor/senderManager/validateAndRefill.d.ts +11 -0
  164. package/lib/executor/senderManager/validateAndRefill.js +115 -0
  165. package/lib/executor/senderManager/validateAndRefill.js.map +1 -0
  166. package/lib/executor/utils.d.ts +8 -2
  167. package/lib/executor/utils.js +9 -1
  168. package/lib/executor/utils.js.map +1 -1
  169. package/lib/handlers/arbitrumGasPriceManager.d.ts +7 -4
  170. package/lib/handlers/arbitrumGasPriceManager.js +19 -13
  171. package/lib/handlers/arbitrumGasPriceManager.js.map +1 -1
  172. package/lib/handlers/eventManager.js +5 -4
  173. package/lib/handlers/eventManager.js.map +1 -1
  174. package/lib/handlers/gasPriceManager.d.ts +1 -4
  175. package/lib/handlers/gasPriceManager.js +81 -48
  176. package/lib/handlers/gasPriceManager.js.map +1 -1
  177. package/lib/handlers/mantleGasPriceManager.d.ts +6 -3
  178. package/lib/handlers/mantleGasPriceManager.js +23 -11
  179. package/lib/handlers/mantleGasPriceManager.js.map +1 -1
  180. package/lib/handlers/optimismManager.d.ts +5 -2
  181. package/lib/handlers/optimismManager.js +8 -5
  182. package/lib/handlers/optimismManager.js.map +1 -1
  183. package/lib/mempool/index.d.ts +0 -1
  184. package/lib/mempool/index.js +0 -1
  185. package/lib/mempool/index.js.map +1 -1
  186. package/lib/mempool/mempool.d.ts +95 -27
  187. package/lib/mempool/mempool.js +133 -253
  188. package/lib/mempool/mempool.js.map +1 -1
  189. package/lib/mempool/monitoring.d.ts +8 -4
  190. package/lib/mempool/monitoring.js +72 -9
  191. package/lib/mempool/monitoring.js.map +1 -1
  192. package/lib/rpc/estimation/gasEstimationHandler.d.ts +10 -4
  193. package/lib/rpc/estimation/gasEstimationHandler.js +15 -18
  194. package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -1
  195. package/lib/rpc/estimation/gasEstimationsV07.d.ts +7 -0
  196. package/lib/rpc/estimation/gasEstimationsV07.js +69 -4
  197. package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -1
  198. package/lib/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  199. package/lib/rpc/methods/debug_bundler_dumpMempool.js +2 -2
  200. package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
  201. package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
  202. package/lib/rpc/methods/eth_chainId.js +1 -1
  203. package/lib/rpc/methods/eth_chainId.js.map +1 -1
  204. package/lib/rpc/methods/eth_sendUserOperation.js +2 -2
  205. package/lib/rpc/methods/eth_sendUserOperation.js.map +1 -1
  206. package/lib/rpc/methods/index.js +0 -5
  207. package/lib/rpc/methods/index.js.map +1 -1
  208. package/lib/rpc/methods/pimlico_sendUserOperationNow.js +2 -3
  209. package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  210. package/lib/rpc/rpcHandler.d.ts +4 -7
  211. package/lib/rpc/rpcHandler.js +37 -37
  212. package/lib/rpc/rpcHandler.js.map +1 -1
  213. package/lib/rpc/validation/SafeValidator.js +2 -2
  214. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  215. package/lib/rpc/validation/UnsafeValidator.d.ts +7 -2
  216. package/lib/rpc/validation/UnsafeValidator.js +20 -4
  217. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  218. package/lib/store/createMemoryOutstandingStore.d.ts +28 -0
  219. package/lib/store/createMemoryOutstandingStore.js +226 -0
  220. package/lib/store/createMemoryOutstandingStore.js.map +1 -0
  221. package/lib/store/createMempoolStore.d.ts +8 -0
  222. package/lib/store/createMempoolStore.js +197 -0
  223. package/lib/store/createMempoolStore.js.map +1 -0
  224. package/lib/store/createRedisOutstandingStore.d.ts +27 -0
  225. package/lib/store/createRedisOutstandingStore.js +349 -0
  226. package/lib/store/createRedisOutstandingStore.js.map +1 -0
  227. package/lib/store/createRedisStore.d.ts +9 -0
  228. package/lib/store/createRedisStore.js +138 -0
  229. package/lib/store/createRedisStore.js.map +1 -0
  230. package/lib/store/createStore.d.ts +6 -0
  231. package/lib/store/createStore.js +70 -0
  232. package/lib/store/createStore.js.map +1 -0
  233. package/lib/store/index.d.ts +81 -0
  234. package/lib/store/index.js +6 -0
  235. package/lib/store/index.js.map +1 -0
  236. package/lib/types/interfaces.d.ts +7 -3
  237. package/lib/types/mempool.d.ts +2 -15
  238. package/lib/types/mempool.js.map +1 -1
  239. package/lib/types/schemas.d.ts +4617 -7632
  240. package/lib/types/schemas.js +24 -47
  241. package/lib/types/schemas.js.map +1 -1
  242. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +6 -0
  243. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +57 -0
  244. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -0
  245. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +7 -0
  246. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +105 -0
  247. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -0
  248. package/lib/utils/minMaxQueue/index.d.ts +12 -0
  249. package/lib/utils/minMaxQueue/index.js +16 -0
  250. package/lib/utils/minMaxQueue/index.js.map +1 -0
  251. package/lib/utils/validation.js +8 -10
  252. package/lib/utils/validation.js.map +1 -1
  253. package/package.json +2 -2
  254. package/esm/executor/senderManager.d.ts +0 -26
  255. package/esm/executor/senderManager.js +0 -216
  256. package/esm/executor/senderManager.js.map +0 -1
  257. package/esm/mempool/nonceQueuer.d.ts +0 -32
  258. package/esm/mempool/nonceQueuer.js +0 -143
  259. package/esm/mempool/nonceQueuer.js.map +0 -1
  260. package/esm/mempool/store.d.ts +0 -22
  261. package/esm/mempool/store.js +0 -124
  262. package/esm/mempool/store.js.map +0 -1
  263. package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.d.ts +0 -979
  264. package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js +0 -22
  265. package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js.map +0 -1
  266. package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.d.ts +0 -422
  267. package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.js +0 -19
  268. package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.js.map +0 -1
  269. package/esm/utils/slidingWindowTimedQueue.d.ts +0 -12
  270. package/esm/utils/slidingWindowTimedQueue.js +0 -48
  271. package/esm/utils/slidingWindowTimedQueue.js.map +0 -1
  272. package/lib/executor/senderManager.d.ts +0 -26
  273. package/lib/executor/senderManager.js +0 -220
  274. package/lib/executor/senderManager.js.map +0 -1
  275. package/lib/mempool/nonceQueuer.d.ts +0 -32
  276. package/lib/mempool/nonceQueuer.js +0 -147
  277. package/lib/mempool/nonceQueuer.js.map +0 -1
  278. package/lib/mempool/store.d.ts +0 -22
  279. package/lib/mempool/store.js +0 -128
  280. package/lib/mempool/store.js.map +0 -1
  281. package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.d.ts +0 -979
  282. package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js +0 -25
  283. package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js.map +0 -1
  284. package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.d.ts +0 -422
  285. package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.js +0 -22
  286. package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.js.map +0 -1
  287. package/lib/utils/slidingWindowTimedQueue.d.ts +0 -12
  288. package/lib/utils/slidingWindowTimedQueue.js +0 -52
  289. package/lib/utils/slidingWindowTimedQueue.js.map +0 -1
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemoryMempool = void 0;
3
+ exports.Mempool = void 0;
4
4
  const types_1 = require("../types/index.js");
5
5
  const utils_1 = require("../utils/index.js");
6
6
  const viem_1 = require("viem");
7
7
  const reputationManager_1 = require("./reputationManager.js");
8
- const store_1 = require("./store.js");
9
- class MemoryMempool {
8
+ class Mempool {
10
9
  config;
11
10
  monitor;
12
11
  reputationManager;
@@ -15,7 +14,8 @@ class MemoryMempool {
15
14
  logger;
16
15
  validator;
17
16
  eventManager;
18
- constructor({ config, monitor, reputationManager, validator, metrics, eventManager }) {
17
+ constructor({ config, monitor, reputationManager, validator, store, eventManager }) {
18
+ this.store = store;
19
19
  this.config = config;
20
20
  this.reputationManager = reputationManager;
21
21
  this.monitor = monitor;
@@ -23,63 +23,68 @@ class MemoryMempool {
23
23
  this.logger = config.getLogger({ module: "mempool" }, {
24
24
  level: config.logLevel
25
25
  });
26
- this.store = new store_1.MemoryStore(this.logger, metrics);
27
26
  this.throttledEntityBundleCount = 4; // we don't have any config for this as of now
28
27
  this.eventManager = eventManager;
29
28
  }
30
- replaceSubmitted(userOpInfo, transactionInfo) {
29
+ async replaceSubmitted({ userOpInfo, transactionInfo }) {
30
+ const entryPoint = transactionInfo.bundle.entryPoint;
31
31
  const { userOpHash } = userOpInfo;
32
- const existingUserOpToReplace = this.store
33
- .dumpSubmitted()
34
- .find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
32
+ const sumbittedUserOps = await this.store.dumpSubmitted(entryPoint);
33
+ const existingUserOpToReplace = sumbittedUserOps.find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
35
34
  if (existingUserOpToReplace) {
36
- this.store.removeSubmitted(userOpHash);
37
- this.store.addSubmitted({
38
- ...userOpInfo,
39
- transactionInfo
35
+ await this.store.removeSubmitted({ entryPoint, userOpHash });
36
+ await this.store.addSubmitted({
37
+ entryPoint,
38
+ submittedUserOp: {
39
+ ...userOpInfo,
40
+ transactionInfo
41
+ }
40
42
  });
41
- this.monitor.setUserOperationStatus(userOpHash, {
43
+ await this.monitor.setUserOperationStatus(userOpHash, {
42
44
  status: "submitted",
43
45
  transactionHash: transactionInfo.transactionHash
44
46
  });
45
47
  }
46
48
  }
47
- markSubmitted(userOpHash, transactionInfo) {
48
- const processingUserOp = this.store
49
- .dumpProcessing()
50
- .find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
49
+ async markSubmitted({ userOpHash, transactionInfo }) {
50
+ const entryPoint = transactionInfo.bundle.entryPoint;
51
+ const processingUserOps = await this.store.dumpProcessing(entryPoint);
52
+ const processingUserOp = processingUserOps.find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
51
53
  if (processingUserOp) {
52
- this.store.removeProcessing(userOpHash);
53
- this.store.addSubmitted({
54
- ...processingUserOp,
55
- transactionInfo
54
+ await this.store.removeProcessing({ entryPoint, userOpHash });
55
+ await this.store.addSubmitted({
56
+ entryPoint,
57
+ submittedUserOp: {
58
+ ...processingUserOp,
59
+ transactionInfo
60
+ }
56
61
  });
57
- this.monitor.setUserOperationStatus(userOpHash, {
62
+ await this.monitor.setUserOperationStatus(userOpHash, {
58
63
  status: "submitted",
59
64
  transactionHash: transactionInfo.transactionHash
60
65
  });
61
66
  }
62
67
  }
63
- dumpOutstanding() {
64
- return this.store.dumpOutstanding();
68
+ async dumpOutstanding(entryPoint) {
69
+ return await this.store.dumpOutstanding(entryPoint);
65
70
  }
66
- dumpProcessing() {
67
- return this.store.dumpProcessing();
71
+ async dumpProcessing(entryPoint) {
72
+ return await this.store.dumpProcessing(entryPoint);
68
73
  }
69
- dumpSubmittedOps() {
70
- return this.store.dumpSubmitted();
74
+ async dumpSubmittedOps(entryPoint) {
75
+ return await this.store.dumpSubmitted(entryPoint);
71
76
  }
72
- removeSubmitted(userOpHash) {
73
- this.store.removeSubmitted(userOpHash);
77
+ async removeSubmitted({ entryPoint, userOpHash }) {
78
+ await this.store.removeSubmitted({ entryPoint, userOpHash });
74
79
  }
75
- removeProcessing(userOpHash) {
76
- this.store.removeProcessing(userOpHash);
80
+ async removeProcessing({ entryPoint, userOpHash }) {
81
+ await this.store.removeProcessing({ entryPoint, userOpHash });
77
82
  }
78
- checkEntityMultipleRoleViolation(op) {
83
+ async checkEntityMultipleRoleViolation(entryPoint, op) {
79
84
  if (!this.config.safeMode) {
80
85
  return Promise.resolve();
81
86
  }
82
- const knownEntities = this.getKnownEntities();
87
+ const knownEntities = await this.getKnownEntities(entryPoint);
83
88
  if (knownEntities.paymasters.has(op.sender) ||
84
89
  knownEntities.factories.has(op.sender)) {
85
90
  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);
@@ -102,8 +107,9 @@ class MemoryMempool {
102
107
  }
103
108
  return Promise.resolve();
104
109
  }
105
- getKnownEntities() {
106
- const allOps = [...this.store.dumpOutstanding()];
110
+ async getKnownEntities(entryPoint) {
111
+ // TODO: this won't work with redis
112
+ const allOps = await this.store.dumpOutstanding(entryPoint);
107
113
  const entities = {
108
114
  sender: new Set(),
109
115
  paymasters: new Set(),
@@ -128,133 +134,65 @@ class MemoryMempool {
128
134
  }
129
135
  return entities;
130
136
  }
131
- // TODO: add check for adding a userop with conflicting nonce
132
- // In case of concurrent requests
133
- add(userOp, entryPoint, referencedContracts) {
134
- const userOpHash = (0, utils_1.getUserOperationHash)(userOp, entryPoint, this.config.publicClient.chain.id);
135
- const outstandingOps = [...this.store.dumpOutstanding()];
136
- const processedOrSubmittedOps = [
137
- ...this.store.dumpProcessing(),
138
- ...this.store.dumpSubmitted()
139
- ];
137
+ async add(userOp, entryPoint, referencedContracts) {
138
+ const userOpHash = (0, utils_1.getUserOperationHash)(userOp, entryPoint, this.config.chainId);
140
139
  // Check if the exact same userOperation is already in the mempool.
141
- const existingUserOperation = [
142
- ...outstandingOps,
143
- ...processedOrSubmittedOps
144
- ].find((userOpInfo) => userOpInfo.userOpHash === userOpHash);
145
- if (existingUserOperation) {
140
+ if (await this.store.isInMempool({ userOpHash, entryPoint })) {
146
141
  return [false, "Already known"];
147
142
  }
148
- if (processedOrSubmittedOps.find((userOpInfo) => {
149
- const { userOp: mempoolUserOp } = userOpInfo;
150
- return (mempoolUserOp.sender === userOp.sender &&
151
- mempoolUserOp.nonce === userOp.nonce);
152
- })) {
153
- return [
154
- false,
155
- "AA25 invalid account nonce: User operation is already in mempool and getting processed with same nonce and sender"
156
- ];
143
+ // Check if there is a conflicting userOp already being processed
144
+ const validation = await this.store.validateSubmittedOrProcessing({
145
+ entryPoint,
146
+ userOp
147
+ });
148
+ if (!validation.valid) {
149
+ return [false, validation.reason];
157
150
  }
158
- const oldUserOpInfo = [
159
- ...outstandingOps,
160
- ...processedOrSubmittedOps
161
- ].find((userOpInfo) => {
162
- const { userOp: mempoolUserOp } = userOpInfo;
163
- const isSameSender = mempoolUserOp.sender === userOp.sender;
164
- if (isSameSender && mempoolUserOp.nonce === userOp.nonce) {
165
- return true;
166
- }
167
- // Check if there is already a userOperation with initCode + same sender (stops rejected ops due to AA10).
168
- if ((0, utils_1.isVersion06)(mempoolUserOp) &&
169
- (0, utils_1.isVersion06)(userOp) &&
170
- userOp.initCode &&
171
- userOp.initCode !== "0x") {
172
- return (isSameSender &&
173
- mempoolUserOp.initCode &&
174
- mempoolUserOp.initCode !== "0x");
175
- }
176
- // Check if there is already a userOperation with factory + same sender (stops rejected ops due to AA10).
177
- if ((0, utils_1.isVersion07)(mempoolUserOp) &&
178
- (0, utils_1.isVersion07)(userOp) &&
179
- userOp.factory &&
180
- userOp.factory !== "0x") {
181
- return (isSameSender &&
182
- mempoolUserOp.factory &&
183
- mempoolUserOp.factory !== "0x");
184
- }
185
- return false;
151
+ // Check if there is a userOp we can replace
152
+ const conflicting = await this.store.popConflictingOustanding({
153
+ entryPoint,
154
+ userOp
186
155
  });
187
- const isOldUserOpProcessingOrSubmitted = processedOrSubmittedOps.some((userOpInfo) => userOpInfo.userOpHash === oldUserOpInfo?.userOpHash);
188
- if (oldUserOpInfo) {
189
- const { userOp: oldUserOp } = oldUserOpInfo;
190
- let reason = "AA10 sender already constructed: A conflicting userOperation with initCode for this sender is already in the mempool. bump the gas price by minimum 10%";
191
- if (oldUserOp.nonce === userOp.nonce) {
192
- reason =
193
- "AA25 invalid account nonce: User operation already present in mempool, bump the gas price by minimum 10%";
194
- }
195
- // if oldOp is already in processing or submitted mempool, we can't replace it so early exit.
196
- if (isOldUserOpProcessingOrSubmitted) {
197
- return [false, reason];
198
- }
199
- const oldOp = oldUserOp;
200
- const newOp = userOp;
201
- const hasHigherPriorityFee = newOp.maxPriorityFeePerGas >=
202
- (0, utils_1.scaleBigIntByPercent)(oldOp.maxPriorityFeePerGas, 110n);
203
- const hasHigherMaxFee = newOp.maxFeePerGas >=
204
- (0, utils_1.scaleBigIntByPercent)(oldOp.maxFeePerGas, 110n);
156
+ if (conflicting) {
157
+ const { userOpInfo, reason } = conflicting;
158
+ const conflictingUserOp = userOpInfo.userOp;
159
+ const hasHigherPriorityFee = userOp.maxPriorityFeePerGas >=
160
+ (0, utils_1.scaleBigIntByPercent)(conflictingUserOp.maxPriorityFeePerGas, 110n);
161
+ const hasHigherMaxFee = userOp.maxFeePerGas >=
162
+ (0, utils_1.scaleBigIntByPercent)(conflictingUserOp.maxFeePerGas, 110n);
205
163
  const hasHigherFees = hasHigherPriorityFee && hasHigherMaxFee;
206
164
  if (!hasHigherFees) {
207
- return [false, reason];
165
+ const message = reason === "conflicting_deployment"
166
+ ? "AA10 sender already constructed: A conflicting userOperation with initCode for this sender is already in the mempool"
167
+ : "AA25 invalid account nonce: User operation already present in mempool";
168
+ // Re-add to outstanding as it wasn't replaced
169
+ await this.store.addOutstanding({
170
+ entryPoint,
171
+ userOpInfo: conflicting.userOpInfo
172
+ });
173
+ return [false, `${message}, bump the gas price by minimum 10%`];
208
174
  }
209
- this.store.removeOutstanding(oldUserOpInfo.userOpHash);
210
- this.reputationManager.replaceUserOperationSeenStatus(oldOp, entryPoint);
211
- }
212
- this.reputationManager.increaseUserOperationSeenStatus(userOp, entryPoint);
213
- // Check if mempool already includes max amount of parallel user operations
214
- const parallelUserOperationsCount = this.store
215
- .dumpOutstanding()
216
- .filter((userOpInfo) => {
217
- const { userOp: mempoolUserOp } = userOpInfo;
218
- return mempoolUserOp.sender === userOp.sender;
219
- }).length;
220
- if (parallelUserOperationsCount > this.config.mempoolMaxParallelOps) {
221
- return [
222
- false,
223
- "AA25 invalid account nonce: Maximum number of parallel user operations for that is allowed for this sender reached"
224
- ];
175
+ await this.reputationManager.replaceUserOperationSeenStatus(conflictingUserOp, entryPoint);
225
176
  }
226
- // Check if mempool already includes max amount of queued user operations
227
- const [nonceKey] = (0, utils_1.getNonceKeyAndSequence)(userOp.nonce);
228
- const queuedUserOperationsCount = this.store
229
- .dumpOutstanding()
230
- .filter((userOpInfo) => {
231
- const { userOp: mempoolUserOp } = userOpInfo;
232
- const [opNonceKey] = (0, utils_1.getNonceKeyAndSequence)(mempoolUserOp.nonce);
233
- return (mempoolUserOp.sender === userOp.sender &&
234
- opNonceKey === nonceKey);
235
- }).length;
236
- if (queuedUserOperationsCount > this.config.mempoolMaxQueuedOps) {
237
- return [
238
- false,
239
- "AA25 invalid account nonce: Maximum number of queued user operations reached for this sender and nonce key"
240
- ];
241
- }
242
- this.store.addOutstanding({
243
- userOp,
177
+ await this.reputationManager.increaseUserOperationSeenStatus(userOp, entryPoint);
178
+ await this.store.addOutstanding({
244
179
  entryPoint,
245
- userOpHash: userOpHash,
246
- referencedContracts,
247
- addedToMempool: Date.now()
180
+ userOpInfo: {
181
+ userOp,
182
+ userOpHash,
183
+ referencedContracts,
184
+ addedToMempool: Date.now()
185
+ }
248
186
  });
249
- this.monitor.setUserOperationStatus(userOpHash, {
187
+ await this.monitor.setUserOperationStatus(userOpHash, {
250
188
  status: "not_submitted",
251
189
  transactionHash: null
252
190
  });
253
- this.eventManager.emitAddedToMempool(userOpHash);
191
+ await this.eventManager.emitAddedToMempool(userOpHash);
254
192
  return [true, ""];
255
193
  }
256
194
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>
257
- async shouldSkip(userOpInfo, paymasterDeposit, stakedEntityCount, knownEntities, senders, storageMap) {
195
+ async shouldSkip({ userOpInfo, paymasterDeposit, stakedEntityCount, knownEntities, senders, storageMap, entryPoint }) {
258
196
  if (!this.config.safeMode) {
259
197
  return {
260
198
  skip: false,
@@ -265,7 +203,7 @@ class MemoryMempool {
265
203
  storageMap
266
204
  };
267
205
  }
268
- const { userOp, entryPoint, userOpHash, referencedContracts } = userOpInfo;
206
+ const { userOp, userOpHash, referencedContracts } = userOpInfo;
269
207
  const isUserOpV06 = (0, utils_1.isVersion06)(userOp);
270
208
  const paymaster = isUserOpV06
271
209
  ? (0, utils_1.getAddressFromInitCodeOrPaymasterAndData)(userOp.paymasterAndData)
@@ -277,7 +215,7 @@ class MemoryMempool {
277
215
  const factoryStatus = this.reputationManager.getStatus(entryPoint, factory);
278
216
  if (paymasterStatus === reputationManager_1.ReputationStatuses.banned ||
279
217
  factoryStatus === reputationManager_1.ReputationStatuses.banned) {
280
- this.store.removeOutstanding(userOpHash);
218
+ await this.store.removeOutstanding({ entryPoint, userOpHash });
281
219
  return {
282
220
  skip: true,
283
221
  paymasterDeposit,
@@ -338,7 +276,10 @@ class MemoryMempool {
338
276
  try {
339
277
  let queuedUserOperations = [];
340
278
  if (!isUserOpV06) {
341
- queuedUserOperations = await this.getQueuedUserOperations(userOp, entryPoint);
279
+ queuedUserOperations = await this.getQueuedOustandingUserOps({
280
+ userOp,
281
+ entryPoint
282
+ });
342
283
  }
343
284
  validationResult = await this.validator.validateUserOperation({
344
285
  shouldCheckPrefund: false,
@@ -353,7 +294,7 @@ class MemoryMempool {
353
294
  userOpHash,
354
295
  error: JSON.stringify(e)
355
296
  }, "2nd Validation error");
356
- this.store.removeOutstanding(userOpHash);
297
+ this.store.removeOutstanding({ entryPoint, userOpHash });
357
298
  this.reputationManager.decreaseUserOperationSeenStatus(userOp, entryPoint, e instanceof types_1.RpcError ? e.message : JSON.stringify(e));
358
299
  return {
359
300
  skip: true,
@@ -441,67 +382,53 @@ class MemoryMempool {
441
382
  }
442
383
  // Returns a bundle of userOperations in array format.
443
384
  async process({ maxGasLimit, entryPoint, minOpsPerBundle, maxBundleCount }) {
444
- const outstandingUserOps = this.store
445
- .dumpOutstanding()
446
- .filter((op) => op.entryPoint === entryPoint)
447
- .sort((aUserOpInfo, bUserOpInfo) => {
448
- // Sort userops before the execution
449
- // Decide the order of the userops based on the sender and nonce
450
- // If sender is the same, sort by nonce key
451
- const aUserOp = aUserOpInfo.userOp;
452
- const bUserOp = bUserOpInfo.userOp;
453
- if (aUserOp.sender === bUserOp.sender) {
454
- const [aNonceKey, aNonceValue] = (0, utils_1.getNonceKeyAndSequence)(aUserOp.nonce);
455
- const [bNonceKey, bNonceValue] = (0, utils_1.getNonceKeyAndSequence)(bUserOp.nonce);
456
- if (aNonceKey === bNonceKey) {
457
- return Number(aNonceValue - bNonceValue);
458
- }
459
- return Number(aNonceKey - bNonceKey);
460
- }
461
- return 0;
462
- })
463
- .slice();
464
- if (outstandingUserOps.length === 0)
385
+ // Check if there are any operations in the store
386
+ const firstOp = await this.store.peekOutstanding(entryPoint);
387
+ if (!firstOp) {
465
388
  return [];
466
- // Get EntryPoint version. (Ideally version should be derived from CLI flags)
467
- const isV6 = (0, utils_1.isVersion06)(outstandingUserOps[0].userOp);
468
- const allSameVersion = outstandingUserOps.every((userOpInfo) => {
469
- const { userOp } = userOpInfo;
470
- return (0, utils_1.isVersion06)(userOp) === isV6;
471
- });
472
- if (!allSameVersion) {
473
- throw new Error("All user operations from same EntryPoint must be of the same version");
474
389
  }
390
+ // Get EntryPoint version
391
+ const isV6 = (0, utils_1.isVersion06)(firstOp.userOp);
475
392
  const bundles = [];
476
- // Process all outstanding ops.
477
- while (outstandingUserOps.length > 0) {
478
- // If maxBundles is set and we reached the limit, break.
393
+ // Process operations until no more are available or we hit maxBundleCount
394
+ while (await this.store.peekOutstanding(entryPoint)) {
395
+ // If maxBundles is set and we reached the limit, break
479
396
  if (maxBundleCount && bundles.length >= maxBundleCount) {
480
397
  break;
481
398
  }
482
- // Setup for next bundle.
399
+ // Setup for next bundle
483
400
  const currentBundle = {
484
401
  entryPoint,
485
402
  version: isV6 ? "0.6" : "0.7",
486
403
  userOps: []
487
404
  };
488
405
  let gasUsed = 0n;
489
- let paymasterDeposit = {}; // paymaster deposit should be enough for all UserOps in the bundle.
490
- let stakedEntityCount = {}; // throttled paymasters and factories are allowed only small UserOps per bundle.
491
- let senders = new Set(); // each sender is allowed only once per bundle
492
- let knownEntities = this.getKnownEntities();
406
+ let paymasterDeposit = {};
407
+ let stakedEntityCount = {};
408
+ let senders = new Set();
409
+ let knownEntities = await this.getKnownEntities(entryPoint);
493
410
  let storageMap = {};
494
- // Keep adding ops to current bundle.
495
- while (outstandingUserOps.length > 0) {
496
- const userOpInfo = outstandingUserOps.shift();
411
+ // Keep adding ops to current bundle
412
+ while (await this.store.peekOutstanding(entryPoint)) {
413
+ const userOpInfo = await this.store.popOutstanding(entryPoint);
497
414
  if (!userOpInfo)
498
415
  break;
499
- const { userOp, userOpHash } = userOpInfo;
500
- // NOTE: currently if a userOp is skipped due to sender enforceUniqueSendersPerBundle it will be picked up
501
- // again the next time mempool.process is called.
502
- const skipResult = await this.shouldSkip(userOpInfo, paymasterDeposit, stakedEntityCount, knownEntities, senders, storageMap);
503
- if (skipResult.skip)
416
+ const { userOp } = userOpInfo;
417
+ // Check if we should skip this operation
418
+ const skipResult = await this.shouldSkip({
419
+ userOpInfo,
420
+ paymasterDeposit,
421
+ stakedEntityCount,
422
+ knownEntities,
423
+ senders,
424
+ storageMap,
425
+ entryPoint
426
+ });
427
+ if (skipResult.skip) {
428
+ // Re-add to outstanding
429
+ await this.store.addOutstanding({ entryPoint, userOpInfo });
504
430
  continue;
431
+ }
505
432
  gasUsed +=
506
433
  userOp.callGasLimit +
507
434
  userOp.verificationGasLimit +
@@ -509,10 +436,11 @@ class MemoryMempool {
509
436
  ? (userOp.paymasterPostOpGasLimit || 0n) +
510
437
  (userOp.paymasterVerificationGasLimit || 0n)
511
438
  : 0n);
512
- // Only break on gas limit if we've hit minOpsPerBundle.
439
+ // Only break on gas limit if we've hit minOpsPerBundle
513
440
  if (gasUsed > maxGasLimit &&
514
441
  currentBundle.userOps.length >= minOpsPerBundle) {
515
- outstandingUserOps.unshift(userOpInfo); // re-add op to front of queue
442
+ // Put the operation back in the store
443
+ await this.store.addOutstanding({ entryPoint, userOpInfo });
516
444
  break;
517
445
  }
518
446
  // Update state based on skip result
@@ -522,8 +450,7 @@ class MemoryMempool {
522
450
  senders = skipResult.senders;
523
451
  storageMap = skipResult.storageMap;
524
452
  this.reputationManager.decreaseUserOperationCount(userOp);
525
- this.store.removeOutstanding(userOpHash);
526
- this.store.addProcessing(userOpInfo);
453
+ this.store.addProcessing({ entryPoint, userOpInfo });
527
454
  // Add op to current bundle
528
455
  currentBundle.userOps.push(userOpInfo);
529
456
  }
@@ -533,61 +460,14 @@ class MemoryMempool {
533
460
  }
534
461
  return bundles;
535
462
  }
536
- // For a specfic user operation, get all the queued user operations
537
- // They should be executed first, ordered by nonce value
538
- // If cuurentNonceValue is not provided, it will be fetched from the chain
539
- async getQueuedUserOperations(userOp, entryPoint, _currentNonceValue) {
540
- const entryPointContract = (0, viem_1.getContract)({
541
- address: entryPoint,
542
- abi: (0, utils_1.isVersion06)(userOp) ? types_1.EntryPointV06Abi : types_1.EntryPointV07Abi,
543
- client: {
544
- public: this.config.publicClient
545
- }
546
- });
547
- const [nonceKey, nonceSequence] = (0, utils_1.getNonceKeyAndSequence)(userOp.nonce);
548
- let currentNonceSequence = BigInt(0);
549
- if (_currentNonceValue) {
550
- currentNonceSequence = _currentNonceValue;
551
- }
552
- else {
553
- const getNonceResult = await entryPointContract.read.getNonce([userOp.sender, nonceKey], {
554
- blockTag: "latest"
555
- });
556
- currentNonceSequence = (0, utils_1.getNonceKeyAndSequence)(getNonceResult)[1];
463
+ clear() {
464
+ for (const entryPoint of this.config.entrypoints) {
465
+ this.store.clearOutstanding(entryPoint);
557
466
  }
558
- const outstanding = this.store
559
- .dumpOutstanding()
560
- .filter((userOpInfo) => {
561
- const { userOp: mempoolUserOp } = userOpInfo;
562
- const [mempoolNonceKey, mempoolNonceSequence] = (0, utils_1.getNonceKeyAndSequence)(mempoolUserOp.nonce);
563
- let isPaymasterSame = false;
564
- if ((0, utils_1.isVersion07)(userOp) && (0, utils_1.isVersion07)(mempoolUserOp)) {
565
- isPaymasterSame =
566
- mempoolUserOp.paymaster === userOp.paymaster &&
567
- !(mempoolUserOp.sender === userOp.sender &&
568
- mempoolNonceKey === nonceKey &&
569
- mempoolNonceSequence === nonceSequence) &&
570
- userOp.paymaster !== null;
571
- }
572
- return ((mempoolUserOp.sender === userOp.sender &&
573
- mempoolNonceKey === nonceKey &&
574
- mempoolNonceSequence >= currentNonceSequence &&
575
- mempoolNonceSequence < nonceSequence) ||
576
- isPaymasterSame);
577
- });
578
- return outstanding
579
- .sort((a, b) => {
580
- const aUserOp = a.userOp;
581
- const bUserOp = b.userOp;
582
- const [, aNonceValue] = (0, utils_1.getNonceKeyAndSequence)(aUserOp.nonce);
583
- const [, bNonceValue] = (0, utils_1.getNonceKeyAndSequence)(bUserOp.nonce);
584
- return Number(aNonceValue - bNonceValue);
585
- })
586
- .map((userOpInfo) => userOpInfo.userOp);
587
467
  }
588
- clear() {
589
- this.store.clear("outstanding");
468
+ async getQueuedOustandingUserOps(args) {
469
+ return await this.store.getQueuedOutstandingUserOps(args);
590
470
  }
591
471
  }
592
- exports.MemoryMempool = MemoryMempool;
472
+ exports.Mempool = Mempool;
593
473
  //# sourceMappingURL=mempool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import type { HexData32, UserOperationStatus } from "../types/index.js";
2
+ import { AltoConfig } from "../createConfig.js";
2
3
  export declare class Monitor {
3
- private userOperationToStatus;
4
+ private statusStore;
4
5
  private userOperationTimeouts;
5
6
  private timeout;
6
- constructor(timeout?: number);
7
- setUserOperationStatus(userOperation: HexData32, status: UserOperationStatus): void;
8
- getUserOperationStatus(userOperation: HexData32): UserOperationStatus;
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>;
9
13
  }
10
14
  //# sourceMappingURL=monitoring.d.ts.map