@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,349 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRedisOutstandingQueue = exports.RedisHash = void 0;
4
- const userop_1 = require("../utils/userop.js");
5
- const types_1 = require("../types/index.js");
6
- const ioredis_1 = require("ioredis");
7
- const utils_1 = require("viem/utils");
8
- const serializeUserOpInfo = (userOpInfo) => {
9
- return JSON.stringify(userOpInfo, (_, value) => typeof value === "bigint" ? (0, utils_1.toHex)(value) : value);
10
- };
11
- const deserializeUserOpInfo = (data) => {
12
- try {
13
- const parsed = JSON.parse(data);
14
- const result = types_1.userOpInfoSchema.safeParse(parsed);
15
- if (!result.success) {
16
- throw new Error(`Failed to parse UserOpInfo: ${result.error.message}`);
17
- }
18
- return result.data;
19
- }
20
- catch (error) {
21
- if (error instanceof Error) {
22
- throw new Error(`UserOpInfo deserialization failed: ${error.message}`);
23
- }
24
- throw new Error("UserOpInfo deserialization failed with unknown error");
25
- }
26
- };
27
- const isDeploymentOperation = (userOp) => {
28
- const isV6Deployment = (0, userop_1.isVersion06)(userOp) && !!userOp.initCode && userOp.initCode !== "0x";
29
- const isV7Deployment = (0, userop_1.isVersion07)(userOp) && !!userOp.factory && userOp.factory !== "0x";
30
- return isV6Deployment || isV7Deployment;
31
- };
32
- class RedisSortedSet {
33
- redis;
34
- keyName;
35
- constructor(redis, keyName) {
36
- this.redis = redis;
37
- this.keyName = keyName;
38
- }
39
- get keyPath() {
40
- return this.keyName;
41
- }
42
- async add({ member, score, multi = this.redis }) {
43
- await multi.zadd(this.keyPath, score, member);
44
- }
45
- async remove({ member, multi = this.redis }) {
46
- await multi.zrem(this.keyPath, member);
47
- }
48
- async getByScoreRange(min, max) {
49
- return this.redis.zrangebyscore(this.keyPath, min, max);
50
- }
51
- async getByRankRange(start, stop) {
52
- return this.redis.zrange(this.keyPath, start, stop);
53
- }
54
- async popMax() {
55
- const result = (await this.redis.zmpop(1, [this.keyPath], "MAX", "COUNT", 1));
56
- return result && result[1].length > 0 ? result[1][0][0] : undefined;
57
- }
58
- async popMin() {
59
- const result = (await this.redis.zmpop(1, [this.keyPath], "MIN", "COUNT", 1));
60
- return result && result[1].length > 0 ? result[1][0][0] : undefined;
61
- }
62
- async delete({ multi = this.redis }) {
63
- await multi.del(this.keyPath);
64
- }
65
- }
66
- class RedisHash {
67
- redis;
68
- keyName;
69
- constructor(redis, keyName) {
70
- this.redis = redis;
71
- this.keyName = keyName;
72
- }
73
- get keyPath() {
74
- return this.keyName;
75
- }
76
- async set({ key, value, multi = this.redis }) {
77
- await multi.hset(this.keyPath, key, value);
78
- }
79
- async get(field) {
80
- return this.redis.hget(this.keyPath, field);
81
- }
82
- async delete({ key, multi = this.redis }) {
83
- await multi.hdel(this.keyPath, key);
84
- }
85
- async exists(field) {
86
- return (await this.redis.hexists(this.keyPath, field)) === 1;
87
- }
88
- async getAll() {
89
- return this.redis.hgetall(this.keyPath);
90
- }
91
- }
92
- exports.RedisHash = RedisHash;
93
- class RedisOutstandingQueue {
94
- redis;
95
- chainId;
96
- entryPoint;
97
- // Redis data structures
98
- readyOpsQueue; // gasPrice -> pendingOpsKey
99
- userOpHashLookup; // userOpHash -> pendingOpsKey
100
- factoryLookup; // sender -> userOpHash
101
- constructor({ config, entryPoint }) {
102
- if (!config.redisMempoolUrl) {
103
- throw new Error("Missing required redisMempoolUrl");
104
- }
105
- this.redis = new ioredis_1.Redis(config.redisMempoolUrl, {});
106
- this.chainId = config.chainId;
107
- this.entryPoint = entryPoint;
108
- // Initialize Redis data structures
109
- const factoryLookupKey = `${this.chainId}:outstanding:factory-lookup:${this.entryPoint}`;
110
- const userOpHashLookupKey = `${this.chainId}:outstanding:user-op-hash-index:${this.entryPoint}`;
111
- const readyOpsQueueKey = `${this.chainId}:outstanding:pending-queue:${this.entryPoint}`;
112
- this.readyOpsQueue = new RedisSortedSet(this.redis, readyOpsQueueKey);
113
- this.userOpHashLookup = new RedisHash(this.redis, userOpHashLookupKey);
114
- this.factoryLookup = new RedisHash(this.redis, factoryLookupKey);
115
- }
116
- // Helpers
117
- getPendingOpsSet(userOp) {
118
- return new RedisSortedSet(this.redis, this.getPendingOpsKey(userOp));
119
- }
120
- getPendingOpsKey(userOp) {
121
- const [nonceKey] = (0, userop_1.getNonceKeyAndSequence)(userOp.nonce);
122
- const fingerprint = `${userOp.sender}-${(0, utils_1.toHex)(nonceKey)}`;
123
- return `${this.chainId}:outstanding:pending-ops:${this.entryPoint}:${fingerprint}`;
124
- }
125
- // OutstandingStore methods
126
- async contains(userOpHash) {
127
- return this.userOpHashLookup.exists(userOpHash);
128
- }
129
- async popConflicting(userOp) {
130
- const [, nonceSeq] = (0, userop_1.getNonceKeyAndSequence)(userOp.nonce);
131
- const pendingOpsSet = this.getPendingOpsSet(userOp);
132
- // Check for operations with the same nonce sequence
133
- const conflictingNonce = await pendingOpsSet.getByScoreRange(Number(nonceSeq), Number(nonceSeq));
134
- if (conflictingNonce.length) {
135
- const conflicting = deserializeUserOpInfo(conflictingNonce[0]);
136
- await this.remove(conflicting.userOpHash);
137
- return {
138
- reason: "conflicting_nonce",
139
- userOpInfo: conflicting
140
- };
141
- }
142
- // Check for conflicting deployments to the same address
143
- if (isDeploymentOperation(userOp)) {
144
- const conflictingUserOpHash = await this.factoryLookup.get(userOp.sender);
145
- if (conflictingUserOpHash) {
146
- const pendingOpsKey = await this.userOpHashLookup.get(conflictingUserOpHash);
147
- if (pendingOpsKey) {
148
- const conflictingPendingOpsSet = new RedisSortedSet(this.redis, pendingOpsKey);
149
- const ops = await conflictingPendingOpsSet.getByRankRange(0, -1);
150
- const userOps = ops.map(deserializeUserOpInfo);
151
- const conflictingUserOp = userOps.find((op) => op.userOpHash === conflictingUserOpHash);
152
- if (conflictingUserOp) {
153
- await this.remove(conflictingUserOp.userOpHash);
154
- return {
155
- reason: "conflicting_deployment",
156
- userOpInfo: conflictingUserOp
157
- };
158
- }
159
- }
160
- }
161
- }
162
- return undefined;
163
- }
164
- async peek() {
165
- // Get highest gas price operation's key
166
- const pendingOpsKeys = await this.readyOpsQueue.getByRankRange(0, 0);
167
- if (!pendingOpsKeys.length) {
168
- return undefined;
169
- }
170
- // Get the lowest nonce operation from the pendingOpsKey
171
- const pendingOpsSet = new RedisSortedSet(this.redis, pendingOpsKeys[0]);
172
- const userOpInfoStrings = await pendingOpsSet.getByRankRange(0, 0);
173
- if (!userOpInfoStrings.length) {
174
- return undefined;
175
- }
176
- return deserializeUserOpInfo(userOpInfoStrings[0]);
177
- }
178
- async add(userOpInfo) {
179
- const { userOpHash, userOp } = userOpInfo;
180
- const pendingOpsSet = this.getPendingOpsSet(userOp);
181
- const [, nonceSeq] = (0, userop_1.getNonceKeyAndSequence)(userOp.nonce);
182
- // check if this will be the lowest nonce operation
183
- // We need this info before starting the transaction
184
- const existingOps = await pendingOpsSet.getByRankRange(0, 0);
185
- const isLowestNonce = existingOps.length === 0 ||
186
- userOp.nonce < deserializeUserOpInfo(existingOps[0]).userOp.nonce;
187
- const multi = this.redis.multi();
188
- // Add to pendingOps sorted set with nonceSeq as score
189
- await pendingOpsSet.add({
190
- member: serializeUserOpInfo(userOpInfo),
191
- score: Number(nonceSeq),
192
- multi
193
- });
194
- // Add to userOpHash lookup
195
- await this.userOpHashLookup.set({
196
- key: userOpHash,
197
- value: pendingOpsSet.keyPath,
198
- multi
199
- });
200
- // Track factory deployments if needed
201
- if (isDeploymentOperation(userOp)) {
202
- await this.factoryLookup.set({
203
- key: userOp.sender,
204
- value: userOpHash,
205
- multi
206
- });
207
- }
208
- // If lowest nonce, update ready queue with this userOp's gasPrice
209
- if (isLowestNonce) {
210
- await this.readyOpsQueue.add({
211
- member: pendingOpsSet.keyPath,
212
- score: Number(userOp.maxFeePerGas),
213
- multi
214
- });
215
- }
216
- await multi.exec();
217
- }
218
- async remove(userOpHash) {
219
- // Get the userOp info from the secondary index
220
- const pendingOpsKey = await this.userOpHashLookup.get(userOpHash);
221
- if (!pendingOpsKey) {
222
- return false;
223
- }
224
- // Get all pending operations for this key
225
- const pendingOpsSet = new RedisSortedSet(this.redis, pendingOpsKey);
226
- const ops = await pendingOpsSet.getByRankRange(0, -1);
227
- if (!ops.length) {
228
- return false;
229
- }
230
- const userOps = ops.map(deserializeUserOpInfo);
231
- const userOpInfo = userOps.find((op) => op.userOpHash === userOpHash);
232
- if (!userOpInfo) {
233
- return false;
234
- }
235
- // Check if we're removing the lowest nonce operation
236
- const isLowestNonce = userOps[0].userOpHash === userOpHash;
237
- // If this is the lowest nonce, check if there's a next operation before starting the transaction
238
- let nextOp = undefined;
239
- if (isLowestNonce && userOps.length > 1) {
240
- // userOps is already sorted by nonce sequence because it comes from the sorted set
241
- // So we can simply take the second operation as the next one
242
- nextOp = userOps[1];
243
- }
244
- // Create a transaction
245
- const multi = this.redis.multi();
246
- // Clean up factory deployment tracking if needed
247
- if (isDeploymentOperation(userOpInfo.userOp)) {
248
- await this.factoryLookup.delete({
249
- key: userOpInfo.userOp.sender,
250
- multi
251
- });
252
- }
253
- // Remove from the sorted set
254
- await pendingOpsSet.remove({
255
- member: serializeUserOpInfo(userOpInfo),
256
- multi
257
- });
258
- // Remove from hash lookup
259
- await this.userOpHashLookup.delete({
260
- key: userOpHash,
261
- multi
262
- });
263
- if (isLowestNonce) {
264
- // Remove from ready queue
265
- await this.readyOpsQueue.remove({ member: pendingOpsKey, multi });
266
- // If we have a next operation, add it to the ready queue
267
- if (nextOp) {
268
- await this.readyOpsQueue.add({
269
- member: pendingOpsKey,
270
- score: Number(nextOp.userOp.maxFeePerGas),
271
- multi
272
- });
273
- }
274
- }
275
- // Execute transaction
276
- await multi.exec();
277
- return true;
278
- }
279
- async pop() {
280
- // Pop highest gas price operation
281
- const pendingOpsKey = await this.readyOpsQueue.popMax();
282
- if (!pendingOpsKey) {
283
- return undefined;
284
- }
285
- const pendingOpsSet = new RedisSortedSet(this.redis, pendingOpsKey);
286
- // Get the operations from the set (limited to 2 for efficiency)
287
- const ops = await pendingOpsSet.getByRankRange(0, 1);
288
- if (!ops.length) {
289
- return undefined;
290
- }
291
- const currentUserOpStr = ops[0];
292
- const currentUserOp = deserializeUserOpInfo(currentUserOpStr);
293
- // Create a transaction
294
- const multi = this.redis.multi();
295
- // Remove the current operation
296
- await pendingOpsSet.remove({ member: currentUserOpStr, multi });
297
- await this.userOpHashLookup.delete({
298
- key: currentUserOp.userOpHash,
299
- multi
300
- });
301
- // Execute transaction
302
- await multi.exec();
303
- // Check if there are more operations in this set
304
- if (ops.length > 1) {
305
- const nextUserOp = deserializeUserOpInfo(ops[1]);
306
- await this.readyOpsQueue.add({
307
- member: pendingOpsKey,
308
- score: Number(nextUserOp.userOp.maxFeePerGas)
309
- });
310
- }
311
- else {
312
- // Delete the empty set
313
- await pendingOpsSet.delete({});
314
- }
315
- return currentUserOp;
316
- }
317
- async getQueuedUserOps(userOp) {
318
- const pendingOpsSet = this.getPendingOpsSet(userOp);
319
- const [, nonceSequence] = (0, userop_1.getNonceKeyAndSequence)(userOp.nonce);
320
- const pendingOps = await pendingOpsSet.getByRankRange(0, -1);
321
- // Filter operations with nonce sequence less than the current one
322
- return pendingOps
323
- .map(deserializeUserOpInfo)
324
- .filter((opInfo) => {
325
- const [, opNonceSeq] = (0, userop_1.getNonceKeyAndSequence)(opInfo.userOp.nonce);
326
- return opNonceSeq < nonceSequence;
327
- })
328
- .map((opInfo) => opInfo.userOp);
329
- }
330
- // These methods aren't implemented
331
- async dumpLocal() {
332
- return []; // We can't dump from redis as the latency is too high
333
- }
334
- async clear() {
335
- throw new Error("Not implemented: clear");
336
- }
337
- // Skip limit checks when using Redis
338
- validateQueuedLimit() {
339
- return true;
340
- }
341
- validateParallelLimit() {
342
- return true;
343
- }
344
- }
345
- const createRedisOutstandingQueue = ({ config, entryPoint }) => {
346
- return new RedisOutstandingQueue({ config, entryPoint });
347
- };
348
- exports.createRedisOutstandingQueue = createRedisOutstandingQueue;
349
- //# sourceMappingURL=createRedisOutstandingStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRedisOutstandingStore.js","sourceRoot":"","sources":["../../store/createRedisOutstandingStore.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { Store, UserOpType } from "./index.js";
2
- import { AltoConfig } from "../createConfig.js";
3
- import { Address } from "viem";
4
- export declare const createRedisStore: <T extends UserOpType>({ config, storeType, entryPoint }: {
5
- config: AltoConfig;
6
- storeType: string;
7
- entryPoint: Address;
8
- }) => Store<T>;
9
- //# sourceMappingURL=createRedisStore.d.ts.map
@@ -1,138 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createRedisStore = void 0;
7
- const ioredis_1 = __importDefault(require("ioredis"));
8
- const schemas_1 = require("../types/schemas.js");
9
- const userop_1 = require("../utils/userop.js");
10
- const viem_1 = require("viem");
11
- const createRedisOutstandingStore_1 = require("./createRedisOutstandingStore.js");
12
- const createStore_1 = require("./createStore.js");
13
- const isDeploymentOperation = (userOp) => {
14
- const isV6Deployment = (0, userop_1.isVersion06)(userOp) && !!userOp.initCode && userOp.initCode !== "0x";
15
- const isV7Deployment = (0, userop_1.isVersion07)(userOp) && !!userOp.factory && userOp.factory !== "0x";
16
- return isV6Deployment || isV7Deployment;
17
- };
18
- const serializeUserOp = (userOpInfo) => {
19
- return JSON.stringify(userOpInfo, (_, value) => typeof value === "bigint" ? (0, viem_1.toHex)(value) : value);
20
- };
21
- const deserializeUserOp = (data) => {
22
- try {
23
- const parsed = JSON.parse(data);
24
- const result = schemas_1.userOperationSchema.safeParse(parsed);
25
- if (!result.success) {
26
- throw new Error(`Failed to parse UserOpInfo: ${result.error.message}`);
27
- }
28
- return result.data;
29
- }
30
- catch (error) {
31
- if (error instanceof Error) {
32
- throw new Error(`UserOpInfo deserialization failed: ${error.message}`);
33
- }
34
- throw new Error("UserOpInfo deserialization failed with unknown error");
35
- }
36
- };
37
- const createRedisStore = ({ config, storeType, entryPoint }) => {
38
- if (!config.redisMempoolUrl) {
39
- throw new Error("Missing required redisMempoolUrl");
40
- }
41
- const redis = new ioredis_1.default(config.redisMempoolUrl, {});
42
- const factoryLookupKey = `${config.chainId}:${storeType}:factory-lookup:${entryPoint}`;
43
- const conflictingNonceKey = `${config.chainId}:${storeType}:conflicting-nonce:${entryPoint}`;
44
- const userOpHashLookupKey = `${config.chainId}:${storeType}:user-op-hash-index:${entryPoint}`;
45
- const senderNonceLookupKey = `${config.chainId}:${storeType}:sender-nonce-lookup:${entryPoint}`;
46
- const conflictingNonce = new createRedisOutstandingStore_1.RedisHash(redis, conflictingNonceKey); // userOpHash -> userOp
47
- const factoryLookup = new createRedisOutstandingStore_1.RedisHash(redis, factoryLookupKey); // sender -> userOpHash (if deployment is present)
48
- const senderNonceLookup = new createRedisOutstandingStore_1.RedisHash(redis, senderNonceLookupKey); // sender + nonce -> userOp
49
- const userOpHashLookup = new createRedisOutstandingStore_1.RedisHash(redis, userOpHashLookupKey); // userOpHash -> userOp
50
- const memoryStore = (0, createStore_1.createMemoryStore)({ config });
51
- const encodeSenderNonce = (userOp) => {
52
- return `${userOp.sender}-${userOp.nonce}`;
53
- };
54
- return {
55
- add: async (op) => {
56
- // Local memory logic
57
- memoryStore.add(op);
58
- // Global redis logic
59
- const { userOpHash, userOp } = op;
60
- const multi = redis.multi();
61
- await userOpHashLookup.set({
62
- key: userOpHash,
63
- value: serializeUserOp(userOp),
64
- multi
65
- });
66
- await conflictingNonce.set({
67
- key: userOpHash,
68
- value: serializeUserOp(userOp),
69
- multi
70
- });
71
- await senderNonceLookup.set({
72
- key: encodeSenderNonce(userOp),
73
- value: serializeUserOp(userOp),
74
- multi
75
- });
76
- if (isDeploymentOperation(userOp)) {
77
- await factoryLookup.set({
78
- key: op.userOp.sender,
79
- value: op.userOpHash,
80
- multi
81
- });
82
- }
83
- await multi.exec();
84
- },
85
- remove: async (userOpHash) => {
86
- // Local memory logic
87
- memoryStore.remove(userOpHash);
88
- // Redis Logic
89
- const exist = await userOpHashLookup.get(userOpHash);
90
- if (!exist) {
91
- return false;
92
- }
93
- const userOp = deserializeUserOp(exist);
94
- const multi = redis.multi();
95
- await userOpHashLookup.delete({ key: userOpHash, multi });
96
- await senderNonceLookup.delete({
97
- key: encodeSenderNonce(userOp),
98
- multi
99
- });
100
- if (isDeploymentOperation(userOp)) {
101
- await factoryLookup.delete({ key: userOp.sender, multi });
102
- }
103
- await multi.exec();
104
- return true;
105
- },
106
- contains: async (userOpHash) => {
107
- return await userOpHashLookup.exists(userOpHash);
108
- },
109
- dumpLocal: () => {
110
- return memoryStore.dumpLocal();
111
- },
112
- findConflicting: async (userOp) => {
113
- const conflictingNonce = await senderNonceLookup.get(encodeSenderNonce(userOp));
114
- if (conflictingNonce) {
115
- return {
116
- reason: "conflicting_nonce",
117
- userOp: deserializeUserOp(conflictingNonce)
118
- };
119
- }
120
- if (isDeploymentOperation(userOp)) {
121
- const userOpHash = await factoryLookup.get(userOp.sender);
122
- if (userOpHash) {
123
- const userOp = await userOpHashLookup.get(userOpHash);
124
- if (!userOp) {
125
- return undefined;
126
- }
127
- return {
128
- reason: "conflicting_deployment",
129
- userOp: deserializeUserOp(userOp)
130
- };
131
- }
132
- }
133
- return undefined;
134
- }
135
- };
136
- };
137
- exports.createRedisStore = createRedisStore;
138
- //# sourceMappingURL=createRedisStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRedisStore.js","sourceRoot":"","sources":["../../store/createRedisStore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Store, UserOpType } from "./index.js";
2
- import { AltoConfig } from "../createConfig.js";
3
- export declare const createMemoryStore: <T extends UserOpType>({ config }: {
4
- config: AltoConfig;
5
- }) => Store<T>;
6
- //# sourceMappingURL=createStore.d.ts.map
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMemoryStore = void 0;
4
- const userop_1 = require("../utils/userop.js");
5
- const createMemoryStore = ({ config }) => {
6
- let store = [];
7
- return {
8
- findConflicting: async (userOp) => {
9
- const dump = [...store];
10
- const { sender, nonce } = userOp;
11
- // Check for same sender and nonce
12
- const conflictingNonce = dump.find((userOpInfo) => {
13
- const { userOp: mempoolUserOp } = userOpInfo;
14
- return (mempoolUserOp.sender === sender &&
15
- mempoolUserOp.nonce === nonce);
16
- });
17
- if (conflictingNonce) {
18
- return {
19
- reason: "conflicting_nonce",
20
- userOp: conflictingNonce.userOp
21
- };
22
- }
23
- // Check for deployment conflict
24
- const isCurrentOpDeployment = ((0, userop_1.isVersion06)(userOp) &&
25
- userOp.initCode &&
26
- userOp.initCode !== "0x") ||
27
- ((0, userop_1.isVersion07)(userOp) &&
28
- userOp.factory &&
29
- userOp.factory !== "0x");
30
- if (isCurrentOpDeployment) {
31
- const conflictingDeployment = dump.find((userOpInfo) => {
32
- const { userOp: mempoolUserOp } = userOpInfo;
33
- const isV6Deployment = (0, userop_1.isVersion06)(mempoolUserOp) &&
34
- mempoolUserOp.initCode &&
35
- mempoolUserOp.initCode !== "0x";
36
- const isV7Deployment = (0, userop_1.isVersion07)(mempoolUserOp) &&
37
- mempoolUserOp.factory &&
38
- mempoolUserOp.factory !== "0x";
39
- const isDeployment = isV6Deployment || isV7Deployment;
40
- return mempoolUserOp.sender === sender && isDeployment;
41
- });
42
- if (conflictingDeployment) {
43
- return {
44
- reason: "conflicting_deployment",
45
- userOp: conflictingDeployment.userOp
46
- };
47
- }
48
- }
49
- return undefined;
50
- },
51
- add: (op) => {
52
- store = [...store, op];
53
- return Promise.resolve();
54
- },
55
- remove: (userOpHash) => {
56
- const exists = store.some((op) => op.userOpHash === userOpHash);
57
- store = store.filter((op) => op.userOpHash !== userOpHash);
58
- return Promise.resolve(exists);
59
- },
60
- contains: (userOpHash) => {
61
- const contains = store.some((op) => op.userOpHash === userOpHash);
62
- return Promise.resolve(contains);
63
- },
64
- dumpLocal: () => {
65
- return Promise.resolve([...store]);
66
- }
67
- };
68
- };
69
- exports.createMemoryStore = createMemoryStore;
70
- //# sourceMappingURL=createStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createStore.js","sourceRoot":"","sources":["../../store/createStore.ts"],"names":[],"mappings":"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"}