@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
@@ -29,6 +29,9 @@ const utils_1 = require("../utils/index.js");
29
29
  const sentry = __importStar(require("@sentry/node"));
30
30
  const viem_1 = require("viem");
31
31
  const chains_1 = require("viem/chains");
32
+ const timedQueue_1 = require("../utils/timedQueue.js");
33
+ const arbitrumGasPriceManager_1 = require("./arbitrumGasPriceManager.js");
34
+ const mantleGasPriceManager_1 = require("./mantleGasPriceManager.js");
32
35
  var ChainId;
33
36
  (function (ChainId) {
34
37
  ChainId[ChainId["Goerli"] = 5] = "Goerli";
@@ -47,111 +50,39 @@ function getGasStationUrl(chainId) {
47
50
  return "https://gasstation-testnet.polygon.technology/v2";
48
51
  }
49
52
  }
50
- class ArbitrumManager {
51
- queueL1BaseFee;
52
- queueL2BaseFee;
53
- maxQueueSize;
54
- queueValidity = 15_000;
55
- constructor(maxQueueSize) {
56
- this.maxQueueSize = maxQueueSize;
57
- this.queueL1BaseFee = [];
58
- this.queueL2BaseFee = [];
59
- }
60
- saveL1BaseFee(baseFee) {
61
- if (baseFee === 0n) {
62
- return;
63
- }
64
- const queue = this.queueL1BaseFee;
65
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
66
- const timestamp = Date.now();
67
- if (!last || timestamp - last.timestamp >= this.queueValidity) {
68
- if (queue.length >= this.maxQueueSize) {
69
- queue.shift();
70
- }
71
- queue.push({ baseFee, timestamp });
72
- }
73
- else if (baseFee < last.baseFee) {
74
- last.baseFee = baseFee;
75
- last.timestamp = timestamp;
76
- }
77
- }
78
- saveL2BaseFee(baseFee) {
79
- if (baseFee === 0n) {
80
- return;
81
- }
82
- const queue = this.queueL2BaseFee;
83
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
84
- const timestamp = Date.now();
85
- if (!last || timestamp - last.timestamp >= this.queueValidity) {
86
- if (queue.length >= this.maxQueueSize) {
87
- queue.shift();
88
- }
89
- queue.push({ baseFee, timestamp });
90
- }
91
- else if (baseFee < last.baseFee) {
92
- last.baseFee = baseFee;
93
- last.timestamp = timestamp;
94
- }
95
- }
96
- async getMinL1BaseFee() {
97
- const queue = this.queueL1BaseFee;
98
- if (queue.length === 0) {
99
- return 1n;
100
- }
101
- return queue.reduce((acc, cur) => (0, utils_1.minBigInt)(cur.baseFee, acc), queue[0].baseFee);
102
- }
103
- async getMaxL1BaseFee() {
104
- const queue = this.queueL1BaseFee;
105
- if (queue.length === 0) {
106
- return viem_1.maxUint128;
107
- }
108
- return queue.reduce((acc, cur) => (0, utils_1.maxBigInt)(cur.baseFee, acc), queue[0].baseFee);
109
- }
110
- async getMaxL2BaseFee() {
111
- const queue = this.queueL2BaseFee;
112
- if (queue.length === 0) {
113
- return viem_1.maxUint128;
114
- }
115
- return queue.reduce((acc, cur) => (0, utils_1.maxBigInt)(cur.baseFee, acc), queue[0].baseFee);
116
- }
117
- }
118
53
  class GasPriceManager {
119
- chain;
120
- publicClient;
121
- legacyTransactions;
54
+ config;
55
+ baseFeePerGasQueue;
56
+ maxFeePerGasQueue;
57
+ maxPriorityFeePerGasQueue;
122
58
  logger;
123
- queueBaseFeePerGas = []; // Store pairs of [price, timestamp]
124
- queueMaxFeePerGas = []; // Store pairs of [price, timestamp]
125
- queueMaxPriorityFeePerGas = []; // Store pairs of [price, timestamp]
126
- maxQueueSize;
127
- gasBumpMultiplier;
128
- gasPriceRefreshIntervalInSeconds;
129
- chainType;
130
59
  arbitrumManager;
131
- constructor(chain, publicClient, legacyTransactions, logger, gasBumpMultiplier, gasPriceTimeValidityInSeconds, gasPriceRefreshIntervalInSeconds, chainType) {
132
- this.maxQueueSize = gasPriceTimeValidityInSeconds;
133
- this.chain = chain;
134
- this.publicClient = publicClient;
135
- this.legacyTransactions = legacyTransactions;
136
- this.logger = logger;
137
- this.gasBumpMultiplier = gasBumpMultiplier;
138
- this.gasPriceRefreshIntervalInSeconds = gasPriceRefreshIntervalInSeconds;
139
- this.chainType = chainType;
60
+ mantleManager;
61
+ constructor(config) {
62
+ this.config = config;
63
+ this.logger = config.getLogger({ module: "gas_price_manager" }, {
64
+ level: config.publicClientLogLevel || config.logLevel
65
+ });
66
+ const queueValidity = this.config.gasPriceExpiry * 1_000;
67
+ this.baseFeePerGasQueue = new timedQueue_1.TimedQueue(queueValidity);
68
+ this.maxFeePerGasQueue = new timedQueue_1.TimedQueue(queueValidity);
69
+ this.maxPriorityFeePerGasQueue = new timedQueue_1.TimedQueue(queueValidity);
140
70
  // Periodically update gas prices if specified
141
- if (this.gasPriceRefreshIntervalInSeconds > 0) {
71
+ if (this.config.gasPriceRefreshInterval > 0) {
142
72
  setInterval(() => {
143
- if (this.legacyTransactions === false) {
73
+ if (this.config.legacyTransactions === false) {
144
74
  this.updateBaseFee();
145
75
  }
146
- this.updateGasPrice();
147
- }, this.gasPriceRefreshIntervalInSeconds * 1000);
76
+ this.tryUpdateGasPrice();
77
+ }, this.config.gasPriceRefreshInterval * 1000);
148
78
  }
149
- this.arbitrumManager = new ArbitrumManager(this.maxQueueSize);
79
+ this.arbitrumManager = new arbitrumGasPriceManager_1.ArbitrumManager(queueValidity);
80
+ this.mantleManager = new mantleGasPriceManager_1.MantleManager(queueValidity);
150
81
  }
151
82
  init() {
152
83
  return Promise.all([
153
- this.updateGasPrice(),
154
- this.legacyTransactions === false
84
+ this.tryUpdateGasPrice(),
85
+ this.config.legacyTransactions === false
155
86
  ? this.updateBaseFee()
156
87
  : Promise.resolve()
157
88
  ]);
@@ -167,7 +98,7 @@ class GasPriceManager {
167
98
  }
168
99
  }
169
100
  async getPolygonGasPriceParameters() {
170
- const gasStationUrl = getGasStationUrl(this.chain.id);
101
+ const gasStationUrl = getGasStationUrl(this.config.publicClient.chain.id);
171
102
  try {
172
103
  const data = await (await fetch(gasStationUrl)).json();
173
104
  // take the standard speed here, SDK options will define the extra tip
@@ -180,21 +111,22 @@ class GasPriceManager {
180
111
  }
181
112
  }
182
113
  bumpTheGasPrice(gasPriceParameters) {
183
- const bumpAmount = this.gasBumpMultiplier;
184
- const maxPriorityFeePerGas = (0, utils_1.maxBigInt)(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.chain.id));
114
+ const bumpAmount = this.config.gasPriceBump;
115
+ const maxPriorityFeePerGas = (0, utils_1.maxBigInt)(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.config.publicClient.chain.id));
185
116
  const maxFeePerGas = (0, utils_1.maxBigInt)(gasPriceParameters.maxFeePerGas, maxPriorityFeePerGas);
186
117
  const result = {
187
118
  maxFeePerGas: (maxFeePerGas * bumpAmount) / 100n,
188
119
  maxPriorityFeePerGas: (maxPriorityFeePerGas * bumpAmount) / 100n
189
120
  };
190
- if (this.chain.id === chains_1.celo.id || this.chain.id === chains_1.celoAlfajores.id) {
121
+ if (this.config.publicClient.chain.id === chains_1.celo.id ||
122
+ this.config.publicClient.chain.id === chains_1.celoAlfajores.id) {
191
123
  const maxFee = (0, utils_1.maxBigInt)(result.maxFeePerGas, result.maxPriorityFeePerGas);
192
124
  return {
193
125
  maxFeePerGas: maxFee,
194
126
  maxPriorityFeePerGas: maxFee
195
127
  };
196
128
  }
197
- if (this.chain.id === chains_1.dfk.id) {
129
+ if (this.config.publicClient.chain.id === chains_1.dfk.id) {
198
130
  const maxFeePerGas = (0, utils_1.maxBigInt)(5000000000n, result.maxFeePerGas);
199
131
  const maxPriorityFeePerGas = (0, utils_1.maxBigInt)(5000000000n, result.maxPriorityFeePerGas);
200
132
  return {
@@ -203,7 +135,7 @@ class GasPriceManager {
203
135
  };
204
136
  }
205
137
  // set a minimum maxPriorityFee & maxFee to 1.5gwei on avalanche (because eth_maxPriorityFeePerGas returns 0)
206
- if (this.chain.id === chains_1.avalanche.id) {
138
+ if (this.config.publicClient.chain.id === chains_1.avalanche.id) {
207
139
  const maxFeePerGas = (0, utils_1.maxBigInt)((0, viem_1.parseGwei)("1.5"), result.maxFeePerGas);
208
140
  const maxPriorityFeePerGas = (0, utils_1.maxBigInt)((0, viem_1.parseGwei)("1.5"), result.maxPriorityFeePerGas);
209
141
  return {
@@ -225,30 +157,11 @@ class GasPriceManager {
225
157
  const feeAverage = feeHistory.reward.reduce((acc, cur) => cur[0] + acc, 0n) / 10n;
226
158
  return (0, utils_1.minBigInt)(feeAverage, gasPrice);
227
159
  }
228
- async getNextBaseFee(publicClient) {
229
- const block = await publicClient.getBlock({
230
- blockTag: "latest"
231
- });
232
- const currentBaseFeePerGas = block.baseFeePerGas || (await publicClient.getGasPrice());
233
- const currentGasUsed = block.gasUsed;
234
- const gasTarget = block.gasLimit / 2n;
235
- if (currentGasUsed === gasTarget) {
236
- return currentBaseFeePerGas;
237
- }
238
- if (currentGasUsed > gasTarget) {
239
- const gasUsedDelta = currentGasUsed - gasTarget;
240
- const baseFeePerGasDelta = (0, utils_1.maxBigInt)((currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n, 1n);
241
- return currentBaseFeePerGas + baseFeePerGasDelta;
242
- }
243
- const gasUsedDelta = currentGasUsed - gasTarget;
244
- const baseFeePerGasDelta = (currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n;
245
- return currentBaseFeePerGas - baseFeePerGasDelta;
246
- }
247
160
  async getLegacyTransactionGasPrice() {
248
161
  let gasPrice;
249
162
  try {
250
- const gasInfo = await this.publicClient.estimateFeesPerGas({
251
- chain: this.chain,
163
+ const gasInfo = await this.config.publicClient.estimateFeesPerGas({
164
+ chain: this.config.publicClient.chain,
252
165
  type: "legacy"
253
166
  });
254
167
  gasPrice = gasInfo.gasPrice;
@@ -261,7 +174,7 @@ class GasPriceManager {
261
174
  if (gasPrice === undefined) {
262
175
  this.logger.warn("gasPrice is undefined, using fallback value");
263
176
  try {
264
- gasPrice = await this.publicClient.getGasPrice();
177
+ gasPrice = await this.config.publicClient.getGasPrice();
265
178
  }
266
179
  catch (e) {
267
180
  this.logger.error("failed to get fallback gasPrice");
@@ -278,8 +191,8 @@ class GasPriceManager {
278
191
  let maxFeePerGas;
279
192
  let maxPriorityFeePerGas;
280
193
  try {
281
- const fees = await this.publicClient.estimateFeesPerGas({
282
- chain: this.chain
194
+ const fees = await this.config.publicClient.estimateFeesPerGas({
195
+ chain: this.config.publicClient.chain
283
196
  });
284
197
  maxFeePerGas = fees.maxFeePerGas;
285
198
  maxPriorityFeePerGas = fees.maxPriorityFeePerGas;
@@ -294,7 +207,7 @@ class GasPriceManager {
294
207
  this.logger.warn("maxPriorityFeePerGas is undefined, using fallback value");
295
208
  try {
296
209
  maxPriorityFeePerGas =
297
- await this.getFallBackMaxPriorityFeePerGas(this.publicClient, maxFeePerGas ?? 0n);
210
+ await this.getFallBackMaxPriorityFeePerGas(this.config.publicClient, maxFeePerGas ?? 0n);
298
211
  }
299
212
  catch (e) {
300
213
  this.logger.error("failed to get fallback maxPriorityFeePerGas");
@@ -306,7 +219,7 @@ class GasPriceManager {
306
219
  this.logger.warn("maxFeePerGas is undefined, using fallback value");
307
220
  try {
308
221
  maxFeePerGas =
309
- (await this.getNextBaseFee(this.publicClient)) +
222
+ (await this.config.publicClient.getGasPrice()) +
310
223
  maxPriorityFeePerGas;
311
224
  }
312
225
  catch (e) {
@@ -320,60 +233,12 @@ class GasPriceManager {
320
233
  }
321
234
  return { maxFeePerGas, maxPriorityFeePerGas };
322
235
  }
323
- saveBaseFeePerGas(gasPrice, timestamp) {
324
- const queue = this.queueBaseFeePerGas;
325
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
326
- if (!last || timestamp - last.timestamp >= 1000) {
327
- if (queue.length >= this.maxQueueSize) {
328
- queue.shift();
329
- }
330
- queue.push({ baseFeePerGas: gasPrice, timestamp });
331
- }
332
- else if (gasPrice < last.baseFeePerGas) {
333
- last.baseFeePerGas = gasPrice;
334
- last.timestamp = timestamp;
335
- }
336
- }
337
- saveMaxFeePerGas(gasPrice, timestamp) {
338
- const queue = this.queueMaxFeePerGas;
339
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
340
- if (!last || timestamp - last.timestamp >= 1000) {
341
- if (queue.length >= this.maxQueueSize) {
342
- queue.shift();
343
- }
344
- queue.push({ maxFeePerGas: gasPrice, timestamp });
345
- }
346
- else if (gasPrice < last.maxFeePerGas) {
347
- last.maxFeePerGas = gasPrice;
348
- last.timestamp = timestamp;
349
- }
350
- }
351
- saveMaxPriorityFeePerGas(gasPrice, timestamp) {
352
- const queue = this.queueMaxPriorityFeePerGas;
353
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
354
- if (!last || timestamp - last.timestamp >= 1000) {
355
- if (queue.length >= this.maxQueueSize) {
356
- queue.shift();
357
- }
358
- queue.push({ maxPriorityFeePerGas: gasPrice, timestamp });
359
- }
360
- else if (gasPrice < last.maxPriorityFeePerGas) {
361
- last.maxPriorityFeePerGas = gasPrice;
362
- last.timestamp = timestamp;
363
- }
364
- }
365
- saveGasPrice(gasPrice, timestamp) {
366
- return new Promise((resolve) => {
367
- this.saveMaxFeePerGas(gasPrice.maxFeePerGas, timestamp);
368
- this.saveMaxPriorityFeePerGas(gasPrice.maxPriorityFeePerGas, timestamp);
369
- resolve();
370
- });
371
- }
236
+ // This method throws if it can't get a valid RPC response.
372
237
  async innerGetGasPrice() {
373
238
  let maxFeePerGas = 0n;
374
239
  let maxPriorityFeePerGas = 0n;
375
- if (this.chain.id === chains_1.polygon.id ||
376
- this.chain.id === chains_1.polygonMumbai.id) {
240
+ if (this.config.publicClient.chain.id === chains_1.polygon.id ||
241
+ this.config.publicClient.chain.id === chains_1.polygonMumbai.id) {
377
242
  const polygonEstimate = await this.getPolygonGasPriceParameters();
378
243
  if (polygonEstimate) {
379
244
  const gasPrice = this.bumpTheGasPrice({
@@ -386,7 +251,7 @@ class GasPriceManager {
386
251
  };
387
252
  }
388
253
  }
389
- if (this.legacyTransactions) {
254
+ if (this.config.legacyTransactions) {
390
255
  const gasPrice = this.bumpTheGasPrice(await this.getLegacyTransactionGasPrice());
391
256
  return {
392
257
  maxFeePerGas: (0, utils_1.maxBigInt)(gasPrice.maxFeePerGas, maxFeePerGas),
@@ -406,65 +271,79 @@ class GasPriceManager {
406
271
  };
407
272
  }
408
273
  async updateBaseFee() {
409
- const latestBlock = await this.publicClient.getBlock();
274
+ const latestBlock = await this.config.publicClient.getBlock();
410
275
  if (latestBlock.baseFeePerGas === null) {
411
276
  throw new types_1.RpcError("block does not have baseFeePerGas");
412
277
  }
413
278
  const baseFee = latestBlock.baseFeePerGas;
414
- this.saveBaseFeePerGas(baseFee, Date.now());
279
+ this.baseFeePerGasQueue.saveValue(baseFee);
415
280
  return baseFee;
416
281
  }
417
- getBaseFee() {
418
- if (this.legacyTransactions) {
282
+ async getBaseFee() {
283
+ if (this.config.legacyTransactions) {
419
284
  throw new types_1.RpcError("baseFee is not available for legacy transactions");
420
285
  }
421
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
422
- return this.updateBaseFee();
286
+ if (this.config.gasPriceRefreshInterval === 0) {
287
+ return await this.updateBaseFee();
288
+ }
289
+ let baseFee = this.baseFeePerGasQueue.getLatestValue();
290
+ if (!baseFee) {
291
+ baseFee = await this.updateBaseFee();
423
292
  }
424
- const { baseFeePerGas } = this.queueBaseFeePerGas[this.queueBaseFeePerGas.length - 1];
425
- return baseFeePerGas;
293
+ return baseFee;
426
294
  }
427
- async updateGasPrice() {
295
+ // This method throws if it can't get a valid RPC response.
296
+ async tryUpdateGasPrice() {
428
297
  const gasPrice = await this.innerGetGasPrice();
429
- this.saveGasPrice({
430
- maxFeePerGas: gasPrice.maxFeePerGas,
431
- maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas
432
- }, Date.now());
298
+ this.maxFeePerGasQueue.saveValue(gasPrice.maxFeePerGas);
299
+ this.maxPriorityFeePerGasQueue.saveValue(gasPrice.maxPriorityFeePerGas);
433
300
  return gasPrice;
434
301
  }
435
- getGasPrice() {
436
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
437
- return this.updateGasPrice();
302
+ async getGasPrice() {
303
+ if (this.config.gasPriceRefreshInterval === 0) {
304
+ return await this.tryUpdateGasPrice();
305
+ }
306
+ const maxFeePerGas = this.maxFeePerGasQueue.getLatestValue();
307
+ const maxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getLatestValue();
308
+ if (!maxFeePerGas || !maxPriorityFeePerGas) {
309
+ throw new types_1.RpcError("No gas price available");
438
310
  }
439
- const { maxPriorityFeePerGas } = this.queueMaxPriorityFeePerGas[this.queueMaxPriorityFeePerGas.length - 1];
440
- const { maxFeePerGas } = this.queueMaxFeePerGas[this.queueMaxFeePerGas.length - 1];
441
311
  return {
442
312
  maxFeePerGas,
443
313
  maxPriorityFeePerGas
444
314
  };
445
315
  }
316
+ // This method throws if it can't get a valid RPC response.
317
+ async tryGetNetworkGasPrice() {
318
+ return await this.innerGetGasPrice();
319
+ }
446
320
  async getMaxBaseFeePerGas() {
447
- if (this.queueBaseFeePerGas.length === 0) {
448
- await this.getBaseFee();
321
+ let maxBaseFeePerGas = this.baseFeePerGasQueue.getMaxValue();
322
+ if (!maxBaseFeePerGas) {
323
+ maxBaseFeePerGas = await this.getBaseFee();
449
324
  }
450
- return this.queueBaseFeePerGas.reduce((acc, cur) => (0, utils_1.maxBigInt)(cur.baseFeePerGas, acc), this.queueBaseFeePerGas[0].baseFeePerGas);
325
+ return maxBaseFeePerGas;
451
326
  }
452
327
  async getMinMaxFeePerGas() {
453
- if (this.queueMaxFeePerGas.length === 0) {
454
- await this.getGasPrice();
328
+ let minMaxFeePerGas = this.maxFeePerGasQueue.getMinValue();
329
+ if (!minMaxFeePerGas) {
330
+ const gasPrice = await this.getGasPrice();
331
+ minMaxFeePerGas = gasPrice.maxFeePerGas;
455
332
  }
456
- return this.queueMaxFeePerGas.reduce((acc, cur) => (0, utils_1.minBigInt)(cur.maxFeePerGas, acc), this.queueMaxFeePerGas[0].maxFeePerGas);
333
+ return minMaxFeePerGas;
457
334
  }
458
335
  async getMinMaxPriorityFeePerGas() {
459
- if (this.queueMaxPriorityFeePerGas.length === 0) {
460
- await this.getGasPrice();
336
+ let minMaxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getMinValue();
337
+ if (!minMaxPriorityFeePerGas) {
338
+ const gasPrices = await this.getGasPrice();
339
+ minMaxPriorityFeePerGas = gasPrices.maxPriorityFeePerGas;
461
340
  }
462
- return this.queueMaxPriorityFeePerGas.reduce((acc, cur) => (0, utils_1.minBigInt)(cur.maxPriorityFeePerGas, acc), this.queueMaxPriorityFeePerGas[0].maxPriorityFeePerGas);
341
+ return minMaxPriorityFeePerGas;
463
342
  }
464
343
  async validateGasPrice(gasPrice) {
465
344
  let lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
466
345
  let lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
467
- if (this.chainType === "hedera") {
346
+ if (this.config.chainType === "hedera") {
468
347
  lowestMaxFeePerGas /= 10n ** 9n;
469
348
  lowestMaxPriorityFeePerGas /= 10n ** 9n;
470
349
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gasPriceManager.js","sourceRoot":"","sources":["../../handlers/gasPriceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gasPriceManager.js","sourceRoot":"","sources":["../../handlers/gasPriceManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class MantleManager {
2
+ private tokenRatioQueue;
3
+ private scalarQueue;
4
+ private rollupDataGasAndOverheadQueue;
5
+ private l1GasPriceQueue;
6
+ constructor(queueValidity: number);
7
+ getMinMantleOracleValues(): {
8
+ minTokenRatio: bigint;
9
+ minScalar: bigint;
10
+ minRollupDataGasAndOverhead: bigint;
11
+ minL1GasPrice: bigint;
12
+ };
13
+ saveMantleOracleValues({ tokenRatio, scalar, rollupDataGasAndOverhead, l1GasPrice }: {
14
+ tokenRatio: bigint;
15
+ scalar: bigint;
16
+ rollupDataGasAndOverhead: bigint;
17
+ l1GasPrice: bigint;
18
+ }): void;
19
+ }
20
+ //# sourceMappingURL=mantleGasPriceManager.d.ts.map
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MantleManager = void 0;
4
+ const timedQueue_1 = require("../utils/timedQueue.js");
5
+ class MantleManager {
6
+ tokenRatioQueue;
7
+ scalarQueue;
8
+ rollupDataGasAndOverheadQueue;
9
+ l1GasPriceQueue;
10
+ constructor(queueValidity) {
11
+ this.tokenRatioQueue = new timedQueue_1.TimedQueue(queueValidity);
12
+ this.scalarQueue = new timedQueue_1.TimedQueue(queueValidity);
13
+ this.rollupDataGasAndOverheadQueue = new timedQueue_1.TimedQueue(queueValidity);
14
+ this.l1GasPriceQueue = new timedQueue_1.TimedQueue(queueValidity);
15
+ }
16
+ getMinMantleOracleValues() {
17
+ return {
18
+ minTokenRatio: this.tokenRatioQueue.getMinValue() || 1n,
19
+ minScalar: this.scalarQueue.getMinValue() || 1n,
20
+ minRollupDataGasAndOverhead: this.rollupDataGasAndOverheadQueue.getMinValue() || 1n,
21
+ minL1GasPrice: this.l1GasPriceQueue.getMinValue() || 1n
22
+ };
23
+ }
24
+ saveMantleOracleValues({ tokenRatio, scalar, rollupDataGasAndOverhead, l1GasPrice }) {
25
+ this.tokenRatioQueue.saveValue(tokenRatio);
26
+ this.scalarQueue.saveValue(scalar);
27
+ this.rollupDataGasAndOverheadQueue.saveValue(rollupDataGasAndOverhead);
28
+ this.l1GasPriceQueue.saveValue(l1GasPrice);
29
+ }
30
+ }
31
+ exports.MantleManager = MantleManager;
32
+ //# sourceMappingURL=mantleGasPriceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mantleGasPriceManager.js","sourceRoot":"","sources":["../../handlers/mantleGasPriceManager.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD,MAAa,aAAa;IACd,eAAe,CAAY;IAC3B,WAAW,CAAY;IACvB,6BAA6B,CAAY;IACzC,eAAe,CAAY;IAEnC,YAAY,aAAqB;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAA;QAChD,IAAI,CAAC,6BAA6B,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAA;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAA;IACxD,CAAC;IAEM,wBAAwB;QAC3B,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE;YACvD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE;YAC/C,2BAA2B,EACvB,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,IAAI,EAAE;YAC1D,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE;SAC1D,CAAA;IACL,CAAC;IAEM,sBAAsB,CAAC,EAC1B,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,UAAU,EAMb;QACG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC1C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QACtE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;CACJ;AAvCD,sCAuCC"}
@@ -1,25 +1,28 @@
1
- import type { Metrics } from "../utils/index.js";
1
+ import type { EventManager } from "../handlers/index.js";
2
2
  import { type InterfaceValidator, type MempoolUserOperation, type ReferencedCodeHashes, type StorageMap, type SubmittedUserOperation, type TransactionInfo, type UserOperation, type UserOperationInfo } from "../types/index.js";
3
3
  import type { HexData32 } from "../types/index.js";
4
- import type { Logger } from "../utils/index.js";
5
- import type { EventManager } from "../handlers/index.js";
6
- import { type Address, type Chain, type PublicClient, type Transport } from "viem";
4
+ import type { Metrics } from "../utils/index.js";
5
+ import { type Address } from "viem";
7
6
  import type { Monitor } from "./monitoring.js";
8
7
  import { type InterfaceReputationManager } from "./reputationManager.js";
8
+ import type { AltoConfig } from "../createConfig.js";
9
9
  export declare class MemoryMempool {
10
+ private config;
10
11
  private monitor;
11
- private publicClient;
12
12
  private reputationManager;
13
13
  private store;
14
14
  private throttledEntityBundleCount;
15
15
  private logger;
16
16
  private validator;
17
- private safeMode;
18
- private parallelUserOpsMaxSize;
19
- private queuedUserOpsMaxSize;
20
- private onlyUniqueSendersPerBundle;
21
17
  private eventManager;
22
- constructor(monitor: Monitor, reputationManager: InterfaceReputationManager, validator: InterfaceValidator, publicClient: PublicClient<Transport, Chain>, safeMode: boolean, logger: Logger, metrics: Metrics, parallelUserOpsMaxSize: number, queuedUserOpsMaxSize: number, onlyUniqueSendersPerBundle: boolean, eventManager: EventManager, throttledEntityBundleCount?: number);
18
+ constructor({ config, monitor, reputationManager, validator, metrics, eventManager }: {
19
+ config: AltoConfig;
20
+ monitor: Monitor;
21
+ reputationManager: InterfaceReputationManager;
22
+ validator: InterfaceValidator;
23
+ metrics: Metrics;
24
+ eventManager: EventManager;
25
+ });
23
26
  replaceSubmitted(userOperation: UserOperationInfo, transactionInfo: TransactionInfo): void;
24
27
  markSubmitted(userOpHash: `0x${string}`, transactionInfo: TransactionInfo): void;
25
28
  dumpOutstanding(): UserOperationInfo[];