@pimlico/alto 0.0.7 → 0.0.8

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 (258) 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 +296 -272
  4. package/esm/cli/config/bundler.js +15 -7
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.js +32 -8
  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 +26 -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 +67 -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 +98 -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 +29 -13
  28. package/esm/executor/executor.js +110 -72
  29. package/esm/executor/executor.js.map +1 -1
  30. package/esm/executor/executorManager.d.ts +14 -10
  31. package/esm/executor/executorManager.js +29 -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 +25 -32
  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 +13 -40
  49. package/esm/handlers/gasPriceManager.js +81 -205
  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 +6 -6
  62. package/esm/rpc/estimation/gasEstimationHandler.js +13 -29
  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 +76 -45
  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 +49 -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 +75 -68
  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 +26 -0
  103. package/esm/types/contracts/OpL1FeeAbi.js +29 -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/schemas.d.ts +26 -26
  113. package/esm/types/schemas.js +3 -3
  114. package/esm/types/schemas.js.map +1 -1
  115. package/esm/types/utils.d.ts +1 -1
  116. package/esm/utils/bigInt.js +2 -2
  117. package/esm/utils/bigInt.js.map +1 -1
  118. package/esm/utils/helpers.js +1 -1
  119. package/esm/utils/helpers.js.map +1 -1
  120. package/esm/utils/rpc-reply.d.ts +1 -1
  121. package/esm/utils/timedQueue.d.ts +12 -0
  122. package/esm/utils/timedQueue.js +51 -0
  123. package/esm/utils/timedQueue.js.map +1 -0
  124. package/esm/utils/userop.d.ts +2 -2
  125. package/esm/utils/userop.js +2 -2
  126. package/esm/utils/userop.js.map +1 -1
  127. package/esm/utils/validation.d.ts +13 -5
  128. package/esm/utils/validation.js +104 -133
  129. package/esm/utils/validation.js.map +1 -1
  130. package/lib/cli/alto.js +2 -0
  131. package/lib/cli/alto.js.map +1 -1
  132. package/lib/cli/config/bundler.d.ts +296 -272
  133. package/lib/cli/config/bundler.js +14 -6
  134. package/lib/cli/config/bundler.js.map +1 -1
  135. package/lib/cli/config/options.js +32 -8
  136. package/lib/cli/config/options.js.map +1 -1
  137. package/lib/cli/customTransport.js +38 -5
  138. package/lib/cli/customTransport.js.map +1 -1
  139. package/lib/cli/deploySimulationsContract.d.ts +8 -0
  140. package/lib/cli/deploySimulationsContract.js +30 -0
  141. package/lib/cli/deploySimulationsContract.js.map +1 -0
  142. package/lib/cli/handler.d.ts +2 -2
  143. package/lib/cli/handler.js +66 -88
  144. package/lib/cli/handler.js.map +1 -1
  145. package/lib/cli/instrumentation.js +4 -2
  146. package/lib/cli/instrumentation.js.map +1 -1
  147. package/lib/cli/parseArgs.d.ts +8 -0
  148. package/lib/cli/parseArgs.js +25 -0
  149. package/lib/cli/parseArgs.js.map +1 -0
  150. package/lib/cli/setupServer.d.ts +4 -9
  151. package/lib/cli/setupServer.js +98 -82
  152. package/lib/cli/setupServer.js.map +1 -1
  153. package/lib/createConfig.d.ts +15 -0
  154. package/lib/createConfig.js +12 -0
  155. package/lib/createConfig.js.map +1 -0
  156. package/lib/executor/executor.d.ts +29 -13
  157. package/lib/executor/executor.js +106 -68
  158. package/lib/executor/executor.js.map +1 -1
  159. package/lib/executor/executorManager.d.ts +14 -10
  160. package/lib/executor/executorManager.js +27 -37
  161. package/lib/executor/executorManager.js.map +1 -1
  162. package/lib/executor/senderManager.d.ts +11 -6
  163. package/lib/executor/senderManager.js +25 -32
  164. package/lib/executor/senderManager.js.map +1 -1
  165. package/lib/executor/utilityWalletMonitor.d.ts +9 -5
  166. package/lib/executor/utilityWalletMonitor.js +8 -8
  167. package/lib/executor/utilityWalletMonitor.js.map +1 -1
  168. package/lib/executor/utils.d.ts +2 -1
  169. package/lib/executor/utils.js +9 -3
  170. package/lib/executor/utils.js.map +1 -1
  171. package/lib/handlers/arbitrumGasPriceManager.d.ts +11 -0
  172. package/lib/handlers/arbitrumGasPriceManager.js +33 -0
  173. package/lib/handlers/arbitrumGasPriceManager.js.map +1 -0
  174. package/lib/handlers/eventManager.d.ts +7 -3
  175. package/lib/handlers/eventManager.js +24 -16
  176. package/lib/handlers/eventManager.js.map +1 -1
  177. package/lib/handlers/gasPriceManager.d.ts +13 -40
  178. package/lib/handlers/gasPriceManager.js +79 -203
  179. package/lib/handlers/gasPriceManager.js.map +1 -1
  180. package/lib/handlers/mantleGasPriceManager.d.ts +20 -0
  181. package/lib/handlers/mantleGasPriceManager.js +32 -0
  182. package/lib/handlers/mantleGasPriceManager.js.map +1 -0
  183. package/lib/mempool/mempool.d.ts +13 -10
  184. package/lib/mempool/mempool.js +28 -25
  185. package/lib/mempool/mempool.js.map +1 -1
  186. package/lib/mempool/reputationManager.d.ts +4 -6
  187. package/lib/mempool/reputationManager.js +25 -29
  188. package/lib/mempool/reputationManager.js.map +1 -1
  189. package/lib/mempool/store.d.ts +1 -1
  190. package/lib/rpc/estimation/gasEstimationHandler.d.ts +6 -6
  191. package/lib/rpc/estimation/gasEstimationHandler.js +14 -30
  192. package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -1
  193. package/lib/rpc/estimation/gasEstimationsV06.d.ts +7 -7
  194. package/lib/rpc/estimation/gasEstimationsV06.js +75 -44
  195. package/lib/rpc/estimation/gasEstimationsV06.js.map +1 -1
  196. package/lib/rpc/estimation/gasEstimationsV07.d.ts +7 -12
  197. package/lib/rpc/estimation/gasEstimationsV07.js +48 -36
  198. package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -1
  199. package/lib/rpc/nonceQueuer.d.ts +10 -6
  200. package/lib/rpc/nonceQueuer.js +9 -9
  201. package/lib/rpc/nonceQueuer.js.map +1 -1
  202. package/lib/rpc/rpcHandler.d.ts +19 -16
  203. package/lib/rpc/rpcHandler.js +74 -67
  204. package/lib/rpc/rpcHandler.js.map +1 -1
  205. package/lib/rpc/server.d.ts +9 -7
  206. package/lib/rpc/server.js +26 -24
  207. package/lib/rpc/server.js.map +1 -1
  208. package/lib/rpc/validation/SafeValidator.d.ts +11 -6
  209. package/lib/rpc/validation/SafeValidator.js +13 -10
  210. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  211. package/lib/rpc/validation/TracerResultParserV06.d.ts +1 -1
  212. package/lib/rpc/validation/TracerResultParserV07.d.ts +1 -1
  213. package/lib/rpc/validation/TracerResultParserV07.js +1 -1
  214. package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
  215. package/lib/rpc/validation/UnsafeValidator.d.ts +11 -12
  216. package/lib/rpc/validation/UnsafeValidator.js +28 -29
  217. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  218. package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +32 -0
  219. package/lib/types/contracts/ArbitrumL1FeeAbi.js +45 -0
  220. package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +1 -0
  221. package/lib/types/contracts/EntryPointSimulationsV6.d.ts +34 -0
  222. package/lib/types/contracts/EntryPointSimulationsV6.js +51 -0
  223. package/lib/types/contracts/EntryPointSimulationsV6.js.map +1 -0
  224. package/lib/types/contracts/{EntryPointSimulations.d.ts → EntryPointSimulationsV7.d.ts} +1 -9
  225. package/lib/types/contracts/{EntryPointSimulations.js → EntryPointSimulationsV7.js} +2 -14
  226. package/lib/types/contracts/EntryPointSimulationsV7.js.map +1 -0
  227. package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +219 -0
  228. package/lib/types/contracts/MantleBvmGasPriceOracle.js +180 -0
  229. package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +1 -0
  230. package/lib/types/contracts/OpL1FeeAbi.d.ts +26 -0
  231. package/lib/types/contracts/OpL1FeeAbi.js +32 -0
  232. package/lib/types/contracts/OpL1FeeAbi.js.map +1 -0
  233. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  234. package/lib/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  235. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  236. package/lib/types/contracts/index.d.ts +5 -1
  237. package/lib/types/contracts/index.js +5 -1
  238. package/lib/types/contracts/index.js.map +1 -1
  239. package/lib/types/interfaces.d.ts +2 -2
  240. package/lib/types/schemas.d.ts +26 -26
  241. package/lib/types/schemas.js +3 -3
  242. package/lib/types/schemas.js.map +1 -1
  243. package/lib/types/utils.d.ts +1 -1
  244. package/lib/utils/bigInt.js +2 -2
  245. package/lib/utils/bigInt.js.map +1 -1
  246. package/lib/utils/rpc-reply.d.ts +1 -1
  247. package/lib/utils/timedQueue.d.ts +12 -0
  248. package/lib/utils/timedQueue.js +55 -0
  249. package/lib/utils/timedQueue.js.map +1 -0
  250. package/lib/utils/userop.d.ts +2 -2
  251. package/lib/utils/userop.js +1 -1
  252. package/lib/utils/userop.js.map +1 -1
  253. package/lib/utils/validation.d.ts +13 -5
  254. package/lib/utils/validation.js +107 -135
  255. package/lib/utils/validation.js.map +1 -1
  256. package/package.json +1 -1
  257. package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
  258. package/lib/types/contracts/EntryPointSimulations.js.map +0 -1
