@pimlico/alto 0.0.7 → 0.0.9

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 (268) hide show
  1. package/esm/cli/alto.js +3 -1
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +320 -272
  4. package/esm/cli/config/bundler.js +26 -7
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.js +65 -10
  7. package/esm/cli/config/options.js.map +1 -1
  8. package/esm/cli/customTransport.js +40 -7
  9. package/esm/cli/customTransport.js.map +1 -1
  10. package/esm/cli/deploySimulationsContract.d.ts +8 -0
  11. package/esm/cli/deploySimulationsContract.js +35 -0
  12. package/esm/cli/deploySimulationsContract.js.map +1 -0
  13. package/esm/cli/handler.d.ts +2 -2
  14. package/esm/cli/handler.js +78 -89
  15. package/esm/cli/handler.js.map +1 -1
  16. package/esm/cli/instrumentation.js +4 -2
  17. package/esm/cli/instrumentation.js.map +1 -1
  18. package/esm/cli/parseArgs.d.ts +8 -0
  19. package/esm/cli/parseArgs.js +21 -0
  20. package/esm/cli/parseArgs.js.map +1 -0
  21. package/esm/cli/setupServer.d.ts +4 -9
  22. package/esm/cli/setupServer.js +100 -82
  23. package/esm/cli/setupServer.js.map +1 -1
  24. package/esm/createConfig.d.ts +15 -0
  25. package/esm/createConfig.js +8 -0
  26. package/esm/createConfig.js.map +1 -0
  27. package/esm/executor/executor.d.ts +48 -14
  28. package/esm/executor/executor.js +262 -139
  29. package/esm/executor/executor.js.map +1 -1
  30. package/esm/executor/executorManager.d.ts +14 -10
  31. package/esm/executor/executorManager.js +36 -39
  32. package/esm/executor/executorManager.js.map +1 -1
  33. package/esm/executor/senderManager.d.ts +11 -6
  34. package/esm/executor/senderManager.js +39 -36
  35. package/esm/executor/senderManager.js.map +1 -1
  36. package/esm/executor/utilityWalletMonitor.d.ts +9 -5
  37. package/esm/executor/utilityWalletMonitor.js +8 -8
  38. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  39. package/esm/executor/utils.d.ts +2 -1
  40. package/esm/executor/utils.js +7 -2
  41. package/esm/executor/utils.js.map +1 -1
  42. package/esm/handlers/arbitrumGasPriceManager.d.ts +11 -0
  43. package/esm/handlers/arbitrumGasPriceManager.js +29 -0
  44. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -0
  45. package/esm/handlers/eventManager.d.ts +7 -3
  46. package/esm/handlers/eventManager.js +24 -16
  47. package/esm/handlers/eventManager.js.map +1 -1
  48. package/esm/handlers/gasPriceManager.d.ts +14 -41
  49. package/esm/handlers/gasPriceManager.js +87 -208
  50. package/esm/handlers/gasPriceManager.js.map +1 -1
  51. package/esm/handlers/mantleGasPriceManager.d.ts +20 -0
  52. package/esm/handlers/mantleGasPriceManager.js +28 -0
  53. package/esm/handlers/mantleGasPriceManager.js.map +1 -0
  54. package/esm/mempool/mempool.d.ts +13 -10
  55. package/esm/mempool/mempool.js +29 -26
  56. package/esm/mempool/mempool.js.map +1 -1
  57. package/esm/mempool/reputationManager.d.ts +4 -6
  58. package/esm/mempool/reputationManager.js +25 -29
  59. package/esm/mempool/reputationManager.js.map +1 -1
  60. package/esm/mempool/store.d.ts +1 -1
  61. package/esm/rpc/estimation/gasEstimationHandler.d.ts +7 -7
  62. package/esm/rpc/estimation/gasEstimationHandler.js +18 -33
  63. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  64. package/esm/rpc/estimation/gasEstimationsV06.d.ts +7 -7
  65. package/esm/rpc/estimation/gasEstimationsV06.js +90 -48
  66. package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -1
  67. package/esm/rpc/estimation/gasEstimationsV07.d.ts +7 -12
  68. package/esm/rpc/estimation/gasEstimationsV07.js +53 -37
  69. package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
  70. package/esm/rpc/nonceQueuer.d.ts +10 -6
  71. package/esm/rpc/nonceQueuer.js +10 -10
  72. package/esm/rpc/nonceQueuer.js.map +1 -1
  73. package/esm/rpc/rpcHandler.d.ts +19 -16
  74. package/esm/rpc/rpcHandler.js +98 -90
  75. package/esm/rpc/rpcHandler.js.map +1 -1
  76. package/esm/rpc/server.d.ts +9 -7
  77. package/esm/rpc/server.js +27 -25
  78. package/esm/rpc/server.js.map +1 -1
  79. package/esm/rpc/validation/SafeValidator.d.ts +11 -6
  80. package/esm/rpc/validation/SafeValidator.js +14 -11
  81. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  82. package/esm/rpc/validation/TracerResultParserV06.d.ts +1 -1
  83. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  84. package/esm/rpc/validation/TracerResultParserV07.d.ts +1 -1
  85. package/esm/rpc/validation/TracerResultParserV07.js +1 -1
  86. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  87. package/esm/rpc/validation/UnsafeValidator.d.ts +11 -12
  88. package/esm/rpc/validation/UnsafeValidator.js +28 -29
  89. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  90. package/esm/types/contracts/ArbitrumL1FeeAbi.d.ts +32 -0
  91. package/esm/types/contracts/ArbitrumL1FeeAbi.js +42 -0
  92. package/esm/types/contracts/ArbitrumL1FeeAbi.js.map +1 -0
  93. package/esm/types/contracts/EntryPointSimulationsV6.d.ts +34 -0
  94. package/esm/types/contracts/EntryPointSimulationsV6.js +48 -0
  95. package/esm/types/contracts/EntryPointSimulationsV6.js.map +1 -0
  96. package/esm/types/contracts/{EntryPointSimulations.d.ts → EntryPointSimulationsV7.d.ts} +1 -9
  97. package/esm/types/contracts/{EntryPointSimulations.js → EntryPointSimulationsV7.js} +1 -13
  98. package/esm/types/contracts/EntryPointSimulationsV7.js.map +1 -0
  99. package/esm/types/contracts/MantleBvmGasPriceOracle.d.ts +219 -0
  100. package/esm/types/contracts/MantleBvmGasPriceOracle.js +177 -0
  101. package/esm/types/contracts/MantleBvmGasPriceOracle.js.map +1 -0
  102. package/esm/types/contracts/OpL1FeeAbi.d.ts +114 -0
  103. package/esm/types/contracts/OpL1FeeAbi.js +74 -0
  104. package/esm/types/contracts/OpL1FeeAbi.js.map +1 -0
  105. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  106. package/esm/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  107. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  108. package/esm/types/contracts/index.d.ts +5 -1
  109. package/esm/types/contracts/index.js +5 -1
  110. package/esm/types/contracts/index.js.map +1 -1
  111. package/esm/types/interfaces.d.ts +2 -2
  112. package/esm/types/mempool.d.ts +1 -2
  113. package/esm/types/mempool.js.map +1 -1
  114. package/esm/types/schemas.d.ts +26 -26
  115. package/esm/types/schemas.js +3 -3
  116. package/esm/types/schemas.js.map +1 -1
  117. package/esm/types/utils.d.ts +1 -1
  118. package/esm/utils/bigInt.js +2 -2
  119. package/esm/utils/bigInt.js.map +1 -1
  120. package/esm/utils/helpers.js +1 -1
  121. package/esm/utils/helpers.js.map +1 -1
  122. package/esm/utils/metrics.d.ts +1 -0
  123. package/esm/utils/metrics.js +7 -0
  124. package/esm/utils/metrics.js.map +1 -1
  125. package/esm/utils/rpc-reply.d.ts +1 -1
  126. package/esm/utils/timedQueue.d.ts +12 -0
  127. package/esm/utils/timedQueue.js +51 -0
  128. package/esm/utils/timedQueue.js.map +1 -0
  129. package/esm/utils/userop.d.ts +3 -3
  130. package/esm/utils/userop.js +4 -3
  131. package/esm/utils/userop.js.map +1 -1
  132. package/esm/utils/validation.d.ts +14 -6
  133. package/esm/utils/validation.js +160 -168
  134. package/esm/utils/validation.js.map +1 -1
  135. package/lib/cli/alto.js +2 -0
  136. package/lib/cli/alto.js.map +1 -1
  137. package/lib/cli/config/bundler.d.ts +320 -272
  138. package/lib/cli/config/bundler.js +25 -6
  139. package/lib/cli/config/bundler.js.map +1 -1
  140. package/lib/cli/config/options.js +65 -10
  141. package/lib/cli/config/options.js.map +1 -1
  142. package/lib/cli/customTransport.js +38 -5
  143. package/lib/cli/customTransport.js.map +1 -1
  144. package/lib/cli/deploySimulationsContract.d.ts +8 -0
  145. package/lib/cli/deploySimulationsContract.js +39 -0
  146. package/lib/cli/deploySimulationsContract.js.map +1 -0
  147. package/lib/cli/handler.d.ts +2 -2
  148. package/lib/cli/handler.js +77 -88
  149. package/lib/cli/handler.js.map +1 -1
  150. package/lib/cli/instrumentation.js +4 -2
  151. package/lib/cli/instrumentation.js.map +1 -1
  152. package/lib/cli/parseArgs.d.ts +8 -0
  153. package/lib/cli/parseArgs.js +25 -0
  154. package/lib/cli/parseArgs.js.map +1 -0
  155. package/lib/cli/setupServer.d.ts +4 -9
  156. package/lib/cli/setupServer.js +100 -82
  157. package/lib/cli/setupServer.js.map +1 -1
  158. package/lib/createConfig.d.ts +15 -0
  159. package/lib/createConfig.js +12 -0
  160. package/lib/createConfig.js.map +1 -0
  161. package/lib/executor/executor.d.ts +48 -14
  162. package/lib/executor/executor.js +258 -135
  163. package/lib/executor/executor.js.map +1 -1
  164. package/lib/executor/executorManager.d.ts +14 -10
  165. package/lib/executor/executorManager.js +34 -37
  166. package/lib/executor/executorManager.js.map +1 -1
  167. package/lib/executor/senderManager.d.ts +11 -6
  168. package/lib/executor/senderManager.js +39 -36
  169. package/lib/executor/senderManager.js.map +1 -1
  170. package/lib/executor/utilityWalletMonitor.d.ts +9 -5
  171. package/lib/executor/utilityWalletMonitor.js +8 -8
  172. package/lib/executor/utilityWalletMonitor.js.map +1 -1
  173. package/lib/executor/utils.d.ts +2 -1
  174. package/lib/executor/utils.js +9 -3
  175. package/lib/executor/utils.js.map +1 -1
  176. package/lib/handlers/arbitrumGasPriceManager.d.ts +11 -0
  177. package/lib/handlers/arbitrumGasPriceManager.js +33 -0
  178. package/lib/handlers/arbitrumGasPriceManager.js.map +1 -0
  179. package/lib/handlers/eventManager.d.ts +7 -3
  180. package/lib/handlers/eventManager.js +24 -16
  181. package/lib/handlers/eventManager.js.map +1 -1
  182. package/lib/handlers/gasPriceManager.d.ts +14 -41
  183. package/lib/handlers/gasPriceManager.js +85 -206
  184. package/lib/handlers/gasPriceManager.js.map +1 -1
  185. package/lib/handlers/mantleGasPriceManager.d.ts +20 -0
  186. package/lib/handlers/mantleGasPriceManager.js +32 -0
  187. package/lib/handlers/mantleGasPriceManager.js.map +1 -0
  188. package/lib/mempool/mempool.d.ts +13 -10
  189. package/lib/mempool/mempool.js +28 -25
  190. package/lib/mempool/mempool.js.map +1 -1
  191. package/lib/mempool/reputationManager.d.ts +4 -6
  192. package/lib/mempool/reputationManager.js +25 -29
  193. package/lib/mempool/reputationManager.js.map +1 -1
  194. package/lib/mempool/store.d.ts +1 -1
  195. package/lib/rpc/estimation/gasEstimationHandler.d.ts +7 -7
  196. package/lib/rpc/estimation/gasEstimationHandler.js +18 -33
  197. package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -1
  198. package/lib/rpc/estimation/gasEstimationsV06.d.ts +7 -7
  199. package/lib/rpc/estimation/gasEstimationsV06.js +88 -46
  200. package/lib/rpc/estimation/gasEstimationsV06.js.map +1 -1
  201. package/lib/rpc/estimation/gasEstimationsV07.d.ts +7 -12
  202. package/lib/rpc/estimation/gasEstimationsV07.js +52 -36
  203. package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -1
  204. package/lib/rpc/nonceQueuer.d.ts +10 -6
  205. package/lib/rpc/nonceQueuer.js +9 -9
  206. package/lib/rpc/nonceQueuer.js.map +1 -1
  207. package/lib/rpc/rpcHandler.d.ts +19 -16
  208. package/lib/rpc/rpcHandler.js +97 -89
  209. package/lib/rpc/rpcHandler.js.map +1 -1
  210. package/lib/rpc/server.d.ts +9 -7
  211. package/lib/rpc/server.js +26 -24
  212. package/lib/rpc/server.js.map +1 -1
  213. package/lib/rpc/validation/SafeValidator.d.ts +11 -6
  214. package/lib/rpc/validation/SafeValidator.js +13 -10
  215. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  216. package/lib/rpc/validation/TracerResultParserV06.d.ts +1 -1
  217. package/lib/rpc/validation/TracerResultParserV07.d.ts +1 -1
  218. package/lib/rpc/validation/TracerResultParserV07.js +1 -1
  219. package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
  220. package/lib/rpc/validation/UnsafeValidator.d.ts +11 -12
  221. package/lib/rpc/validation/UnsafeValidator.js +28 -29
  222. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  223. package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +32 -0
  224. package/lib/types/contracts/ArbitrumL1FeeAbi.js +45 -0
  225. package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +1 -0
  226. package/lib/types/contracts/EntryPointSimulationsV6.d.ts +34 -0
  227. package/lib/types/contracts/EntryPointSimulationsV6.js +51 -0
  228. package/lib/types/contracts/EntryPointSimulationsV6.js.map +1 -0
  229. package/lib/types/contracts/{EntryPointSimulations.d.ts → EntryPointSimulationsV7.d.ts} +1 -9
  230. package/lib/types/contracts/{EntryPointSimulations.js → EntryPointSimulationsV7.js} +2 -14
  231. package/lib/types/contracts/EntryPointSimulationsV7.js.map +1 -0
  232. package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +219 -0
  233. package/lib/types/contracts/MantleBvmGasPriceOracle.js +180 -0
  234. package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +1 -0
  235. package/lib/types/contracts/OpL1FeeAbi.d.ts +114 -0
  236. package/lib/types/contracts/OpL1FeeAbi.js +77 -0
  237. package/lib/types/contracts/OpL1FeeAbi.js.map +1 -0
  238. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  239. package/lib/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  240. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  241. package/lib/types/contracts/index.d.ts +5 -1
  242. package/lib/types/contracts/index.js +5 -1
  243. package/lib/types/contracts/index.js.map +1 -1
  244. package/lib/types/interfaces.d.ts +2 -2
  245. package/lib/types/mempool.d.ts +1 -2
  246. package/lib/types/mempool.js.map +1 -1
  247. package/lib/types/schemas.d.ts +26 -26
  248. package/lib/types/schemas.js +3 -3
  249. package/lib/types/schemas.js.map +1 -1
  250. package/lib/types/utils.d.ts +1 -1
  251. package/lib/utils/bigInt.js +2 -2
  252. package/lib/utils/bigInt.js.map +1 -1
  253. package/lib/utils/metrics.d.ts +1 -0
  254. package/lib/utils/metrics.js +7 -0
  255. package/lib/utils/metrics.js.map +1 -1
  256. package/lib/utils/rpc-reply.d.ts +1 -1
  257. package/lib/utils/timedQueue.d.ts +12 -0
  258. package/lib/utils/timedQueue.js +55 -0
  259. package/lib/utils/timedQueue.js.map +1 -0
  260. package/lib/utils/userop.d.ts +3 -3
  261. package/lib/utils/userop.js +3 -2
  262. package/lib/utils/userop.js.map +1 -1
  263. package/lib/utils/validation.d.ts +14 -6
  264. package/lib/utils/validation.js +164 -168
  265. package/lib/utils/validation.js.map +1 -1
  266. package/package.json +1 -1
  267. package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
  268. package/lib/types/contracts/EntryPointSimulations.js.map +0 -1
