@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
@@ -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
76
  this.updateGasPrice();
147
- }, this.gasPriceRefreshIntervalInSeconds * 1000);
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
84
  this.updateGasPrice(),
154
- this.legacyTransactions === false
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,11 @@ 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
- }
372
236
  async innerGetGasPrice() {
373
237
  let maxFeePerGas = 0n;
374
238
  let maxPriorityFeePerGas = 0n;
375
- if (this.chain.id === chains_1.polygon.id ||
376
- this.chain.id === chains_1.polygonMumbai.id) {
239
+ if (this.config.publicClient.chain.id === chains_1.polygon.id ||
240
+ this.config.publicClient.chain.id === chains_1.polygonMumbai.id) {
377
241
  const polygonEstimate = await this.getPolygonGasPriceParameters();
378
242
  if (polygonEstimate) {
379
243
  const gasPrice = this.bumpTheGasPrice({
@@ -386,7 +250,7 @@ class GasPriceManager {
386
250
  };
387
251
  }
388
252
  }
389
- if (this.legacyTransactions) {
253
+ if (this.config.legacyTransactions) {
390
254
  const gasPrice = this.bumpTheGasPrice(await this.getLegacyTransactionGasPrice());
391
255
  return {
392
256
  maxFeePerGas: (0, utils_1.maxBigInt)(gasPrice.maxFeePerGas, maxFeePerGas),
@@ -406,65 +270,77 @@ class GasPriceManager {
406
270
  };
407
271
  }
408
272
  async updateBaseFee() {
409
- const latestBlock = await this.publicClient.getBlock();
273
+ const latestBlock = await this.config.publicClient.getBlock();
410
274
  if (latestBlock.baseFeePerGas === null) {
411
275
  throw new types_1.RpcError("block does not have baseFeePerGas");
412
276
  }
413
277
  const baseFee = latestBlock.baseFeePerGas;
414
- this.saveBaseFeePerGas(baseFee, Date.now());
278
+ this.baseFeePerGasQueue.saveValue(baseFee);
415
279
  return baseFee;
416
280
  }
417
- getBaseFee() {
418
- if (this.legacyTransactions) {
281
+ async getBaseFee() {
282
+ if (this.config.legacyTransactions) {
419
283
  throw new types_1.RpcError("baseFee is not available for legacy transactions");
420
284
  }
421
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
422
- return this.updateBaseFee();
285
+ if (this.config.gasPriceRefreshInterval === 0) {
286
+ return await this.updateBaseFee();
287
+ }
288
+ let baseFee = this.baseFeePerGasQueue.getLatestValue();
289
+ if (!baseFee) {
290
+ baseFee = await this.getBaseFee();
423
291
  }
424
- const { baseFeePerGas } = this.queueBaseFeePerGas[this.queueBaseFeePerGas.length - 1];
425
- return baseFeePerGas;
292
+ return baseFee;
426
293
  }
427
294
  async updateGasPrice() {
428
295
  const gasPrice = await this.innerGetGasPrice();
429
- this.saveGasPrice({
430
- maxFeePerGas: gasPrice.maxFeePerGas,
431
- maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas
432
- }, Date.now());
296
+ this.maxFeePerGasQueue.saveValue(gasPrice.maxFeePerGas);
297
+ this.maxPriorityFeePerGasQueue.saveValue(gasPrice.maxPriorityFeePerGas);
433
298
  return gasPrice;
434
299
  }
435
- getGasPrice() {
436
- if (this.gasPriceRefreshIntervalInSeconds === 0) {
437
- return this.updateGasPrice();
300
+ async getGasPrice() {
301
+ if (this.config.gasPriceRefreshInterval === 0) {
302
+ return await this.updateGasPrice();
303
+ }
304
+ const maxFeePerGas = this.maxFeePerGasQueue.getLatestValue();
305
+ const maxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getLatestValue();
306
+ if (!maxFeePerGas || !maxPriorityFeePerGas) {
307
+ throw new types_1.RpcError("No gas price available");
438
308
  }
439
- const { maxPriorityFeePerGas } = this.queueMaxPriorityFeePerGas[this.queueMaxPriorityFeePerGas.length - 1];
440
- const { maxFeePerGas } = this.queueMaxFeePerGas[this.queueMaxFeePerGas.length - 1];
441
309
  return {
442
310
  maxFeePerGas,
443
311
  maxPriorityFeePerGas
444
312
  };
445
313
  }
314
+ async getNetworkGasPrice() {
315
+ return await this.innerGetGasPrice();
316
+ }
446
317
  async getMaxBaseFeePerGas() {
447
- if (this.queueBaseFeePerGas.length === 0) {
448
- await this.getBaseFee();
318
+ let maxBaseFeePerGas = this.baseFeePerGasQueue.getMaxValue();
319
+ if (!maxBaseFeePerGas) {
320
+ maxBaseFeePerGas = await this.getBaseFee();
449
321
  }
450
- return this.queueBaseFeePerGas.reduce((acc, cur) => (0, utils_1.maxBigInt)(cur.baseFeePerGas, acc), this.queueBaseFeePerGas[0].baseFeePerGas);
322
+ return maxBaseFeePerGas;
451
323
  }
452
324
  async getMinMaxFeePerGas() {
453
- if (this.queueMaxFeePerGas.length === 0) {
454
- await this.getGasPrice();
325
+ let minMaxFeePerGas = this.maxFeePerGasQueue.getMinValue();
326
+ if (!minMaxFeePerGas) {
327
+ const gasPrice = await this.getGasPrice();
328
+ minMaxFeePerGas = gasPrice.maxFeePerGas;
455
329
  }
456
- return this.queueMaxFeePerGas.reduce((acc, cur) => (0, utils_1.minBigInt)(cur.maxFeePerGas, acc), this.queueMaxFeePerGas[0].maxFeePerGas);
330
+ return minMaxFeePerGas;
457
331
  }
458
332
  async getMinMaxPriorityFeePerGas() {
459
- if (this.queueMaxPriorityFeePerGas.length === 0) {
460
- await this.getGasPrice();
333
+ let minMaxPriorityFeePerGas = this.maxPriorityFeePerGasQueue.getMinValue();
334
+ if (!minMaxPriorityFeePerGas) {
335
+ const gasPrices = await this.getGasPrice();
336
+ minMaxPriorityFeePerGas = gasPrices.maxPriorityFeePerGas;
461
337
  }
462
- return this.queueMaxPriorityFeePerGas.reduce((acc, cur) => (0, utils_1.minBigInt)(cur.maxPriorityFeePerGas, acc), this.queueMaxPriorityFeePerGas[0].maxPriorityFeePerGas);
338
+ return minMaxPriorityFeePerGas;
463
339
  }
464
340
  async validateGasPrice(gasPrice) {
465
341
  let lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
466
342
  let lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
467
- if (this.chainType === "hedera") {
343
+ if (this.config.chainType === "hedera") {
468
344
  lowestMaxFeePerGas /= 10n ** 9n;
469
345
  lowestMaxPriorityFeePerGas /= 10n ** 9n;
470
346
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gasPriceManager.js","sourceRoot":"","sources":["../../handlers/gasPriceManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAKoB;AACpB,uCAA+D;AAC/D,qDAAsC;AACtC,+BAA2E;AAC3E,wCAOoB;AAEpB,IAAK,OAMJ;AAND,WAAK,OAAO;IACR,yCAAU,CAAA;IACV,6CAAa,CAAA;IACb,6CAAc,CAAA;IACd,yDAAoB,CAAA;IACpB,2CAAa,CAAA;AACjB,CAAC,EANI,OAAO,KAAP,OAAO,QAMX;AAED,MAAM,qBAAqB,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAA;AAC7C,MAAM,oBAAoB,GAAG,IAAA,gBAAS,EAAC,GAAG,CAAC,CAAA;AAE3C,SAAS,gBAAgB,CAAC,OAAyC;IAC/D,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,OAAO,CAAC,OAAO;YAChB,OAAO,0CAA0C,CAAA;QACrD,KAAK,OAAO,CAAC,MAAM;YACf,OAAO,kDAAkD,CAAA;IACjE,CAAC;AACL,CAAC;AAED,MAAM,eAAe;IACT,cAAc,CAA0C;IACxD,cAAc,CAA0C;IAExD,YAAY,CAAA;IACZ,aAAa,GAAG,MAAM,CAAA;IAE9B,YAAY,YAAoB;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC5B,CAAC;IAEM,aAAa,CAAC,OAAe;QAChC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjB,OAAM;QACV,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,OAAe;QAChC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjB,OAAM;QACV,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EACjD,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CACnB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,iBAAU,CAAA;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EACjD,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CACnB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,iBAAU,CAAA;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EACjD,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CACnB,CAAA;IACL,CAAC;CACJ;AAED,MAAa,eAAe;IAChB,KAAK,CAAO;IACZ,YAAY,CAAc;IAC1B,kBAAkB,CAAS;IAC3B,MAAM,CAAQ;IACd,kBAAkB,GACtB,EAAE,CAAA,CAAC,oCAAoC;IACnC,iBAAiB,GACrB,EAAE,CAAA,CAAC,oCAAoC;IACnC,yBAAyB,GAG3B,EAAE,CAAA,CAAC,oCAAoC;IACrC,YAAY,CAAA;IACZ,iBAAiB,CAAQ;IACzB,gCAAgC,CAAQ;IACxC,SAAS,CAAW;IACrB,eAAe,CAAiB;IAEvC,YACI,KAAY,EACZ,YAA0B,EAC1B,kBAA2B,EAC3B,MAAc,EACd,iBAAyB,EACzB,6BAAqC,EACrC,gCAAwC,EACxC,SAAoB;QAEpB,IAAI,CAAC,YAAY,GAAG,6BAA6B,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,CAAA;QACxE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,8CAA8C;QAC9C,IAAI,IAAI,CAAC,gCAAgC,GAAG,CAAC,EAAE,CAAC;YAC5C,WAAW,CAAC,GAAG,EAAE;gBACb,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;oBACpC,IAAI,CAAC,aAAa,EAAE,CAAA;gBACxB,CAAC;gBAED,IAAI,CAAC,cAAc,EAAE,CAAA;YACzB,CAAC,EAAE,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjE,CAAC;IAEM,IAAI;QACP,OAAO,OAAO,CAAC,GAAG,CAAC;YACf,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,KAAK,KAAK;gBAC7B,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;gBACtB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;SAC1B,CAAC,CAAA;IACN,CAAC;IAEO,gBAAgB,CACpB,OAAyC;QAEzC,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,OAAO,CAAC,OAAO;gBAChB,OAAO,qBAAqB,CAAA;YAChC,KAAK,OAAO,CAAC,MAAM;gBACf,OAAO,oBAAoB,CAAA;YAC/B;gBACI,OAAO,EAAE,CAAA;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACtD,sEAAsE;YACtE,MAAM,UAAU,GAAG,wBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAE/C,OAAO,UAAU,CAAC,IAAI,CAAA;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,EAAE,KAAK,EAAE,CAAC,EAAE,EACZ,yDAAyD,CAC5D,CAAA;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,eAAe,CACnB,kBAAsC;QAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAA;QAEzC,MAAM,oBAAoB,GAAG,IAAA,iBAAS,EAClC,kBAAkB,CAAC,oBAAoB,EACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACvC,CAAA;QACD,MAAM,YAAY,GAAG,IAAA,iBAAS,EAC1B,kBAAkB,CAAC,YAAY,EAC/B,oBAAoB,CACvB,CAAA;QAED,MAAM,MAAM,GAAG;YACX,YAAY,EAAE,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,IAAI;YAChD,oBAAoB,EAAE,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,IAAI;SACnE,CAAA;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,aAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,sBAAa,CAAC,EAAE,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,IAAA,iBAAS,EACpB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,oBAAoB,CAC9B,CAAA;YACD,OAAO;gBACH,YAAY,EAAE,MAAM;gBACpB,oBAAoB,EAAE,MAAM;aAC/B,CAAA;QACL,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,YAAG,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAA,iBAAS,EAAC,WAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;YACnE,MAAM,oBAAoB,GAAG,IAAA,iBAAS,EAClC,WAAc,EACd,MAAM,CAAC,oBAAoB,CAC9B,CAAA;YAED,OAAO;gBACH,YAAY;gBACZ,oBAAoB;aACvB,CAAA;QACL,CAAC;QAED,6GAA6G;QAC7G,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,kBAAS,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAA,iBAAS,EAC1B,IAAA,gBAAS,EAAC,KAAK,CAAC,EAChB,MAAM,CAAC,YAAY,CACtB,CAAA;YACD,MAAM,oBAAoB,GAAG,IAAA,iBAAS,EAClC,IAAA,gBAAS,EAAC,KAAK,CAAC,EAChB,MAAM,CAAC,oBAAoB,CAC9B,CAAA;YAED,OAAO;gBACH,YAAY;gBACZ,oBAAoB;aACvB,CAAA;QACL,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,+BAA+B,CACzC,YAA0B,EAC1B,QAAgB;QAEhB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;YAChD,UAAU,EAAE,EAAE;YACd,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAChE,OAAO,QAAQ,CAAA;QACnB,CAAC;QAED,MAAM,UAAU,GACZ,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;QAClE,OAAO,IAAA,iBAAS,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,YAA0B;QACnD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC;YACtC,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAA;QACF,MAAM,oBAAoB,GACtB,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAA;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;QAErC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,oBAAoB,CAAA;QAC/B,CAAC;QAED,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;YAC/C,MAAM,kBAAkB,GAAG,IAAA,iBAAS,EAChC,CAAC,oBAAoB,GAAG,YAAY,CAAC,GAAG,SAAS,GAAG,EAAE,EACtD,EAAE,CACL,CAAA;YACD,OAAO,oBAAoB,GAAG,kBAAkB,CAAA;QACpD,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;QAC/C,MAAM,kBAAkB,GACpB,CAAC,oBAAoB,GAAG,YAAY,CAAC,GAAG,SAAS,GAAG,EAAE,CAAA;QAC1D,OAAO,oBAAoB,GAAG,kBAAkB,CAAA;IACpD,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACtC,IAAI,QAA4B,CAAA;QAChC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,QAAQ;aACjB,CAAC,CAAA;YACF,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,0DAA0D,EAC1D,EAAE,KAAK,EAAE,CAAC,EAAE,CACf,CAAA;YACD,QAAQ,GAAG,SAAS,CAAA;QACxB,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;YAC/D,IAAI,CAAC;gBACD,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;YACpD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;gBACpD,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,CAAC,CAAA;YACX,CAAC;QACL,CAAC;QAED,OAAO;YACH,YAAY,EAAE,QAAQ;YACtB,oBAAoB,EAAE,QAAQ;SACjC,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,IAAI,YAAgC,CAAA;QACpC,IAAI,oBAAwC,CAAA;QAE5C,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC,CAAA;YACF,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YAChC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAA;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,4DAA4D,EAC5D,EAAE,KAAK,EAAE,CAAC,EAAE,CACf,CAAA;YACD,YAAY,GAAG,SAAS,CAAA;YACxB,oBAAoB,GAAG,SAAS,CAAA;QACpC,CAAC;QAED,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,yDAAyD,CAC5D,CAAA;YACD,IAAI,CAAC;gBACD,oBAAoB;oBAChB,MAAM,IAAI,CAAC,+BAA+B,CACtC,IAAI,CAAC,YAAY,EACjB,YAAY,IAAI,EAAE,CACrB,CAAA;YACT,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;gBAChE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,CAAC,CAAA;YACX,CAAC;QACL,CAAC;QAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;YACnE,IAAI,CAAC;gBACD,YAAY;oBACR,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9C,oBAAoB,CAAA;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;gBACxD,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,CAAC,CAAA;YACX,CAAC;QACL,CAAC;QAED,IAAI,oBAAoB,KAAK,EAAE,EAAE,CAAC;YAC9B,oBAAoB,GAAG,YAAY,GAAG,IAAI,CAAA;QAC9C,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACjD,CAAC;IAEO,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE9D,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QACtD,CAAC;aAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;YAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE9D,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,QAAgB,EAAE,SAAiB;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAA;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE9D,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAC7D,CAAC;aAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAA;YACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,QAA4B,EAAE,SAAiB;QAChE,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YACvD,IAAI,CAAC,wBAAwB,CACzB,QAAQ,CAAC,oBAAoB,EAC7B,SAAS,CACZ,CAAA;YACD,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,IAAI,oBAAoB,GAAG,EAAE,CAAA;QAE7B,IACI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,gBAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,sBAAa,CAAC,EAAE,EACpC,CAAC;YACC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAA;YACjE,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;oBAClC,YAAY,EAAE,eAAe,CAAC,YAAY;oBAC1C,oBAAoB,EAAE,eAAe,CAAC,oBAAoB;iBAC7D,CAAC,CAAA;gBAEF,OAAO;oBACH,YAAY,EAAE,IAAA,iBAAS,EACnB,QAAQ,CAAC,YAAY,EACrB,YAAY,CACf;oBACD,oBAAoB,EAAE,IAAA,iBAAS,EAC3B,QAAQ,CAAC,oBAAoB,EAC7B,oBAAoB,CACvB;iBACJ,CAAA;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACjC,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAC5C,CAAA;YACD,OAAO;gBACH,YAAY,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;gBAC5D,oBAAoB,EAAE,IAAA,iBAAS,EAC3B,QAAQ,CAAC,oBAAoB,EAC7B,oBAAoB,CACvB;aACJ,CAAA;QACL,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAEpD,YAAY,GAAG,cAAc,CAAC,YAAY,CAAA;QAC1C,oBAAoB,GAAG,cAAc,CAAC,oBAAoB,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;YAClC,YAAY;YACZ,oBAAoB;SACvB,CAAC,CAAA;QACF,OAAO;YACH,YAAY,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;YAC5D,oBAAoB,EAAE,IAAA,iBAAS,EAC3B,QAAQ,CAAC,oBAAoB,EAC7B,oBAAoB,CACvB;SACJ,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;QACtD,IAAI,WAAW,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,gBAAQ,CAAC,mCAAmC,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAA;QACzC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAE3C,OAAO,OAAO,CAAA;IAClB,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,IAAI,gBAAQ,CACd,kDAAkD,CACrD,CAAA;QACL,CAAC;QAED,IAAI,IAAI,CAAC,gCAAgC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;QAC/B,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE/D,OAAO,aAAa,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE9C,IAAI,CAAC,YAAY,CACb;YACI,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;SACtD,EACD,IAAI,CAAC,GAAG,EAAE,CACb,CAAA;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAEM,WAAW;QACd,IAAI,IAAI,CAAC,gCAAgC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;QAChC,CAAC;QAED,MAAM,EAAE,oBAAoB,EAAE,GAC1B,IAAI,CAAC,yBAAyB,CAC1B,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAC5C,CAAA;QAEL,MAAM,EAAE,YAAY,EAAE,GAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE7D,OAAO;YACH,YAAY;YACZ,oBAAoB;SACvB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC5B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACjC,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,EACvD,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,aAAa,CAC3C,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAChC,CAAC,GAAW,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EACtD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CACzC,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B;QACpC,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,EACtD,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CACzD,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,QAA4B;QACtD,IAAI,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACxD,IAAI,0BAA0B,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAA;QAExE,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9B,kBAAkB,IAAI,GAAG,IAAI,EAAE,CAAA;YAC/B,0BAA0B,IAAI,GAAG,IAAI,EAAE,CAAA;QAC3C,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC7C,MAAM,IAAI,gBAAQ,CACd,iCAAiC,kBAAkB,2BAA2B,QAAQ,CAAC,YAAY,uEAAuE,CAC7K,CAAA;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,oBAAoB,GAAG,0BAA0B,EAAE,CAAC;YAC7D,MAAM,IAAI,gBAAQ,CACd,yCAAyC,0BAA0B,mCAAmC,QAAQ,CAAC,oBAAoB,uEAAuE,CAC7M,CAAA;QACL,CAAC;IACL,CAAC;CACJ;AA3gBD,0CA2gBC"}
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[];