@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
@@ -1,32 +1,71 @@
1
- import * as sentry from "@sentry/node";
2
- import Redis from "ioredis";
1
+ import { asyncCallWithTimeout } from "../utils/index.js";
3
2
  import Queue from "bull";
3
+ import Redis from "ioredis";
4
4
  export class EventManager {
5
5
  chainId;
6
6
  logger;
7
- metrics;
8
7
  redisEventManagerQueue;
9
- constructor({ config, metrics }) {
8
+ eventBuffer = [];
9
+ flushTimer;
10
+ constructor({ config }) {
10
11
  this.chainId = config.chainId;
12
+ const flushInterval = config.redisEventsQueueFlushInterval;
11
13
  this.logger = config.getLogger({ module: "event_manager" }, {
12
14
  level: config.logLevel
13
15
  });
14
- this.metrics = metrics;
15
- if (config.redisQueueEndpoint && config.redisEventManagerQueueName) {
16
- this.logger.info(`Using redis with queue name ${config.redisEventManagerQueueName} for userOp event queue`);
17
- const redis = new Redis(config.redisQueueEndpoint);
18
- this.redisEventManagerQueue = new Queue(config.redisEventManagerQueueName, {
16
+ if (config.redisEventsQueueEndpoint && config.redisEventsQueueName) {
17
+ const queueName = config.redisEventsQueueName;
18
+ this.logger.info(`Using redis with queue name ${queueName} for userOp event queue (flush interval: ${flushInterval}ms)`);
19
+ const redis = new Redis(config.redisEventsQueueEndpoint);
20
+ this.redisEventManagerQueue = new Queue(queueName, {
19
21
  createClient: () => {
20
22
  return redis;
23
+ },
24
+ defaultJobOptions: {
25
+ attempts: 3,
26
+ backoff: {
27
+ type: "fixed",
28
+ delay: 30000
29
+ },
30
+ removeOnComplete: true,
31
+ removeOnFail: true
21
32
  }
22
33
  });
34
+ this.startFlushTimer(flushInterval);
35
+ }
36
+ }
37
+ startFlushTimer(flushInterval) {
38
+ // Don't start flush timer if redis is not configured.
39
+ if (!this.redisEventManagerQueue) {
23
40
  return;
24
41
  }
42
+ this.flushTimer = setInterval(() => {
43
+ this.flushEvents();
44
+ }, flushInterval);
45
+ // Allow process to exit even if interval is active.
46
+ if (this.flushTimer.unref) {
47
+ this.flushTimer.unref();
48
+ }
49
+ }
50
+ flushEvents() {
51
+ if (!this.redisEventManagerQueue || this.eventBuffer.length === 0) {
52
+ return;
53
+ }
54
+ const eventsToFlush = this.eventBuffer.splice(0);
55
+ const eventCount = eventsToFlush.length;
56
+ // Fire and forget - don't block the timer
57
+ asyncCallWithTimeout(this.redisEventManagerQueue.addBulk(eventsToFlush.map((entry) => ({
58
+ data: entry,
59
+ opts: { removeOnFail: true, removeOnComplete: true }
60
+ }))), 500 // 500ms timeout
61
+ ).catch((err) => {
62
+ this.logger.error({ err, eventCount }, "Failed to flush events to Redis");
63
+ });
25
64
  }
26
65
  // emits when the userOperation was mined onchain but reverted during the callphase
27
- async emitExecutionRevertedOnChain(userOperationHash, transactionHash, reason, blockNumber) {
28
- await this.emitEvent({
29
- userOperationHash,
66
+ emitExecutionRevertedOnChain(userOpHash, transactionHash, reason, blockNumber) {
67
+ this.queueEvent({
68
+ userOpHash,
30
69
  event: {
31
70
  eventType: "execution_reverted_onchain",
32
71
  transactionHash,
@@ -38,9 +77,9 @@ export class EventManager {
38
77
  });
39
78
  }
40
79
  // emits when the userOperation was mined onchain but failed EntryPoint validation
41
- async emitFailedOnChain(userOperationHash, transactionHash, blockNumber) {
42
- await this.emitEvent({
43
- userOperationHash,
80
+ emitFailedOnChain(userOpHash, transactionHash, blockNumber) {
81
+ this.queueEvent({
82
+ userOpHash,
44
83
  event: {
45
84
  eventType: "failed_onchain",
46
85
  transactionHash,
@@ -51,9 +90,9 @@ export class EventManager {
51
90
  });
52
91
  }
53
92
  // emits when the userOperation has been included onchain but bundled by a frontrunner
54
- async emitFrontranOnChain(userOperationHash, transactionHash, blockNumber) {
55
- await this.emitEvent({
56
- userOperationHash,
93
+ emitFrontranOnChain(userOpHash, transactionHash, blockNumber) {
94
+ this.queueEvent({
95
+ userOpHash,
57
96
  event: {
58
97
  eventType: "frontran_onchain",
59
98
  transactionHash,
@@ -64,9 +103,9 @@ export class EventManager {
64
103
  });
65
104
  }
66
105
  // emits when the userOperation is included onchain
67
- async emitIncludedOnChain(userOperationHash, transactionHash, blockNumber) {
68
- await this.emitEvent({
69
- userOperationHash,
106
+ emitIncludedOnChain(userOpHash, transactionHash, blockNumber) {
107
+ this.queueEvent({
108
+ userOpHash,
70
109
  event: {
71
110
  eventType: "included_onchain",
72
111
  transactionHash,
@@ -77,18 +116,18 @@ export class EventManager {
77
116
  });
78
117
  }
79
118
  // emits when the userOperation is placed in the nonce queue
80
- async emitQueued(userOperationHash) {
81
- await this.emitEvent({
82
- userOperationHash,
119
+ emitQueued(userOpHash) {
120
+ this.queueEvent({
121
+ userOpHash,
83
122
  event: {
84
123
  eventType: "queued"
85
124
  }
86
125
  });
87
126
  }
88
127
  // emits when the userOperation is first seen
89
- async emitReceived(userOperationHash, timestamp) {
90
- await this.emitEvent({
91
- userOperationHash,
128
+ emitReceived(userOpHash, timestamp) {
129
+ this.queueEvent({
130
+ userOpHash,
92
131
  event: {
93
132
  eventType: "received"
94
133
  },
@@ -96,9 +135,9 @@ export class EventManager {
96
135
  });
97
136
  }
98
137
  // emits when the userOperation failed to get added to the mempool
99
- async emitFailedValidation(userOperationHash, reason, aaError) {
100
- await this.emitEvent({
101
- userOperationHash,
138
+ emitFailedValidation(userOpHash, reason, aaError) {
139
+ this.queueEvent({
140
+ userOpHash,
102
141
  event: {
103
142
  eventType: "failed_validation",
104
143
  data: {
@@ -109,10 +148,10 @@ export class EventManager {
109
148
  });
110
149
  }
111
150
  // emits when the userOperation has been submitted to the network
112
- async emitSubmitted({ userOpHashes, transactionHash }) {
151
+ emitSubmitted({ userOpHashes, transactionHash }) {
113
152
  for (const hash of userOpHashes) {
114
- await this.emitEvent({
115
- userOperationHash: hash,
153
+ this.queueEvent({
154
+ userOpHash: hash,
116
155
  event: {
117
156
  eventType: "submitted",
118
157
  transactionHash
@@ -121,9 +160,9 @@ export class EventManager {
121
160
  }
122
161
  }
123
162
  // emits when the userOperation was dropped from the internal mempool
124
- async emitDropped(userOperationHash, reason, aaError) {
125
- await this.emitEvent({
126
- userOperationHash,
163
+ emitDropped(userOpHash, reason, aaError) {
164
+ this.queueEvent({
165
+ userOpHash,
127
166
  event: {
128
167
  eventType: "dropped",
129
168
  data: {
@@ -134,44 +173,25 @@ export class EventManager {
134
173
  });
135
174
  }
136
175
  // emits when the userOperation was added to the internal mempool
137
- async emitAddedToMempool(userOperationHash) {
138
- await this.emitEvent({
139
- userOperationHash,
176
+ emitAddedToMempool(userOpHash) {
177
+ this.queueEvent({
178
+ userOpHash,
140
179
  event: {
141
180
  eventType: "added_to_mempool"
142
181
  }
143
182
  });
144
183
  }
145
- async emitEvent({ userOperationHash, event, timestamp }) {
184
+ queueEvent({ userOpHash, event, timestamp }) {
146
185
  if (!this.redisEventManagerQueue) {
147
186
  return;
148
187
  }
149
188
  const entry = {
150
- userOperationHash,
189
+ userOperationHash: userOpHash,
151
190
  eventTimestamp: timestamp ?? Date.now(),
152
191
  chainId: this.chainId,
153
192
  ...event
154
193
  };
155
- // log to redis here
156
- let jobStatus;
157
- try {
158
- await this.redisEventManagerQueue.add(entry, {
159
- removeOnComplete: true,
160
- removeOnFail: true
161
- });
162
- jobStatus = "success";
163
- }
164
- catch (err) {
165
- this.logger.error({ err }, "Failed to send userOperation status event");
166
- sentry.captureException(err);
167
- jobStatus = "failed";
168
- }
169
- this.metrics.emittedOpEvents
170
- .labels({
171
- event_type: event.eventType,
172
- status: jobStatus
173
- })
174
- .inc();
194
+ this.eventBuffer.push(entry);
175
195
  }
176
196
  }
177
197
  //# sourceMappingURL=eventManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../handlers/eventManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../handlers/eventManager.ts"],"names":[],"mappings":"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"}
@@ -5,23 +5,22 @@ import { MantleManager } from "./mantleGasPriceManager.js";
5
5
  import { OptimismManager } from "./optimismManager.js";
6
6
  export declare class GasPriceManager {
7
7
  private readonly config;
8
- private baseFeePerGasQueue;
9
- private maxFeePerGasQueue;
10
- private maxPriorityFeePerGasQueue;
11
- private logger;
12
- arbitrumManager: ArbitrumManager;
13
- mantleManager: MantleManager;
14
- optimismManager: OptimismManager;
8
+ private readonly baseFeePerGasQueue;
9
+ private readonly maxFeePerGasQueue;
10
+ private readonly maxPriorityFeePerGasQueue;
11
+ private readonly logger;
12
+ readonly arbitrumManager: ArbitrumManager;
13
+ readonly mantleManager: MantleManager;
14
+ readonly optimismManager: OptimismManager;
15
15
  constructor(config: AltoConfig);
16
16
  init(): Promise<void>;
17
- private getDefaultGasFee;
18
17
  private getPolygonGasPriceParameters;
19
18
  private bumpTheGasPrice;
20
19
  private getFallBackMaxPriorityFeePerGas;
21
20
  private getLegacyTransactionGasPrice;
22
21
  private estimateGasPrice;
23
22
  private innerGetGasPrice;
24
- private updateBaseFee;
23
+ private tryUpdateBaseFee;
25
24
  getBaseFee(): Promise<bigint>;
26
25
  private tryUpdateGasPrice;
27
26
  getGasPrice(): Promise<GasPriceParameters>;
@@ -31,6 +30,9 @@ export declare class GasPriceManager {
31
30
  getHighestMaxPriorityFeePerGas(): Promise<bigint>;
32
31
  private getMinMaxFeePerGas;
33
32
  private getMinMaxPriorityFeePerGas;
34
- validateGasPrice(gasPrice: GasPriceParameters): Promise<void>;
33
+ getLowestValidGasPrices(): Promise<{
34
+ lowestMaxFeePerGas: bigint;
35
+ lowestMaxPriorityFeePerGas: bigint;
36
+ }>;
35
37
  }
36
38
  //# sourceMappingURL=gasPriceManager.d.ts.map
@@ -1,30 +1,11 @@
1
1
  import { RpcError, gasStationResult } from "../types/index.js";
2
- import { maxBigInt, minBigInt } from "../utils/index.js";
2
+ import { maxBigInt, minBigInt, scaleBigIntByPercent } from "../utils/index.js";
3
3
  import * as sentry from "@sentry/node";
4
- import { parseGwei } from "viem";
5
- import { avalanche, celo, celoAlfajores, dfk, polygon, polygonMumbai } from "viem/chains";
4
+ import { polygon } from "viem/chains";
6
5
  import { createMinMaxQueue } from "../utils/minMaxQueue/index.js";
7
6
  import { ArbitrumManager } from "./arbitrumGasPriceManager.js";
8
7
  import { MantleManager } from "./mantleGasPriceManager.js";
9
8
  import { OptimismManager } from "./optimismManager.js";
10
- var ChainId;
11
- (function (ChainId) {
12
- ChainId[ChainId["Goerli"] = 5] = "Goerli";
13
- ChainId[ChainId["Polygon"] = 137] = "Polygon";
14
- ChainId[ChainId["Mumbai"] = 80001] = "Mumbai";
15
- ChainId[ChainId["LineaTestnet"] = 59140] = "LineaTestnet";
16
- ChainId[ChainId["Linea"] = 59144] = "Linea";
17
- })(ChainId || (ChainId = {}));
18
- const MIN_POLYGON_GAS_PRICE = parseGwei("31");
19
- const MIN_MUMBAI_GAS_PRICE = parseGwei("1");
20
- function getGasStationUrl(chainId) {
21
- switch (chainId) {
22
- case ChainId.Polygon:
23
- return "https://gasstation.polygon.technology/v2";
24
- case ChainId.Mumbai:
25
- return "https://gasstation-testnet.polygon.technology/v2";
26
- }
27
- }
28
9
  export class GasPriceManager {
29
10
  config;
30
11
  baseFeePerGasQueue;
@@ -41,24 +22,24 @@ export class GasPriceManager {
41
22
  });
42
23
  this.baseFeePerGasQueue = createMinMaxQueue({
43
24
  config,
44
- keyPrefix: "base-fee-per-gas-queue"
25
+ queueName: "base-fee-per-gas-queue"
45
26
  });
46
27
  this.maxFeePerGasQueue = createMinMaxQueue({
47
28
  config,
48
- keyPrefix: "max-fee-per-gas-queue"
29
+ queueName: "max-fee-per-gas-queue"
49
30
  });
50
31
  this.maxPriorityFeePerGasQueue = createMinMaxQueue({
51
32
  config,
52
- keyPrefix: "max-priority-fee-per-gas-queue"
33
+ queueName: "max-priority-fee-per-gas-queue"
53
34
  });
54
35
  // Periodically update gas prices if specified
55
36
  if (this.config.gasPriceRefreshInterval > 0) {
56
- setInterval(() => {
37
+ setInterval(async () => {
57
38
  try {
58
39
  if (this.config.legacyTransactions === false) {
59
- this.updateBaseFee();
40
+ await this.tryUpdateBaseFee();
60
41
  }
61
- this.tryUpdateGasPrice();
42
+ await this.tryUpdateGasPrice();
62
43
  }
63
44
  catch (error) {
64
45
  this.logger.error({ error }, "Error updating gas prices in interval");
@@ -75,26 +56,16 @@ export class GasPriceManager {
75
56
  await Promise.all([
76
57
  this.tryUpdateGasPrice(),
77
58
  this.config.legacyTransactions === false
78
- ? this.updateBaseFee()
59
+ ? this.tryUpdateBaseFee()
79
60
  : Promise.resolve()
80
61
  ]);
81
62
  }
82
- catch (error) {
83
- this.logger.error(error, "Error during gas price initialization");
84
- }
85
- }
86
- getDefaultGasFee(chainId) {
87
- switch (chainId) {
88
- case ChainId.Polygon:
89
- return MIN_POLYGON_GAS_PRICE;
90
- case ChainId.Mumbai:
91
- return MIN_MUMBAI_GAS_PRICE;
92
- default:
93
- return 0n;
63
+ catch (err) {
64
+ this.logger.error({ err }, "Error during gas price initialization");
94
65
  }
95
66
  }
96
67
  async getPolygonGasPriceParameters() {
97
- const gasStationUrl = getGasStationUrl(this.config.chainId);
68
+ const gasStationUrl = "https://gasstation.polygon.technology/v2";
98
69
  try {
99
70
  const data = await (await fetch(gasStationUrl)).json();
100
71
  // take the standard speed here, SDK options will define the extra tip
@@ -107,39 +78,25 @@ export class GasPriceManager {
107
78
  }
108
79
  }
109
80
  bumpTheGasPrice(gasPriceParameters) {
110
- const bumpAmount = this.config.gasPriceBump;
111
- const maxPriorityFeePerGas = maxBigInt(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.config.chainId));
112
- const maxFeePerGas = maxBigInt(gasPriceParameters.maxFeePerGas, maxPriorityFeePerGas);
113
- const result = {
114
- maxFeePerGas: (maxFeePerGas * bumpAmount) / 100n,
115
- maxPriorityFeePerGas: (maxPriorityFeePerGas * bumpAmount) / 100n
116
- };
117
- if (this.config.chainId === celo.id ||
118
- this.config.chainId === celoAlfajores.id) {
119
- const maxFee = maxBigInt(result.maxFeePerGas, result.maxPriorityFeePerGas);
120
- return {
121
- maxFeePerGas: maxFee,
122
- maxPriorityFeePerGas: maxFee
123
- };
124
- }
125
- if (this.config.chainId == dfk.id) {
126
- const maxFeePerGas = maxBigInt(5000000000n, result.maxFeePerGas);
127
- const maxPriorityFeePerGas = maxBigInt(5000000000n, result.maxPriorityFeePerGas);
128
- return {
129
- maxFeePerGas,
130
- maxPriorityFeePerGas
131
- };
81
+ let [maxFeePerGas, maxPriorityFeePerGas] = [
82
+ gasPriceParameters.maxFeePerGas,
83
+ gasPriceParameters.maxPriorityFeePerGas
84
+ ];
85
+ // Apply bump percentage
86
+ maxPriorityFeePerGas = scaleBigIntByPercent(maxPriorityFeePerGas, this.config.gasPriceBump);
87
+ maxFeePerGas = scaleBigIntByPercent(maxFeePerGas, this.config.gasPriceBump);
88
+ // Apply floor values if configured
89
+ if (this.config.floorMaxPriorityFeePerGas) {
90
+ maxPriorityFeePerGas = maxBigInt(this.config.floorMaxPriorityFeePerGas, maxPriorityFeePerGas);
91
+ }
92
+ if (this.config.floorMaxFeePerGas) {
93
+ maxFeePerGas = maxBigInt(this.config.floorMaxFeePerGas, maxFeePerGas);
132
94
  }
133
- // set a minimum maxPriorityFee & maxFee to 1.5gwei on avalanche (because eth_maxPriorityFeePerGas returns 0)
134
- if (this.config.chainId == avalanche.id) {
135
- const maxFeePerGas = maxBigInt(parseGwei("1.5"), result.maxFeePerGas);
136
- const maxPriorityFeePerGas = maxBigInt(parseGwei("1.5"), result.maxPriorityFeePerGas);
137
- return {
138
- maxFeePerGas,
139
- maxPriorityFeePerGas
140
- };
141
- }
142
- return result;
95
+ return {
96
+ // Ensure that maxFeePerGas is always greater or equal than maxPriorityFeePerGas
97
+ maxFeePerGas: maxBigInt(maxFeePerGas, maxPriorityFeePerGas),
98
+ maxPriorityFeePerGas
99
+ };
143
100
  }
144
101
  async getFallBackMaxPriorityFeePerGas(publicClient, gasPrice) {
145
102
  const feeHistory = await publicClient.getFeeHistory({
@@ -164,7 +121,7 @@ export class GasPriceManager {
164
121
  }
165
122
  catch (e) {
166
123
  sentry.captureException(e);
167
- this.logger.error("failed to fetch legacy gasPrices from estimateFeesPerGas", { error: e });
124
+ this.logger.error({ error: e }, "failed to fetch legacy gasPrices from estimateFeesPerGas");
168
125
  gasPrice = undefined;
169
126
  }
170
127
  if (gasPrice === undefined) {
@@ -186,16 +143,28 @@ export class GasPriceManager {
186
143
  async estimateGasPrice() {
187
144
  let maxFeePerGas;
188
145
  let maxPriorityFeePerGas;
146
+ const { publicClient, staticMaxPriorityFeePerGas } = this.config;
189
147
  try {
190
- const fees = await this.config.publicClient.estimateFeesPerGas({
191
- chain: this.config.publicClient.chain
148
+ let chain;
149
+ // If staticMaxPriorityFeePerGas is set, use it as a static value instead of RPC estimation.
150
+ if (staticMaxPriorityFeePerGas) {
151
+ chain = {
152
+ ...publicClient.chain,
153
+ fees: {
154
+ ...publicClient.chain.fees,
155
+ maxPriorityFeePerGas: staticMaxPriorityFeePerGas
156
+ }
157
+ };
158
+ }
159
+ const fees = await publicClient.estimateFeesPerGas({
160
+ chain
192
161
  });
193
162
  maxFeePerGas = fees.maxFeePerGas;
194
163
  maxPriorityFeePerGas = fees.maxPriorityFeePerGas;
195
164
  }
196
165
  catch (e) {
197
166
  sentry.captureException(e);
198
- this.logger.error("failed to fetch eip-1559 gasPrices from estimateFeesPerGas", { error: e });
167
+ this.logger.error({ error: e }, "failed to fetch eip-1559 gasPrices from estimateFeesPerGas");
199
168
  maxFeePerGas = undefined;
200
169
  maxPriorityFeePerGas = undefined;
201
170
  }
@@ -203,7 +172,7 @@ export class GasPriceManager {
203
172
  this.logger.warn("maxPriorityFeePerGas is undefined, using fallback value");
204
173
  try {
205
174
  maxPriorityFeePerGas =
206
- await this.getFallBackMaxPriorityFeePerGas(this.config.publicClient, maxFeePerGas ?? 0n);
175
+ await this.getFallBackMaxPriorityFeePerGas(publicClient, maxFeePerGas ?? 0n);
207
176
  }
208
177
  catch (e) {
209
178
  this.logger.error("failed to get fallback maxPriorityFeePerGas");
@@ -215,8 +184,7 @@ export class GasPriceManager {
215
184
  this.logger.warn("maxFeePerGas is undefined, using fallback value");
216
185
  try {
217
186
  maxFeePerGas =
218
- (await this.config.publicClient.getGasPrice()) +
219
- maxPriorityFeePerGas;
187
+ (await publicClient.getGasPrice()) + maxPriorityFeePerGas;
220
188
  }
221
189
  catch (e) {
222
190
  this.logger.error("failed to get fallback maxFeePerGas");
@@ -231,42 +199,21 @@ export class GasPriceManager {
231
199
  }
232
200
  // This method throws if it can't get a valid RPC response.
233
201
  async innerGetGasPrice() {
234
- let maxFeePerGas = 0n;
235
- let maxPriorityFeePerGas = 0n;
236
- if (this.config.chainId === polygon.id ||
237
- this.config.chainId === polygonMumbai.id) {
202
+ if (this.config.chainId === polygon.id) {
238
203
  const polygonEstimate = await this.getPolygonGasPriceParameters();
239
204
  if (polygonEstimate) {
240
- const gasPrice = this.bumpTheGasPrice({
241
- maxFeePerGas: polygonEstimate.maxFeePerGas,
242
- maxPriorityFeePerGas: polygonEstimate.maxPriorityFeePerGas
243
- });
244
- return {
245
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
246
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
247
- };
205
+ return this.bumpTheGasPrice(polygonEstimate);
248
206
  }
249
207
  }
250
208
  if (this.config.legacyTransactions) {
251
- const gasPrice = this.bumpTheGasPrice(await this.getLegacyTransactionGasPrice());
252
- return {
253
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
254
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
255
- };
209
+ const legacyGasPrice = await this.getLegacyTransactionGasPrice();
210
+ return this.bumpTheGasPrice(legacyGasPrice);
256
211
  }
257
- const estimatedPrice = await this.estimateGasPrice();
258
- maxFeePerGas = estimatedPrice.maxFeePerGas;
259
- maxPriorityFeePerGas = estimatedPrice.maxPriorityFeePerGas;
260
- const gasPrice = this.bumpTheGasPrice({
261
- maxFeePerGas,
262
- maxPriorityFeePerGas
263
- });
264
- return {
265
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
266
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
267
- };
212
+ const estimatedGasPrice = await this.estimateGasPrice();
213
+ return this.bumpTheGasPrice(estimatedGasPrice);
268
214
  }
269
- async updateBaseFee() {
215
+ // This method throws if it can't get a valid RPC response.
216
+ async tryUpdateBaseFee() {
270
217
  try {
271
218
  const latestBlock = await this.config.publicClient.getBlock();
272
219
  if (latestBlock.baseFeePerGas === null) {
@@ -278,26 +225,29 @@ export class GasPriceManager {
278
225
  }
279
226
  catch (e) {
280
227
  this.logger.error(e, "Failed to update base fee");
228
+ sentry.captureException(e);
281
229
  throw e;
282
230
  }
283
231
  }
284
232
  async getBaseFee() {
285
233
  try {
286
234
  if (this.config.legacyTransactions) {
287
- throw new RpcError("baseFee is not available for legacy transactions");
235
+ return 0n;
288
236
  }
289
237
  if (this.config.gasPriceRefreshInterval === 0) {
290
- return await this.updateBaseFee();
238
+ return await this.tryUpdateBaseFee();
291
239
  }
292
240
  let baseFee = await this.baseFeePerGasQueue.getLatestValue();
293
241
  if (!baseFee) {
294
- baseFee = await this.updateBaseFee();
242
+ baseFee = await this.tryUpdateBaseFee();
295
243
  }
296
244
  return baseFee;
297
245
  }
298
246
  catch (e) {
299
- this.logger.error(e, "Failed to get base fee");
300
- throw new RpcError("Failed to get base fee");
247
+ this.logger.error(e, "Failed to get base fee, returning 0n");
248
+ // Save 0n to the queue for the missing baseFee case
249
+ this.baseFeePerGasQueue.saveValue(0n);
250
+ return 0n;
301
251
  }
302
252
  }
303
253
  // This method throws if it can't get a valid RPC response.
@@ -340,11 +290,17 @@ export class GasPriceManager {
340
290
  return await this.innerGetGasPrice();
341
291
  }
342
292
  async getMaxBaseFeePerGas() {
343
- let maxBaseFeePerGas = await this.baseFeePerGasQueue.getMaxValue();
344
- if (!maxBaseFeePerGas) {
345
- maxBaseFeePerGas = await this.getBaseFee();
293
+ try {
294
+ let maxBaseFeePerGas = await this.baseFeePerGasQueue.getMaxValue();
295
+ if (!maxBaseFeePerGas) {
296
+ maxBaseFeePerGas = await this.getBaseFee();
297
+ }
298
+ return maxBaseFeePerGas;
299
+ }
300
+ catch (e) {
301
+ this.logger.error(e, "Failed to get max base fee per gas, returning 0n");
302
+ return 0n;
346
303
  }
347
- return maxBaseFeePerGas;
348
304
  }
349
305
  async getHighestMaxFeePerGas() {
350
306
  let highestMaxFeePerGas = await this.maxFeePerGasQueue.getMaxValue();
@@ -378,19 +334,17 @@ export class GasPriceManager {
378
334
  }
379
335
  return minMaxPriorityFeePerGas;
380
336
  }
381
- async validateGasPrice(gasPrice) {
337
+ async getLowestValidGasPrices() {
382
338
  let lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
383
339
  let lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
384
340
  if (this.config.chainType === "hedera") {
385
341
  lowestMaxFeePerGas /= 10n ** 9n;
386
342
  lowestMaxPriorityFeePerGas /= 10n ** 9n;
387
343
  }
388
- if (gasPrice.maxFeePerGas < lowestMaxFeePerGas) {
389
- throw new RpcError(`maxFeePerGas must be at least ${lowestMaxFeePerGas} (current maxFeePerGas: ${gasPrice.maxFeePerGas}) - use pimlico_getUserOperationGasPrice to get the current gas price`);
390
- }
391
- if (gasPrice.maxPriorityFeePerGas < lowestMaxPriorityFeePerGas) {
392
- throw new RpcError(`maxPriorityFeePerGas must be at least ${lowestMaxPriorityFeePerGas} (current maxPriorityFeePerGas: ${gasPrice.maxPriorityFeePerGas}) - use pimlico_getUserOperationGasPrice to get the current gas price`);
393
- }
344
+ return {
345
+ lowestMaxFeePerGas,
346
+ lowestMaxPriorityFeePerGas
347
+ };
394
348
  }
395
349
  }
396
350
  //# sourceMappingURL=gasPriceManager.js.map