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