@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
package/lib/rpc/server.js DELETED
@@ -1,283 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Server = void 0;
30
- const types_1 = require("../types/index.js");
31
- const websocket_1 = __importDefault(require("@fastify/websocket"));
32
- const sentry = __importStar(require("@sentry/node"));
33
- const fastify_1 = __importDefault(require("fastify"));
34
- const viem_1 = require("viem");
35
- const zod_validation_error_1 = require("zod-validation-error");
36
- const fastify_rpc_decorators_1 = __importStar(require("../utils/fastify-rpc-decorators.js"));
37
- const rpc_reply_1 = __importDefault(require("../utils/rpc-reply.js"));
38
- // jsonBigIntOverride.ts
39
- const originalJsonStringify = JSON.stringify;
40
- JSON.stringify = (
41
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
42
- value, replacer, space) => {
43
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
44
- const bigintReplacer = (_key, value) => {
45
- if (typeof value === "bigint") {
46
- return (0, viem_1.toHex)(value);
47
- }
48
- return value;
49
- };
50
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
51
- const wrapperReplacer = (key, value) => {
52
- if (typeof replacer === "function") {
53
- // biome-ignore lint: no other way to do this
54
- value = replacer(key, value);
55
- }
56
- else if (Array.isArray(replacer)) {
57
- if (!replacer.includes(key)) {
58
- return;
59
- }
60
- }
61
- return bigintReplacer(key, value);
62
- };
63
- return originalJsonStringify(value, wrapperReplacer, space);
64
- };
65
- class Server {
66
- config;
67
- fastify;
68
- rpcEndpoint;
69
- registry;
70
- metrics;
71
- constructor({ config, rpcEndpoint, registry, metrics }) {
72
- this.config = config;
73
- const logger = config.getLogger({ module: "rpc" }, {
74
- level: config.rpcLogLevel || config.logLevel
75
- });
76
- this.fastify = (0, fastify_1.default)({
77
- logger: logger, // workaround for https://github.com/fastify/fastify/issues/4960
78
- requestTimeout: config.timeout,
79
- disableRequestLogging: true
80
- });
81
- this.fastify.register(fastify_rpc_decorators_1.default);
82
- this.fastify.register(websocket_1.default, {
83
- options: {
84
- maxPayload: config.websocketMaxPayloadSize
85
- }
86
- });
87
- this.fastify.addHook("onResponse", (request, reply) => {
88
- const ignoredRoutes = ["/health", "/metrics"];
89
- if (ignoredRoutes.includes(request.routeOptions.url)) {
90
- return;
91
- }
92
- const labels = {
93
- route: request.routeOptions.url,
94
- code: reply.statusCode,
95
- method: request.method,
96
- rpc_method: request.rpcMethod,
97
- rpc_status: reply.rpcStatus
98
- };
99
- this.metrics.httpRequests.labels(labels).inc();
100
- const durationMs = reply.elapsedTime;
101
- const durationSeconds = durationMs / 1000;
102
- this.metrics.httpRequestsDuration
103
- .labels(labels)
104
- .observe(durationSeconds);
105
- });
106
- this.fastify.post("/rpc", this.rpcHttp.bind(this));
107
- this.fastify.post("/:version/rpc", this.rpcHttp.bind(this));
108
- this.fastify.post("/", this.rpcHttp.bind(this));
109
- if (config.websocket) {
110
- this.fastify.register((fastify) => {
111
- fastify.route({
112
- method: "GET",
113
- url: "/:version/rpc",
114
- handler: async (request, reply) => {
115
- const version = request.params.version;
116
- await reply
117
- .status(404)
118
- .send(`GET request to /${version}/rpc is not supported, use POST isntead`);
119
- },
120
- wsHandler: (socket, request) => {
121
- socket.on("message", async (msgBuffer) => this.rpcSocket(request, msgBuffer, socket));
122
- }
123
- });
124
- });
125
- }
126
- this.fastify.get("/health", this.healthCheck.bind(this));
127
- this.fastify.get("/metrics", this.serveMetrics.bind(this));
128
- this.rpcEndpoint = rpcEndpoint;
129
- this.registry = registry;
130
- this.metrics = metrics;
131
- }
132
- start() {
133
- this.fastify.listen({ port: this.config.port, host: "0.0.0.0" });
134
- }
135
- async stop() {
136
- await this.fastify.close();
137
- }
138
- async healthCheck(_request, reply) {
139
- await reply.status(200).send("OK");
140
- }
141
- async rpcSocket(request, msgBuffer, socket) {
142
- try {
143
- request.body = JSON.parse(msgBuffer.toString());
144
- }
145
- catch (err) {
146
- socket.send(JSON.stringify({
147
- jsonrpc: "2.0",
148
- id: null,
149
- error: {
150
- message: "invalid JSON-RPC request",
151
- data: msgBuffer.toString(),
152
- code: types_1.ValidationErrors.InvalidFields
153
- }
154
- }));
155
- return;
156
- }
157
- await this.rpc(request, rpc_reply_1.default.fromSocket(socket));
158
- }
159
- async rpcHttp(request, reply) {
160
- await this.rpc(request, rpc_reply_1.default.fromHttpReply(reply));
161
- }
162
- async rpc(request, reply) {
163
- let requestId = null;
164
- const versionParsingResult = types_1.altoVersions.safeParse(request.params?.version ?? this.config.defaultApiVersion);
165
- if (!versionParsingResult.success) {
166
- const error = (0, zod_validation_error_1.fromZodError)(versionParsingResult.error);
167
- throw new types_1.RpcError(`invalid version ${error.message}`, types_1.ValidationErrors.InvalidFields);
168
- }
169
- const apiVersion = versionParsingResult.data;
170
- if (this.config.apiVersion.indexOf(apiVersion) === -1) {
171
- throw new types_1.RpcError(`unsupported version ${apiVersion}`, types_1.ValidationErrors.InvalidFields);
172
- }
173
- try {
174
- const contentTypeHeader = request.headers["content-type"];
175
- // Common browser websocket API does not allow setting custom headers
176
- if (contentTypeHeader !== "application/json" &&
177
- request.ws === false) {
178
- throw new types_1.RpcError("invalid content-type, content-type must be application/json", types_1.ValidationErrors.InvalidFields);
179
- }
180
- this.fastify.log.trace({ body: JSON.stringify(request.body) }, "received request");
181
- const jsonRpcParsing = types_1.jsonRpcSchema.safeParse(request.body);
182
- if (!jsonRpcParsing.success) {
183
- const validationError = (0, zod_validation_error_1.fromZodError)(jsonRpcParsing.error);
184
- throw new types_1.RpcError(`invalid JSON-RPC request ${validationError.message}`, types_1.ValidationErrors.InvalidFields);
185
- }
186
- const jsonRpcRequest = jsonRpcParsing.data;
187
- requestId = jsonRpcRequest.id;
188
- const bundlerRequestParsing = types_1.bundlerRequestSchema.safeParse(jsonRpcRequest);
189
- if (!bundlerRequestParsing.success) {
190
- const validationError = (0, zod_validation_error_1.fromZodError)(bundlerRequestParsing.error);
191
- if (validationError.message.includes("Missing/invalid userOpHash")) {
192
- throw new types_1.RpcError("Missing/invalid userOpHash", types_1.ValidationErrors.InvalidFields);
193
- }
194
- throw new types_1.RpcError(validationError.message, types_1.ValidationErrors.InvalidRequest);
195
- }
196
- const bundlerRequest = bundlerRequestParsing.data;
197
- request.rpcMethod = bundlerRequest.method;
198
- if (this.config.rpcMethods !== null &&
199
- !this.config.rpcMethods.includes(bundlerRequest.method)) {
200
- throw new types_1.RpcError(`Method not supported: ${bundlerRequest.method}`, types_1.ValidationErrors.InvalidRequest);
201
- }
202
- this.fastify.log.info({
203
- data: JSON.stringify(bundlerRequest, null),
204
- method: bundlerRequest.method
205
- }, "incoming request");
206
- const result = await this.rpcEndpoint.handleMethod(bundlerRequest, apiVersion);
207
- const jsonRpcResponse = {
208
- jsonrpc: "2.0",
209
- id: jsonRpcRequest.id,
210
- result
211
- };
212
- await reply
213
- .setRpcStatus(fastify_rpc_decorators_1.RpcStatus.Success)
214
- .status(200)
215
- .send(jsonRpcResponse);
216
- this.fastify.log.info({
217
- data: bundlerRequest.method ===
218
- "eth_getUserOperationReceipt" &&
219
- jsonRpcResponse.result
220
- ? {
221
- ...jsonRpcResponse,
222
- result: "<reduced>"
223
- }
224
- : jsonRpcResponse, // do not log the full result for eth_getUserOperationReceipt to reduce log size
225
- method: bundlerRequest.method
226
- }, "sent reply");
227
- }
228
- catch (err) {
229
- if (err instanceof types_1.RpcError) {
230
- const rpcError = {
231
- jsonrpc: "2.0",
232
- id: requestId,
233
- error: {
234
- message: err.message,
235
- data: err.data,
236
- code: err.code
237
- }
238
- };
239
- await reply
240
- .setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ClientError)
241
- .status(200)
242
- .send(rpcError);
243
- this.fastify.log.info(rpcError, "error reply");
244
- }
245
- else if (err instanceof Error) {
246
- sentry.captureException(err);
247
- const rpcError = {
248
- jsonrpc: "2.0",
249
- id: requestId,
250
- error: {
251
- message: err.message
252
- }
253
- };
254
- await reply
255
- .setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ServerError)
256
- .status(500)
257
- .send(rpcError);
258
- this.fastify.log.error(err, "error reply (non-rpc)");
259
- }
260
- else {
261
- const rpcError = {
262
- jsonrpc: "2.0",
263
- id: requestId,
264
- error: {
265
- message: "Unknown error"
266
- }
267
- };
268
- await reply
269
- .setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ServerError)
270
- .status(500)
271
- .send(rpcError);
272
- this.fastify.log.error({ err }, "error reply (unhandled error type)");
273
- }
274
- }
275
- }
276
- async serveMetrics(_request, reply) {
277
- reply.headers({ "Content-Type": this.registry.contentType });
278
- const metrics = await this.registry.metrics();
279
- await reply.send(metrics);
280
- }
281
- }
282
- exports.Server = Server;
283
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../rpc/server.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- import type { Address, Hex } from "viem";
2
- import type { LogTracer } from "./tracer.js";
3
- /**
4
- * return type of our BundlerCollectorTracer.
5
- * collect access and opcodes, split into "levels" based on NUMBER opcode
6
- * keccak, calls and logs are collected globally, since the levels are unimportant for them.
7
- */
8
- export interface BundlerTracerResult {
9
- /**
10
- * storage and opcode info, collected on top-level calls from EntryPoint
11
- */
12
- callsFromEntryPoint: TopLevelCallInfo[];
13
- /**
14
- * values passed into KECCAK opcode
15
- */
16
- keccak: Hex[];
17
- calls: Array<ExitInfo | MethodInfo>;
18
- logs: LogInfo[];
19
- debug: any[];
20
- }
21
- export interface MethodInfo {
22
- type: string;
23
- from: Address;
24
- to: Address;
25
- method: string;
26
- value: bigint;
27
- gas: number;
28
- }
29
- export interface ExitInfo {
30
- type: "REVERT" | "RETURN";
31
- gasUsed: number;
32
- data: Hex;
33
- }
34
- export interface TopLevelCallInfo {
35
- topLevelMethodSig: Hex;
36
- topLevelTargetAddress: Address;
37
- opcodes: {
38
- [opcode: string]: number;
39
- };
40
- access: {
41
- [address: string]: AccessInfo;
42
- };
43
- contractSize: {
44
- [addr: string]: ContractSizeInfo;
45
- };
46
- extCodeAccessInfo: {
47
- [addr: string]: string;
48
- };
49
- oog?: boolean;
50
- }
51
- /**
52
- * It is illegal to access contracts with no code in validation even if it gets deployed later.
53
- * This means we need to store the {@link contractSize} of accessed addresses at the time of access.
54
- */
55
- export interface ContractSizeInfo {
56
- opcode: string;
57
- contractSize: number;
58
- }
59
- export interface AccessInfo {
60
- reads: {
61
- [slot: string]: string;
62
- };
63
- writes: {
64
- [slot: string]: number;
65
- };
66
- }
67
- export interface LogInfo {
68
- topics: string[];
69
- data: string;
70
- }
71
- interface RelevantStepData {
72
- opcode: string;
73
- stackTop3: any[];
74
- }
75
- /**
76
- * type-safe local storage of our collector. contains all return-value properties.
77
- * (also defines all "trace-local" variables and functions)
78
- */
79
- interface BundlerCollectorTracer extends LogTracer, BundlerTracerResult {
80
- lastOp: string;
81
- lastThreeOpcodes: RelevantStepData[];
82
- stopCollectingTopic: string;
83
- stopCollecting: boolean;
84
- currentLevel: TopLevelCallInfo;
85
- topLevelCallCounter: number;
86
- countSlot: (list: {
87
- [key: string]: number | undefined;
88
- }, key: any) => void;
89
- }
90
- /**
91
- * tracer to collect data for opcode banning.
92
- * this method is passed as the "tracer" for eth_traceCall (note, the function itself)
93
- *
94
- * returned data:
95
- * numberLevels: opcodes and memory access, split on execution of "number" opcode.
96
- * keccak: input data of keccak opcode.
97
- * calls: for each call, an array of [type, from, to, value]
98
- * slots: accessed slots (on any address)
99
- */
100
- export declare function bundlerCollectorTracer(): BundlerCollectorTracer;
101
- export {};
102
- //# sourceMappingURL=BundlerCollectorTracerV06.d.ts.map
@@ -1,262 +0,0 @@
1
- "use strict";
2
- // javascript code of tracer function
3
- // NOTE: we process this locally for hardhat, but send to geth for remote tracing.
4
- // should NOT "require" anything, or use logs.
5
- // see LogTrace for valid types (but alas, this one must be javascript, not typescript).
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.bundlerCollectorTracer = void 0;
8
- /**
9
- * tracer to collect data for opcode banning.
10
- * this method is passed as the "tracer" for eth_traceCall (note, the function itself)
11
- *
12
- * returned data:
13
- * numberLevels: opcodes and memory access, split on execution of "number" opcode.
14
- * keccak: input data of keccak opcode.
15
- * calls: for each call, an array of [type, from, to, value]
16
- * slots: accessed slots (on any address)
17
- */
18
- function bundlerCollectorTracer() {
19
- return {
20
- callsFromEntryPoint: [],
21
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
22
- currentLevel: null,
23
- keccak: [],
24
- calls: [],
25
- logs: [],
26
- debug: [],
27
- lastOp: "",
28
- lastThreeOpcodes: [],
29
- // event sent after all validations are done: keccak("BeforeExecution()")
30
- stopCollectingTopic: "bb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972",
31
- stopCollecting: false,
32
- topLevelCallCounter: 0,
33
- fault(log, _db) {
34
- this.debug.push(JSON.stringify({
35
- type: "fault",
36
- depth: log.getDepth(),
37
- gas: log.getGas(),
38
- cost: log.getCost(),
39
- err: log.getError()
40
- }));
41
- },
42
- result(_ctx, _db) {
43
- return {
44
- callsFromEntryPoint: this.callsFromEntryPoint,
45
- keccak: this.keccak,
46
- logs: this.logs,
47
- calls: this.calls,
48
- debug: this.debug // for internal debugging.
49
- };
50
- },
51
- enter(frame) {
52
- if (this.stopCollecting) {
53
- return;
54
- }
55
- this.calls.push({
56
- type: frame.getType(),
57
- from: toHex(frame.getFrom()),
58
- to: toHex(frame.getTo()),
59
- method: toHex(frame.getInput()).slice(0, 10),
60
- gas: frame.getGas(),
61
- value: frame.getValue()
62
- });
63
- },
64
- exit(frame) {
65
- if (this.stopCollecting) {
66
- return;
67
- }
68
- this.calls.push({
69
- type: frame.getError() != null ? "REVERT" : "RETURN",
70
- gasUsed: frame.getGasUsed(),
71
- data: toHex(frame.getOutput()).slice(0, 4000)
72
- });
73
- },
74
- // increment the "key" in the list. if the key is not defined yet, then set it to "1"
75
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
76
- countSlot(list, key) {
77
- if (list[key]) {
78
- // @ts-ignore
79
- list[key] += 1;
80
- }
81
- else {
82
- list[key] = 1;
83
- }
84
- },
85
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
86
- step(log, db) {
87
- if (this.stopCollecting) {
88
- return;
89
- }
90
- const opcode = log.op.toString();
91
- const stackSize = log.stack.length();
92
- const stackTop3 = [];
93
- for (let i = 0; i < 3 && i < stackSize; i++) {
94
- stackTop3.push(log.stack.peek(i));
95
- }
96
- this.lastThreeOpcodes.push({ opcode, stackTop3 });
97
- if (this.lastThreeOpcodes.length > 3) {
98
- this.lastThreeOpcodes.shift();
99
- }
100
- if (log.getGas() < log.getCost() ||
101
- // special rule for SSTORE with gas metering
102
- (opcode === "SSTORE" && log.getGas() < 2300)) {
103
- this.currentLevel.oog = true;
104
- }
105
- if (opcode === "REVERT" || opcode === "RETURN") {
106
- if (log.getDepth() === 1) {
107
- // exit() is not called on top-level return/revent, so we reconstruct it
108
- // from opcode
109
- const ofs = Number.parseInt(log.stack.peek(0).toString());
110
- const len = Number.parseInt(log.stack.peek(1).toString());
111
- const data = toHex(log.memory.slice(ofs, ofs + len)).slice(0, 4000);
112
- // this.debug.push(opcode + ' ' + data)
113
- this.calls.push({
114
- type: opcode,
115
- gasUsed: 0,
116
- data
117
- });
118
- }
119
- // NOTE: flushing all history after RETURN
120
- this.lastThreeOpcodes = [];
121
- }
122
- if (log.getDepth() === 1) {
123
- if (opcode === "CALL" || opcode === "STATICCALL") {
124
- // stack.peek(0) - gas
125
- const addr = toAddress(log.stack.peek(1).toString(16));
126
- const topLevelTargetAddress = toHex(addr);
127
- // stack.peek(2) - value
128
- const ofs = Number.parseInt(log.stack.peek(3).toString());
129
- // stack.peek(4) - len
130
- const topLevelMethodSig = toHex(log.memory.slice(ofs, ofs + 4));
131
- this.currentLevel = this.callsFromEntryPoint[this.topLevelCallCounter] = {
132
- topLevelMethodSig,
133
- topLevelTargetAddress,
134
- access: {},
135
- opcodes: {},
136
- extCodeAccessInfo: {},
137
- contractSize: {}
138
- };
139
- this.topLevelCallCounter++;
140
- }
141
- else if (opcode === "LOG1") {
142
- // ignore log data ofs, len
143
- const topic = log.stack.peek(2).toString(16);
144
- if (topic === this.stopCollectingTopic) {
145
- this.stopCollecting = true;
146
- }
147
- }
148
- this.lastOp = "";
149
- return;
150
- }
151
- const lastOpInfo = this.lastThreeOpcodes[this.lastThreeOpcodes.length - 2];
152
- // store all addresses touched by EXTCODE* opcodes
153
- if (lastOpInfo &&
154
- lastOpInfo.opcode &&
155
- lastOpInfo.opcode.match(/^(EXT.*)$/) != null) {
156
- const addr = toAddress(lastOpInfo.stackTop3[0].toString(16));
157
- const addrHex = toHex(addr);
158
- // [OP-051]
159
- if (!(this.lastThreeOpcodes[0].opcode.match(/\w+/) !== null &&
160
- this.lastThreeOpcodes[1].opcode === "EXTCODESIZE" &&
161
- this.lastThreeOpcodes[2].opcode === "ISZERO")) {
162
- this.currentLevel.extCodeAccessInfo[addrHex] = opcode;
163
- }
164
- // this.debug.push({
165
- // last3opcodes: JSON.stringify(this.lastThreeOpcodes.map(x => x.opcode)),
166
- // extCodeAccessInfo: this.currentLevel.extCodeAccessInfo
167
- // })
168
- }
169
- // not using 'isPrecompiled' to only allow the ones defined by the ERC-4337 as stateless precompiles
170
- // [OP-062]
171
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
172
- const isAllowedPrecompiled = (address) => {
173
- const addrHex = toHex(address);
174
- const addressInt = Number.parseInt(addrHex);
175
- // this.debug.push(`isPrecompiled address=${addrHex} addressInt=${addressInt}`)
176
- return addressInt > 0 && addressInt < 10;
177
- };
178
- // [OP-041]
179
- if (opcode.match(/^(EXT.*|CALL|CALLCODE|DELEGATECALL|STATICCALL)$/) != null) {
180
- const idx = opcode.startsWith("EXT") ? 0 : 1;
181
- const addr = toAddress(log.stack.peek(idx).toString(16));
182
- const addrHex = toHex(addr);
183
- // this.debug.push('op=' + opcode + ' last=' + this.lastOp + ' stacksize=' + log.stack.length() + ' addr=' + addrHex)
184
- if (this.currentLevel.contractSize[addrHex] == null &&
185
- !isAllowedPrecompiled(addr)) {
186
- this.currentLevel.contractSize[addrHex] = {
187
- contractSize: db.getCode(addr).length,
188
- opcode
189
- };
190
- }
191
- }
192
- // [OP-012]
193
- if (this.lastOp === "GAS" && !opcode.includes("CALL")) {
194
- // count "GAS" opcode only if not followed by "CALL"
195
- this.countSlot(this.currentLevel.opcodes, "GAS");
196
- }
197
- if (opcode !== "GAS") {
198
- // ignore "unimportant" opcodes:
199
- if (opcode.match(/^(DUP\d+|PUSH\d+|SWAP\d+|POP|ADD|SUB|MUL|DIV|EQ|LTE?|S?GTE?|SLT|SH[LR]|AND|OR|NOT|ISZERO)$/) == null) {
200
- this.countSlot(this.currentLevel.opcodes, opcode);
201
- }
202
- }
203
- this.lastOp = opcode;
204
- if (opcode === "SLOAD" ||
205
- opcode === "SSTORE" ||
206
- opcode === "TLOAD" ||
207
- opcode === "TSTORE") {
208
- const slot = toWord(log.stack.peek(0).toString(16));
209
- const slotHex = toHex(slot);
210
- const addr = log.contract.getAddress();
211
- const addrHex = toHex(addr);
212
- let access = this.currentLevel.access[addrHex];
213
- if (access == null) {
214
- access = {
215
- reads: {},
216
- writes: {}
217
- };
218
- this.currentLevel.access[addrHex] = access;
219
- }
220
- if (opcode === "SLOAD" || opcode === "TLOAD") {
221
- // read slot values before this UserOp was created
222
- // (so saving it if it was written before the first read)
223
- if (access.reads[slotHex] == null &&
224
- access.writes[slotHex] == null) {
225
- access.reads[slotHex] = toHex(db.getState(addr, slot));
226
- }
227
- }
228
- else {
229
- this.countSlot(access.writes, slotHex);
230
- }
231
- }
232
- if (opcode === "KECCAK256") {
233
- // collect keccak on 64-byte blocks
234
- const ofs = Number.parseInt(log.stack.peek(0).toString());
235
- const len = Number.parseInt(log.stack.peek(1).toString());
236
- // currently, solidity uses only 2-word (6-byte) for a key. this might change..
237
- // still, no need to return too much
238
- if (len > 20 && len < 512) {
239
- // if (len === 64) {
240
- this.keccak.push(toHex(log.memory.slice(ofs, ofs + len)));
241
- }
242
- }
243
- else if (opcode.startsWith("LOG")) {
244
- const count = Number.parseInt(opcode.substring(3));
245
- const ofs = Number.parseInt(log.stack.peek(0).toString());
246
- const len = Number.parseInt(log.stack.peek(1).toString());
247
- const topics = [];
248
- for (let i = 0; i < count; i++) {
249
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
250
- topics.push("0x" + log.stack.peek(2 + i).toString(16));
251
- }
252
- const data = toHex(log.memory.slice(ofs, ofs + len));
253
- this.logs.push({
254
- topics,
255
- data
256
- });
257
- }
258
- }
259
- };
260
- }
261
- exports.bundlerCollectorTracer = bundlerCollectorTracer;
262
- //# sourceMappingURL=BundlerCollectorTracerV06.js.map