@pimlico/alto 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -0
  2. package/contracts/ERC165.sol/ERC165.json +1 -0
  3. package/contracts/ERC20.sol/ERC20.json +1 -0
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -0
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -0
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -0
  15. package/contracts/IAccount.sol/IAccount.json +1 -0
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -0
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -0
  18. package/contracts/IERC165.sol/IERC165.json +1 -0
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -0
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -0
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -0
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -0
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -0
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -0
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -0
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -0
  29. package/contracts/Math.sol/Math.json +1 -0
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -0
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -0
  32. package/contracts/Panic.sol/Panic.json +1 -0
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -0
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -0
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -0
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -0
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -0
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -0
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -0
  43. package/contracts/Strings.sol/Strings.json +1 -0
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -0
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -0
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -0
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/338795fc743ca612.json +1 -0
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/8dbf8a4ad39019b5.json +1 -0
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -0
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/alto.js +16 -7
  80. package/esm/cli/alto.js.map +1 -1
  81. package/esm/cli/config/bundler.d.ts +690 -540
  82. package/esm/cli/config/bundler.js +101 -66
  83. package/esm/cli/config/bundler.js.map +1 -1
  84. package/esm/cli/config/options.d.ts +2 -1
  85. package/esm/cli/config/options.js +207 -59
  86. package/esm/cli/config/options.js.map +1 -1
  87. package/esm/cli/customTransport.d.ts +3 -3
  88. package/esm/cli/customTransport.js +4 -3
  89. package/esm/cli/customTransport.js.map +1 -1
  90. package/esm/cli/deploySimulationsContract.d.ts +5 -2
  91. package/esm/cli/deploySimulationsContract.js +108 -40
  92. package/esm/cli/deploySimulationsContract.js.map +1 -1
  93. package/esm/cli/handler.js +94 -22
  94. package/esm/cli/handler.js.map +1 -1
  95. package/esm/cli/instrumentation.js +7 -1
  96. package/esm/cli/instrumentation.js.map +1 -1
  97. package/esm/cli/parseArgs.js.map +1 -1
  98. package/esm/cli/setupServer.js +63 -63
  99. package/esm/cli/setupServer.js.map +1 -1
  100. package/esm/cli/shutDown.d.ts +20 -0
  101. package/esm/cli/shutDown.js +260 -0
  102. package/esm/cli/shutDown.js.map +1 -0
  103. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  104. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  105. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  106. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  107. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  108. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  109. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
  110. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  111. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  112. package/esm/createConfig.d.ts +12 -4
  113. package/esm/createConfig.js +2 -0
  114. package/esm/createConfig.js.map +1 -1
  115. package/esm/executor/bundleManager.d.ts +111 -0
  116. package/esm/executor/bundleManager.js +354 -0
  117. package/esm/executor/bundleManager.js.map +1 -0
  118. package/esm/executor/executor.d.ts +18 -23
  119. package/esm/executor/executor.js +183 -119
  120. package/esm/executor/executor.js.map +1 -1
  121. package/esm/executor/executorManager.d.ts +39 -88
  122. package/esm/executor/executorManager.js +325 -550
  123. package/esm/executor/executorManager.js.map +1 -1
  124. package/esm/executor/filterOpsAndEstimateGas.d.ts +39 -0
  125. package/esm/executor/filterOpsAndEstimateGas.js +280 -0
  126. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -0
  127. package/esm/executor/getBundleStatus.d.ts +25 -0
  128. package/esm/executor/getBundleStatus.js +35 -0
  129. package/esm/executor/getBundleStatus.js.map +1 -0
  130. package/esm/executor/index.d.ts +1 -0
  131. package/esm/executor/index.js +1 -0
  132. package/esm/executor/index.js.map +1 -1
  133. package/esm/executor/senderManager/createMemorySenderManager.d.ts +3 -3
  134. package/esm/executor/senderManager/createMemorySenderManager.js +14 -1
  135. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
  136. package/esm/executor/senderManager/createRedisSenderManager.d.ts +5 -4
  137. package/esm/executor/senderManager/createRedisSenderManager.js +4 -7
  138. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  139. package/esm/executor/senderManager/flushOnStartUp.d.ts +3 -3
  140. package/esm/executor/senderManager/flushOnStartUp.js +4 -4
  141. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
  142. package/esm/executor/senderManager/index.d.ts +4 -3
  143. package/esm/executor/senderManager/index.js +6 -2
  144. package/esm/executor/senderManager/index.js.map +1 -1
  145. package/esm/executor/senderManager/validateAndRefill.d.ts +4 -4
  146. package/esm/executor/senderManager/validateAndRefill.js +3 -3
  147. package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
  148. package/esm/executor/utilityWalletMonitor.d.ts +5 -5
  149. package/esm/executor/utilityWalletMonitor.js +1 -1
  150. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  151. package/esm/executor/utils.d.ts +14 -6
  152. package/esm/executor/utils.js +68 -37
  153. package/esm/executor/utils.js.map +1 -1
  154. package/esm/handlers/arbitrumGasPriceManager.d.ts +4 -3
  155. package/esm/handlers/arbitrumGasPriceManager.js +9 -5
  156. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  157. package/esm/handlers/eventManager.d.ts +19 -18
  158. package/esm/handlers/eventManager.js +81 -61
  159. package/esm/handlers/eventManager.js.map +1 -1
  160. package/esm/handlers/gasPriceManager.d.ts +12 -10
  161. package/esm/handlers/gasPriceManager.js +79 -125
  162. package/esm/handlers/gasPriceManager.js.map +1 -1
  163. package/esm/handlers/mantleGasPriceManager.d.ts +5 -5
  164. package/esm/handlers/mantleGasPriceManager.js +4 -4
  165. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  166. package/esm/handlers/optimismManager.d.ts +2 -2
  167. package/esm/handlers/optimismManager.js +1 -1
  168. package/esm/handlers/optimismManager.js.map +1 -1
  169. package/esm/mempool/index.d.ts +1 -1
  170. package/esm/mempool/index.js +1 -1
  171. package/esm/mempool/index.js.map +1 -1
  172. package/esm/mempool/mempool.d.ts +71 -33
  173. package/esm/mempool/mempool.js +231 -155
  174. package/esm/mempool/mempool.js.map +1 -1
  175. package/esm/mempool/reputationManager.d.ts +36 -36
  176. package/esm/mempool/reputationManager.js +93 -97
  177. package/esm/mempool/reputationManager.js.map +1 -1
  178. package/esm/mempool/statusManager.d.ts +20 -0
  179. package/esm/mempool/statusManager.js +143 -0
  180. package/esm/mempool/statusManager.js.map +1 -0
  181. package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
  182. package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
  183. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
  184. package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
  185. package/esm/receiptCache/createRedisReceiptCache.js +56 -0
  186. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
  187. package/esm/receiptCache/index.d.ts +11 -0
  188. package/esm/receiptCache/index.js +21 -0
  189. package/esm/receiptCache/index.js.map +1 -0
  190. package/esm/rpc/createMethodHandler.d.ts +2 -2
  191. package/esm/rpc/createMethodHandler.js.map +1 -1
  192. package/esm/rpc/estimation/gasEstimationHandler.d.ts +15 -16
  193. package/esm/rpc/estimation/gasEstimationHandler.js +24 -24
  194. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  195. package/esm/rpc/estimation/gasEstimations06.d.ts +18 -0
  196. package/esm/rpc/estimation/gasEstimations06.js +45 -0
  197. package/esm/rpc/estimation/gasEstimations06.js.map +1 -0
  198. package/esm/rpc/estimation/gasEstimations07.d.ts +63 -0
  199. package/esm/rpc/estimation/gasEstimations07.js +384 -0
  200. package/esm/rpc/estimation/gasEstimations07.js.map +1 -0
  201. package/esm/rpc/estimation/preVerificationGasCalculator.d.ts +56 -0
  202. package/esm/rpc/estimation/preVerificationGasCalculator.js +467 -0
  203. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
  204. package/esm/rpc/estimation/types.d.ts +25 -111
  205. package/esm/rpc/estimation/types.js +5 -121
  206. package/esm/rpc/estimation/types.js.map +1 -1
  207. package/esm/rpc/estimation/utils.d.ts +69 -0
  208. package/esm/rpc/estimation/utils.js +240 -0
  209. package/esm/rpc/estimation/utils.js.map +1 -0
  210. package/{lib/rpc/methods/pimlico_sendUserOperationNow.d.ts → esm/rpc/methods/boost_sendUserOperation.d.ts} +299 -385
  211. package/esm/rpc/methods/boost_sendUserOperation.js +57 -0
  212. package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -0
  213. package/esm/rpc/methods/debug_bundler_clearReputation.js +2 -2
  214. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  215. package/esm/rpc/methods/debug_bundler_clearState.js +2 -2
  216. package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
  217. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  218. package/esm/rpc/methods/debug_bundler_dumpMempool.js +1 -1
  219. package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
  220. package/esm/rpc/methods/debug_bundler_dumpReputation.js +2 -2
  221. package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
  222. package/esm/rpc/methods/debug_bundler_getStakeStatus.js +1 -2
  223. package/esm/rpc/methods/debug_bundler_getStakeStatus.js.map +1 -1
  224. package/esm/rpc/methods/debug_bundler_sendBundleNow.js +10 -2
  225. package/esm/rpc/methods/debug_bundler_sendBundleNow.js.map +1 -1
  226. package/esm/rpc/methods/debug_bundler_setBundlingMode.js +1 -1
  227. package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
  228. package/esm/rpc/methods/debug_bundler_setReputation.js +1 -1
  229. package/esm/rpc/methods/debug_bundler_setReputation.js.map +1 -1
  230. package/esm/rpc/methods/eth_chainId.js +1 -1
  231. package/esm/rpc/methods/eth_chainId.js.map +1 -1
  232. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +910 -301
  233. package/esm/rpc/methods/eth_estimateUserOperationGas.js +228 -12
  234. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  235. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  236. package/esm/rpc/methods/eth_getUserOperationByHash.js +8 -8
  237. package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
  238. package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
  239. package/esm/rpc/methods/eth_getUserOperationReceipt.js +10 -4
  240. package/esm/rpc/methods/eth_getUserOperationReceipt.js.map +1 -1
  241. package/esm/rpc/methods/eth_sendUserOperation.d.ts +319 -2
  242. package/esm/rpc/methods/eth_sendUserOperation.js +223 -20
  243. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  244. package/esm/rpc/methods/eth_supportedEntryPoints.js +1 -1
  245. package/esm/rpc/methods/eth_supportedEntryPoints.js.map +1 -1
  246. package/esm/rpc/methods/index.js +11 -6
  247. package/esm/rpc/methods/index.js.map +1 -1
  248. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js +1 -1
  249. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js.map +1 -1
  250. package/esm/rpc/methods/pimlico_getUserOperationStatus.d.ts +6 -6
  251. package/esm/rpc/methods/pimlico_getUserOperationStatus.js +3 -3
  252. package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
  253. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
  254. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +27 -24
  255. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  256. package/{lib/rpc/methods/eth_estimateUserOperationGas.d.ts → esm/rpc/methods/pimlico_simulateAssetChange.d.ts} +891 -333
  257. package/esm/rpc/methods/pimlico_simulateAssetChange.js +113 -0
  258. package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -0
  259. package/esm/rpc/rpcHandler.d.ts +30 -54
  260. package/esm/rpc/rpcHandler.js +137 -315
  261. package/esm/rpc/rpcHandler.js.map +1 -1
  262. package/esm/rpc/server.d.ts +5 -5
  263. package/esm/rpc/server.js +15 -11
  264. package/esm/rpc/server.js.map +1 -1
  265. package/esm/rpc/validation/BundlerCollectorTracerV06.js +2 -2
  266. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  267. package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
  268. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
  269. package/esm/rpc/validation/SafeValidator.d.ts +20 -22
  270. package/esm/rpc/validation/SafeValidator.js +87 -100
  271. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  272. package/esm/rpc/validation/TracerResultParserV06.d.ts +3 -3
  273. package/esm/rpc/validation/TracerResultParserV06.js +19 -19
  274. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  275. package/esm/rpc/validation/TracerResultParserV07.d.ts +3 -3
  276. package/esm/rpc/validation/TracerResultParserV07.js +25 -25
  277. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  278. package/esm/rpc/validation/UnsafeValidator.d.ts +32 -33
  279. package/esm/rpc/validation/UnsafeValidator.js +117 -101
  280. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  281. package/esm/rpc/validation/tracer.d.ts +1 -1
  282. package/esm/store/createMempoolStore.d.ts +3 -3
  283. package/esm/store/createMempoolStore.js +100 -113
  284. package/esm/store/createMempoolStore.js.map +1 -1
  285. package/esm/store/index.d.ts +4 -80
  286. package/esm/store/index.js +4 -1
  287. package/esm/store/index.js.map +1 -1
  288. package/esm/store/outstanding/index.d.ts +13 -0
  289. package/esm/store/outstanding/index.js +16 -0
  290. package/esm/store/outstanding/index.js.map +1 -0
  291. package/esm/store/outstanding/memory.d.ts +29 -0
  292. package/esm/store/outstanding/memory.js +263 -0
  293. package/esm/store/outstanding/memory.js.map +1 -0
  294. package/esm/store/outstanding/redis.d.ts +11 -0
  295. package/esm/store/outstanding/redis.js +229 -0
  296. package/esm/store/outstanding/redis.js.map +1 -0
  297. package/esm/store/outstanding/types.d.ts +19 -0
  298. package/esm/store/outstanding/types.js +2 -0
  299. package/esm/store/outstanding/types.js.map +1 -0
  300. package/esm/store/processing/index.d.ts +11 -0
  301. package/esm/store/processing/index.js +17 -0
  302. package/esm/store/processing/index.js.map +1 -0
  303. package/esm/store/processing/memory.d.ts +16 -0
  304. package/esm/store/processing/memory.js +58 -0
  305. package/esm/store/processing/memory.js.map +1 -0
  306. package/esm/store/processing/redis.d.ts +23 -0
  307. package/esm/store/processing/redis.js +85 -0
  308. package/esm/store/processing/redis.js.map +1 -0
  309. package/esm/store/processing/types.d.ts +10 -0
  310. package/esm/store/processing/types.js +2 -0
  311. package/esm/store/processing/types.js.map +1 -0
  312. package/esm/store/types.d.ts +50 -0
  313. package/esm/store/types.js +2 -0
  314. package/esm/store/types.js.map +1 -0
  315. package/esm/types/contracts/PimlicoSimulations.d.ts +1661 -0
  316. package/esm/types/contracts/{EntryPointSimulationsV7.js → PimlicoSimulations.js} +1104 -1788
  317. package/esm/types/contracts/PimlicoSimulations.js.map +1 -0
  318. package/esm/types/contracts/index.d.ts +1 -3
  319. package/esm/types/contracts/index.js +1 -3
  320. package/esm/types/contracts/index.js.map +1 -1
  321. package/esm/types/gasPrice.js +0 -18
  322. package/esm/types/gasPrice.js.map +1 -1
  323. package/esm/types/interfaces.d.ts +26 -26
  324. package/esm/types/mempool.d.ts +14 -28
  325. package/esm/types/mempool.js +1 -7
  326. package/esm/types/mempool.js.map +1 -1
  327. package/esm/types/schemas.d.ts +26347 -10767
  328. package/esm/types/schemas.js +202 -38
  329. package/esm/types/schemas.js.map +1 -1
  330. package/esm/types/utils.d.ts +2 -5
  331. package/esm/types/utils.js +16 -18
  332. package/esm/types/utils.js.map +1 -1
  333. package/esm/types/validation.d.ts +9447 -8727
  334. package/esm/types/validation.js +123 -161
  335. package/esm/types/validation.js.map +1 -1
  336. package/esm/utils/asyncTimeout.d.ts +5 -0
  337. package/esm/utils/asyncTimeout.js +23 -0
  338. package/esm/utils/asyncTimeout.js.map +1 -0
  339. package/esm/utils/bigInt.d.ts +9 -0
  340. package/esm/utils/bigInt.js +19 -2
  341. package/esm/utils/bigInt.js.map +1 -1
  342. package/esm/utils/eip7702.d.ts +4 -3
  343. package/esm/utils/eip7702.js +16 -7
  344. package/esm/utils/eip7702.js.map +1 -1
  345. package/esm/utils/entryPointOverrides.d.ts +12 -0
  346. package/esm/utils/entryPointOverrides.js +71 -0
  347. package/esm/utils/entryPointOverrides.js.map +1 -0
  348. package/esm/utils/helpers.d.ts +5 -3
  349. package/esm/utils/helpers.js +36 -13
  350. package/esm/utils/helpers.js.map +1 -1
  351. package/esm/utils/index.d.ts +2 -2
  352. package/esm/utils/index.js +1 -1
  353. package/esm/utils/index.js.map +1 -1
  354. package/esm/utils/metrics.d.ts +11 -9
  355. package/esm/utils/metrics.js +44 -25
  356. package/esm/utils/metrics.js.map +1 -1
  357. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +2 -2
  358. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +2 -2
  359. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
  360. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +26 -4
  361. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +111 -71
  362. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  363. package/esm/utils/minMaxQueue/index.d.ts +3 -3
  364. package/esm/utils/minMaxQueue/index.js +4 -3
  365. package/esm/utils/minMaxQueue/index.js.map +1 -1
  366. package/esm/utils/rpc-reply.d.ts +3 -3
  367. package/esm/utils/rpc-reply.js.map +1 -1
  368. package/esm/utils/toViemStateOverrides.d.ts +4 -0
  369. package/esm/utils/toViemStateOverrides.js +44 -0
  370. package/esm/utils/toViemStateOverrides.js.map +1 -0
  371. package/esm/utils/userop.d.ts +89 -87
  372. package/esm/utils/userop.js +207 -439
  373. package/esm/utils/userop.js.map +1 -1
  374. package/package.json +12 -7
  375. package/esm/executor/fastlane.d.ts +0 -9
  376. package/esm/executor/fastlane.js +0 -37
  377. package/esm/executor/fastlane.js.map +0 -1
  378. package/esm/executor/filterOpsAndEStimateGas.d.ts +0 -29
  379. package/esm/executor/filterOpsAndEStimateGas.js +0 -198
  380. package/esm/executor/filterOpsAndEStimateGas.js.map +0 -1
  381. package/esm/mempool/monitoring.d.ts +0 -14
  382. package/esm/mempool/monitoring.js +0 -97
  383. package/esm/mempool/monitoring.js.map +0 -1
  384. package/esm/rpc/estimation/gasEstimationsV06.d.ts +0 -19
  385. package/esm/rpc/estimation/gasEstimationsV06.js +0 -144
  386. package/esm/rpc/estimation/gasEstimationsV06.js.map +0 -1
  387. package/esm/rpc/estimation/gasEstimationsV07.d.ts +0 -101
  388. package/esm/rpc/estimation/gasEstimationsV07.js +0 -721
  389. package/esm/rpc/estimation/gasEstimationsV07.js.map +0 -1
  390. package/esm/store/createMemoryOutstandingStore.d.ts +0 -28
  391. package/esm/store/createMemoryOutstandingStore.js +0 -231
  392. package/esm/store/createMemoryOutstandingStore.js.map +0 -1
  393. package/esm/store/createRedisOutstandingStore.d.ts +0 -27
  394. package/esm/store/createRedisOutstandingStore.js +0 -344
  395. package/esm/store/createRedisOutstandingStore.js.map +0 -1
  396. package/esm/store/createRedisStore.d.ts +0 -9
  397. package/esm/store/createRedisStore.js +0 -131
  398. package/esm/store/createRedisStore.js.map +0 -1
  399. package/esm/store/createStore.d.ts +0 -6
  400. package/esm/store/createStore.js +0 -66
  401. package/esm/store/createStore.js.map +0 -1
  402. package/esm/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
  403. package/esm/types/contracts/EntryPointSimulationsV6.js +0 -48
  404. package/esm/types/contracts/EntryPointSimulationsV6.js.map +0 -1
  405. package/esm/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
  406. package/esm/types/contracts/EntryPointSimulationsV7.js.map +0 -1
  407. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
  408. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -38
  409. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  410. package/esm/utils/validation.d.ts +0 -76
  411. package/esm/utils/validation.js +0 -484
  412. package/esm/utils/validation.js.map +0 -1
  413. package/lib/cli/alto.d.ts +0 -7
  414. package/lib/cli/alto.js +0 -141
  415. package/lib/cli/alto.js.map +0 -1
  416. package/lib/cli/config/bundler.d.ts +0 -2836
  417. package/lib/cli/config/bundler.js +0 -222
  418. package/lib/cli/config/bundler.js.map +0 -1
  419. package/lib/cli/config/index.d.ts +0 -3
  420. package/lib/cli/config/index.js +0 -19
  421. package/lib/cli/config/index.js.map +0 -1
  422. package/lib/cli/config/options.d.ts +0 -13
  423. package/lib/cli/config/options.js +0 -553
  424. package/lib/cli/config/options.js.map +0 -1
  425. package/lib/cli/customTransport.d.ts +0 -14
  426. package/lib/cli/customTransport.js +0 -94
  427. package/lib/cli/customTransport.js.map +0 -1
  428. package/lib/cli/deploySimulationsContract.d.ts +0 -13
  429. package/lib/cli/deploySimulationsContract.js +0 -112
  430. package/lib/cli/deploySimulationsContract.js.map +0 -1
  431. package/lib/cli/handler.d.ts +0 -3
  432. package/lib/cli/handler.js +0 -157
  433. package/lib/cli/handler.js.map +0 -1
  434. package/lib/cli/index.d.ts +0 -4
  435. package/lib/cli/index.js +0 -20
  436. package/lib/cli/index.js.map +0 -1
  437. package/lib/cli/instrumentation.d.ts +0 -2
  438. package/lib/cli/instrumentation.js +0 -47
  439. package/lib/cli/instrumentation.js.map +0 -1
  440. package/lib/cli/parseArgs.d.ts +0 -8
  441. package/lib/cli/parseArgs.js +0 -25
  442. package/lib/cli/parseArgs.js.map +0 -1
  443. package/lib/cli/setupServer.d.ts +0 -13
  444. package/lib/cli/setupServer.js +0 -266
  445. package/lib/cli/setupServer.js.map +0 -1
  446. package/lib/cli/util.d.ts +0 -22
  447. package/lib/cli/util.js +0 -34
  448. package/lib/cli/util.js.map +0 -1
  449. package/lib/createConfig.d.ts +0 -16
  450. package/lib/createConfig.js +0 -13
  451. package/lib/createConfig.js.map +0 -1
  452. package/lib/executor/executor.d.ts +0 -65
  453. package/lib/executor/executor.js +0 -285
  454. package/lib/executor/executor.js.map +0 -1
  455. package/lib/executor/executorManager.d.ts +0 -107
  456. package/lib/executor/executorManager.js +0 -682
  457. package/lib/executor/executorManager.js.map +0 -1
  458. package/lib/executor/fastlane.d.ts +0 -9
  459. package/lib/executor/fastlane.js +0 -41
  460. package/lib/executor/fastlane.js.map +0 -1
  461. package/lib/executor/filterOpsAndEStimateGas.d.ts +0 -29
  462. package/lib/executor/filterOpsAndEStimateGas.js +0 -225
  463. package/lib/executor/filterOpsAndEStimateGas.js.map +0 -1
  464. package/lib/executor/index.d.ts +0 -5
  465. package/lib/executor/index.js +0 -21
  466. package/lib/executor/index.js.map +0 -1
  467. package/lib/executor/senderManager/createMemorySenderManager.d.ts +0 -8
  468. package/lib/executor/senderManager/createMemorySenderManager.js +0 -45
  469. package/lib/executor/senderManager/createMemorySenderManager.js.map +0 -1
  470. package/lib/executor/senderManager/createRedisSenderManager.d.ts +0 -8
  471. package/lib/executor/senderManager/createRedisSenderManager.js +0 -85
  472. package/lib/executor/senderManager/createRedisSenderManager.js.map +0 -1
  473. package/lib/executor/senderManager/flushOnStartUp.d.ts +0 -9
  474. package/lib/executor/senderManager/flushOnStartUp.js +0 -37
  475. package/lib/executor/senderManager/flushOnStartUp.js.map +0 -1
  476. package/lib/executor/senderManager/index.d.ts +0 -15
  477. package/lib/executor/senderManager/index.js +0 -25
  478. package/lib/executor/senderManager/index.js.map +0 -1
  479. package/lib/executor/senderManager/validateAndRefill.d.ts +0 -11
  480. package/lib/executor/senderManager/validateAndRefill.js +0 -115
  481. package/lib/executor/senderManager/validateAndRefill.js.map +0 -1
  482. package/lib/executor/utilityWalletMonitor.d.ts +0 -19
  483. package/lib/executor/utilityWalletMonitor.js +0 -42
  484. package/lib/executor/utilityWalletMonitor.js.map +0 -1
  485. package/lib/executor/utils.d.ts +0 -31
  486. package/lib/executor/utils.js +0 -170
  487. package/lib/executor/utils.js.map +0 -1
  488. package/lib/handlers/arbitrumGasPriceManager.d.ts +0 -14
  489. package/lib/handlers/arbitrumGasPriceManager.js +0 -39
  490. package/lib/handlers/arbitrumGasPriceManager.js.map +0 -1
  491. package/lib/handlers/eventManager.d.ts +0 -28
  492. package/lib/handlers/eventManager.js +0 -207
  493. package/lib/handlers/eventManager.js.map +0 -1
  494. package/lib/handlers/gasPriceManager.d.ts +0 -36
  495. package/lib/handlers/gasPriceManager.js +0 -423
  496. package/lib/handlers/gasPriceManager.js.map +0 -1
  497. package/lib/handlers/index.d.ts +0 -3
  498. package/lib/handlers/index.js +0 -19
  499. package/lib/handlers/index.js.map +0 -1
  500. package/lib/handlers/mantleGasPriceManager.d.ts +0 -23
  501. package/lib/handlers/mantleGasPriceManager.js +0 -44
  502. package/lib/handlers/mantleGasPriceManager.js.map +0 -1
  503. package/lib/handlers/optimismManager.d.ts +0 -10
  504. package/lib/handlers/optimismManager.js +0 -21
  505. package/lib/handlers/optimismManager.js.map +0 -1
  506. package/lib/index.d.ts +0 -2
  507. package/lib/index.js +0 -4
  508. package/lib/index.js.map +0 -1
  509. package/lib/mempool/index.d.ts +0 -4
  510. package/lib/mempool/index.js +0 -20
  511. package/lib/mempool/index.js.map +0 -1
  512. package/lib/mempool/mempool.d.ts +0 -191
  513. package/lib/mempool/mempool.js +0 -498
  514. package/lib/mempool/mempool.js.map +0 -1
  515. package/lib/mempool/monitoring.d.ts +0 -14
  516. package/lib/mempool/monitoring.js +0 -101
  517. package/lib/mempool/monitoring.js.map +0 -1
  518. package/lib/mempool/reputationManager.d.ts +0 -121
  519. package/lib/mempool/reputationManager.js +0 -472
  520. package/lib/mempool/reputationManager.js.map +0 -1
  521. package/lib/rpc/createMethodHandler.d.ts +0 -31
  522. package/lib/rpc/createMethodHandler.js +0 -34
  523. package/lib/rpc/createMethodHandler.js.map +0 -1
  524. package/lib/rpc/estimation/gasEstimationHandler.d.ts +0 -30
  525. package/lib/rpc/estimation/gasEstimationHandler.js +0 -50
  526. package/lib/rpc/estimation/gasEstimationHandler.js.map +0 -1
  527. package/lib/rpc/estimation/gasEstimationsV06.d.ts +0 -19
  528. package/lib/rpc/estimation/gasEstimationsV06.js +0 -148
  529. package/lib/rpc/estimation/gasEstimationsV06.js.map +0 -1
  530. package/lib/rpc/estimation/gasEstimationsV07.d.ts +0 -101
  531. package/lib/rpc/estimation/gasEstimationsV07.js +0 -727
  532. package/lib/rpc/estimation/gasEstimationsV07.js.map +0 -1
  533. package/lib/rpc/estimation/types.d.ts +0 -120
  534. package/lib/rpc/estimation/types.js +0 -125
  535. package/lib/rpc/estimation/types.js.map +0 -1
  536. package/lib/rpc/index.d.ts +0 -4
  537. package/lib/rpc/index.js +0 -20
  538. package/lib/rpc/index.js.map +0 -1
  539. package/lib/rpc/methods/debug_bundler_clearReputation.d.ts +0 -22
  540. package/lib/rpc/methods/debug_bundler_clearReputation.js +0 -15
  541. package/lib/rpc/methods/debug_bundler_clearReputation.js.map +0 -1
  542. package/lib/rpc/methods/debug_bundler_clearState.d.ts +0 -22
  543. package/lib/rpc/methods/debug_bundler_clearState.js +0 -16
  544. package/lib/rpc/methods/debug_bundler_clearState.js.map +0 -1
  545. package/lib/rpc/methods/debug_bundler_dumpMempool.d.ts +0 -973
  546. package/lib/rpc/methods/debug_bundler_dumpMempool.js +0 -16
  547. package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +0 -1
  548. package/lib/rpc/methods/debug_bundler_dumpReputation.d.ts +0 -57
  549. package/lib/rpc/methods/debug_bundler_dumpReputation.js +0 -16
  550. package/lib/rpc/methods/debug_bundler_dumpReputation.js.map +0 -1
  551. package/lib/rpc/methods/debug_bundler_getStakeStatus.d.ts +0 -79
  552. package/lib/rpc/methods/debug_bundler_getStakeStatus.js +0 -25
  553. package/lib/rpc/methods/debug_bundler_getStakeStatus.js.map +0 -1
  554. package/lib/rpc/methods/debug_bundler_sendBundleNow.d.ts +0 -22
  555. package/lib/rpc/methods/debug_bundler_sendBundleNow.js +0 -15
  556. package/lib/rpc/methods/debug_bundler_sendBundleNow.js.map +0 -1
  557. package/lib/rpc/methods/debug_bundler_setBundlingMode.d.ts +0 -22
  558. package/lib/rpc/methods/debug_bundler_setBundlingMode.js +0 -16
  559. package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +0 -1
  560. package/lib/rpc/methods/debug_bundler_setReputation.d.ts +0 -46
  561. package/lib/rpc/methods/debug_bundler_setReputation.js +0 -16
  562. package/lib/rpc/methods/debug_bundler_setReputation.js.map +0 -1
  563. package/lib/rpc/methods/eth_chainId.d.ts +0 -22
  564. package/lib/rpc/methods/eth_chainId.js +0 -13
  565. package/lib/rpc/methods/eth_chainId.js.map +0 -1
  566. package/lib/rpc/methods/eth_estimateUserOperationGas.js +0 -26
  567. package/lib/rpc/methods/eth_estimateUserOperationGas.js.map +0 -1
  568. package/lib/rpc/methods/eth_getUserOperationByHash.d.ts +0 -1775
  569. package/lib/rpc/methods/eth_getUserOperationByHash.js +0 -101
  570. package/lib/rpc/methods/eth_getUserOperationByHash.js.map +0 -1
  571. package/lib/rpc/methods/eth_getUserOperationReceipt.d.ts +0 -412
  572. package/lib/rpc/methods/eth_getUserOperationReceipt.js +0 -14
  573. package/lib/rpc/methods/eth_getUserOperationReceipt.js.map +0 -1
  574. package/lib/rpc/methods/eth_sendUserOperation.d.ts +0 -878
  575. package/lib/rpc/methods/eth_sendUserOperation.js +0 -44
  576. package/lib/rpc/methods/eth_sendUserOperation.js.map +0 -1
  577. package/lib/rpc/methods/eth_supportedEntryPoints.d.ts +0 -22
  578. package/lib/rpc/methods/eth_supportedEntryPoints.js +0 -13
  579. package/lib/rpc/methods/eth_supportedEntryPoints.js.map +0 -1
  580. package/lib/rpc/methods/index.d.ts +0 -3
  581. package/lib/rpc/methods/index.js +0 -44
  582. package/lib/rpc/methods/index.js.map +0 -1
  583. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.d.ts +0 -131
  584. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js +0 -33
  585. package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js.map +0 -1
  586. package/lib/rpc/methods/pimlico_getUserOperationStatus.d.ts +0 -43
  587. package/lib/rpc/methods/pimlico_getUserOperationStatus.js +0 -14
  588. package/lib/rpc/methods/pimlico_getUserOperationStatus.js.map +0 -1
  589. package/lib/rpc/methods/pimlico_sendUserOperationNow.js +0 -53
  590. package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +0 -1
  591. package/lib/rpc/rpcHandler.d.ts +0 -75
  592. package/lib/rpc/rpcHandler.js +0 -408
  593. package/lib/rpc/rpcHandler.js.map +0 -1
  594. package/lib/rpc/server.d.ts +0 -26
  595. package/lib/rpc/server.js +0 -283
  596. package/lib/rpc/server.js.map +0 -1
  597. package/lib/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  598. package/lib/rpc/validation/BundlerCollectorTracerV06.js +0 -262
  599. package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  600. package/lib/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  601. package/lib/rpc/validation/BundlerCollectorTracerV07.js +0 -261
  602. package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  603. package/lib/rpc/validation/SafeValidator.d.ts +0 -52
  604. package/lib/rpc/validation/SafeValidator.js +0 -350
  605. package/lib/rpc/validation/SafeValidator.js.map +0 -1
  606. package/lib/rpc/validation/TracerResultParserV06.d.ts +0 -13
  607. package/lib/rpc/validation/TracerResultParserV06.js +0 -582
  608. package/lib/rpc/validation/TracerResultParserV06.js.map +0 -1
  609. package/lib/rpc/validation/TracerResultParserV07.d.ts +0 -33
  610. package/lib/rpc/validation/TracerResultParserV07.js +0 -599
  611. package/lib/rpc/validation/TracerResultParserV07.js.map +0 -1
  612. package/lib/rpc/validation/UnsafeValidator.d.ts +0 -98
  613. package/lib/rpc/validation/UnsafeValidator.js +0 -326
  614. package/lib/rpc/validation/UnsafeValidator.js.map +0 -1
  615. package/lib/rpc/validation/index.d.ts +0 -3
  616. package/lib/rpc/validation/index.js +0 -19
  617. package/lib/rpc/validation/index.js.map +0 -1
  618. package/lib/rpc/validation/tracer.d.ts +0 -125
  619. package/lib/rpc/validation/tracer.js +0 -112
  620. package/lib/rpc/validation/tracer.js.map +0 -1
  621. package/lib/store/createMemoryOutstandingStore.d.ts +0 -28
  622. package/lib/store/createMemoryOutstandingStore.js +0 -236
  623. package/lib/store/createMemoryOutstandingStore.js.map +0 -1
  624. package/lib/store/createMempoolStore.d.ts +0 -8
  625. package/lib/store/createMempoolStore.js +0 -199
  626. package/lib/store/createMempoolStore.js.map +0 -1
  627. package/lib/store/createRedisOutstandingStore.d.ts +0 -27
  628. package/lib/store/createRedisOutstandingStore.js +0 -349
  629. package/lib/store/createRedisOutstandingStore.js.map +0 -1
  630. package/lib/store/createRedisStore.d.ts +0 -9
  631. package/lib/store/createRedisStore.js +0 -138
  632. package/lib/store/createRedisStore.js.map +0 -1
  633. package/lib/store/createStore.d.ts +0 -6
  634. package/lib/store/createStore.js +0 -70
  635. package/lib/store/createStore.js.map +0 -1
  636. package/lib/store/index.d.ts +0 -81
  637. package/lib/store/index.js +0 -6
  638. package/lib/store/index.js.map +0 -1
  639. package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +0 -32
  640. package/lib/types/contracts/ArbitrumL1FeeAbi.js +0 -45
  641. package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +0 -1
  642. package/lib/types/contracts/CallEngine.d.ts +0 -28
  643. package/lib/types/contracts/CallEngine.js +0 -40
  644. package/lib/types/contracts/CallEngine.js.map +0 -1
  645. package/lib/types/contracts/CodeHashGetter.d.ts +0 -37
  646. package/lib/types/contracts/CodeHashGetter.js +0 -48
  647. package/lib/types/contracts/CodeHashGetter.js.map +0 -1
  648. package/lib/types/contracts/EntryPoint.d.ts +0 -1789
  649. package/lib/types/contracts/EntryPoint.js +0 -2307
  650. package/lib/types/contracts/EntryPoint.js.map +0 -1
  651. package/lib/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
  652. package/lib/types/contracts/EntryPointSimulationsV6.js +0 -51
  653. package/lib/types/contracts/EntryPointSimulationsV6.js.map +0 -1
  654. package/lib/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
  655. package/lib/types/contracts/EntryPointSimulationsV7.js +0 -2828
  656. package/lib/types/contracts/EntryPointSimulationsV7.js.map +0 -1
  657. package/lib/types/contracts/IAccountExecute.d.ts +0 -53
  658. package/lib/types/contracts/IAccountExecute.js +0 -71
  659. package/lib/types/contracts/IAccountExecute.js.map +0 -1
  660. package/lib/types/contracts/IPaymaster.d.ts +0 -3
  661. package/lib/types/contracts/IPaymaster.js +0 -120
  662. package/lib/types/contracts/IPaymaster.js.map +0 -1
  663. package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +0 -219
  664. package/lib/types/contracts/MantleBvmGasPriceOracle.js +0 -180
  665. package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +0 -1
  666. package/lib/types/contracts/OpL1FeeAbi.d.ts +0 -114
  667. package/lib/types/contracts/OpL1FeeAbi.js +0 -77
  668. package/lib/types/contracts/OpL1FeeAbi.js.map +0 -1
  669. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
  670. package/lib/types/contracts/PimlicoEntryPointSimulations.js +0 -41
  671. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  672. package/lib/types/contracts/SenderCreator.d.ts +0 -4
  673. package/lib/types/contracts/SenderCreator.js +0 -26
  674. package/lib/types/contracts/SenderCreator.js.map +0 -1
  675. package/lib/types/contracts/SimpleAccountFactory.d.ts +0 -57
  676. package/lib/types/contracts/SimpleAccountFactory.js +0 -79
  677. package/lib/types/contracts/SimpleAccountFactory.js.map +0 -1
  678. package/lib/types/contracts/TestOpcodesAccount.d.ts +0 -4
  679. package/lib/types/contracts/TestOpcodesAccount.js +0 -284
  680. package/lib/types/contracts/TestOpcodesAccount.js.map +0 -1
  681. package/lib/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  682. package/lib/types/contracts/TestOpcodesAccountFactory.js +0 -26
  683. package/lib/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  684. package/lib/types/contracts/TestStorageAccount.d.ts +0 -4
  685. package/lib/types/contracts/TestStorageAccount.js +0 -316
  686. package/lib/types/contracts/TestStorageAccount.js.map +0 -1
  687. package/lib/types/contracts/index.d.ts +0 -17
  688. package/lib/types/contracts/index.js +0 -33
  689. package/lib/types/contracts/index.js.map +0 -1
  690. package/lib/types/gasPrice.d.ts +0 -110
  691. package/lib/types/gasPrice.js +0 -55
  692. package/lib/types/gasPrice.js.map +0 -1
  693. package/lib/types/index.d.ts +0 -11
  694. package/lib/types/index.js +0 -27
  695. package/lib/types/index.js.map +0 -1
  696. package/lib/types/interfaces.d.ts +0 -59
  697. package/lib/types/interfaces.js +0 -3
  698. package/lib/types/interfaces.js.map +0 -1
  699. package/lib/types/mempool.d.ts +0 -60
  700. package/lib/types/mempool.js +0 -11
  701. package/lib/types/mempool.js.map +0 -1
  702. package/lib/types/schemas.d.ts +0 -20779
  703. package/lib/types/schemas.js +0 -638
  704. package/lib/types/schemas.js.map +0 -1
  705. package/lib/types/utils.d.ts +0 -25
  706. package/lib/types/utils.js +0 -35
  707. package/lib/types/utils.js.map +0 -1
  708. package/lib/types/validation.d.ts +0 -14327
  709. package/lib/types/validation.js +0 -312
  710. package/lib/types/validation.js.map +0 -1
  711. package/lib/utils/bigInt.d.ts +0 -4
  712. package/lib/utils/bigInt.js +0 -19
  713. package/lib/utils/bigInt.js.map +0 -1
  714. package/lib/utils/eip7702.d.ts +0 -4
  715. package/lib/utils/eip7702.js +0 -21
  716. package/lib/utils/eip7702.js.map +0 -1
  717. package/lib/utils/fastify-rpc-decorators.d.ts +0 -19
  718. package/lib/utils/fastify-rpc-decorators.js +0 -23
  719. package/lib/utils/fastify-rpc-decorators.js.map +0 -1
  720. package/lib/utils/helpers.d.ts +0 -15
  721. package/lib/utils/helpers.js +0 -59
  722. package/lib/utils/helpers.js.map +0 -1
  723. package/lib/utils/index.d.ts +0 -8
  724. package/lib/utils/index.js +0 -23
  725. package/lib/utils/index.js.map +0 -1
  726. package/lib/utils/logger.d.ts +0 -6
  727. package/lib/utils/logger.js +0 -85
  728. package/lib/utils/logger.js.map +0 -1
  729. package/lib/utils/metrics.d.ts +0 -28
  730. package/lib/utils/metrics.js +0 -192
  731. package/lib/utils/metrics.js.map +0 -1
  732. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +0 -6
  733. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +0 -57
  734. package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +0 -1
  735. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +0 -7
  736. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +0 -105
  737. package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +0 -1
  738. package/lib/utils/minMaxQueue/index.d.ts +0 -12
  739. package/lib/utils/minMaxQueue/index.js +0 -16
  740. package/lib/utils/minMaxQueue/index.js.map +0 -1
  741. package/lib/utils/rpc-reply.d.ts +0 -16
  742. package/lib/utils/rpc-reply.js +0 -41
  743. package/lib/utils/rpc-reply.js.map +0 -1
  744. package/lib/utils/userop.d.ts +0 -138
  745. package/lib/utils/userop.js +0 -620
  746. package/lib/utils/userop.js.map +0 -1
  747. package/lib/utils/validation.d.ts +0 -76
  748. package/lib/utils/validation.js +0 -500
  749. package/lib/utils/validation.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entryPointOverrides.js","sourceRoot":"","sources":["../../utils/entryPointOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,gBAAgB,EAChB,SAAS,EACT,GAAG,EACH,KAAK,EACR,MAAM,MAAM,CAAA;AAGb,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAmB,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,GAAG,CACb,gBAAgB,CAAC;QACb,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,EAAE;KACZ,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,CACf,CAAA;IAED,OAAO;QACH,IAAI;QACJ,KAAK;KACR,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACtC,OAAO,EACP,UAAU,EACV,aAAa,EAKhB,EAAiB,EAAE;IAChB,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAClE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAEvD,mEAAmE;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACzD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAEzE,IAAI,IAAS,CAAA;IACb,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,OAAO;QACH;YACI,OAAO,EAAE,UAAU;YACnB,IAAI;YACJ,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,KAAK,EAAE,qBAAqB,CAAC,KAAK;iBACrC;gBACD;oBACI,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,cAAc;iBACxB;aACJ;SACJ;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1,9 +1,11 @@
