@pimlico/alto 0.0.0-staging.20240606T110517 → 0.0.2

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 (230) hide show
  1. package/LICENSE +674 -0
  2. package/lib/executor/executor.js +6 -0
  3. package/lib/executor/executor.js.map +1 -1
  4. package/lib/executor/executorManager.js +1 -0
  5. package/lib/executor/executorManager.js.map +1 -1
  6. package/lib/executor/utils.js +3 -1
  7. package/lib/executor/utils.js.map +1 -1
  8. package/lib/rpc/server.js +2 -1
  9. package/lib/rpc/server.js.map +1 -1
  10. package/lib/types/mempool.d.ts +2 -1
  11. package/package.json +11 -12
  12. package/esm/cli/alto.d.ts +0 -6
  13. package/esm/cli/alto.js +0 -92
  14. package/esm/cli/alto.js.map +0 -1
  15. package/esm/cli/config/bundler.d.ts +0 -391
  16. package/esm/cli/config/bundler.js +0 -132
  17. package/esm/cli/config/bundler.js.map +0 -1
  18. package/esm/cli/config/index.d.ts +0 -3
  19. package/esm/cli/config/index.js +0 -3
  20. package/esm/cli/config/index.js.map +0 -1
  21. package/esm/cli/config/options.d.ts +0 -11
  22. package/esm/cli/config/options.js +0 -336
  23. package/esm/cli/config/options.js.map +0 -1
  24. package/esm/cli/customTransport.d.ts +0 -14
  25. package/esm/cli/customTransport.js +0 -53
  26. package/esm/cli/customTransport.js.map +0 -1
  27. package/esm/cli/handler.d.ts +0 -3
  28. package/esm/cli/handler.js +0 -116
  29. package/esm/cli/handler.js.map +0 -1
  30. package/esm/cli/index.d.ts +0 -4
  31. package/esm/cli/index.js +0 -4
  32. package/esm/cli/index.js.map +0 -1
  33. package/esm/cli/instrumentation.d.ts +0 -2
  34. package/esm/cli/instrumentation.js +0 -39
  35. package/esm/cli/instrumentation.js.map +0 -1
  36. package/esm/cli/setupServer.d.ts +0 -17
  37. package/esm/cli/setupServer.js +0 -155
  38. package/esm/cli/setupServer.js.map +0 -1
  39. package/esm/cli/util.d.ts +0 -22
  40. package/esm/cli/util.js +0 -30
  41. package/esm/cli/util.js.map +0 -1
  42. package/esm/executor/executor.d.ts +0 -54
  43. package/esm/executor/executor.js +0 -637
  44. package/esm/executor/executor.js.map +0 -1
  45. package/esm/executor/executorManager.d.ts +0 -34
  46. package/esm/executor/executorManager.js +0 -401
  47. package/esm/executor/executorManager.js.map +0 -1
  48. package/esm/executor/index.d.ts +0 -5
  49. package/esm/executor/index.js +0 -5
  50. package/esm/executor/index.js.map +0 -1
  51. package/esm/executor/senderManager.d.ts +0 -17
  52. package/esm/executor/senderManager.js +0 -160
  53. package/esm/executor/senderManager.js.map +0 -1
  54. package/esm/executor/test/utils.d.ts +0 -13
  55. package/esm/executor/test/utils.js +0 -75
  56. package/esm/executor/test/utils.js.map +0 -1
  57. package/esm/executor/utils.d.ts +0 -32
  58. package/esm/executor/utils.js +0 -239
  59. package/esm/executor/utils.js.map +0 -1
  60. package/esm/index.d.ts +0 -2
  61. package/esm/index.js +0 -2
  62. package/esm/index.js.map +0 -1
  63. package/esm/mempool/index.d.ts +0 -5
  64. package/esm/mempool/index.js +0 -5
  65. package/esm/mempool/index.js.map +0 -1
  66. package/esm/mempool/mempool.d.ts +0 -64
  67. package/esm/mempool/mempool.js +0 -489
  68. package/esm/mempool/mempool.js.map +0 -1
  69. package/esm/mempool/monitoring.d.ts +0 -10
  70. package/esm/mempool/monitoring.js +0 -34
  71. package/esm/mempool/monitoring.js.map +0 -1
  72. package/esm/mempool/nullMempool.d.ts +0 -15
  73. package/esm/mempool/nullMempool.js +0 -36
  74. package/esm/mempool/nullMempool.js.map +0 -1
  75. package/esm/mempool/reputationManager.d.ts +0 -115
  76. package/esm/mempool/reputationManager.js +0 -397
  77. package/esm/mempool/reputationManager.js.map +0 -1
  78. package/esm/mempool/store.d.ts +0 -22
  79. package/esm/mempool/store.js +0 -123
  80. package/esm/mempool/store.js.map +0 -1
  81. package/esm/rpc/EntryPointSimulationsV07.d.ts +0 -58
  82. package/esm/rpc/EntryPointSimulationsV07.js +0 -407
  83. package/esm/rpc/EntryPointSimulationsV07.js.map +0 -1
  84. package/esm/rpc/ExecuteSimulator.d.ts +0 -37
  85. package/esm/rpc/ExecuteSimulator.js +0 -48
  86. package/esm/rpc/ExecuteSimulator.js.map +0 -1
  87. package/esm/rpc/gasEstimation.d.ts +0 -17
  88. package/esm/rpc/gasEstimation.js +0 -410
  89. package/esm/rpc/gasEstimation.js.map +0 -1
  90. package/esm/rpc/index.d.ts +0 -5
  91. package/esm/rpc/index.js +0 -5
  92. package/esm/rpc/index.js.map +0 -1
  93. package/esm/rpc/nonceQueuer.d.ts +0 -25
  94. package/esm/rpc/nonceQueuer.js +0 -135
  95. package/esm/rpc/nonceQueuer.js.map +0 -1
  96. package/esm/rpc/rpcHandler.d.ts +0 -64
  97. package/esm/rpc/rpcHandler.js +0 -727
  98. package/esm/rpc/rpcHandler.js.map +0 -1
  99. package/esm/rpc/server.d.ts +0 -31
  100. package/esm/rpc/server.js +0 -238
  101. package/esm/rpc/server.js.map +0 -1
  102. package/esm/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
  103. package/esm/rpc/validation/BundlerCollectorTracerV06.js +0 -255
  104. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
  105. package/esm/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
  106. package/esm/rpc/validation/BundlerCollectorTracerV07.js +0 -254
  107. package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
  108. package/esm/rpc/validation/SafeValidator.d.ts +0 -35
  109. package/esm/rpc/validation/SafeValidator.js +0 -487
  110. package/esm/rpc/validation/SafeValidator.js.map +0 -1
  111. package/esm/rpc/validation/TracerResultParserV06.d.ts +0 -13
  112. package/esm/rpc/validation/TracerResultParserV06.js +0 -578
  113. package/esm/rpc/validation/TracerResultParserV06.js.map +0 -1
  114. package/esm/rpc/validation/TracerResultParserV07.d.ts +0 -33
  115. package/esm/rpc/validation/TracerResultParserV07.js +0 -557
  116. package/esm/rpc/validation/TracerResultParserV07.js.map +0 -1
  117. package/esm/rpc/validation/UnsafeValidator.d.ts +0 -63
  118. package/esm/rpc/validation/UnsafeValidator.js +0 -257
  119. package/esm/rpc/validation/UnsafeValidator.js.map +0 -1
  120. package/esm/rpc/validation/index.d.ts +0 -3
  121. package/esm/rpc/validation/index.js +0 -3
  122. package/esm/rpc/validation/index.js.map +0 -1
  123. package/esm/rpc/validation/tracer.d.ts +0 -122
  124. package/esm/rpc/validation/tracer.js +0 -82
  125. package/esm/rpc/validation/tracer.js.map +0 -1
  126. package/esm/types/contracts/BundleBulker.d.ts +0 -120
  127. package/esm/types/contracts/BundleBulker.js +0 -157
  128. package/esm/types/contracts/BundleBulker.js.map +0 -1
  129. package/esm/types/contracts/CallEngine.d.ts +0 -28
  130. package/esm/types/contracts/CallEngine.js +0 -37
  131. package/esm/types/contracts/CallEngine.js.map +0 -1
  132. package/esm/types/contracts/CodeHashGetter.d.ts +0 -37
  133. package/esm/types/contracts/CodeHashGetter.js +0 -45
  134. package/esm/types/contracts/CodeHashGetter.js.map +0 -1
  135. package/esm/types/contracts/EntryPoint.d.ts +0 -1789
  136. package/esm/types/contracts/EntryPoint.js +0 -2304
  137. package/esm/types/contracts/EntryPoint.js.map +0 -1
  138. package/esm/types/contracts/EntryPointSimulations.d.ts +0 -153
  139. package/esm/types/contracts/EntryPointSimulations.js +0 -15
  140. package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
  141. package/esm/types/contracts/IOpInflator.d.ts +0 -61
  142. package/esm/types/contracts/IOpInflator.js +0 -80
  143. package/esm/types/contracts/IOpInflator.js.map +0 -1
  144. package/esm/types/contracts/IPaymaster.d.ts +0 -3
  145. package/esm/types/contracts/IPaymaster.js +0 -117
  146. package/esm/types/contracts/IPaymaster.js.map +0 -1
  147. package/esm/types/contracts/Inflator.d.ts +0 -65
  148. package/esm/types/contracts/Inflator.js +0 -84
  149. package/esm/types/contracts/Inflator.js.map +0 -1
  150. package/esm/types/contracts/PerOpInflator.d.ts +0 -176
  151. package/esm/types/contracts/PerOpInflator.js +0 -229
  152. package/esm/types/contracts/PerOpInflator.js.map +0 -1
  153. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -23
  154. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -33
  155. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
  156. package/esm/types/contracts/SenderCreator.d.ts +0 -4
  157. package/esm/types/contracts/SenderCreator.js +0 -23
  158. package/esm/types/contracts/SenderCreator.js.map +0 -1
  159. package/esm/types/contracts/SimpleAccountFactory.d.ts +0 -57
  160. package/esm/types/contracts/SimpleAccountFactory.js +0 -76
  161. package/esm/types/contracts/SimpleAccountFactory.js.map +0 -1
  162. package/esm/types/contracts/TestOpcodesAccount.d.ts +0 -4
  163. package/esm/types/contracts/TestOpcodesAccount.js +0 -281
  164. package/esm/types/contracts/TestOpcodesAccount.js.map +0 -1
  165. package/esm/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
  166. package/esm/types/contracts/TestOpcodesAccountFactory.js +0 -23
  167. package/esm/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
  168. package/esm/types/contracts/TestStorageAccount.d.ts +0 -4
  169. package/esm/types/contracts/TestStorageAccount.js +0 -313
  170. package/esm/types/contracts/TestStorageAccount.js.map +0 -1
  171. package/esm/types/contracts/index.d.ts +0 -17
  172. package/esm/types/contracts/index.js +0 -17
  173. package/esm/types/contracts/index.js.map +0 -1
  174. package/esm/types/gasPrice.d.ts +0 -110
  175. package/esm/types/gasPrice.js +0 -52
  176. package/esm/types/gasPrice.js.map +0 -1
  177. package/esm/types/index.d.ts +0 -11
  178. package/esm/types/index.js +0 -11
  179. package/esm/types/index.js.map +0 -1
  180. package/esm/types/interfaces.d.ts +0 -26
  181. package/esm/types/interfaces.js +0 -2
  182. package/esm/types/interfaces.js.map +0 -1
  183. package/esm/types/mempool.d.ts +0 -78
  184. package/esm/types/mempool.js +0 -16
  185. package/esm/types/mempool.js.map +0 -1
  186. package/esm/types/schemas.d.ts +0 -4791
  187. package/esm/types/schemas.js +0 -497
  188. package/esm/types/schemas.js.map +0 -1
  189. package/esm/types/test/validationTestErrors.d.ts +0 -3
  190. package/esm/types/test/validationTestErrors.js +0 -229
  191. package/esm/types/test/validationTestErrors.js.map +0 -1
  192. package/esm/types/utils.d.ts +0 -24
  193. package/esm/types/utils.js +0 -30
  194. package/esm/types/utils.js.map +0 -1
  195. package/esm/types/validation.d.ts +0 -14327
  196. package/esm/types/validation.js +0 -304
  197. package/esm/types/validation.js.map +0 -1
  198. package/esm/utils/bigInt.d.ts +0 -3
  199. package/esm/utils/bigInt.js +0 -9
  200. package/esm/utils/bigInt.js.map +0 -1
  201. package/esm/utils/compressionHandler.d.ts +0 -11
  202. package/esm/utils/compressionHandler.js +0 -39
  203. package/esm/utils/compressionHandler.js.map +0 -1
  204. package/esm/utils/gasPriceManager.d.ts +0 -34
  205. package/esm/utils/gasPriceManager.js +0 -338
  206. package/esm/utils/gasPriceManager.js.map +0 -1
  207. package/esm/utils/helpers.d.ts +0 -4
  208. package/esm/utils/helpers.js +0 -13
  209. package/esm/utils/helpers.js.map +0 -1
  210. package/esm/utils/index.d.ts +0 -11
  211. package/esm/utils/index.js +0 -10
  212. package/esm/utils/index.js.map +0 -1
  213. package/esm/utils/logger.d.ts +0 -6
  214. package/esm/utils/logger.js +0 -76
  215. package/esm/utils/logger.js.map +0 -1
  216. package/esm/utils/metrics.d.ts +0 -22
  217. package/esm/utils/metrics.js +0 -150
  218. package/esm/utils/metrics.js.map +0 -1
  219. package/esm/utils/rpc-reply.d.ts +0 -17
  220. package/esm/utils/rpc-reply.js +0 -41
  221. package/esm/utils/rpc-reply.js.map +0 -1
  222. package/esm/utils/test.d.ts +0 -17
  223. package/esm/utils/test.js +0 -130
  224. package/esm/utils/test.js.map +0 -1
  225. package/esm/utils/userop.d.ts +0 -49
  226. package/esm/utils/userop.js +0 -408
  227. package/esm/utils/userop.js.map +0 -1
  228. package/esm/utils/validation.d.ts +0 -65
  229. package/esm/utils/validation.js +0 -461
  230. package/esm/utils/validation.js.map +0 -1