@@ -2,60 +2,54 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bundlerHandler = void 0;
4
4
  const executor_1 = require("../executor/index.js");
5
+ const handlers_1 = require("../handlers/index.js");
5
6
  const utils_1 = require("../utils/index.js");
6
7
  const prom_client_1 = require("prom-client");
7
8
  const viem_1 = require("viem");
8
- const zod_validation_error_1 = require("zod-validation-error");
9
- const config_1 = require("./config/index.js");
9
+ const utilityWalletMonitor_1 = require("../executor/utilityWalletMonitor.js");
10
10
  const customTransport_1 = require("./customTransport.js");
11
11
  const setupServer_1 = require("./setupServer.js");
12
- const contracts_1 = require("../types/contracts/index.js");
13
- const utilityWalletMonitor_1 = require("../executor/utilityWalletMonitor.js");
14
- const handlers_1 = require("../handlers/index.js");
15
- const parseArgs = (args) => {
16
- // validate every arg, make type safe so if i add a new arg i have to validate it
17
- const parsing = config_1.optionArgsSchema.safeParse(args);
18
- if (!parsing.success) {
19
- const error = (0, zod_validation_error_1.fromZodError)(parsing.error);
20
- throw new Error(error.message);
21
- }
22
- return parsing.data;
23
- };
24
- const preFlightChecks = async (publicClient, parsedArgs) => {
25
- for (const entrypoint of parsedArgs.entrypoints) {
26
- const entryPointCode = await publicClient.getBytecode({
12
+ const createConfig_1 = require("../createConfig.js");
13
+ const parseArgs_1 = require("./parseArgs.js");
14
+ const deploySimulationsContract_1 = require("./deploySimulationsContract.js");
15
+ const preFlightChecks = async (config) => {
16
+ for (const entrypoint of config.entrypoints) {
17
+ const entryPointCode = await config.publicClient.getCode({
27
18
  address: entrypoint
28
19
  });
29
- if (entryPointCode === "0x") {
20
+ if (entryPointCode === undefined || entryPointCode === "0x") {
30
21
  throw new Error(`entry point ${entrypoint} does not exist`);
31
22
  }
32
23
  }
33
- if (parsedArgs["entrypoint-simulation-contract"]) {
34
- const simulations = parsedArgs["entrypoint-simulation-contract"];
35
- const simulationsCode = await publicClient.getBytecode({
24
+ if (config.entrypointSimulationContract) {
25
+ const simulations = config.entrypointSimulationContract;
26
+ const simulationsCode = await config.publicClient.getCode({
36
27
  address: simulations
37
28
  });
38
29
  if (simulationsCode === undefined || simulationsCode === "0x") {
39
30
  throw new Error(`EntryPointSimulations contract ${simulations} does not exist`);
40
31
  }
41
32
  }
42
- };
43
- async function bundlerHandler(args) {
44
- const parsedArgs = parseArgs(args);
45
- let logger;
46
- if (parsedArgs.json) {
47
- logger = (0, utils_1.initProductionLogger)(parsedArgs["log-level"]);
48
- }
49
- else {
50
- logger = (0, utils_1.initDebugLogger)(parsedArgs["log-level"]);
33
+ if (config.refillHelperContract) {
34
+ const refillHelper = config.refillHelperContract;
35
+ const refillHelperCode = await config.publicClient.getCode({
36
+ address: refillHelper
37
+ });
38
+ if (refillHelperCode === undefined || refillHelperCode === "0x") {
39
+ throw new Error(`RefillHelper contract ${refillHelper} does not exist`);
40
+ }
51
41
  }
52
- const rootLogger = logger.child({ module: "root" }, { level: parsedArgs["log-level"] });
42
+ };
43
+ async function bundlerHandler(args_) {
44
+ const args = (0, parseArgs_1.parseArgs)(args_);
45
+ const logger = args.json
46
+ ? (0, utils_1.initProductionLogger)(args.logLevel)
47
+ : (0, utils_1.initDebugLogger)(args.logLevel);
53
48
  const getChainId = async () => {
54
49
  const client = (0, viem_1.createPublicClient)({
55
- transport: (0, customTransport_1.customTransport)(parsedArgs["rpc-url"], {
50
+ transport: (0, customTransport_1.customTransport)(args.rpcUrl, {
56
51
  logger: logger.child({ module: "public_client" }, {
57
- level: parsedArgs["public-client-log-level"] ||
58
- parsedArgs["log-level"]
52
+ level: args.publicClientLogLevel || args.logLevel
59
53
  })
60
54
  })
61
55
  });
@@ -64,53 +58,57 @@ async function bundlerHandler(args) {
64
58
  const chainId = await getChainId();
65
59
  const chain = {
66
60
  id: chainId,
67
- name: args["network-name"],
61
+ name: args.networkName,
68
62
  nativeCurrency: {
69
63
  name: "ETH",
70
64
  symbol: "ETH",
71
65
  decimals: 18
72
66
  },
73
67
  rpcUrls: {
74
- default: { http: [args["rpc-url"]] },
75
- public: { http: [args["rpc-url"]] }
68
+ default: { http: [args.rpcUrl] },
69
+ public: { http: [args.rpcUrl] }
76
70
  }
77
71
  };
78
- const client = (0, viem_1.createPublicClient)({
79
- transport: (0, customTransport_1.customTransport)(args["rpc-url"], {
72
+ let publicClient = (0, viem_1.createPublicClient)({
73
+ transport: (0, customTransport_1.customTransport)(args.rpcUrl, {
80
74
  logger: logger.child({ module: "public_client" }, {
81
- level: parsedArgs["public-client-log-level"] ||
82
- parsedArgs["log-level"]
75
+ level: args.publicClientLogLevel || args.logLevel
83
76
  })
84
77
  }),
85
78
  chain
86
79
  });
80
+ if (args.chainType === "skale") {
81
+ // SKALE only allows white listed addresses to deploy contracts.
82
+ publicClient = publicClient
83
+ .extend((client) => ({
84
+ async call(args) {
85
+ args.account = "0x4337000c2828F5260d8921fD25829F606b9E8680";
86
+ return await client.call(args);
87
+ }
88
+ }))
89
+ .extend(viem_1.publicActions);
90
+ }
91
+ const createWalletTransport = (url) => (0, customTransport_1.customTransport)(url, {
92
+ logger: logger.child({ module: "wallet_client" }, { level: args.walletClientLogLevel || args.logLevel })
93
+ });
94
+ const walletClient = (0, viem_1.createWalletClient)({
95
+ transport: args.sendTransactionRpcUrl
96
+ ? (0, viem_1.fallback)([
97
+ createWalletTransport(args.sendTransactionRpcUrl),
98
+ createWalletTransport(args.rpcUrl)
99
+ ], { rank: false })
100
+ : createWalletTransport(args.rpcUrl),
101
+ chain
102
+ });
87
103
  // if flag is set, use utility wallet to deploy the simulations contract
88
- if (parsedArgs["deploy-simulations-contract"]) {
89
- if (!parsedArgs["utility-private-key"]) {
90
- throw new Error("Cannot deploy entryPoint simulations without utility-private-key");
91
- }
92
- const walletClient = (0, viem_1.createWalletClient)({
93
- transport: (0, viem_1.http)(args["rpc-url"]),
94
- account: parsedArgs["utility-private-key"]
95
- });
96
- const deployHash = await walletClient.deployContract({
97
- chain,
98
- abi: [],
99
- bytecode: contracts_1.PimlicoEntryPointSimulationsDeployBytecode
104
+ if (args.deploySimulationsContract) {
105
+ args.entrypointSimulationContract = await (0, deploySimulationsContract_1.deploySimulationsContract)({
106
+ args,
107
+ publicClient
100
108
  });
101
- const receipt = await client.getTransactionReceipt({
102
- hash: deployHash
103
- });
104
- const simulationsContract = receipt.contractAddress;
105
- if (simulationsContract === null) {
106
- throw new Error("Failed to deploy simulationsContract");
107
- }
108
- parsedArgs["entrypoint-simulation-contract"] = simulationsContract;
109
109
  }
110
- const gasPriceManager = new handlers_1.GasPriceManager(chain, client, parsedArgs["legacy-transactions"], logger.child({ module: "gas_price_manager" }, {
111
- level: parsedArgs["public-client-log-level"] ||
112
- parsedArgs["log-level"]
113
- }), parsedArgs["gas-price-bump"], parsedArgs["gas-price-expiry"], parsedArgs["gas-price-refresh-interval"], parsedArgs["chain-type"]);
110
+ const config = (0, createConfig_1.createConfig)({ ...args, logger, publicClient, walletClient });
111
+ const gasPriceManager = new handlers_1.GasPriceManager(config);
114
112
  await gasPriceManager.init();
115
113
  const registry = new prom_client_1.Registry();
116
114
  registry.setDefaultLabels({
@@ -118,33 +116,24 @@ async function bundlerHandler(args) {
118
116
  chainId
119
117
  });
120
118
  const metrics = (0, utils_1.createMetrics)(registry);
121
- await preFlightChecks(client, parsedArgs);
122
- const walletClient = (0, viem_1.createWalletClient)({
123
- transport: (0, customTransport_1.customTransport)(parsedArgs["send-transaction-rpc-url"] ?? args["rpc-url"], {
124
- logger: logger.child({ module: "wallet_client" }, {
125
- level: parsedArgs["wallet-client-log-level"] ||
126
- parsedArgs["log-level"]
127
- })
128
- }),
129
- chain
119
+ await preFlightChecks(config);
120
+ const senderManager = new executor_1.SenderManager({
121
+ config,
122
+ metrics,
123
+ gasPriceManager
130
124
  });
131
- const senderManager = new executor_1.SenderManager(parsedArgs["executor-private-keys"], parsedArgs["utility-private-key"], logger.child({ module: "executor" }, {
132
- level: parsedArgs["executor-log-level"] || parsedArgs["log-level"]
133
- }), metrics, parsedArgs["legacy-transactions"], gasPriceManager, parsedArgs["max-executors"]);
134
- const utilityWalletAddress = parsedArgs["utility-private-key"]?.address;
135
- if (utilityWalletAddress && parsedArgs["utility-wallet-monitor"]) {
136
- const utilityWalletMonitor = new utilityWalletMonitor_1.UtilityWalletMonitor(client, parsedArgs["utility-wallet-monitor-interval"], utilityWalletAddress, metrics, logger.child({ module: "utility_wallet_monitor" }, {
137
- level: parsedArgs["log-level"]
138
- }));
125
+ const utilityWalletAddress = config.utilityPrivateKey?.address;
126
+ if (utilityWalletAddress && config.utilityWalletMonitor) {
127
+ const utilityWalletMonitor = new utilityWalletMonitor_1.UtilityWalletMonitor({
128
+ config,
129
+ metrics,
130
+ utilityWalletAddress
131
+ });
139
132
  await utilityWalletMonitor.start();
140
133
  }
141
- metrics.executorWalletsMinBalance.set(Number.parseFloat((0, viem_1.formatEther)(parsedArgs["min-executor-balance"] || 0n)));
134
+ metrics.executorWalletsMinBalance.set(Number.parseFloat((0, viem_1.formatEther)(config.minExecutorBalance || 0n)));
142
135
  await (0, setupServer_1.setupServer)({
143
- client,
144
- walletClient,
145
- parsedArgs,
146
- logger,
147
- rootLogger,
136
+ config,
148
137
  registry,
149
138
  metrics,
150
139
  senderManager,
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../cli/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../cli/handler.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-
5
5
  const instrumentation_fastify_1 = require("@opentelemetry/instrumentation-fastify");
6
6
  const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
7
7
  const instrumentation_pino_1 = require("@opentelemetry/instrumentation-pino");
8
+ const instrumentation_undici_1 = require("@opentelemetry/instrumentation-undici");
8
9
  const sdk_node_1 = require("@opentelemetry/sdk-node");
9
10
  const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
10
11
  const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
11
- const instrumentation_undici_1 = require("@opentelemetry/instrumentation-undici");
12
12
  class CustomSampler {
13
13
  shouldSample(_context, _traceId, _spanName, spanKind, attributes) {
14
14
  const ignoredRoutes = ["/metrics", "/health"];
@@ -31,7 +31,9 @@ const sdk = new sdk_node_1.NodeSDK({
31
31
  new instrumentation_http_1.HttpInstrumentation({
32
32
  requireParentforOutgoingSpans: true
33
33
  }),
34
- new instrumentation_undici_1.UndiciInstrumentation(),
34
+ new instrumentation_undici_1.UndiciInstrumentation({
35
+ requireParentforSpans: true
36
+ }),
35
37
  new instrumentation_fastify_1.FastifyInstrumentation(),
36
38
  new instrumentation_pino_1.PinoInstrumentation()
37
39
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../cli/instrumentation.ts"],"names":[],"mappings":";;AAAA,4CAA4E;AAC5E,wFAA4E;AAC5E,oFAA+E;AAC/E,8EAAyE;AACzE,8EAAyE;AACzE,sDAAiD;AACjD,kEAIsC;AACtC,8EAAwE;AACxE,kFAA6E;AAE7E,MAAM,aAAa;IACf,YAAY,CACR,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,QAAkB,EAClB,UAAsB;QAEtB,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QAE7C,MAAM,UAAU,GAAG,UAAU,CAAC,yCAAkB,CAAC,WAAW,CAAC,CAAA;QAE7D,IACI,QAAQ,KAAK,cAAQ,CAAC,MAAM;YAC5B,UAAU;YACV,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAC/C,CAAC;YACC,OAAO,EAAE,QAAQ,EAAE,iCAAgB,CAAC,UAAU,EAAE,CAAA;QACpD,CAAC;QACD,WAAW;QACX,OAAO,EAAE,QAAQ,EAAE,iCAAgB,CAAC,kBAAkB,EAAE,CAAA;IAC5D,CAAC;IACD,QAAQ;QACJ,OAAO,eAAe,CAAA;IAC1B,CAAC;CACJ;AAED,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;IACpB,aAAa,EAAE,IAAI,6CAAiB,EAAE;IACtC,gBAAgB,EAAE;QACd,IAAI,0CAAmB,CAAC;YACpB,6BAA6B,EAAE,IAAI;SACtC,CAAC;QACF,IAAI,8CAAqB,EAAE;QAC3B,IAAI,gDAAsB,EAAE;QAC5B,IAAI,0CAAmB,EAAE;KAC5B;IACD,OAAO,EAAE,IAAI,mCAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,aAAa,EAAE,EAAE,CAAC;CACjE,CAAC,CAAA;AAEF,GAAG,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../cli/instrumentation.ts"],"names":[],"mappings":";;AAAA,4CAA4E;AAC5E,wFAA4E;AAC5E,oFAA+E;AAC/E,8EAAyE;AACzE,8EAAyE;AACzE,kFAA6E;AAC7E,sDAAiD;AACjD,kEAIsC;AACtC,8EAAwE;AAExE,MAAM,aAAa;IACf,YAAY,CACR,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,QAAkB,EAClB,UAAsB;QAEtB,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QAE7C,MAAM,UAAU,GAAG,UAAU,CAAC,yCAAkB,CAAC,WAAW,CAAC,CAAA;QAE7D,IACI,QAAQ,KAAK,cAAQ,CAAC,MAAM;YAC5B,UAAU;YACV,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAC/C,CAAC;YACC,OAAO,EAAE,QAAQ,EAAE,iCAAgB,CAAC,UAAU,EAAE,CAAA;QACpD,CAAC;QACD,WAAW;QACX,OAAO,EAAE,QAAQ,EAAE,iCAAgB,CAAC,kBAAkB,EAAE,CAAA;IAC5D,CAAC;IACD,QAAQ;QACJ,OAAO,eAAe,CAAA;IAC1B,CAAC;CACJ;AAED,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;IACpB,aAAa,EAAE,IAAI,6CAAiB,EAAE;IACtC,gBAAgB,EAAE;QACd,IAAI,0CAAmB,CAAC;YACpB,6BAA6B,EAAE,IAAI;SACtC,CAAC;QACF,IAAI,8CAAqB,CAAC;YACtB,qBAAqB,EAAE,IAAI;SAC9B,CAAC;QACF,IAAI,gDAAsB,EAAE;QAC5B,IAAI,0CAAmB,EAAE;KAC5B;IACD,OAAO,EAAE,IAAI,mCAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,aAAa,EAAE,EAAE,CAAC;CACjE,CAAC,CAAA;AAEF,GAAG,CAAC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { type IOptions, type IOptionsInput } from "./index.js";
2
+ type CamelCase<S extends string> = S extends `${infer P1}-${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S extends `${infer P1}_${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S;
3
+ export type CamelCasedProperties<T> = {
4
+ [K in keyof T as CamelCase<Extract<K, string>>]: T[K];
5
+ };
6
+ export declare const parseArgs: (args: IOptionsInput) => CamelCasedProperties<IOptions>;
7
+ export {};
8
+ //# sourceMappingURL=parseArgs.d.ts.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseArgs = void 0;
4
+ const cli_1 = require("./index.js");
5
+ const zod_validation_error_1 = require("zod-validation-error");
6
+ function toCamelCase(str) {
7
+ return str.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace("-", "").replace("_", ""));
8
+ }
9
+ function convertKeysToCamelCase(obj) {
10
+ return Object.keys(obj).reduce((acc, key) => {
11
+ const camelCaseKey = toCamelCase(key);
12
+ acc[camelCaseKey] = obj[key];
13
+ return acc;
14
+ }, {});
15
+ }
16
+ const parseArgs = (args) => {
17
+ const parsing = cli_1.optionArgsSchema.safeParse(args);
18
+ if (!parsing.success) {
19
+ const error = (0, zod_validation_error_1.fromZodError)(parsing.error);
20
+ throw new Error(error.message);
21
+ }
22
+ return convertKeysToCamelCase(parsing.data);
23
+ };
24
+ exports.parseArgs = parseArgs;
25
+ //# sourceMappingURL=parseArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../cli/parseArgs.ts"],"names":[],"mappings":";;;AAAA,mCAA+E;AAC/E,+DAAmD;AAanD,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CACxD,CAAA;AACL,CAAC;AAED,SAAS,sBAAsB,CAC3B,GAAM;IAEN,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACT,MAAM,YAAY,GAAG,WAAW,CAC5B,GAAG,CAC2B,CACjC;QAAC,GAAW,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAc,CAAC,CAAA;QAEjD,OAAO,GAAG,CAAA;IACd,CAAC,EACD,EAA6B,CAChC,CAAA;AACL,CAAC;AAEM,MAAM,SAAS,GAAG,CACrB,IAAmB,EACW,EAAE;IAChC,MAAM,OAAO,GAAG,sBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAA,mCAAY,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC,CAAA;AAVY,QAAA,SAAS,aAUrB"}
@@ -1,15 +1,10 @@
1
1
  import type { SenderManager } from "../executor/index.js";
2
2
  import { type GasPriceManager } from "../handlers/index.js";
3
- import type { Logger, Metrics } from "../utils/index.js";
3
+ import type { Metrics } from "../utils/index.js";
4
4
  import type { Registry } from "prom-client";
5
- import type { Chain, PublicClient, Transport, WalletClient } from "viem";
6
- import type { IOptions } from "./config/index.js";
7
- export declare const setupServer: ({ client, walletClient, parsedArgs, logger, rootLogger, registry, metrics, senderManager, gasPriceManager }: {
8
- client: PublicClient<Transport, Chain>;
9
- walletClient: WalletClient<Transport, Chain>;
10
- parsedArgs: IOptions;
11
- logger: Logger;
12
- rootLogger: Logger;
5
+ import type { AltoConfig } from "../createConfig.js";
6
+ export declare const setupServer: ({ config, registry, metrics, senderManager, gasPriceManager }: {
7
+ config: AltoConfig;
13
8
  registry: Registry;
14
9
  metrics: Metrics;
15
10
  senderManager: SenderManager;
@@ -5,141 +5,161 @@ const executor_1 = require("../executor/index.js");
5
5
  const handlers_1 = require("../handlers/index.js");
6
6
  const mempool_1 = require("../mempool/index.js");
7
7
  const rpc_1 = require("../rpc/index.js");
8
- const getReputationManager = ({ client, parsedArgs, logger }) => {
9
- if (parsedArgs["safe-mode"]) {
10
- return new mempool_1.ReputationManager(client, parsedArgs.entrypoints, BigInt(parsedArgs["min-entity-stake"]), BigInt(parsedArgs["min-entity-unstake-delay"]), logger.child({ module: "reputation_manager" }, {
11
- level: parsedArgs["reputation-manager-log-level"] ||
12
- parsedArgs["log-level"]
13
- }));
8
+ const getReputationManager = (config) => {
9
+ if (config.safeMode) {
10
+ return new mempool_1.ReputationManager(config);
14
11
  }
15
12
  return new mempool_1.NullReputationManager();
16
13
  };
17
- const getValidator = ({ client, parsedArgs, logger, senderManager, metrics, gasPriceManager }) => {
18
- const utilityWalletAddress = parsedArgs["utility-private-key"]?.address ||
19
- "0x4337000c2828F5260d8921fD25829F606b9E8680";
20
- if (parsedArgs["safe-mode"]) {
21
- return new rpc_1.SafeValidator(client, senderManager, logger.child({ module: "rpc" }, {
22
- level: parsedArgs["rpc-log-level"] || parsedArgs["log-level"]
23
- }), metrics, gasPriceManager, parsedArgs["chain-type"], parsedArgs["block-tag-support"], utilityWalletAddress, parsedArgs["binary-search-tolerance-delta"], parsedArgs["binary-search-gas-allowance"], parsedArgs["entrypoint-simulation-contract"], parsedArgs["fixed-gas-limit-for-estimation"], parsedArgs.tenderly, parsedArgs["balance-override"]);
14
+ const getValidator = ({ config, senderManager, metrics, gasPriceManager }) => {
15
+ if (config.safeMode) {
16
+ return new rpc_1.SafeValidator({
17
+ config,
18
+ senderManager,
19
+ metrics,
20
+ gasPriceManager
21
+ });
24
22
  }
25
- return new rpc_1.UnsafeValidator(client, logger.child({ module: "rpc" }, { level: parsedArgs["rpc-log-level"] || parsedArgs["log-level"] }), metrics, gasPriceManager, parsedArgs["chain-type"], parsedArgs["block-tag-support"], utilityWalletAddress, parsedArgs["binary-search-tolerance-delta"], parsedArgs["binary-search-gas-allowance"], parsedArgs["entrypoint-simulation-contract"], parsedArgs["fixed-gas-limit-for-estimation"], parsedArgs.tenderly, parsedArgs["balance-override"], parsedArgs["expiration-check"]);
23
+ return new rpc_1.UnsafeValidator({
24
+ config,
25
+ metrics,
26
+ gasPriceManager
27
+ });
26
28
  };
27
29
  const getMonitor = () => {
28
30
  return new mempool_1.Monitor();
29
31
  };
30
- const getMempool = ({ monitor, reputationManager, validator, client, parsedArgs, logger, metrics, eventManager }) => {
31
- return new mempool_1.MemoryMempool(monitor, reputationManager, validator, client, parsedArgs["safe-mode"], logger.child({ module: "mempool" }, {
32
- level: parsedArgs["mempool-log-level"] || parsedArgs["log-level"]
33
- }), metrics, parsedArgs["mempool-max-parallel-ops"], parsedArgs["mempool-max-queued-ops"], parsedArgs["enforce-unique-senders-per-bundle"], eventManager);
32
+ const getMempool = ({ config, monitor, reputationManager, validator, metrics, eventManager }) => {
33
+ return new mempool_1.MemoryMempool({
34
+ config,
35
+ monitor,
36
+ reputationManager,
37
+ validator,
38
+ metrics,
39
+ eventManager
40
+ });
34
41
  };
35
- const getEventManager = ({ endpoint, chainId, logger, metrics }) => {
36
- return new handlers_1.EventManager(endpoint, chainId, logger, metrics);
42
+ const getEventManager = ({ config, metrics }) => {
43
+ return new handlers_1.EventManager({ config, metrics });
37
44
  };
38
- const getCompressionHandler = async ({ client, parsedArgs }) => {
45
+ const getCompressionHandler = async (config) => {
39
46
  let compressionHandler = null;
40
- if (parsedArgs["bundle-bulker-address"] !== undefined &&
41
- parsedArgs["per-op-inflator-address"] !== undefined) {
42
- compressionHandler = await handlers_1.CompressionHandler.createAsync(parsedArgs["bundle-bulker-address"], parsedArgs["per-op-inflator-address"], client);
47
+ if (config.bundleBulkerAddress !== undefined &&
48
+ config.perOpInflatorAddress !== undefined) {
49
+ compressionHandler = await handlers_1.CompressionHandler.createAsync(config.bundleBulkerAddress, config.perOpInflatorAddress, config.publicClient);
43
50
  }
44
51
  return compressionHandler;
45
52
  };
46
- const getExecutor = ({ client, walletClient, senderManager, reputationManager, parsedArgs, logger, metrics, compressionHandler, gasPriceManager, eventManager }) => {
47
- return new executor_1.Executor(client, walletClient, senderManager, reputationManager, parsedArgs.entrypoints, logger.child({ module: "executor" }, {
48
- level: parsedArgs["executor-log-level"] || parsedArgs["log-level"]
49
- }), metrics, compressionHandler, gasPriceManager, eventManager, !parsedArgs.tenderly, parsedArgs["legacy-transactions"], parsedArgs["fixed-gas-limit-for-estimation"], parsedArgs["block-tag-support"], parsedArgs["local-gas-limit-calculation"], parsedArgs["no-profit-bundling"]);
53
+ const getExecutor = ({ mempool, config, senderManager, reputationManager, metrics, compressionHandler, gasPriceManager, eventManager }) => {
54
+ return new executor_1.Executor({
55
+ mempool,
56
+ config,
57
+ senderManager,
58
+ reputationManager,
59
+ metrics,
60
+ compressionHandler,
61
+ gasPriceManager,
62
+ eventManager
63
+ });
50
64
  };
51
- const getExecutorManager = ({ executor, mempool, monitor, reputationManager, client, parsedArgs, logger, metrics, gasPriceManager, eventManager }) => {
52
- return new executor_1.ExecutorManager(executor, parsedArgs.entrypoints, mempool, monitor, reputationManager, client, parsedArgs["polling-interval"], logger.child({ module: "executor" }, {
53
- level: parsedArgs["executor-log-level"] || parsedArgs["log-level"]
54
- }), metrics, parsedArgs["bundle-mode"], parsedArgs["max-bundle-wait"], parsedArgs["max-gas-per-bundle"], gasPriceManager, eventManager, parsedArgs["aa95-gas-multiplier"], parsedArgs["max-block-range"]);
65
+ const getExecutorManager = ({ config, executor, mempool, monitor, reputationManager, metrics, gasPriceManager, eventManager }) => {
66
+ return new executor_1.ExecutorManager({
67
+ config,
68
+ executor,
69
+ mempool,
70
+ monitor,
71
+ reputationManager,
72
+ metrics,
73
+ gasPriceManager,
74
+ eventManager
75
+ });
55
76
  };
56
- const getNonceQueuer = ({ mempool, client, parsedArgs, logger, eventManager }) => {
57
- return new rpc_1.NonceQueuer(mempool, client, logger.child({ module: "nonce_queuer" }, {
58
- level: parsedArgs["nonce-queuer-log-level"] ||
59
- parsedArgs["log-level"]
60
- }), parsedArgs["block-tag-support"], eventManager);
77
+ const getNonceQueuer = ({ config, mempool, eventManager }) => {
78
+ return new rpc_1.NonceQueuer({
79
+ config,
80
+ mempool,
81
+ eventManager
82
+ });
61
83
  };
62
- const getRpcHandler = ({ client, validator, mempool, executor, monitor, nonceQueuer, executorManager, reputationManager, parsedArgs, logger, metrics, compressionHandler, gasPriceManager, eventManager }) => {
63
- return new rpc_1.RpcHandler(parsedArgs.entrypoints, client, validator, mempool, executor, monitor, nonceQueuer, executorManager, reputationManager, parsedArgs.tenderly ?? false, parsedArgs["max-block-range"], logger.child({ module: "rpc" }, { level: parsedArgs["rpc-log-level"] || parsedArgs["log-level"] }), metrics, parsedArgs["enable-debug-endpoints"], compressionHandler, parsedArgs["legacy-transactions"], gasPriceManager, parsedArgs["gas-price-multipliers"], parsedArgs["chain-type"], parsedArgs["paymaster-gas-limit-multiplier"], eventManager, parsedArgs["enable-instant-bundling-endpoint"], parsedArgs["dangerous-skip-user-operation-validation"]);
84
+ const getRpcHandler = ({ config, validator, mempool, executor, monitor, nonceQueuer, executorManager, reputationManager, metrics, compressionHandler, gasPriceManager, eventManager }) => {
85
+ return new rpc_1.RpcHandler({
86
+ config,
87
+ validator,
88
+ mempool,
89
+ executor,
90
+ monitor,
91
+ nonceQueuer,
92
+ executorManager,
93
+ reputationManager,
94
+ metrics,
95
+ compressionHandler,
96
+ gasPriceManager,
97
+ eventManager
98
+ });
64
99
  };
65
- const getServer = ({ rpcEndpoint, parsedArgs, logger, registry, metrics }) => {
66
- return new rpc_1.Server(rpcEndpoint, parsedArgs["api-version"], parsedArgs["default-api-version"], parsedArgs.port, parsedArgs.timeout, parsedArgs["websocket-max-payload-size"], parsedArgs.websocket, logger.child({ module: "rpc" }, { level: parsedArgs["rpc-log-level"] || parsedArgs["log-level"] }), registry, metrics, parsedArgs["rpc-methods"]);
100
+ const getServer = ({ config, rpcEndpoint, registry, metrics }) => {
101
+ return new rpc_1.Server({
102
+ config,
103
+ rpcEndpoint,
104
+ registry,
105
+ metrics
106
+ });
67
107
  };
68
- const setupServer = async ({ client, walletClient, parsedArgs, logger, rootLogger, registry, metrics, senderManager, gasPriceManager }) => {
108
+ const setupServer = async ({ config, registry, metrics, senderManager, gasPriceManager }) => {
69
109
  const validator = getValidator({
70
- client,
71
- logger,
72
- parsedArgs,
110
+ config,
73
111
  senderManager,
74
112
  metrics,
75
- gasPriceManager,
76
- walletClient
77
- });
78
- const reputationManager = getReputationManager({
79
- client,
80
- parsedArgs,
81
- logger
82
- });
83
- const compressionHandler = await getCompressionHandler({
84
- client,
85
- parsedArgs
113
+ gasPriceManager
86
114
  });
115
+ const reputationManager = getReputationManager(config);
116
+ const compressionHandler = await getCompressionHandler(config);
87
117
  const eventManager = getEventManager({
88
- endpoint: parsedArgs["redis-queue-endpoint"],
89
- chainId: client.chain.id,
90
- logger,
118
+ config,
91
119
  metrics
92
120
  });
93
- if (parsedArgs["refilling-wallets"]) {
94
- await senderManager.validateAndRefillWallets(client, walletClient, parsedArgs["min-executor-balance"]);
121
+ if (config.refillingWallets) {
122
+ await senderManager.validateAndRefillWallets();
95
123
  setInterval(async () => {
96
- await senderManager.validateAndRefillWallets(client, walletClient, parsedArgs["min-executor-balance"]);
97
- }, parsedArgs["executor-refill-interval"] * 1000);
124
+ await senderManager.validateAndRefillWallets();
125
+ }, config.executorRefillInterval * 1000);
98
126
  }
99
127
  const monitor = getMonitor();
100
128
  const mempool = getMempool({
129
+ config,
101
130
  monitor,
102
131
  reputationManager,
103
132
  validator,
104
- client,
105
- parsedArgs,
106
- logger,
107
133
  metrics,
108
134
  eventManager
109
135
  });
110
136
  const executor = getExecutor({
111
- client,
112
- walletClient,
137
+ mempool,
138
+ config,
113
139
  senderManager,
114
140
  reputationManager,
115
- parsedArgs,
116
- logger,
117
141
  metrics,
118
142
  compressionHandler,
119
143
  gasPriceManager,
120
144
  eventManager
121
145
  });
122
146
  const executorManager = getExecutorManager({
147
+ config,
123
148
  executor,
124
149
  mempool,
125
150
  monitor,
126
151
  reputationManager,
127
- client,
128
- parsedArgs,
129
- logger,
130
152
  metrics,
131
153
  gasPriceManager,
132
154
  eventManager
133
155
  });
134
156
  const nonceQueuer = getNonceQueuer({
157
+ config,
135
158
  mempool,
136
- client,
137
- parsedArgs,
138
- logger,
139
159
  eventManager
140
160
  });
141
161
  const rpcEndpoint = getRpcHandler({
142
- client,
162
+ config,
143
163
  validator,
144
164
  mempool,
145
165
  executor,
@@ -147,21 +167,19 @@ const setupServer = async ({ client, walletClient, parsedArgs, logger, rootLogge
147
167
  nonceQueuer,
148
168
  executorManager,
149
169
  reputationManager,
150
- parsedArgs,
151
- logger,
152
170
  metrics,
153
171
  compressionHandler,
154
172
  gasPriceManager,
155
173
  eventManager
156
174
  });
157
- if (parsedArgs["flush-stuck-transactions-during-startup"]) {
175
+ if (config.flushStuckTransactionsDuringStartup) {
158
176
  executor.flushStuckTransactions();
159
177
  }
178
+ const rootLogger = config.getLogger({ module: "root" }, { level: config.logLevel });
160
179
  rootLogger.info(`Initialized ${senderManager.wallets.length} executor wallets`);
161
180
  const server = getServer({
181
+ config,
162
182
  rpcEndpoint,
163
- parsedArgs,
164
- logger,
165
183
  registry,
166
184
  metrics
167
185
  });