1
1
  import type { StateOverrides, UserOperation } from "../types/index.js";
2
+ export declare const jsonStringifyWithBigint: (obj: unknown) => string;
3
+ export declare const recoverableJsonStringifyWithBigint: (obj: unknown) => string;
4
+ export declare const recoverableJsonParseWithBigint: (str: string) => any;
2
5
  export declare const areAddressesEqual: (a: string, b: string) => boolean;
3
- export declare function getRevertErrorData(err: unknown): `0x${string}` | undefined;
4
6
  export declare function getAAError(errorMsg: string): string | undefined;
5
- export declare function getAuthorizationStateOverrides({ userOperations, stateOverrides }: {
6
- userOperations: UserOperation[];
7
+ export declare function getAuthorizationStateOverrides({ userOps, stateOverrides }: {
8
+ userOps: UserOperation[];
7
9
  stateOverrides?: StateOverrides;
8
10
  }): Partial<Record<`0x${string}`, {
9
11
  balance?: bigint | undefined;
@@ -1,4 +1,36 @@
1
- import { BaseError, getAddress, concat } from "viem";
1
+ import { concat, getAddress } from "viem";
2
+ import { getEip7702AuthAddress } from "./eip7702.js";
3
+ /// Convert an object to JSON string, handling bigint values
4
+ export const jsonStringifyWithBigint = (obj) => {
5
+ return JSON.stringify(obj, (_key, value) => typeof value === "bigint" ? value.toString() : value);
6
+ };
7
+ /// Convert an object to JSON string, handling bigint values
8
+ export const recoverableJsonStringifyWithBigint = (obj) => {
9
+ return JSON.stringify(obj, (_key, value) => typeof value === "bigint"
10
+ ? {
11
+ type: "bigint",
12
+ value: value.toString()
13
+ }
14
+ : value);
15
+ };
16
+ export const recoverableJsonParseWithBigint = (str) => {
17
+ return JSON.parse(str, (_key, value) => {
18
+ if (value !== null &&
19
+ typeof value === "object" &&
20
+ "type" in value &&
21
+ value.type === "bigint" &&
22
+ "value" in value &&
23
+ typeof value.value === "string") {
24
+ try {
25
+ return BigInt(value.value);
26
+ }
27
+ catch {
28
+ return value;
29
+ }
30
+ }
31
+ return value;
32
+ });
33
+ };
2
34
  /// Ensure proper equality by converting both addresses into their checksum type
3
35
  export const areAddressesEqual = (a, b) => {
4
36
  try {
@@ -8,13 +40,6 @@ export const areAddressesEqual = (a, b) => {
8
40
  return false;
9
41
  }
10
42
  };
11
- export function getRevertErrorData(err) {
12
- if (!(err instanceof BaseError)) {
13
- return undefined;
14
- }
15
- const error = err.walk();
16
- return typeof error?.data === "object" ? error.data?.data : error.data;
17
- }
18
43
  export function getAAError(errorMsg) {
19
44
  const uppercase = errorMsg.toUpperCase();
20
45
  const match = uppercase.match(/AA\d{2}/);
@@ -25,17 +50,15 @@ function getAuthorizationStateOverride({ authorization }) {
25
50
  const code = concat(["0xef0100", authorization.address]);
26
51
  return { code };
27
52
  }
28
- export function getAuthorizationStateOverrides({ userOperations, stateOverrides }) {
53
+ export function getAuthorizationStateOverrides({ userOps, stateOverrides }) {
29
54
  const overrides = { ...(stateOverrides ?? {}) };
30
- for (const op of userOperations) {
55
+ for (const op of userOps) {
31
56
  if (op.eip7702Auth) {
32
57
  overrides[op.sender] = {
33
58
  ...(overrides[op.sender] || {}),
34
59
  ...getAuthorizationStateOverride({
35
60
  authorization: {
36
- address: "address" in op.eip7702Auth
37
- ? op.eip7702Auth.address
38
- : op.eip7702Auth.contractAddress,
61
+ address: getEip7702AuthAddress(op.eip7702Auth),
39
62
  chainId: op.eip7702Auth.chainId,
40
63
  nonce: op.eip7702Auth.nonce,
41
64
  r: op.eip7702Auth.r,
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyB,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAG3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC3C,IAAI,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IACpB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAsB,CAAA;IAC5C,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,uGAAuG;AACvG,SAAS,6BAA6B,CAAC,EACnC,aAAa,EAGhB;IACG,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,OAAO,EAAE,IAAI,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,EAC3C,cAAc,EACd,cAAc,EAIjB;IACG,MAAM,SAAS,GAAmB,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAA;IAE/D,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;gBACnB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,GAAG,6BAA6B,CAAC;oBAC7B,aAAa,EAAE;wBACX,OAAO,EACH,SAAS,IAAI,EAAE,CAAC,WAAW;4BACvB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO;4BACxB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,eAAe;wBACxC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO;wBAC/B,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK;wBAC3B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO;qBAClC;iBACJ,CAAC;aACL,CAAA;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  export * from "./logger.js";
2
2
  export * from "./metrics.js";
3
3
  export * from "./bigInt.js";
4
- export * from "./validation.js";
5
4
  export * from "./userop.js";
6
5
  export * from "./helpers.js";
7
- export { Logger } from "pino";
6
+ export * from "./asyncTimeout.js";
7
+ export type { Logger } from "pino";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,7 @@
1
1
  export * from "./logger.js";
2
2
  export * from "./metrics.js";
3
3
  export * from "./bigInt.js";
4
- export * from "./validation.js";
5
4
  export * from "./userop.js";
6
5
  export * from "./helpers.js";
6
+ export * from "./asyncTimeout.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
@@ -3,26 +3,28 @@ export type Metrics = ReturnType<typeof createMetrics>;
3
3
  export declare function createMetrics(registry: Registry, register?: boolean): {
4
4
  httpRequests: Counter<"code" | "method" | "route" | "rpc_method" | "rpc_status">;
5
5
  httpRequestsDuration: Histogram<"code" | "method" | "route" | "rpc_method" | "rpc_status" | "api_version">;
6
- userOperationsInMempool: Gauge<"status">;
6
+ userOpsInMempool: Gauge<"status">;
7
7
  walletsAvailable: Gauge<never>;
8
8
  walletsTotal: Gauge<never>;
9
- userOperationsOnChain: Counter<"status">;
10
- userOperationsSubmitted: Counter<"status">;
9
+ userOpsOnChain: Counter<"status">;
10
+ userOpsSubmitted: Counter<"status">;
11
11
  bundlesIncluded: Counter<never>;
12
12
  bundlesSubmitted: Counter<"status">;
13
- userOperationsReceived: Counter<"type" | "status">;
14
- userOperationsValidationSuccess: Counter<never>;
15
- userOperationsValidationFailure: Counter<never>;
16
- userOperationInclusionDuration: Histogram<never>;
13
+ userOpsReceived: Counter<"type" | "status">;
14
+ userOpsValidationSuccess: Counter<never>;
15
+ userOpsValidationFailure: Counter<never>;
16
+ userOpInclusionDuration: Histogram<never>;
17
17
  verificationGasLimitEstimationTime: Histogram<never>;
18
18
  verificationGasLimitEstimationCount: Histogram<never>;
19
19
  replacedTransactions: Counter<"reason" | "status">;
20
- userOperationsResubmitted: Counter<never>;
20
+ userOpsResubmitted: Counter<never>;
21
+ userOpsDropped: Counter<"reason">;
21
22
  utilityWalletBalance: Gauge<never>;
22
23
  utilityWalletInsufficientBalance: Gauge<never>;
23
24
  executorWalletsBalances: Gauge<"wallet">;
24
25
  executorWalletsMinBalance: Gauge<never>;
25
- emittedOpEvents: Counter<"status" | "event_type">;
26
26
  walletsProcessingTime: Histogram<never>;
27
+ userOpsSubmissionAttempts: Histogram<never>;
28
+ altoSecondValidationFailed: Counter<never>;
27
29
  };
28
30
  //# sourceMappingURL=metrics.d.ts.map
@@ -1,6 +1,11 @@
1
1
  import { Counter, Gauge, Histogram, collectDefaultMetrics } from "prom-client";
2
2
  export function createMetrics(registry, register = true) {
3
- collectDefaultMetrics({ register: registry });
3
+ // Skip default metrics collection in development mode or when running in Bun
4
+ // to avoid compatibility issues
5
+ const isBun = typeof globalThis.Bun !== "undefined";
6
+ if (!isBun) {
7
+ collectDefaultMetrics({ register: registry });
8
+ }
4
9
  const registers = register ? [registry] : [];
5
10
  const httpRequests = new Counter({
6
11
  name: "alto_requests_total",
@@ -27,7 +32,7 @@ export function createMetrics(registry, register = true) {
27
32
  ],
28
33
  registers
29
34
  });
30
- const userOperationsInMempool = new Gauge({
35
+ const userOpsInMempool = new Gauge({
31
36
  name: "alto_user_operations_in_mempool_count",
32
37
  help: "Number of user operations in mempool",
33
38
  labelNames: ["status"],
@@ -45,13 +50,13 @@ export function createMetrics(registry, register = true) {
45
50
  labelNames: [],
46
51
  registers
47
52
  });
48
- const userOperationsOnChain = new Counter({
53
+ const userOpsOnChain = new Counter({
49
54
  name: "alto_user_operations_on_chain_total",
50
55
  help: "Number of user operations on-chain by status",
51
56
  labelNames: ["status"],
52
57
  registers
53
58
  });
54
- const userOperationsSubmitted = new Counter({
59
+ const userOpsSubmitted = new Counter({
55
60
  name: "alto_user_operations_submitted_total",
56
61
  help: "Number of user operations bundles submitted on-chain",
57
62
  labelNames: ["status"],
@@ -69,25 +74,25 @@ export function createMetrics(registry, register = true) {
69
74
  labelNames: ["status"],
70
75
  registers
71
76
  });
72
- const userOperationsReceived = new Counter({
77
+ const userOpsReceived = new Counter({
73
78
  name: "alto_user_operations_received_total",
74
79
  help: "Number of user operations received",
75
80
  labelNames: ["status", "type"],
76
81
  registers
77
82
  });
78
- const userOperationsValidationSuccess = new Counter({
83
+ const userOpsValidationSuccess = new Counter({
79
84
  name: "alto_user_operations_validation_success_total",
80
85
  help: "Number of user operations successfully validated",
81
86
  labelNames: [],
82
87
  registers
83
88
  });
84
- const userOperationsValidationFailure = new Counter({
89
+ const userOpsValidationFailure = new Counter({
85
90
  name: "alto_user_operations_validation_failure_total",
86
91
  help: "Number of user operations failed to validate",
87
92
  labelNames: [],
88
93
  registers
89
94
  });
90
- const userOperationInclusionDuration = new Histogram({
95
+ const userOpInclusionDuration = new Histogram({
91
96
  name: "alto_user_operation_inclusion_duration_seconds",
92
97
  help: "Duration of user operation inclusion from first submission to inclusion on-chain",
93
98
  labelNames: [],
@@ -117,12 +122,24 @@ export function createMetrics(registry, register = true) {
117
122
  labelNames: ["reason", "status"],
118
123
  registers
119
124
  });
120
- const userOperationsResubmitted = new Counter({
125
+ const userOpsResubmitted = new Counter({
121
126
  name: "alto_user_operations_resubmitted_total",
122
127
  help: "Number of user operations resubmitted",
123
128
  labelNames: [],
124
129
  registers
125
130
  });
131
+ const userOpsDropped = new Counter({
132
+ name: "alto_user_operations_dropped_total",
133
+ help: "Number of user operations dropped from mempool",
134
+ labelNames: ["reason"],
135
+ registers
136
+ });
137
+ const userOpsSubmissionAttempts = new Histogram({
138
+ name: "alto_user_operations_attempts_before_inclusion",
139
+ help: "Number of submission attempts needed before a user operation was included on-chain",
140
+ labelNames: [],
141
+ registers
142
+ });
126
143
  const utilityWalletBalance = new Gauge({
127
144
  name: "alto_utility_wallet_balance",
128
145
  help: "Balance of the utility wallet",
@@ -147,42 +164,44 @@ export function createMetrics(registry, register = true) {
147
164
  labelNames: [],
148
165
  registers
149
166
  });
150
- const emittedOpEvents = new Counter({
151
- name: "alto_emitted_user_operation_events",
152
- help: "Total number of emitted UserOperation status events",
153
- labelNames: ["event_type", "status"],
154
- registers
155
- });
156
167
  const walletsProcessingTime = new Histogram({
157
168
  name: "alto_executor_wallets_processing_duration_seconds",
158
169
  help: "Time spent processing user operations by executor wallets",
159
170
  labelNames: [],
160
171
  registers
161
172
  });
173
+ const altoSecondValidationFailed = new Counter({
174
+ name: "alto_second_validation_failed",
175
+ help: "Number of times alto's second estimation failed during eth_estimateUserOperationGas and we returned 2x gas limits",
176
+ labelNames: [],
177
+ registers
178
+ });
162
179
  return {
163
180
  httpRequests,
164
181
  httpRequestsDuration,
165
- userOperationsInMempool,
182
+ userOpsInMempool,
166
183
  walletsAvailable,
167
184
  walletsTotal,
168
- userOperationsOnChain,
169
- userOperationsSubmitted,
185
+ userOpsOnChain,
186
+ userOpsSubmitted,
170
187
  bundlesIncluded,
171
188
  bundlesSubmitted,
172
- userOperationsReceived,
173
- userOperationsValidationSuccess,
174
- userOperationsValidationFailure,
175
- userOperationInclusionDuration,
189
+ userOpsReceived,
190
+ userOpsValidationSuccess,
191
+ userOpsValidationFailure,
192
+ userOpInclusionDuration,
176
193
  verificationGasLimitEstimationTime,
177
194
  verificationGasLimitEstimationCount,
178
195
  replacedTransactions,
179
- userOperationsResubmitted,
196
+ userOpsResubmitted,
197
+ userOpsDropped,
180
198
  utilityWalletBalance,
181
199
  utilityWalletInsufficientBalance,
182
200
  executorWalletsBalances,
183
201
  executorWalletsMinBalance,
184
- emittedOpEvents,
185
- walletsProcessingTime
202
+ walletsProcessingTime,
203
+ userOpsSubmissionAttempts,
204
+ altoSecondValidationFailed
186
205
  };
187
206
  }
188
207
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,KAAK,EACL,SAAS,EAET,qBAAqB,EACxB,MAAM,aAAa,CAAA;AAIpB,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,QAAQ,GAAG,IAAI;IAC7D,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE7C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE5C,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC;QAC7B,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE;YACR,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,MAAM;YACN,QAAQ;SACF;QACV,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC;QACvC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE;YACR,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,aAAa;SACP;QACV,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,IAAI,KAAK,CAAC;QACtC,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,sCAAsC;QAC5C,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC;QAC/B,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC;QAC3B,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,iDAAiD;QACvD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAC;QACtC,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,IAAI,OAAO,CAAC;QACxC,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,sDAAsD;QAC5D,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC;QAChC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,sDAAsD;QAC5D,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAC;QACvC,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,oCAAoC;QAC1C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAU;QACvC,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,+BAA+B,GAAG,IAAI,OAAO,CAAC;QAChD,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,kDAAkD;QACxD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,+BAA+B,GAAG,IAAI,OAAO,CAAC;QAChD,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,8BAA8B,GAAG,IAAI,SAAS,CAAC;QACjD,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,kFAAkF;QACxF,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE;YACL,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;YACnE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;SAChC;KACJ,CAAC,CAAA;IAEF,MAAM,kCAAkC,GAAG,IAAI,SAAS,CAAC;QACrD,IAAI,EAAE,qDAAqD;QAC3D,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACzD,CAAC,CAAA;IAEF,MAAM,mCAAmC,GAAG,IAAI,SAAS,CAAC;QACtD,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,mDAAmD;QACzD,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;KAC9C,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAU;QACzC,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,IAAI,OAAO,CAAC;QAC1C,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,uCAAuC;QAC7C,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,KAAK,CAAC;QACnC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,+BAA+B;QACrC,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gCAAgC,GAAG,IAAI,KAAK,CAAC;QAC/C,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,6EAA6E;QACnF,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,IAAI,KAAK,CAAC;QACtC,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gCAAgC;QACtC,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,IAAI,KAAK,CAAC;QACxC,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,yCAAyC;QAC/C,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC;QAChC,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAU;QAC7C,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,IAAI,SAAS,CAAC;QACxC,IAAI,EAAE,mDAAmD;QACzD,IAAI,EAAE,2DAA2D;QACjE,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,OAAO;QACH,YAAY;QACZ,oBAAoB;QACpB,uBAAuB;QACvB,gBAAgB;QAChB,YAAY;QACZ,qBAAqB;QACrB,uBAAuB;QACvB,eAAe;QACf,gBAAgB;QAChB,sBAAsB;QACtB,+BAA+B;QAC/B,+BAA+B;QAC/B,8BAA8B;QAC9B,kCAAkC;QAClC,mCAAmC;QACnC,oBAAoB;QACpB,yBAAyB;QACzB,oBAAoB;QACpB,gCAAgC;QAChC,uBAAuB;QACvB,yBAAyB;QACzB,eAAe;QACf,qBAAqB;KACxB,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../utils/metrics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { MinMaxQueue } from "./index.js";
2
- import { AltoConfig } from "../../createConfig.js";
1
+ import type { MinMaxQueue } from "./index.js";
2
+ import type { AltoConfig } from "../../createConfig.js";
3
3
  export declare const createMemoryMinMaxQueue: ({ config }: {
4
4
  config: AltoConfig;
5
5
  }) => MinMaxQueue;
@@ -43,10 +43,10 @@ export const createMemoryMinMaxQueue = ({ config }) => {
43
43
  return latestValue;
44
44
  },
45
45
  getMinValue: async () => {
46
- return minDeque.length ? minDeque[0].value : null;
46
+ return minDeque.length > 0 ? minDeque[0].value : null;
47
47
  },
48
48
  getMaxValue: async () => {
49
- return maxDeque.length ? maxDeque[0].value : null;
49
+ return maxDeque.length > 0 ? maxDeque[0].value : null;
50
50
  }
51
51
  };
52
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createMemoryMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createMemoryMinMaxQueue.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,CACjB,KAAa,EACb,aAAqB,EACrB,QAAsB,EACtB,QAAsB,EAC+C,EAAE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA,CAAC,8BAA8B;IACnE,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;IAE5C,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IAED,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,SAAS;KACZ,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,MAAM,EACe,EAAe,EAAE;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAA;IAE3C,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,OAAO;QACH,SAAS,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,OAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CACvB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,CACX,CAAA;YACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,WAAW,GAAG,KAAK,CAAA;QACvB,CAAC;QACD,cAAc,EAAE,KAAK,IAAI,EAAE;YACvB,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACrD,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACrD,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"createMemoryMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createMemoryMinMaxQueue.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,CACjB,KAAa,EACb,aAAqB,EACrB,QAAsB,EACtB,QAAsB,EAC+C,EAAE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA,CAAC,8BAA8B;IACnE,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;IAE5C,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IAED,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,SAAS;KACZ,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,MAAM,EACe,EAAe,EAAE;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAA;IAE3C,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,OAAO;QACH,SAAS,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,OAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CACvB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,CACX,CAAA;YACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,WAAW,GAAG,KAAK,CAAA;QACvB,CAAC;QACD,cAAc,EAAE,KAAK,IAAI,EAAE;YACvB,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACzD,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACzD,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1,7 +1,29 @@
1
- import { MinMaxQueue } from "./index.js";
2
- import { AltoConfig } from "../../createConfig.js";
3
- export declare const createRedisMinMaxQueue: ({ config, keyPrefix }: {
1
+ /**
2
+ * MinMaxQueue implementation in Redis using a single sorted set
3
+ *
4
+ * ## Data Structure
5
+ * - Uses a Redis sorted set where:
6
+ * - Score: timestamp when value was added (seconds since epoch)
7
+ * - Member: the actual bigint value (stored as string)
8
+ *
9
+ * ## Flow
10
+ * 1. **Adding values**: New values are added/updated with current timestamp as score
11
+ * 2. **Reading values**: Queries filter out expired entries based on timestamp
12
+ * 3. **Cleanup**: Background process runs every minute to remove expired entries
13
+ *
14
+ * ## Optimization Strategy
15
+ * - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
16
+ *
17
+ * ## TTL Management
18
+ * - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
19
+ * - Background cleanup prevents unbounded growth
20
+ * - Read operations ignore expired entries without removing them
21
+ */
22
+ import type { MinMaxQueue } from "./index.js";
23
+ import type { AltoConfig } from "../../createConfig.js";
24
+ export declare const createRedisMinMaxQueue: ({ config, queueName, redisEndpoint }: {
4
25
  config: AltoConfig;
5
- keyPrefix: string;
26
+ queueName: string;
27
+ redisEndpoint: string;
6
28
  }) => MinMaxQueue;
7
29
  //# sourceMappingURL=createRedisMinMaxQueue.d.ts.map
@@ -1,98 +1,138 @@
1
+ /**
2
+ * MinMaxQueue implementation in Redis using a single sorted set
3
+ *
4
+ * ## Data Structure
5
+ * - Uses a Redis sorted set where:
6
+ * - Score: timestamp when value was added (seconds since epoch)
7
+ * - Member: the actual bigint value (stored as string)
8
+ *
9
+ * ## Flow
10
+ * 1. **Adding values**: New values are added/updated with current timestamp as score
11
+ * 2. **Reading values**: Queries filter out expired entries based on timestamp
12
+ * 3. **Cleanup**: Background process runs every minute to remove expired entries
13
+ *
14
+ * ## Optimization Strategy
15
+ * - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
16
+ *
17
+ * ## TTL Management
18
+ * - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
19
+ * - Background cleanup prevents unbounded growth
20
+ * - Read operations ignore expired entries without removing them
21
+ */
1
22
  import Redis from "ioredis";
2
- // Sorted TTL queue, one queue to keep track of values and other queue to keep track of TTL.
23
+ import * as sentry from "@sentry/node";
3
24
  class SortedTtlSet {
4
25
  redis;
5
- valueKey;
6
- timestampKey;
26
+ redisKey; // Single sorted set: score = timestamp, member = value
7
27
  queueValidity;
8
- constructor({ keyPrefix, config }) {
9
- if (!config.redisGasPriceQueueUrl) {
10
- throw new Error("Redis URL not provided");
11
- }
12
- const redis = new Redis(config.redisGasPriceQueueUrl);
28
+ cleanupInterval = null;
29
+ constructor({ queueName, config, redisEndpoint }) {
30
+ const redis = new Redis(redisEndpoint);
13
31
  const queueValidity = config.gasPriceExpiry;
14
- const redisKey = `${config.chainId}:${keyPrefix}`;
15
32
  this.redis = redis;
16
- this.valueKey = `${redisKey}:value`;
17
- this.timestampKey = `${redisKey}:timestamp`;
33
+ this.redisKey = `${config.redisKeyPrefix}:${config.chainId}:${queueName}`;
18
34
  this.queueValidity = queueValidity;
35
+ // Start background cleanup every minute
36
+ this.startBackgroundCleanup();
19
37
  }
20
- async add(value) {
21
- await this.pruneExpiredEntries();
22
- if (value === 0n) {
23
- return;
38
+ startBackgroundCleanup() {
39
+ // Run cleanup every minute
40
+ this.cleanupInterval = setInterval(() => {
41
+ this.cleanup().catch((err) => {
42
+ sentry.captureException(err);
43
+ });
44
+ }, 60 * 1_000);
45
+ // Allow process to exit even if interval is active
46
+ if (this.cleanupInterval.unref) {
47
+ this.cleanupInterval.unref();
24
48
  }
25
- const now = Date.now() / 1_000;
26
- const valueStr = value.toString();
27
- // Check if value exists in the value set
28
- const exists = await this.redis.zscore(this.valueKey, valueStr);
29
- if (exists) {
30
- // If value exists, only update its timestamp
31
- const multi = this.redis.multi();
32
- multi.zrem(this.timestampKey, valueStr); // Remove old timestamp
33
- multi.zadd(this.timestampKey, now, valueStr); // Add new timestamp
34
- await multi.exec();
49
+ }
50
+ async cleanup() {
51
+ const cutoffTime = Date.now() / 1_000 - this.queueValidity * 5;
52
+ await this.redis.zremrangebyscore(this.redisKey, "-inf", `(${cutoffTime}`);
53
+ }
54
+ async add(value, logger) {
55
+ try {
56
+ if (value === 0n) {
57
+ return;
58
+ }
59
+ const now = Date.now() / 1_000;
60
+ const valueStr = value.toString();
61
+ // Add or update (if exists) with current timestamp
62
+ await this.redis.zadd(this.redisKey, now, valueStr);
35
63
  }
36
- else {
37
- // If it's a new value, add entry to timestamp and value queues
38
- const multi = this.redis.multi();
39
- multi.zadd(this.timestampKey, now, valueStr);
40
- multi.zadd(this.valueKey, valueStr, valueStr);
41
- await multi.exec();
64
+ catch (err) {
65
+ logger.error({ err }, "Failed to save value to minMaxQueue");
66
+ sentry.captureException(err);
42
67
  }
43
68
  }
44
- async pruneExpiredEntries() {
45
- const timestamp = Date.now() / 1_000;
46
- const cutoffTime = timestamp - this.queueValidity;
47
- // Get expired unique IDs from time queue
48
- const expiredMembers = await this.redis.zrangebyscore(this.timestampKey, "-inf", `(${cutoffTime}` // exclusive upper bound
49
- );
50
- if (expiredMembers.length) {
51
- const multi = this.redis.multi();
52
- // Remove expired entries from both sets
53
- multi.zrem(this.timestampKey, ...expiredMembers);
54
- multi.zrem(this.valueKey, ...expiredMembers);
55
- await multi.exec();
56
- }
69
+ getValidCutoffTime() {
70
+ return Date.now() / 1_000 - this.queueValidity;
57
71
  }
58
- async getMin() {
59
- // Prune expired entries
60
- await this.pruneExpiredEntries();
61
- // Get the smallest value from the value set
62
- const values = await this.redis.zrange(this.valueKey, 0, 0);
63
- if (!values.length)
72
+ async getMin(logger) {
73
+ try {
74
+ // Get all valid (non-expired) values
75
+ const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
76
+ if (validValues.length === 0) {
77
+ return null;
78
+ }
79
+ // Find minimum value among valid entries
80
+ const bigIntValues = validValues.map(BigInt);
81
+ return bigIntValues.reduce((min, val) => (val < min ? val : min));
82
+ }
83
+ catch (err) {
84
+ logger.error({ err }, "Failed to get min value");
85
+ sentry.captureException(err);
64
86
  return null;
65
- return BigInt(values[0]);
87
+ }
66
88
  }
67
- async getMax() {
68
- // Prune expired entries
69
- await this.pruneExpiredEntries();
70
- // Get the largest value from the value set (using reverse range)
71
- const values = await this.redis.zrange(this.valueKey, -1, -1);
72
- if (!values.length)
89
+ async getMax(logger) {
90
+ try {
91
+ // Get all valid (non-expired) values
92
+ const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
93
+ if (validValues.length === 0) {
94
+ return null;
95
+ }
96
+ // Find maximum value among valid entries
97
+ const bigIntValues = validValues.map(BigInt);
98
+ return bigIntValues.reduce((max, val) => (val > max ? val : max));
99
+ }
100
+ catch (err) {
101
+ logger.error({ err }, "Failed to get max value");
102
+ sentry.captureException(err);
73
103
  return null;
74
- return BigInt(values[0]);
104
+ }
75
105
  }
76
- async getLatestValue() {
77
- // Prune expired entries
78
- await this.pruneExpiredEntries();
79
- // Get the member with highest TTL (most recent timestamp)
80
- const values = await this.redis.zrange(this.timestampKey, -1, -1);
81
- if (!values.length)
106
+ async getLatestValue(logger) {
107
+ try {
108
+ // Get the most recently added value (highest timestamp) that's still valid
109
+ const validValues = await this.redis.zrevrangebyscore(this.redisKey, "+inf", this.getValidCutoffTime(), "LIMIT", 0, 1);
110
+ if (validValues.length === 0) {
111
+ return null;
112
+ }
113
+ return BigInt(validValues[0]);
114
+ }
115
+ catch (err) {
116
+ logger.error({ err }, "Failed to get latest value");
117
+ sentry.captureException(err);
82
118
  return null;
83
- return BigInt(values[0]);
119
+ }
84
120
  }
85
121
  }
86
- export const createRedisMinMaxQueue = ({ config, keyPrefix }) => {
122
+ export const createRedisMinMaxQueue = ({ config, queueName, redisEndpoint }) => {
87
123
  const queue = new SortedTtlSet({
88
124
  config,
89
- keyPrefix: `${keyPrefix}:minMaxQueue`
125
+ redisEndpoint,
126
+ queueName
127
+ });
128
+ const logger = config.getLogger({ module: "minMaxQueue" }, {
129
+ level: config.logLevel
90
130
  });
91
131
  return {
92
- saveValue: async (value) => queue.add(value),
93
- getLatestValue: async () => queue.getLatestValue(),
94
- getMinValue: async () => queue.getMin(),
95
- getMaxValue: async () => queue.getMax()
132
+ saveValue: async (value) => queue.add(value, logger),
133
+ getLatestValue: async () => queue.getLatestValue(logger),
134
+ getMinValue: async () => queue.getMin(logger),
135
+ getMaxValue: async () => queue.getMax(logger)
96
136
  };
97
137
  };
98
138
  //# sourceMappingURL=createRedisMinMaxQueue.js.map