@@ -1,338 +0,0 @@
1
- import { RpcError, gasStationResult } from "../types/index.js";
2
- import { maxBigInt, minBigInt } from "./index.js";
3
- import * as sentry from "@sentry/node";
4
- import { parseGwei } from "viem";
5
- import * as chains from "viem/chains";
6
- var ChainId;
7
- (function (ChainId) {
8
- ChainId[ChainId["Goerli"] = 5] = "Goerli";
9
- ChainId[ChainId["Polygon"] = 137] = "Polygon";
10
- ChainId[ChainId["Mumbai"] = 80001] = "Mumbai";
11
- ChainId[ChainId["LineaTestnet"] = 59140] = "LineaTestnet";
12
- ChainId[ChainId["Linea"] = 59144] = "Linea";
13
- })(ChainId || (ChainId = {}));
14
- const MIN_POLYGON_GAS_PRICE = parseGwei("31");
15
- const MIN_MUMBAI_GAS_PRICE = parseGwei("1");
16
- function getGasStationUrl(chainId) {
17
- switch (chainId) {
18
- case ChainId.Polygon:
19
- return "https://gasstation.polygon.technology/v2";
20
- case ChainId.Mumbai:
21
- return "https://gasstation-testnet.polygon.technology/v2";
22
- }
23
- }
24
- export class GasPriceManager {
25
- chain;
26
- publicClient;
27
- legacyTransactions;
28
- logger;
29
- queueBaseFeePerGas = []; // Store pairs of [price, timestamp]
30
- queueMaxFeePerGas = []; // Store pairs of [price, timestamp]
31
- queueMaxPriorityFeePerGas = []; // Store pairs of [price, timestamp]
32
- maxQueueSize;
33
- gasBumpMultiplier;
34
- constructor(chain, publicClient, legacyTransactions, logger, gasBumpMultiplier, gasPriceTimeValidityInSeconds = 10) {
35
- this.maxQueueSize = gasPriceTimeValidityInSeconds;
36
- this.chain = chain;
37
- this.publicClient = publicClient;
38
- this.legacyTransactions = legacyTransactions;
39
- this.logger = logger;
40
- this.gasBumpMultiplier = gasBumpMultiplier;
41
- }
42
- getDefaultGasFee(chainId) {
43
- switch (chainId) {
44
- case ChainId.Polygon:
45
- return MIN_POLYGON_GAS_PRICE;
46
- case ChainId.Mumbai:
47
- return MIN_MUMBAI_GAS_PRICE;
48
- default:
49
- return 0n;
50
- }
51
- }
52
- async getPolygonGasPriceParameters() {
53
- const gasStationUrl = getGasStationUrl(this.chain.id);
54
- try {
55
- const data = await (await fetch(gasStationUrl)).json();
56
- // take the standard speed here, SDK options will define the extra tip
57
- const parsedData = gasStationResult.parse(data);
58
- return parsedData.fast;
59
- }
60
- catch (e) {
61
- this.logger.error({ error: e }, "failed to get gas price from gas station, using default");
62
- return null;
63
- }
64
- }
65
- bumpTheGasPrice(gasPriceParameters) {
66
- const bumpAmount = this.gasBumpMultiplier;
67
- const maxPriorityFeePerGas = maxBigInt(gasPriceParameters.maxPriorityFeePerGas, this.getDefaultGasFee(this.chain.id));
68
- const maxFeePerGas = maxBigInt(gasPriceParameters.maxFeePerGas, maxPriorityFeePerGas);
69
- const result = {
70
- maxFeePerGas: (maxFeePerGas * bumpAmount) / 100n,
71
- maxPriorityFeePerGas: (maxPriorityFeePerGas * bumpAmount) / 100n
72
- };
73
- if (this.chain.id === chains.celo.id ||
74
- this.chain.id === chains.celoAlfajores.id) {
75
- const maxFee = maxBigInt(result.maxFeePerGas, result.maxPriorityFeePerGas);
76
- return {
77
- maxFeePerGas: maxFee,
78
- maxPriorityFeePerGas: maxFee
79
- };
80
- }
81
- if (this.chain.id === chains.dfk.id) {
82
- const maxFeePerGas = maxBigInt(5000000000n, result.maxFeePerGas);
83
- const maxPriorityFeePerGas = maxBigInt(5000000000n, result.maxPriorityFeePerGas);
84
- return {
85
- maxFeePerGas,
86
- maxPriorityFeePerGas
87
- };
88
- }
89
- // set a minimum maxPriorityFee & maxFee to 1.5gwei on avalanche (because eth_maxPriorityFeePerGas returns 0)
90
- if (this.chain.id === chains.avalanche.id) {
91
- const maxFeePerGas = maxBigInt(parseGwei("1.5"), result.maxFeePerGas);
92
- const maxPriorityFeePerGas = maxBigInt(parseGwei("1.5"), result.maxPriorityFeePerGas);
93
- return {
94
- maxFeePerGas,
95
- maxPriorityFeePerGas
96
- };
97
- }
98
- return result;
99
- }
100
- async getFallBackMaxPriorityFeePerGas(publicClient, gasPrice) {
101
- const feeHistory = await publicClient.getFeeHistory({
102
- blockCount: 10,
103
- rewardPercentiles: [20],
104
- blockTag: "latest"
105
- });
106
- if (feeHistory.reward === undefined || feeHistory.reward === null) {
107
- return gasPrice;
108
- }
109
- const feeAverage = feeHistory.reward.reduce((acc, cur) => cur[0] + acc, 0n) / 10n;
110
- return minBigInt(feeAverage, gasPrice);
111
- }
112
- async getNextBaseFee(publicClient) {
113
- const block = await publicClient.getBlock({
114
- blockTag: "latest"
115
- });
116
- const currentBaseFeePerGas = block.baseFeePerGas || (await publicClient.getGasPrice());
117
- const currentGasUsed = block.gasUsed;
118
- const gasTarget = block.gasLimit / 2n;
119
- if (currentGasUsed === gasTarget) {
120
- return currentBaseFeePerGas;
121
- }
122
- if (currentGasUsed > gasTarget) {
123
- const gasUsedDelta = currentGasUsed - gasTarget;
124
- const baseFeePerGasDelta = maxBigInt((currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n, 1n);
125
- return currentBaseFeePerGas + baseFeePerGasDelta;
126
- }
127
- const gasUsedDelta = currentGasUsed - gasTarget;
128
- const baseFeePerGasDelta = (currentBaseFeePerGas * gasUsedDelta) / gasTarget / 8n;
129
- return currentBaseFeePerGas - baseFeePerGasDelta;
130
- }
131
- async getLegacyTransactionGasPrice() {
132
- let gasPrice;
133
- try {
134
- const gasInfo = await this.publicClient.estimateFeesPerGas({
135
- chain: this.chain,
136
- type: "legacy"
137
- });
138
- gasPrice = gasInfo.gasPrice;
139
- }
140
- catch (e) {
141
- sentry.captureException(e);
142
- this.logger.error("failed to fetch legacy gasPrices from estimateFeesPerGas", { error: e });
143
- gasPrice = undefined;
144
- }
145
- if (gasPrice === undefined) {
146
- this.logger.warn("gasPrice is undefined, using fallback value");
147
- try {
148
- gasPrice = await this.publicClient.getGasPrice();
149
- }
150
- catch (e) {
151
- this.logger.error("failed to get fallback gasPrice");
152
- sentry.captureException(e);
153
- throw e;
154
- }
155
- }
156
- return {
157
- maxFeePerGas: gasPrice,
158
- maxPriorityFeePerGas: gasPrice
159
- };
160
- }
161
- async estimateGasPrice() {
162
- let maxFeePerGas;
163
- let maxPriorityFeePerGas;
164
- try {
165
- const fees = await this.publicClient.estimateFeesPerGas({
166
- chain: this.chain
167
- });
168
- maxFeePerGas = fees.maxFeePerGas;
169
- maxPriorityFeePerGas = fees.maxPriorityFeePerGas;
170
- }
171
- catch (e) {
172
- sentry.captureException(e);
173
- this.logger.error("failed to fetch eip-1559 gasPrices from estimateFeesPerGas", { error: e });
174
- maxFeePerGas = undefined;
175
- maxPriorityFeePerGas = undefined;
176
- }
177
- if (maxPriorityFeePerGas === undefined) {
178
- this.logger.warn("maxPriorityFeePerGas is undefined, using fallback value");
179
- try {
180
- maxPriorityFeePerGas =
181
- await this.getFallBackMaxPriorityFeePerGas(this.publicClient, maxFeePerGas ?? 0n);
182
- }
183
- catch (e) {
184
- this.logger.error("failed to get fallback maxPriorityFeePerGas");
185
- sentry.captureException(e);
186
- throw e;
187
- }
188
- }
189
- if (maxFeePerGas === undefined) {
190
- this.logger.warn("maxFeePerGas is undefined, using fallback value");
191
- try {
192
- maxFeePerGas =
193
- (await this.getNextBaseFee(this.publicClient)) +
194
- maxPriorityFeePerGas;
195
- }
196
- catch (e) {
197
- this.logger.error("failed to get fallback maxFeePerGas");
198
- sentry.captureException(e);
199
- throw e;
200
- }
201
- }
202
- if (maxPriorityFeePerGas === 0n) {
203
- maxPriorityFeePerGas = maxFeePerGas / 200n;
204
- }
205
- return { maxFeePerGas, maxPriorityFeePerGas };
206
- }
207
- saveBaseFeePerGas(gasPrice, timestamp) {
208
- const queue = this.queueBaseFeePerGas;
209
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
210
- if (!last || timestamp - last.timestamp >= 1000) {
211
- if (queue.length >= this.maxQueueSize) {
212
- queue.shift();
213
- }
214
- queue.push({ baseFeePerGas: gasPrice, timestamp });
215
- }
216
- else if (gasPrice < last.baseFeePerGas) {
217
- last.baseFeePerGas = gasPrice;
218
- last.timestamp = timestamp;
219
- }
220
- }
221
- saveMaxFeePerGas(gasPrice, timestamp) {
222
- const queue = this.queueMaxFeePerGas;
223
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
224
- if (!last || timestamp - last.timestamp >= 1000) {
225
- if (queue.length >= this.maxQueueSize) {
226
- queue.shift();
227
- }
228
- queue.push({ maxFeePerGas: gasPrice, timestamp });
229
- }
230
- else if (gasPrice < last.maxFeePerGas) {
231
- last.maxFeePerGas = gasPrice;
232
- last.timestamp = timestamp;
233
- }
234
- }
235
- saveMaxPriorityFeePerGas(gasPrice, timestamp) {
236
- const queue = this.queueMaxPriorityFeePerGas;
237
- const last = queue.length > 0 ? queue[queue.length - 1] : null;
238
- if (!last || timestamp - last.timestamp >= 1000) {
239
- if (queue.length >= this.maxQueueSize) {
240
- queue.shift();
241
- }
242
- queue.push({ maxPriorityFeePerGas: gasPrice, timestamp });
243
- }
244
- else if (gasPrice < last.maxPriorityFeePerGas) {
245
- last.maxPriorityFeePerGas = gasPrice;
246
- last.timestamp = timestamp;
247
- }
248
- }
249
- saveGasPrice(gasPrice, timestamp) {
250
- return new Promise((resolve) => {
251
- this.saveMaxFeePerGas(gasPrice.maxFeePerGas, timestamp);
252
- this.saveMaxPriorityFeePerGas(gasPrice.maxPriorityFeePerGas, timestamp);
253
- resolve();
254
- });
255
- }
256
- async innerGetGasPrice() {
257
- let maxFeePerGas = 0n;
258
- let maxPriorityFeePerGas = 0n;
259
- if (this.chain.id === chains.polygon.id ||
260
- this.chain.id === chains.polygonMumbai.id) {
261
- const polygonEstimate = await this.getPolygonGasPriceParameters();
262
- if (polygonEstimate) {
263
- const gasPrice = this.bumpTheGasPrice({
264
- maxFeePerGas: polygonEstimate.maxFeePerGas,
265
- maxPriorityFeePerGas: polygonEstimate.maxPriorityFeePerGas
266
- });
267
- return {
268
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
269
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
270
- };
271
- }
272
- }
273
- if (this.legacyTransactions) {
274
- const gasPrice = this.bumpTheGasPrice(await this.getLegacyTransactionGasPrice());
275
- return {
276
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
277
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
278
- };
279
- }
280
- const estimatedPrice = await this.estimateGasPrice();
281
- maxFeePerGas = estimatedPrice.maxFeePerGas;
282
- maxPriorityFeePerGas = estimatedPrice.maxPriorityFeePerGas;
283
- const gasPrice = this.bumpTheGasPrice({
284
- maxFeePerGas,
285
- maxPriorityFeePerGas
286
- });
287
- return {
288
- maxFeePerGas: maxBigInt(gasPrice.maxFeePerGas, maxFeePerGas),
289
- maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
290
- };
291
- }
292
- async getBaseFee() {
293
- const latestBlock = await this.publicClient.getBlock();
294
- if (latestBlock.baseFeePerGas === null) {
295
- throw new RpcError("block does not have baseFeePerGas");
296
- }
297
- const baseFee = latestBlock.baseFeePerGas;
298
- this.saveBaseFeePerGas(baseFee, Date.now());
299
- return baseFee;
300
- }
301
- async getGasPrice() {
302
- const gasPrice = await this.innerGetGasPrice();
303
- this.saveGasPrice({
304
- maxFeePerGas: gasPrice.maxFeePerGas,
305
- maxPriorityFeePerGas: gasPrice.maxPriorityFeePerGas
306
- }, Date.now());
307
- return gasPrice;
308
- }
309
- async getMaxBaseFeePerGas() {
310
- if (this.queueBaseFeePerGas.length === 0) {
311
- await this.getBaseFee();
312
- }
313
- return this.queueBaseFeePerGas.reduce((acc, cur) => maxBigInt(cur.baseFeePerGas, acc), this.queueBaseFeePerGas[0].baseFeePerGas);
314
- }
315
- async getMinMaxFeePerGas() {
316
- if (this.queueMaxFeePerGas.length === 0) {
317
- await this.getGasPrice();
318
- }
319
- return this.queueMaxFeePerGas.reduce((acc, cur) => minBigInt(cur.maxFeePerGas, acc), this.queueMaxFeePerGas[0].maxFeePerGas);
320
- }
321
- async getMinMaxPriorityFeePerGas() {
322
- if (this.queueMaxPriorityFeePerGas.length === 0) {
323
- await this.getGasPrice();
324
- }
325
- return this.queueMaxPriorityFeePerGas.reduce((acc, cur) => minBigInt(cur.maxPriorityFeePerGas, acc), this.queueMaxPriorityFeePerGas[0].maxPriorityFeePerGas);
326
- }
327
- async validateGasPrice(gasPrice) {
328
- const lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
329
- const lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
330
- if (gasPrice.maxFeePerGas < lowestMaxFeePerGas) {
331
- throw new RpcError(`maxFeePerGas must be at least ${lowestMaxFeePerGas} (current maxFeePerGas: ${gasPrice.maxFeePerGas}) - use pimlico_getUserOperationGasPrice to get the current gas price`);
332
- }
333
- if (gasPrice.maxPriorityFeePerGas < lowestMaxPriorityFeePerGas) {
334
- throw new RpcError(`maxPriorityFeePerGas must be at least ${lowestMaxPriorityFeePerGas} (current maxPriorityFeePerGas: ${gasPrice.maxPriorityFeePerGas}) - use pimlico_getUserOperationGasPrice to get the current gas price`);
335
- }
336
- }
337
- }
338
- //# sourceMappingURL=gasPriceManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gasPriceManager.js","sourceRoot":"","sources":["../../utils/gasPriceManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { type Address } from "viem";
2
- export declare const areAddressesEqual: (a: Address, b: Address) => boolean;
3
- export declare function getRevertErrorData(err: unknown): `0x${string}` | undefined;
4
- //# sourceMappingURL=helpers.d.ts.map
@@ -1,13 +0,0 @@
1
- import { getAddress, BaseError } from "viem";
2
- /// Ensure proper equality by converting both addresses into their checksum type
3
- export const areAddressesEqual = (a, b) => {
4
- return getAddress(a) === getAddress(b);
5
- };
6
- export function getRevertErrorData(err) {
7
- // biome-ignore lint/style/useBlockStatements:
8
- if (!(err instanceof BaseError))
9
- return undefined;
10
- const error = err.walk();
11
- return typeof error?.data === "object" ? error.data?.data : error.data;
12
- }
13
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,SAAS,EAEZ,MAAM,MAAM,CAAA;AAEb,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IACxD,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC3C,8CAA8C;IAC9C,IAAI,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAsB,CAAA;IAC5C,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;AAC1E,CAAC"}
@@ -1,11 +0,0 @@
1
- export * from "./logger.js";
2
- export * from "./metrics.js";
3
- export * from "./bigInt.js";
4
- export * from "./gasPriceManager.js";
5
- export * from "./test.js";
6
- export * from "./validation.js";
7
- export * from "./userop.js";
8
- export * from "./compressionHandler.js";
9
- export * from "./helpers.js";
10
- export { Logger } from "pino";
11
- //# sourceMappingURL=index.d.ts.map
@@ -1,10 +0,0 @@
1
- export * from "./logger.js";
2
- export * from "./metrics.js";
3
- export * from "./bigInt.js";
4
- export * from "./gasPriceManager.js";
5
- export * from "./test.js";
6
- export * from "./validation.js";
7
- export * from "./userop.js";
8
- export * from "./compressionHandler.js";
9
- export * from "./helpers.js";
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { Logger } from "./index.js";
2
- import { type SerializerFn } from "pino";
3
- export declare const customSerializer: SerializerFn;
4
- export declare const initDebugLogger: (level?: string) => Logger;
5
- export declare const initProductionLogger: (level: string) => Logger;
6
- //# sourceMappingURL=logger.d.ts.map
@@ -1,76 +0,0 @@
1
- import logger from "pino";
2
- import { toHex } from "viem";
3
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
4
- function bigintToJson(_key, value) {
5
- if (typeof value === "bigint") {
6
- return toHex(value);
7
- }
8
- return value;
9
- }
10
- function logLevel(label) {
11
- return {
12
- level: label
13
- };
14
- }
15
- function stringifyWithCircularHandling(obj,
16
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
17
- replacer) {
18
- // biome-ignore lint/suspicious/noExplicitAny: it's a generic type
19
- const cache = new Set();
20
- return JSON.stringify(obj, (key, value) => {
21
- if (typeof value === "object" && value !== null) {
22
- if (cache.has(value)) {
23
- return; // Circular reference found, discard the key
24
- }
25
- cache.add(value);
26
- }
27
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
28
- return replacer ? replacer(key, value) : value;
29
- });
30
- }
31
- export const customSerializer = (input) => {
32
- const output = {};
33
- for (const key in input) {
34
- if (Object.prototype.hasOwnProperty.call(input, key)) {
35
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
36
- const value = input[key];
37
- if (typeof value === "object" && value !== null) {
38
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument
39
- output[key] = JSON.parse(stringifyWithCircularHandling(value, bigintToJson));
40
- }
41
- else {
42
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
43
- output[key] = bigintToJson(key, value);
44
- }
45
- }
46
- }
47
- return output;
48
- };
49
- export const initDebugLogger = (level = "debug") => {
50
- const l = logger({
51
- transport: {
52
- target: "pino-pretty",
53
- options: {
54
- colorize: true
55
- }
56
- },
57
- formatters: {
58
- level: logLevel,
59
- log: customSerializer
60
- }
61
- });
62
- l.level = level;
63
- return l;
64
- };
65
- export const initProductionLogger = (level) => {
66
- const l = logger({
67
- base: undefined, // do not log pid and hostname, we don't need it
68
- formatters: {
69
- level: logLevel,
70
- log: customSerializer
71
- }
72
- });
73
- l.level = level;
74
- return l;
75
- };
76
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { Counter, Gauge, Histogram, type Registry } from "prom-client";
2
- export type Metrics = ReturnType<typeof createMetrics>;
3
- export declare function createMetrics(registry: Registry, register?: boolean): {
4
- httpRequests: Counter<"code" | "method" | "route" | "network" | "chainId" | "rpc_method" | "rpc_status">;
5
- httpRequestsDuration: Histogram<"code" | "method" | "route" | "network" | "chainId" | "rpc_method" | "rpc_status" | "api_version">;
6
- userOperationsInMempool: Gauge<"status" | "network" | "chainId">;
7
- walletsAvailable: Gauge<never>;
8
- walletsTotal: Gauge<never>;
9
- userOperationsOnChain: Counter<"status">;
10
- userOperationsSubmitted: Counter<"status">;
11
- bundlesIncluded: Counter<never>;
12
- bundlesSubmitted: Counter<"status">;
13
- userOperationsReceived: Counter<"type" | "status">;
14
- userOperationsValidationSuccess: Counter<never>;
15
- userOperationsValidationFailure: Counter<never>;
16
- userOperationInclusionDuration: Histogram<never>;
17
- verificationGasLimitEstimationTime: Histogram<never>;
18
- verificationGasLimitEstimationCount: Histogram<never>;
19
- replacedTransactions: Counter<"reason" | "status">;
20
- userOperationsResubmitted: Counter<never>;
21
- };
22
- //# sourceMappingURL=metrics.d.ts.map