@@ -1,8 +1,11 @@
1
1
  import { RpcError, gasStationResult } from "../types/index.js";
2
2
  import { maxBigInt, minBigInt } from "../utils/index.js";
3
3
  import * as sentry from "@sentry/node";
4
- import { parseGwei, maxUint128 } from "viem";
5
- import { celo, celoAlfajores, dfk, avalanche, polygon, polygonMumbai } from "viem/chains";
4
+ import { parseGwei } from "viem";
5
+ import { avalanche, celo, celoAlfajores, dfk, polygon, polygonMumbai } from "viem/chains";
6
+ import { TimedQueue } from "../utils/timedQueue.js";
7
+ import { ArbitrumManager } from "./arbitrumGasPriceManager.js";
8
+ import { MantleManager } from "./mantleGasPriceManager.js";
6
9
  var ChainId;
7
10
  (function (ChainId) {
8
11
  ChainId[ChainId["Goerli"] = 5] = "Goerli";
@@ -21,111 +24,39 @@ function getGasStationUrl(chainId) {
21
24
  return "https://gasstation-testnet.polygon.technology/v2";
22
25
  }
23
26
  }
24
- class ArbitrumManager {
25
- queueL1BaseFee;
26
- queueL2BaseFee;
27
- maxQueueSize;
28
- queueValidity = 15_000;
29
- constructor(maxQueueSize) {
30
- this.maxQueueSize = maxQueueSize;
31
- this.queueL1BaseFee = [];
32
- this.queueL2BaseFee = [];
33
- }
34
- saveL1BaseFee(baseFee) {
35
- if (baseFee === 0n) {
36
- return;
37
- }
38
- const queue = this.queueL1BaseFee;
39
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
40
- const timestamp = Date.now();
41
- if (!last || timestamp - last.timestamp >= this.queueValidity) {
42
- if (queue.length >= this.maxQueueSize) {
43
- queue.shift();
44
- }
45
- queue.push({ baseFee, timestamp });
46
- }
47
- else if (baseFee < last.baseFee) {
48
- last.baseFee = baseFee;
49
- last.timestamp = timestamp;
50
- }
51
- }
52
- saveL2BaseFee(baseFee) {
53
- if (baseFee === 0n) {
54
- return;
55
- }
56
- const queue = this.queueL2BaseFee;
57
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
58
- const timestamp = Date.now();
59
- if (!last || timestamp - last.timestamp >= this.queueValidity) {
60
- if (queue.length >= this.maxQueueSize) {
61
- queue.shift();
62
- }
63
- queue.push({ baseFee, timestamp });
64
- }
65
- else if (baseFee < last.baseFee) {
66
- last.baseFee = baseFee;
67
- last.timestamp = timestamp;
68
- }
69
- }
70
- async getMinL1BaseFee() {
71
- const queue = this.queueL1BaseFee;
72
- if (queue.length === 0) {
73
- return 1n;
74
- }
75
- return queue.reduce((acc, cur) => minBigInt(cur.baseFee, acc), queue[0].baseFee);
76
- }
77
- async getMaxL1BaseFee() {
78
- const queue = this.queueL1BaseFee;
79
- if (queue.length === 0) {
80
- return maxUint128;
81
- }
82
- return queue.reduce((acc, cur) => maxBigInt(cur.baseFee, acc), queue[0].baseFee);
83
- }
84
- async getMaxL2BaseFee() {
85
- const queue = this.queueL2BaseFee;
86
- if (queue.length === 0) {
87
- return maxUint128;
88
- }
89
- return queue.reduce((acc, cur) => maxBigInt(cur.baseFee, acc), queue[0].baseFee);
90
- }
91
- }
92
27
  export class GasPriceManager {
93
- chain;
94
- publicClient;
95
- legacyTransactions;
28
+ config;
29
+ baseFeePerGasQueue;
30
+ maxFeePerGasQueue;
31
+ maxPriorityFeePerGasQueue;
96
32
  logger;
97
- queueBaseFeePerGas = []; // Store pairs of [price, timestamp]
98
- queueMaxFeePerGas = []; // Store pairs of [price, timestamp]
99
- queueMaxPriorityFeePerGas = []; // Store pairs of [price, timestamp]
100
- maxQueueSize;
101
- gasBumpMultiplier;
102
- gasPriceRefreshIntervalInSeconds;
103
- chainType;
104
33
  arbitrumManager;
105
- constructor(chain, publicClient, legacyTransactions, logger, gasBumpMultiplier, gasPriceTimeValidityInSeconds, gasPriceRefreshIntervalInSeconds, chainType) {
106
- this.maxQueueSize = gasPriceTimeValidityInSeconds;
107
- this.chain = chain;
108
- this.publicClient = publicClient;
109
- this.legacyTransactions = legacyTransactions;
110
- this.logger = logger;
111
- this.gasBumpMultiplier = gasBumpMultiplier;
112
- this.gasPriceRefreshIntervalInSeconds = gasPriceRefreshIntervalInSeconds;
113
- this.chainType = chainType;
34
+ mantleManager;
35
+ constructor(config) {
36
+ this.config = config;
37
+ this.logger = config.getLogger({ module: "gas_price_manager" }, {
38
+ level: config.publicClientLogLevel || config.logLevel
39
+ });
40
+ const queueValidity = this.config.gasPriceExpiry * 1_000;
41
+ this.baseFeePerGasQueue = new TimedQueue(queueValidity);
42
+ this.maxFeePerGasQueue = new TimedQueue(queueValidity);
43
+ this.maxPriorityFeePerGasQueue = new TimedQueue(queueValidity);
114
44
  // Periodically update gas prices if specified
115
- if (this.gasPriceRefreshIntervalInSeconds > 0) {
45
+ if (this.config.gasPriceRefreshInterval > 0) {
116
46
  setInterval(() => {
117
- if (this.legacyTransactions === false) {
47
+ if (this.config.legacyTransactions === false) {
118
48
  this.updateBaseFee();
119
49
  }
120
50
  this.updateGasPrice();
121
- }, this.gasPriceRefreshIntervalInSeconds * 1000);
51
+ }, this.config.gasPriceRefreshInterval * 1000);
122
52
  }
123
- this.arbitrumManager = new ArbitrumManager(this.maxQueueSize);
53
+ this.arbitrumManager = new ArbitrumManager(queueValidity);
54
+ this.mantleManager = new MantleManager(queueValidity);
124
55
  }
125
56
  init() {
126
57
  return Promise.all([
127
58
  this.updateGasPrice(),
128
- this.legacyTransactions === false
59
+ this.config.legacyTransactions === false
129
60
  ? this.updateBaseFee()
130
61
  : Promise.resolve()
131
62
  ]);
@@ -141,7 +72,7 @@ export class GasPriceManager {
141
72
  }
142
73
  }
143
74
  async getPolygonGasPriceParameters() {
144
- const gasStationUrl = getGasStationUrl(this.chain.id);
75
+ const gasStationUrl = getGasStationUrl(this.config.publicClient.chain.id);
145
76
  try {
146
77
  const data = await (await fetch(gasStationUrl)).json();
147
78
  // take the standard speed here, SDK options will define the extra tip
@@ -154,21 +85,22 @@ export class GasPriceManager {
154
85
  }
155
86
  }
156
87
  bumpTheGasPrice(gasPriceParameters) {
157
- const bumpAmount = this.gasBumpMultiplier;
158
- const maxPriorityFeePerGas = maxBigInt(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.chain.id));
88
+ const bumpAmount = this.config.gasPriceBump;
89
+ const maxPriorityFeePerGas = maxBigInt(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.config.publicClient.chain.id));
159
90
  const maxFeePerGas = maxBigInt(gasPriceParameters.maxFeePerGas, maxPriorityFeePerGas);
160
91
  const result = {
161
92
  maxFeePerGas: (maxFeePerGas * bumpAmount) / 100n,
162
93
  maxPriorityFeePerGas: (maxPriorityFeePerGas * bumpAmount) / 100n
163
94
  };
164
- if (this.chain.id === celo.id || this.chain.id === celoAlfajores.id) {
95
+ if (this.config.publicClient.chain.id === celo.id ||
96
+ this.config.publicClient.chain.id === celoAlfajores.id) {
165
97
  const maxFee = maxBigInt(result.maxFeePerGas, result.maxPriorityFeePerGas);
166
98
  return {
167
99
  maxFeePerGas: maxFee,
168
100
  maxPriorityFeePerGas: maxFee
169
101
  };
170
102
  }
171
- if (this.chain.id === dfk.id) {
103
+ if (this.config.publicClient.chain.id === dfk.id) {
172
104
  const maxFeePerGas = maxBigInt(5000000000n, result.maxFeePerGas);
173
105
  const maxPriorityFeePerGas = maxBigInt(5000000000n, result.maxPriorityFeePerGas);
174
106
  return {
@@ -177,7 +109,7 @@ export class GasPriceManager {
177
109
  };
178
110
  }
179
111
  // set a minimum maxPriorityFee & maxFee to 1.5gwei on avalanche (because eth_maxPriorityFeePerGas returns 0)
180
- if (this.chain.id === avalanche.id) {
112
+ if (this.config.publicClient.chain.id === avalanche.id) {
181
113
  const maxFeePerGas = maxBigInt(parseGwei("1.5"), result.maxFeePerGas);
182
114
  const maxPriorityFeePerGas = maxBigInt(parseGwei("1.5"), result.maxPriorityFeePerGas);
183
115
  return {
@@ -199,30 +131,11 @@ export class GasPriceManager {
199
131
  const feeAverage = feeHistory.reward.reduce((acc, cur) => cur[0] + acc, 0n) / 10n;
200
132
  return minBigInt(feeAverage, gasPrice);
201
133
  }
202
- async getNextBaseFee(publicClient) {
203
- const block = await publicClient.getBlock({
204
- blockTag: "latest"
205
- });
206
- const currentBaseFeePerGas = block.baseFeePerGas || (await publicClient.getGasPrice());
207
- const currentGasUsed = block.gasUsed;
208
- const gasTarget = block.gasLimit / 2n;
209
- if (currentGasUsed === gasTarget) {
210
- return currentBaseFeePerGas;
211
- }
212
- if (currentGasUsed > gasTarget) {
213
- const gasUsedDelta = currentGasUsed - gasTarget;
214
- const baseFeePerGasDelta = maxBigInt((currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n, 1n);
215
- return currentBaseFeePerGas + baseFeePerGasDelta;
216
- }
217
- const gasUsedDelta = currentGasUsed - gasTarget;
218
- const baseFeePerGasDelta = (currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n;
219
- return currentBaseFeePerGas - baseFeePerGasDelta;
220
- }
221
134
  async getLegacyTransactionGasPrice() {
222
135
  let gasPrice;
223
136
  try {
224
- const gasInfo = await this.publicClient.estimateFeesPerGas({
225
- chain: this.chain,
137
+ const gasInfo = await this.config.publicClient.estimateFeesPerGas({
138
+ chain: this.config.publicClient.chain,
226
139
  type: "legacy"
227
140
  });
228
141
  gasPrice = gasInfo.gasPrice;
@@ -235,7 +148,7 @@ export class GasPriceManager {
235
148
  if (gasPrice === undefined) {
236
149
  this.logger.warn("gasPrice is undefined, using fallback value");
237
150
  try {
238
- gasPrice = await this.publicClient.getGasPrice();
151
+ gasPrice = await this.config.publicClient.getGasPrice();
239
152
  }
240
153
  catch (e) {
241
154
  this.logger.error("failed to get fallback gasPrice");
@@ -252,8 +165,8 @@ export class GasPriceManager {
252
165
  let maxFeePerGas;
253
166
  let maxPriorityFeePerGas;
254
167
  try {
255
- const fees = await this.publicClient.estimateFeesPerGas({
256
- chain: this.chain
168
+ const fees = await this.config.publicClient.estimateFeesPerGas({
169
+ chain: this.config.publicClient.chain
257
170
  });
258
171
  maxFeePerGas = fees.maxFeePerGas;
259
172
  maxPriorityFeePerGas = fees.maxPriorityFeePerGas;
@@ -268,7 +181,7 @@ export class GasPriceManager {
268
181
  this.logger.warn("maxPriorityFeePerGas is undefined, using fallback value");
269
182
  try {
270
183
  maxPriorityFeePerGas =
271
- await this.getFallBackMaxPriorityFeePerGas(this.publicClient, maxFeePerGas ?? 0n);
184
+ await this.getFallBackMaxPriorityFeePerGas(this.config.publicClient, maxFeePerGas ?? 0n);
272
185
  }
273
186
  catch (e) {
274
187
  this.logger.error("failed to get fallback maxPriorityFeePerGas");
@@ -280,7 +193,7 @@ export class GasPriceManager {
280
193
  this.logger.warn("maxFeePerGas is undefined, using fallback value");
281
194
  try {
282
195
  maxFeePerGas =
283
- (await this.getNextBaseFee(this.publicClient)) +
196
+ (await this.config.publicClient.getGasPrice()) +
284
197
  maxPriorityFeePerGas;
285
198
  }
286
199
  catch (e) {
@@ -294,60 +207,11 @@ export class GasPriceManager {
294
207
  }
295
208
  return { maxFeePerGas, maxPriorityFeePerGas };
296
209
  }
297
- saveBaseFeePerGas(gasPrice, timestamp) {
298
- const queue = this.queueBaseFeePerGas;
299
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
300
- if (!last || timestamp - last.timestamp >= 1000) {
301
- if (queue.length >= this.maxQueueSize) {
302
- queue.shift();
303
- }
304
- queue.push({ baseFeePerGas: gasPrice, timestamp });
305
- }
306
- else if (gasPrice < last.baseFeePerGas) {
307
- last.baseFeePerGas = gasPrice;
308
- last.timestamp = timestamp;
309
- }
310
- }
311
- saveMaxFeePerGas(gasPrice, timestamp) {
312
- const queue = this.queueMaxFeePerGas;
313
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
314
- if (!last || timestamp - last.timestamp >= 1000) {
315
- if (queue.length >= this.maxQueueSize) {
316
- queue.shift();
317
- }
318
- queue.push({ maxFeePerGas: gasPrice, timestamp });
319
- }
320
- else if (gasPrice < last.maxFeePerGas) {
321
- last.maxFeePerGas = gasPrice;
322
- last.timestamp = timestamp;
323
- }
324
- }
325
- saveMaxPriorityFeePerGas(gasPrice, timestamp) {
326
- const queue = this.queueMaxPriorityFeePerGas;
327
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
328
- if (!last || timestamp - last.timestamp >= 1000) {
329
- if (queue.length >= this.maxQueueSize) {
330
- queue.shift();
331
- }
332
- queue.push({ maxPriorityFeePerGas: gasPrice, timestamp });
333
- }
334
- else if (gasPrice < last.maxPriorityFeePerGas) {
335
- last.maxPriorityFeePerGas = gasPrice;
336
- last.timestamp = timestamp;
337
- }
338
- }
339
- saveGasPrice(gasPrice, timestamp) {
340
- return new Promise((resolve) => {
341
- this.saveMaxFeePerGas(gasPrice.maxFeePerGas, timestamp);
342
- this.saveMaxPriorityFeePerGas(gasPrice.maxPriorityFeePerGas, timestamp);
343
- resolve();
344
- });
345
- }
346
210
  async innerGetGasPrice() {
347
211
  let maxFeePerGas = 0n;
348
212
  let maxPriorityFeePerGas = 0n;
349
- if (this.chain.id === polygon.id ||
350
- this.chain.id === polygonMumbai.id) {
213
+ if (this.config.publicClient.chain.id === polygon.id ||
214
+ this.config.publicClient.chain.id === polygonMumbai.id) {
351
215
  const polygonEstimate = await this.getPolygonGasPriceParameters();
352
216
  if (polygonEstimate) {
353
217
  const gasPrice = this.bumpTheGasPrice({
@@ -360,7 +224,7 @@ export class GasPriceManager {
360
224
  };
361
225
  }
362
226
  }
363
- if (this.legacyTransactions) {
227
+ if (this.config.legacyTransactions) {
364
228
  const gasPrice = this.bumpTheGasPrice(await this.getLegacyTransactionGasPrice());
365
229
  return {
366
230
  maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
@@ -380,65 +244,77 @@ export class GasPriceManager {
380
244
  };
381
245
  }
382
246
  async updateBaseFee() {
383
- const latestBlock = await this.publicClient.getBlock();
247
+ const latestBlock = await this.config.publicClient.getBlock();
384
248
  if (latestBlock.baseFeePerGas === null) {
385
249
  throw new RpcError("block does not have baseFeePerGas");
386
250
  }
387
251
  const baseFee = latestBlock.baseFeePerGas;
388
- this.saveBaseFeePerGas(baseFee, Date.now());
252
+ this.baseFeePerGasQueue.saveValue(baseFee);
389
253
  return baseFee;
390
254
  }
391
- getBaseFee() {
392
- if (this.legacyTransactions) {
255
+ async getBaseFee() {
256
+ if (this.config.legacyTransactions) {
393
257
  throw new RpcError("baseFee is not available for legacy transactions");
394
258
  }
395
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
396
- return this.updateBaseFee();
259
+ if (this.config.gasPriceRefreshInterval === 0) {
260
+ return await this.updateBaseFee();
261
+ }
262
+ let baseFee = this.baseFeePerGasQueue.getLatestValue();
263
+ if (!baseFee) {
264
+ baseFee = await this.getBaseFee();
397
265
  }
398
- const { baseFeePerGas } = this.queueBaseFeePerGas[this.queueBaseFeePerGas.length - 1];
399
- return baseFeePerGas;
266
+ return baseFee;
400
267
  }
401
268
  async updateGasPrice() {
402
269
  const gasPrice = await this.innerGetGasPrice();
403
- this.saveGasPrice({
404
- maxFeePerGas: gasPrice.maxFeePerGas,
405
- maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas
406
- }, Date.now());
270
+ this.maxFeePerGasQueue.saveValue(gasPrice.maxFeePerGas);
271
+ this.maxPriorityFeePerGasQueue.saveValue(gasPrice.maxPriorityFeePerGas);
407
272
  return gasPrice;
408
273
  }
409
- getGasPrice() {
410
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
411
- return this.updateGasPrice();
274
+ async getGasPrice() {
275
+ if (this.config.gasPriceRefreshInterval === 0) {
276
+ return await this.updateGasPrice();
277
+ }
278
+ const maxFeePerGas = this.maxFeePerGasQueue.getLatestValue();
279
+ const maxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getLatestValue();
280
+ if (!maxFeePerGas || !maxPriorityFeePerGas) {
281
+ throw new RpcError("No gas price available");
412
282
  }
413
- const { maxPriorityFeePerGas } = this.queueMaxPriorityFeePerGas[this.queueMaxPriorityFeePerGas.length - 1];
414
- const { maxFeePerGas } = this.queueMaxFeePerGas[this.queueMaxFeePerGas.length - 1];
415
283
  return {
416
284
  maxFeePerGas,
417
285
  maxPriorityFeePerGas
418
286
  };
419
287
  }
288
+ async getNetworkGasPrice() {
289
+ return await this.innerGetGasPrice();
290
+ }
420
291
  async getMaxBaseFeePerGas() {
421
- if (this.queueBaseFeePerGas.length === 0) {
422
- await this.getBaseFee();
292
+ let maxBaseFeePerGas = this.baseFeePerGasQueue.getMaxValue();
293
+ if (!maxBaseFeePerGas) {
294
+ maxBaseFeePerGas = await this.getBaseFee();
423
295
  }
424
- return this.queueBaseFeePerGas.reduce((acc, cur) => maxBigInt(cur.baseFeePerGas, acc), this.queueBaseFeePerGas[0].baseFeePerGas);
296
+ return maxBaseFeePerGas;
425
297
  }
426
298
  async getMinMaxFeePerGas() {
427
- if (this.queueMaxFeePerGas.length === 0) {
428
- await this.getGasPrice();
299
+ let minMaxFeePerGas = this.maxFeePerGasQueue.getMinValue();
300
+ if (!minMaxFeePerGas) {
301
+ const gasPrice = await this.getGasPrice();
302
+ minMaxFeePerGas = gasPrice.maxFeePerGas;
429
303
  }
430
- return this.queueMaxFeePerGas.reduce((acc, cur) => minBigInt(cur.maxFeePerGas, acc), this.queueMaxFeePerGas[0].maxFeePerGas);
304
+ return minMaxFeePerGas;
431
305
  }
432
306
  async getMinMaxPriorityFeePerGas() {
433
- if (this.queueMaxPriorityFeePerGas.length === 0) {
434
- await this.getGasPrice();
307
+ let minMaxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getMinValue();
308
+ if (!minMaxPriorityFeePerGas) {
309
+ const gasPrices = await this.getGasPrice();
310
+ minMaxPriorityFeePerGas = gasPrices.maxPriorityFeePerGas;
435
311
  }
436
- return this.queueMaxPriorityFeePerGas.reduce((acc, cur) => minBigInt(cur.maxPriorityFeePerGas, acc), this.queueMaxPriorityFeePerGas[0].maxPriorityFeePerGas);
312
+ return minMaxPriorityFeePerGas;
437
313
  }
438
314
  async validateGasPrice(gasPrice) {
439
315
  let lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
440
316
  let lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
441
- if (this.chainType === "hedera") {
317
+ if (this.config.chainType === "hedera") {
442
318
  lowestMaxFeePerGas /= 10n ** 9n;
443
319
  lowestMaxPriorityFeePerGas /= 10n ** 9n;
444
320
  }
@@ -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,28 @@
1
+ import { TimedQueue } from "../utils/timedQueue.js";
2
+ export class MantleManager {
3
+ tokenRatioQueue;
4
+ scalarQueue;
5
+ rollupDataGasAndOverheadQueue;
6
+ l1GasPriceQueue;
7
+ constructor(queueValidity) {
8
+ this.tokenRatioQueue = new TimedQueue(queueValidity);
9
+ this.scalarQueue = new TimedQueue(queueValidity);
10
+ this.rollupDataGasAndOverheadQueue = new TimedQueue(queueValidity);
11
+ this.l1GasPriceQueue = new TimedQueue(queueValidity);
12
+ }
13
+ getMinMantleOracleValues() {
14
+ return {
15
+ minTokenRatio: this.tokenRatioQueue.getMinValue() || 1n,
16
+ minScalar: this.scalarQueue.getMinValue() || 1n,
17
+ minRollupDataGasAndOverhead: this.rollupDataGasAndOverheadQueue.getMinValue() || 1n,
18
+ minL1GasPrice: this.l1GasPriceQueue.getMinValue() || 1n
19
+ };
20
+ }
21
+ saveMantleOracleValues({ tokenRatio, scalar, rollupDataGasAndOverhead, l1GasPrice }) {
22
+ this.tokenRatioQueue.saveValue(tokenRatio);
23
+ this.scalarQueue.saveValue(scalar);
24
+ this.rollupDataGasAndOverheadQueue.saveValue(rollupDataGasAndOverhead);
25
+ this.l1GasPriceQueue.saveValue(l1GasPrice);
26
+ }
27
+ }
28
+ //# sourceMappingURL=mantleGasPriceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mantleGasPriceManager.js","sourceRoot":"","sources":["../../handlers/mantleGasPriceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,OAAO,aAAa;IACd,eAAe,CAAY;IAC3B,WAAW,CAAY;IACvB,6BAA6B,CAAY;IACzC,eAAe,CAAY;IAEnC,YAAY,aAAqB;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;QAChD,IAAI,CAAC,6BAA6B,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,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"}
@@ -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[];