@pimlico/alto 0.0.4 → 0.0.6
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.
- package/esm/cli/alto.js +0 -4
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +2296 -22
- package/esm/cli/config/bundler.js +31 -4
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +53 -4
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/customTransport.js +5 -1
- package/esm/cli/customTransport.js.map +1 -1
- package/esm/cli/handler.js +14 -3
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/instrumentation.js +2 -2
- package/esm/cli/instrumentation.js.map +1 -1
- package/esm/cli/setupServer.d.ts +2 -1
- package/esm/cli/setupServer.js +51 -27
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/executor/executor.d.ts +7 -14
- package/esm/executor/executor.js +139 -128
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +58 -4
- package/esm/executor/executorManager.js +207 -53
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/senderManager.d.ts +2 -1
- package/esm/executor/senderManager.js +3 -0
- package/esm/executor/senderManager.js.map +1 -1
- package/esm/executor/utilityWalletMonitor.d.ts +15 -0
- package/esm/executor/utilityWalletMonitor.js +38 -0
- package/esm/executor/utilityWalletMonitor.js.map +1 -0
- package/esm/executor/utils.d.ts +1 -2
- package/esm/executor/utils.js +49 -38
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/compressionHandler.js.map +1 -0
- package/esm/handlers/eventManager.d.ts +21 -0
- package/esm/handlers/eventManager.js +166 -0
- package/esm/handlers/eventManager.js.map +1 -0
- package/{lib/utils → esm/handlers}/gasPriceManager.d.ts +19 -5
- package/esm/{utils → handlers}/gasPriceManager.js +58 -13
- package/esm/handlers/gasPriceManager.js.map +1 -0
- package/esm/handlers/index.d.ts +4 -0
- package/esm/handlers/index.js +4 -0
- package/esm/handlers/index.js.map +1 -0
- package/esm/mempool/index.d.ts +0 -1
- package/esm/mempool/index.js +0 -1
- package/esm/mempool/index.js.map +1 -1
- package/esm/mempool/mempool.d.ts +4 -2
- package/esm/mempool/mempool.js +65 -19
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/rpc/EntryPointSimulationsV07.d.ts +2 -2
- package/esm/rpc/EntryPointSimulationsV07.js +10 -7
- package/esm/rpc/EntryPointSimulationsV07.js.map +1 -1
- package/esm/rpc/gasEstimation.d.ts +3 -3
- package/esm/rpc/gasEstimation.js +22 -17
- package/esm/rpc/gasEstimation.js.map +1 -1
- package/esm/rpc/nonceQueuer.d.ts +4 -1
- package/esm/rpc/nonceQueuer.js +9 -3
- package/esm/rpc/nonceQueuer.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +53 -3
- package/esm/rpc/rpcHandler.js +132 -231
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/server.d.ts +2 -1
- package/esm/rpc/server.js +6 -1
- package/esm/rpc/server.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.d.ts +3 -2
- package/esm/rpc/validation/SafeValidator.js +2 -2
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +5 -2
- package/esm/rpc/validation/UnsafeValidator.js +10 -6
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/rpc/validation/tracer.js +1 -0
- package/esm/rpc/validation/tracer.js.map +1 -1
- package/esm/types/schemas.d.ts +1029 -333
- package/esm/types/schemas.js +94 -20
- package/esm/types/schemas.js.map +1 -1
- package/esm/types/utils.d.ts +1 -1
- package/esm/types/validation.js +7 -2
- package/esm/types/validation.js.map +1 -1
- package/esm/utils/bigInt.d.ts +1 -0
- package/esm/utils/bigInt.js +4 -0
- package/esm/utils/bigInt.js.map +1 -1
- package/esm/utils/helpers.d.ts +1 -0
- package/esm/utils/helpers.js +6 -0
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/index.d.ts +0 -3
- package/esm/utils/index.js +0 -3
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/metrics.d.ts +4 -0
- package/esm/utils/metrics.js +29 -1
- package/esm/utils/metrics.js.map +1 -1
- package/esm/utils/rpc-reply.d.ts +1 -1
- package/esm/utils/rpc-reply.js +2 -1
- package/esm/utils/rpc-reply.js.map +1 -1
- package/esm/utils/userop.d.ts +66 -6
- package/esm/utils/userop.js +183 -96
- package/esm/utils/userop.js.map +1 -1
- package/esm/utils/validation.d.ts +1 -1
- package/esm/utils/validation.js +9 -13
- package/esm/utils/validation.js.map +1 -1
- package/lib/cli/alto.js +0 -4
- package/lib/cli/alto.js.map +1 -1
- package/lib/cli/config/bundler.d.ts +2296 -22
- package/lib/cli/config/bundler.js +30 -3
- package/lib/cli/config/bundler.js.map +1 -1
- package/lib/cli/config/options.js +53 -4
- package/lib/cli/config/options.js.map +1 -1
- package/lib/cli/customTransport.js +5 -1
- package/lib/cli/customTransport.js.map +1 -1
- package/lib/cli/handler.js +13 -2
- package/lib/cli/handler.js.map +1 -1
- package/lib/cli/instrumentation.js +2 -2
- package/lib/cli/instrumentation.js.map +1 -1
- package/lib/cli/setupServer.d.ts +2 -1
- package/lib/cli/setupServer.js +52 -28
- package/lib/cli/setupServer.js.map +1 -1
- package/lib/executor/executor.d.ts +7 -14
- package/lib/executor/executor.js +138 -128
- package/lib/executor/executor.js.map +1 -1
- package/lib/executor/executorManager.d.ts +58 -4
- package/lib/executor/executorManager.js +205 -51
- package/lib/executor/executorManager.js.map +1 -1
- package/lib/executor/senderManager.d.ts +2 -1
- package/lib/executor/senderManager.js +3 -0
- package/lib/executor/senderManager.js.map +1 -1
- package/lib/executor/utilityWalletMonitor.d.ts +15 -0
- package/lib/executor/utilityWalletMonitor.js +42 -0
- package/lib/executor/utilityWalletMonitor.js.map +1 -0
- package/lib/executor/utils.d.ts +1 -2
- package/lib/executor/utils.js +48 -37
- package/lib/executor/utils.js.map +1 -1
- package/lib/handlers/compressionHandler.js.map +1 -0
- package/lib/handlers/eventManager.d.ts +21 -0
- package/lib/handlers/eventManager.js +196 -0
- package/lib/handlers/eventManager.js.map +1 -0
- package/{esm/utils → lib/handlers}/gasPriceManager.d.ts +19 -5
- package/lib/{utils → handlers}/gasPriceManager.js +58 -13
- package/lib/handlers/gasPriceManager.js.map +1 -0
- package/lib/handlers/index.d.ts +4 -0
- package/lib/handlers/index.js +20 -0
- package/lib/handlers/index.js.map +1 -0
- package/lib/mempool/index.d.ts +0 -1
- package/lib/mempool/index.js +0 -1
- package/lib/mempool/index.js.map +1 -1
- package/lib/mempool/mempool.d.ts +4 -2
- package/lib/mempool/mempool.js +65 -19
- package/lib/mempool/mempool.js.map +1 -1
- package/lib/rpc/EntryPointSimulationsV07.d.ts +2 -2
- package/lib/rpc/EntryPointSimulationsV07.js +10 -7
- package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
- package/lib/rpc/gasEstimation.d.ts +3 -3
- package/lib/rpc/gasEstimation.js +22 -17
- package/lib/rpc/gasEstimation.js.map +1 -1
- package/lib/rpc/nonceQueuer.d.ts +4 -1
- package/lib/rpc/nonceQueuer.js +9 -3
- package/lib/rpc/nonceQueuer.js.map +1 -1
- package/lib/rpc/rpcHandler.d.ts +53 -3
- package/lib/rpc/rpcHandler.js +129 -251
- package/lib/rpc/rpcHandler.js.map +1 -1
- package/lib/rpc/server.d.ts +2 -1
- package/lib/rpc/server.js +6 -1
- package/lib/rpc/server.js.map +1 -1
- package/lib/rpc/validation/SafeValidator.d.ts +3 -2
- package/lib/rpc/validation/SafeValidator.js +2 -2
- package/lib/rpc/validation/SafeValidator.js.map +1 -1
- package/lib/rpc/validation/UnsafeValidator.d.ts +5 -2
- package/lib/rpc/validation/UnsafeValidator.js +33 -6
- package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
- package/lib/rpc/validation/tracer.js +1 -0
- package/lib/rpc/validation/tracer.js.map +1 -1
- package/lib/types/schemas.d.ts +1029 -333
- package/lib/types/schemas.js +93 -19
- package/lib/types/schemas.js.map +1 -1
- package/lib/types/utils.d.ts +1 -1
- package/lib/types/validation.js +7 -2
- package/lib/types/validation.js.map +1 -1
- package/lib/utils/bigInt.d.ts +1 -0
- package/lib/utils/bigInt.js +6 -1
- package/lib/utils/bigInt.js.map +1 -1
- package/lib/utils/helpers.d.ts +1 -0
- package/lib/utils/helpers.js +8 -1
- package/lib/utils/helpers.js.map +1 -1
- package/lib/utils/index.d.ts +0 -3
- package/lib/utils/index.js +0 -3
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/metrics.d.ts +4 -0
- package/lib/utils/metrics.js +29 -1
- package/lib/utils/metrics.js.map +1 -1
- package/lib/utils/rpc-reply.d.ts +1 -1
- package/lib/utils/rpc-reply.js +2 -1
- package/lib/utils/rpc-reply.js.map +1 -1
- package/lib/utils/userop.d.ts +66 -6
- package/lib/utils/userop.js +208 -96
- package/lib/utils/userop.js.map +1 -1
- package/lib/utils/validation.d.ts +1 -1
- package/lib/utils/validation.js +9 -36
- package/lib/utils/validation.js.map +1 -1
- package/package.json +15 -14
- package/esm/executor/test/utils.d.ts +0 -13
- package/esm/executor/test/utils.js +0 -75
- package/esm/executor/test/utils.js.map +0 -1
- package/esm/mempool/nullMempool.d.ts +0 -15
- package/esm/mempool/nullMempool.js +0 -36
- package/esm/mempool/nullMempool.js.map +0 -1
- package/esm/types/test/validationTestErrors.d.ts +0 -3
- package/esm/types/test/validationTestErrors.js +0 -229
- package/esm/types/test/validationTestErrors.js.map +0 -1
- package/esm/utils/compressionHandler.js.map +0 -1
- package/esm/utils/gasPriceManager.js.map +0 -1
- package/esm/utils/test.d.ts +0 -17
- package/esm/utils/test.js +0 -130
- package/esm/utils/test.js.map +0 -1
- package/lib/executor/test/utils.d.ts +0 -13
- package/lib/executor/test/utils.js +0 -81
- package/lib/executor/test/utils.js.map +0 -1
- package/lib/mempool/nullMempool.d.ts +0 -15
- package/lib/mempool/nullMempool.js +0 -40
- package/lib/mempool/nullMempool.js.map +0 -1
- package/lib/types/test/validationTestErrors.d.ts +0 -3
- package/lib/types/test/validationTestErrors.js +0 -232
- package/lib/types/test/validationTestErrors.js.map +0 -1
- package/lib/utils/compressionHandler.js.map +0 -1
- package/lib/utils/gasPriceManager.js.map +0 -1
- package/lib/utils/test.d.ts +0 -17
- package/lib/utils/test.js +0 -161
- package/lib/utils/test.js.map +0 -1
- /package/esm/{utils → handlers}/compressionHandler.d.ts +0 -0
- /package/esm/{utils → handlers}/compressionHandler.js +0 -0
- /package/lib/{utils → handlers}/compressionHandler.d.ts +0 -0
- /package/lib/{utils → handlers}/compressionHandler.js +0 -0
package/esm/executor/utils.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import { getRevertErrorData, isVersion06, parseViemError, toPackedUserOperation, transactionIncluded } from "../utils/index.js";
|
|
1
|
+
// biome-ignore lint/style/noNamespaceImport: explicitly make it clear when sentry is used
|
|
3
2
|
import * as sentry from "@sentry/node";
|
|
3
|
+
import { EntryPointV06Abi, EntryPointV07Abi, deriveUserOperation, failedOpErrorSchema, failedOpWithRevertErrorSchema } from "../types/index.js";
|
|
4
|
+
import { getRevertErrorData, scaleBigIntByPercent, isVersion06, parseViemError, toPackedUserOperation } from "../utils/index.js";
|
|
4
5
|
import { ContractFunctionRevertedError, EstimateGasExecutionError, FeeCapTooLowError, concat, decodeErrorResult, hexToBytes, numberToHex } from "viem";
|
|
5
6
|
export function simulatedOpsToResults(simulatedOps, transactionInfo) {
|
|
6
|
-
return simulatedOps.map((
|
|
7
|
-
if (
|
|
7
|
+
return simulatedOps.map(({ reason, owh }) => {
|
|
8
|
+
if (reason === undefined) {
|
|
8
9
|
return {
|
|
9
10
|
status: "success",
|
|
10
11
|
value: {
|
|
11
12
|
userOperation: {
|
|
12
13
|
entryPoint: transactionInfo.entryPoint,
|
|
13
|
-
mempoolUserOperation:
|
|
14
|
-
userOperationHash:
|
|
14
|
+
mempoolUserOperation: owh.mempoolUserOperation,
|
|
15
|
+
userOperationHash: owh.userOperationHash,
|
|
15
16
|
lastReplaced: Date.now(),
|
|
16
17
|
firstSubmitted: Date.now()
|
|
17
18
|
},
|
|
@@ -23,9 +24,9 @@ export function simulatedOpsToResults(simulatedOps, transactionInfo) {
|
|
|
23
24
|
status: "failure",
|
|
24
25
|
error: {
|
|
25
26
|
entryPoint: transactionInfo.entryPoint,
|
|
26
|
-
userOperation:
|
|
27
|
-
userOpHash:
|
|
28
|
-
reason:
|
|
27
|
+
userOperation: owh.mempoolUserOperation,
|
|
28
|
+
userOpHash: owh.userOperationHash,
|
|
29
|
+
reason: reason
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
32
|
});
|
|
@@ -50,16 +51,17 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
50
51
|
});
|
|
51
52
|
let gasLimit;
|
|
52
53
|
// TODO compressed ops are not supported in V07
|
|
53
|
-
const isUserOpV06 = callContext.type
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
const isUserOpV06 = callContext.type !== "default" || // All compressed ops are v6 by default
|
|
55
|
+
isVersion06(simulatedOps[0].owh.mempoolUserOperation);
|
|
56
|
+
const gasOptions = onlyPre1559
|
|
57
|
+
? { gasPrice: maxFeePerGas }
|
|
58
|
+
: { maxFeePerGas, maxPriorityFeePerGas };
|
|
59
|
+
let fixedEstimationGasLimit = fixedGasLimitForEstimation;
|
|
60
|
+
let retriesLeft = 5;
|
|
56
61
|
while (simulatedOps.filter((op) => op.reason === undefined).length > 0) {
|
|
57
62
|
try {
|
|
58
|
-
const gasOptions = onlyPre1559
|
|
59
|
-
? { gasPrice: maxFeePerGas }
|
|
60
|
-
: { maxFeePerGas, maxPriorityFeePerGas };
|
|
61
63
|
if (callContext.type === "default") {
|
|
62
|
-
const ep = callContext
|
|
64
|
+
const { ep } = callContext;
|
|
63
65
|
const opsToSend = simulatedOps
|
|
64
66
|
.filter((op) => op.reason === undefined)
|
|
65
67
|
.map((op) => {
|
|
@@ -74,8 +76,8 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
74
76
|
account: wallet,
|
|
75
77
|
nonce: nonce,
|
|
76
78
|
blockTag: blockTag,
|
|
77
|
-
...(
|
|
78
|
-
gas:
|
|
79
|
+
...(fixedEstimationGasLimit !== undefined && {
|
|
80
|
+
gas: fixedEstimationGasLimit
|
|
79
81
|
}),
|
|
80
82
|
...gasOptions
|
|
81
83
|
});
|
|
@@ -90,13 +92,15 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
90
92
|
to: bundleBulker,
|
|
91
93
|
account: wallet,
|
|
92
94
|
data: createCompressedCalldata(opsToSend, perOpInflatorId),
|
|
93
|
-
|
|
95
|
+
...(fixedEstimationGasLimit !== undefined && {
|
|
96
|
+
gas: fixedEstimationGasLimit
|
|
97
|
+
}),
|
|
94
98
|
nonce: nonce,
|
|
95
99
|
blockTag: blockTag,
|
|
96
100
|
...gasOptions
|
|
97
101
|
});
|
|
98
102
|
}
|
|
99
|
-
return { simulatedOps, gasLimit
|
|
103
|
+
return { simulatedOps, gasLimit };
|
|
100
104
|
}
|
|
101
105
|
catch (err) {
|
|
102
106
|
logger.error({ err, blockTag }, "error estimating gas");
|
|
@@ -112,6 +116,12 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
112
116
|
errorData = failedOpWithRevertError.data.args;
|
|
113
117
|
}
|
|
114
118
|
if (errorData) {
|
|
119
|
+
if (errorData.reason.indexOf("AA95 out of gas") !== -1 &&
|
|
120
|
+
retriesLeft > 0) {
|
|
121
|
+
retriesLeft--;
|
|
122
|
+
fixedEstimationGasLimit = scaleBigIntByPercent(fixedEstimationGasLimit || BigInt(30_000_000), 110);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
115
125
|
logger.debug({
|
|
116
126
|
errorData,
|
|
117
127
|
userOpHashes: simulatedOps
|
|
@@ -131,20 +141,26 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
131
141
|
}, "failed to parse failedOpError");
|
|
132
142
|
return {
|
|
133
143
|
simulatedOps: [],
|
|
134
|
-
gasLimit: 0n
|
|
135
|
-
resubmitAllOps: false
|
|
144
|
+
gasLimit: 0n
|
|
136
145
|
};
|
|
137
146
|
}
|
|
138
147
|
}
|
|
139
148
|
else if (e instanceof EstimateGasExecutionError ||
|
|
140
149
|
err instanceof EstimateGasExecutionError) {
|
|
141
|
-
if (e?.cause instanceof FeeCapTooLowError) {
|
|
150
|
+
if (e?.cause instanceof FeeCapTooLowError && retriesLeft > 0) {
|
|
151
|
+
retriesLeft--;
|
|
142
152
|
logger.info({ error: e.shortMessage }, "error estimating gas due to max fee < basefee");
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
153
|
+
if ("gasPrice" in gasOptions) {
|
|
154
|
+
gasOptions.gasPrice = scaleBigIntByPercent(gasOptions.gasPrice || maxFeePerGas, 125);
|
|
155
|
+
}
|
|
156
|
+
if ("maxFeePerGas" in gasOptions) {
|
|
157
|
+
gasOptions.maxFeePerGas = scaleBigIntByPercent(gasOptions.maxFeePerGas || maxFeePerGas, 125);
|
|
158
|
+
}
|
|
159
|
+
if ("maxPriorityFeePerGas" in gasOptions) {
|
|
160
|
+
gasOptions.maxPriorityFeePerGas = scaleBigIntByPercent(gasOptions.maxPriorityFeePerGas ||
|
|
161
|
+
maxPriorityFeePerGas, 125);
|
|
162
|
+
}
|
|
163
|
+
continue;
|
|
148
164
|
}
|
|
149
165
|
try {
|
|
150
166
|
let errorHexData = "0x";
|
|
@@ -173,8 +189,7 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
173
189
|
}, "unexpected error result");
|
|
174
190
|
return {
|
|
175
191
|
simulatedOps: [],
|
|
176
|
-
gasLimit: 0n
|
|
177
|
-
resubmitAllOps: false
|
|
192
|
+
gasLimit: 0n
|
|
178
193
|
};
|
|
179
194
|
}
|
|
180
195
|
const failingOp = simulatedOps.filter((op) => op.reason === undefined)[Number(errorResult.args[0])];
|
|
@@ -184,21 +199,20 @@ export async function filterOpsAndEstimateGas(entryPoint, callContext, wallet, o
|
|
|
184
199
|
logger.error({ error: JSON.stringify(err) }, "failed to parse error result");
|
|
185
200
|
return {
|
|
186
201
|
simulatedOps: [],
|
|
187
|
-
gasLimit: 0n
|
|
188
|
-
resubmitAllOps: false
|
|
202
|
+
gasLimit: 0n
|
|
189
203
|
};
|
|
190
204
|
}
|
|
191
205
|
}
|
|
192
206
|
else {
|
|
193
207
|
sentry.captureException(err);
|
|
194
208
|
logger.error({ error: JSON.stringify(err), blockTag }, "error estimating gas");
|
|
195
|
-
return { simulatedOps: [], gasLimit: 0n
|
|
209
|
+
return { simulatedOps: [], gasLimit: 0n };
|
|
196
210
|
}
|
|
197
211
|
}
|
|
198
212
|
}
|
|
199
|
-
return { simulatedOps, gasLimit: 0n
|
|
213
|
+
return { simulatedOps, gasLimit: 0n };
|
|
200
214
|
}
|
|
201
|
-
export async function flushStuckTransaction(publicClient, walletClient, wallet, gasPrice, logger
|
|
215
|
+
export async function flushStuckTransaction(publicClient, walletClient, wallet, gasPrice, logger) {
|
|
202
216
|
const latestNonce = await publicClient.getTransactionCount({
|
|
203
217
|
address: wallet.address,
|
|
204
218
|
blockTag: "latest"
|
|
@@ -228,9 +242,6 @@ export async function flushStuckTransaction(publicClient, walletClient, wallet,
|
|
|
228
242
|
maxPriorityFeePerGas: gasPrice
|
|
229
243
|
});
|
|
230
244
|
logger.debug({ txHash, nonce: nonceToFlush, wallet: wallet.address }, "flushed stuck transaction");
|
|
231
|
-
// TODO: We don't know if the entrypoint is the V06 or V07. So we try and catch both.
|
|
232
|
-
await transactionIncluded(true, txHash, publicClient, entryPoint);
|
|
233
|
-
await transactionIncluded(false, txHash, publicClient, entryPoint);
|
|
234
245
|
}
|
|
235
246
|
catch (e) {
|
|
236
247
|
sentry.captureException(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../executor/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../executor/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressionHandler.js","sourceRoot":"","sources":["../../handlers/compressionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAkC,WAAW,EAAE,MAAM,MAAM,CAAA;AAElE,MAAM,OAAO,kBAAkB;IAC3B,mBAAmB,CAAS;IAC5B,oBAAoB,CAAS;IAC7B,eAAe,CAAQ;IAEvB,YACI,mBAA4B,EAC5B,oBAA6B,EAC7B,eAAuB;QAEvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAEM,MAAM,CAAC,WAAW,GAAG,KAAK,EAC7B,mBAA4B,EAC5B,oBAA6B,EAC7B,YAA0B,EAC5B,EAAE;QACA,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAC7C,mBAAmB,EACnB,oBAAoB,EACpB,CAAC,CACJ,CAAA;QAED,MAAM,YAAY,GAAG,WAAW,CAAC;YAC7B,OAAO,EAAE,mBAAmB;YAC5B,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;aACvB;SACJ,CAAC,CAAA;QAEF,kBAAkB,CAAC,eAAe;YAC9B,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAEhE,IAAI,kBAAkB,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACX,kBAAkB,oBAAoB,0CAA0C,mBAAmB,GAAG,CACzG,CAAA;QACL,CAAC;QAED,OAAO,kBAAkB,CAAA;IAC7B,CAAC,CAAA;IAEM,KAAK,CAAC,uBAAuB,CAChC,QAAiB,EACjB,YAAoB;QAEpB,MAAM,aAAa,GAAG,WAAW,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,oBAAoB;YAClC,GAAG,EAAE,gBAAgB;YACrB,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;aACvB;SACJ,CAAC,CAAA;QAEF,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5D,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Hex } from "viem";
|
|
2
|
+
import type { Logger, Metrics } from "../utils/index.js";
|
|
3
|
+
export declare class EventManager {
|
|
4
|
+
private redis;
|
|
5
|
+
private chainId;
|
|
6
|
+
private logger;
|
|
7
|
+
private metrics;
|
|
8
|
+
constructor(endpoint: string | undefined, chainId: number, logger: Logger, metrics: Metrics);
|
|
9
|
+
emitExecutionRevertedOnChain(userOperationHash: Hex, transactionHash: Hex, reason: Hex, blockNumber: bigint): Promise<void>;
|
|
10
|
+
emitFailedOnChain(userOperationHash: Hex, transactionHash: Hex, blockNumber: bigint): Promise<void>;
|
|
11
|
+
emitFrontranOnChain(userOperationHash: Hex, transactionHash: Hex, blockNumber: bigint): Promise<void>;
|
|
12
|
+
emitIncludedOnChain(userOperationHash: Hex, transactionHash: Hex, blockNumber: bigint): Promise<void>;
|
|
13
|
+
emitQueued(userOperationHash: Hex): Promise<void>;
|
|
14
|
+
emitReceived(userOperationHash: Hex, timestamp?: number): Promise<void>;
|
|
15
|
+
emitFailedValidation(userOperationHash: Hex, reason?: string, aaError?: string): Promise<void>;
|
|
16
|
+
emitSubmitted(userOperationHash: Hex, transactionHash: Hex): Promise<void>;
|
|
17
|
+
emitDropped(userOperationHash: Hex, reason?: string, aaError?: string): Promise<void>;
|
|
18
|
+
emitAddedToMempool(userOperationHash: Hex): Promise<void>;
|
|
19
|
+
private emitEvent;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=eventManager.d.ts.map
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// biome-ignore lint/style/noNamespaceImport: explicitly make it clear when sentry is used
|
|
2
|
+
import * as sentry from "@sentry/node";
|
|
3
|
+
import Redis from "ioredis";
|
|
4
|
+
export class EventManager {
|
|
5
|
+
redis;
|
|
6
|
+
chainId;
|
|
7
|
+
logger;
|
|
8
|
+
metrics;
|
|
9
|
+
constructor(endpoint, chainId, logger, metrics) {
|
|
10
|
+
this.chainId = chainId;
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
this.metrics = metrics;
|
|
13
|
+
if (endpoint) {
|
|
14
|
+
this.redis = new Redis(endpoint);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
this.redis = undefined;
|
|
18
|
+
}
|
|
19
|
+
// emits when the userOperation was mined onchain but reverted during the callphase
|
|
20
|
+
async emitExecutionRevertedOnChain(userOperationHash, transactionHash, reason, blockNumber) {
|
|
21
|
+
await this.emitEvent({
|
|
22
|
+
userOperationHash,
|
|
23
|
+
event: {
|
|
24
|
+
eventType: "execution_reverted_onchain",
|
|
25
|
+
transactionHash,
|
|
26
|
+
data: {
|
|
27
|
+
blockNumber: Number(blockNumber),
|
|
28
|
+
reason
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// emits when the userOperation was mined onchain but failed EntryPoint validation
|
|
34
|
+
async emitFailedOnChain(userOperationHash, transactionHash, blockNumber) {
|
|
35
|
+
await this.emitEvent({
|
|
36
|
+
userOperationHash,
|
|
37
|
+
event: {
|
|
38
|
+
eventType: "failed_onchain",
|
|
39
|
+
transactionHash,
|
|
40
|
+
data: {
|
|
41
|
+
blockNumber: Number(blockNumber)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// emits when the userOperation has been included onchain but bundled by a frontrunner
|
|
47
|
+
async emitFrontranOnChain(userOperationHash, transactionHash, blockNumber) {
|
|
48
|
+
await this.emitEvent({
|
|
49
|
+
userOperationHash,
|
|
50
|
+
event: {
|
|
51
|
+
eventType: "frontran_onchain",
|
|
52
|
+
transactionHash,
|
|
53
|
+
data: {
|
|
54
|
+
blockNumber: Number(blockNumber)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// emits when the userOperation is included onchain
|
|
60
|
+
async emitIncludedOnChain(userOperationHash, transactionHash, blockNumber) {
|
|
61
|
+
await this.emitEvent({
|
|
62
|
+
userOperationHash,
|
|
63
|
+
event: {
|
|
64
|
+
eventType: "included_onchain",
|
|
65
|
+
transactionHash,
|
|
66
|
+
data: {
|
|
67
|
+
blockNumber: Number(blockNumber)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// emits when the userOperation is placed in the nonce queue
|
|
73
|
+
async emitQueued(userOperationHash) {
|
|
74
|
+
await this.emitEvent({
|
|
75
|
+
userOperationHash,
|
|
76
|
+
event: {
|
|
77
|
+
eventType: "queued"
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// emits when the userOperation is first seen
|
|
82
|
+
async emitReceived(userOperationHash, timestamp) {
|
|
83
|
+
await this.emitEvent({
|
|
84
|
+
userOperationHash,
|
|
85
|
+
event: {
|
|
86
|
+
eventType: "received"
|
|
87
|
+
},
|
|
88
|
+
timestamp
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// emits when the userOperation failed to get added to the mempool
|
|
92
|
+
async emitFailedValidation(userOperationHash, reason, aaError) {
|
|
93
|
+
await this.emitEvent({
|
|
94
|
+
userOperationHash,
|
|
95
|
+
event: {
|
|
96
|
+
eventType: "failed_validation",
|
|
97
|
+
data: {
|
|
98
|
+
reason,
|
|
99
|
+
aaError
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// emits when the userOperation has been submitted to the network
|
|
105
|
+
async emitSubmitted(userOperationHash, transactionHash) {
|
|
106
|
+
await this.emitEvent({
|
|
107
|
+
userOperationHash,
|
|
108
|
+
event: {
|
|
109
|
+
eventType: "submitted",
|
|
110
|
+
transactionHash
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// emits when the userOperation was dropped from the internal mempool
|
|
115
|
+
async emitDropped(userOperationHash, reason, aaError) {
|
|
116
|
+
await this.emitEvent({
|
|
117
|
+
userOperationHash,
|
|
118
|
+
event: {
|
|
119
|
+
eventType: "dropped",
|
|
120
|
+
data: {
|
|
121
|
+
reason,
|
|
122
|
+
aaError
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// emits when the userOperation was added to the internal mempool
|
|
128
|
+
async emitAddedToMempool(userOperationHash) {
|
|
129
|
+
await this.emitEvent({
|
|
130
|
+
userOperationHash,
|
|
131
|
+
event: {
|
|
132
|
+
eventType: "added_to_mempool"
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async emitEvent({ userOperationHash, event, timestamp }) {
|
|
137
|
+
if (!this.redis) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const entry = {
|
|
141
|
+
userOperationHash,
|
|
142
|
+
eventTimestamp: timestamp ?? Date.now(),
|
|
143
|
+
chainId: this.chainId,
|
|
144
|
+
...event
|
|
145
|
+
};
|
|
146
|
+
// log to redis here
|
|
147
|
+
let lpushStatus;
|
|
148
|
+
try {
|
|
149
|
+
await this.redis.lpush("UserOperationStatusEventsQueue", JSON.stringify(entry));
|
|
150
|
+
lpushStatus = "success";
|
|
151
|
+
}
|
|
152
|
+
catch (e) {
|
|
153
|
+
this.logger.error("Failed to send userOperation status event due to ", JSON.stringify(e));
|
|
154
|
+
sentry.captureException(e);
|
|
155
|
+
lpushStatus = "failed";
|
|
156
|
+
}
|
|
157
|
+
this.metrics.emittedOpEvents
|
|
158
|
+
.labels({
|
|
159
|
+
// biome-ignore lint/style/useNamingConvention: event_type
|
|
160
|
+
event_type: event.eventType,
|
|
161
|
+
status: lpushStatus
|
|
162
|
+
})
|
|
163
|
+
.inc();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=eventManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../handlers/eventManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type GasPriceParameters } from "../types/index.js";
|
|
2
|
-
import { type Logger } from "
|
|
1
|
+
import { type GasPriceParameters, type ChainType } from "../types/index.js";
|
|
2
|
+
import { type Logger } from "../utils/index.js";
|
|
3
3
|
import { type Chain, type PublicClient } from "viem";
|
|
4
4
|
export declare class GasPriceManager {
|
|
5
5
|
private chain;
|
|
@@ -11,7 +11,13 @@ export declare class GasPriceManager {
|
|
|
11
11
|
private queueMaxPriorityFeePerGas;
|
|
12
12
|
private maxQueueSize;
|
|
13
13
|
private gasBumpMultiplier;
|
|
14
|
-
|
|
14
|
+
private gasPriceRefreshIntervalInSeconds;
|
|
15
|
+
private chainType;
|
|
16
|
+
constructor(chain: Chain, publicClient: PublicClient, legacyTransactions: boolean, logger: Logger, gasBumpMultiplier: bigint, gasPriceTimeValidityInSeconds: number, gasPriceRefreshIntervalInSeconds: number, chainType: ChainType);
|
|
17
|
+
init(): Promise<[{
|
|
18
|
+
maxFeePerGas: bigint;
|
|
19
|
+
maxPriorityFeePerGas: bigint;
|
|
20
|
+
}, bigint | void]>;
|
|
15
21
|
private getDefaultGasFee;
|
|
16
22
|
private getPolygonGasPriceParameters;
|
|
17
23
|
private bumpTheGasPrice;
|
|
@@ -24,8 +30,16 @@ export declare class GasPriceManager {
|
|
|
24
30
|
private saveMaxPriorityFeePerGas;
|
|
25
31
|
private saveGasPrice;
|
|
26
32
|
private innerGetGasPrice;
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
private updateBaseFee;
|
|
34
|
+
getBaseFee(): bigint | Promise<bigint>;
|
|
35
|
+
private updateGasPrice;
|
|
36
|
+
getGasPrice(): Promise<{
|
|
37
|
+
maxFeePerGas: bigint;
|
|
38
|
+
maxPriorityFeePerGas: bigint;
|
|
39
|
+
}> | {
|
|
40
|
+
maxFeePerGas: bigint;
|
|
41
|
+
maxPriorityFeePerGas: bigint;
|
|
42
|
+
};
|
|
29
43
|
getMaxBaseFeePerGas(): Promise<bigint>;
|
|
30
44
|
private getMinMaxFeePerGas;
|
|
31
45
|
private getMinMaxPriorityFeePerGas;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RpcError, gasStationResult } from "../types/index.js";
|
|
2
|
-
import { maxBigInt, minBigInt } from "
|
|
2
|
+
import { maxBigInt, minBigInt } from "../utils/index.js";
|
|
3
3
|
import * as sentry from "@sentry/node";
|
|
4
4
|
import { parseGwei } from "viem";
|
|
5
|
-
import
|
|
5
|
+
import { celo, celoAlfajores, dfk, avalanche, polygon, polygonMumbai } from "viem/chains";
|
|
6
6
|
var ChainId;
|
|
7
7
|
(function (ChainId) {
|
|
8
8
|
ChainId[ChainId["Goerli"] = 5] = "Goerli";
|
|
@@ -31,13 +31,34 @@ export class GasPriceManager {
|
|
|
31
31
|
queueMaxPriorityFeePerGas = []; // Store pairs of [price, timestamp]
|
|
32
32
|
maxQueueSize;
|
|
33
33
|
gasBumpMultiplier;
|
|
34
|
-
|
|
34
|
+
gasPriceRefreshIntervalInSeconds;
|
|
35
|
+
chainType;
|
|
36
|
+
constructor(chain, publicClient, legacyTransactions, logger, gasBumpMultiplier, gasPriceTimeValidityInSeconds, gasPriceRefreshIntervalInSeconds, chainType) {
|
|
35
37
|
this.maxQueueSize = gasPriceTimeValidityInSeconds;
|
|
36
38
|
this.chain = chain;
|
|
37
39
|
this.publicClient = publicClient;
|
|
38
40
|
this.legacyTransactions = legacyTransactions;
|
|
39
41
|
this.logger = logger;
|
|
40
42
|
this.gasBumpMultiplier = gasBumpMultiplier;
|
|
43
|
+
this.gasPriceRefreshIntervalInSeconds = gasPriceRefreshIntervalInSeconds;
|
|
44
|
+
this.chainType = chainType;
|
|
45
|
+
// Periodically update gas prices if specified
|
|
46
|
+
if (this.gasPriceRefreshIntervalInSeconds > 0) {
|
|
47
|
+
setInterval(() => {
|
|
48
|
+
if (this.legacyTransactions === false) {
|
|
49
|
+
this.updateBaseFee();
|
|
50
|
+
}
|
|
51
|
+
this.updateGasPrice();
|
|
52
|
+
}, this.gasPriceRefreshIntervalInSeconds * 1000);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
init() {
|
|
56
|
+
return Promise.all([
|
|
57
|
+
this.updateGasPrice(),
|
|
58
|
+
this.legacyTransactions === false
|
|
59
|
+
? this.updateBaseFee()
|
|
60
|
+
: Promise.resolve()
|
|
61
|
+
]);
|
|
41
62
|
}
|
|
42
63
|
getDefaultGasFee(chainId) {
|
|
43
64
|
switch (chainId) {
|
|
@@ -70,15 +91,14 @@ export class GasPriceManager {
|
|
|
70
91
|
maxFeePerGas: (maxFeePerGas * bumpAmount) / 100n,
|
|
71
92
|
maxPriorityFeePerGas: (maxPriorityFeePerGas * bumpAmount) / 100n
|
|
72
93
|
};
|
|
73
|
-
if (this.chain.id ===
|
|
74
|
-
this.chain.id === chains.celoAlfajores.id) {
|
|
94
|
+
if (this.chain.id === celo.id || this.chain.id === celoAlfajores.id) {
|
|
75
95
|
const maxFee = maxBigInt(result.maxFeePerGas, result.maxPriorityFeePerGas);
|
|
76
96
|
return {
|
|
77
97
|
maxFeePerGas: maxFee,
|
|
78
98
|
maxPriorityFeePerGas: maxFee
|
|
79
99
|
};
|
|
80
100
|
}
|
|
81
|
-
if (this.chain.id ===
|
|
101
|
+
if (this.chain.id === dfk.id) {
|
|
82
102
|
const maxFeePerGas = maxBigInt(5000000000n, result.maxFeePerGas);
|
|
83
103
|
const maxPriorityFeePerGas = maxBigInt(5000000000n, result.maxPriorityFeePerGas);
|
|
84
104
|
return {
|
|
@@ -87,7 +107,7 @@ export class GasPriceManager {
|
|
|
87
107
|
};
|
|
88
108
|
}
|
|
89
109
|
// set a minimum maxPriorityFee & maxFee to 1.5gwei on avalanche (because eth_maxPriorityFeePerGas returns 0)
|
|
90
|
-
if (this.chain.id ===
|
|
110
|
+
if (this.chain.id === avalanche.id) {
|
|
91
111
|
const maxFeePerGas = maxBigInt(parseGwei("1.5"), result.maxFeePerGas);
|
|
92
112
|
const maxPriorityFeePerGas = maxBigInt(parseGwei("1.5"), result.maxPriorityFeePerGas);
|
|
93
113
|
return {
|
|
@@ -256,8 +276,8 @@ export class GasPriceManager {
|
|
|
256
276
|
async innerGetGasPrice() {
|
|
257
277
|
let maxFeePerGas = 0n;
|
|
258
278
|
let maxPriorityFeePerGas = 0n;
|
|
259
|
-
if (this.chain.id ===
|
|
260
|
-
this.chain.id ===
|
|
279
|
+
if (this.chain.id === polygon.id ||
|
|
280
|
+
this.chain.id === polygonMumbai.id) {
|
|
261
281
|
const polygonEstimate = await this.getPolygonGasPriceParameters();
|
|
262
282
|
if (polygonEstimate) {
|
|
263
283
|
const gasPrice = this.bumpTheGasPrice({
|
|
@@ -289,7 +309,7 @@ export class GasPriceManager {
|
|
|
289
309
|
maxPriorityFeePerGas: maxBigInt(gasPrice.maxPriorityFeePerGas, maxPriorityFeePerGas)
|
|
290
310
|
};
|
|
291
311
|
}
|
|
292
|
-
async
|
|
312
|
+
async updateBaseFee() {
|
|
293
313
|
const latestBlock = await this.publicClient.getBlock();
|
|
294
314
|
if (latestBlock.baseFeePerGas === null) {
|
|
295
315
|
throw new RpcError("block does not have baseFeePerGas");
|
|
@@ -298,7 +318,17 @@ export class GasPriceManager {
|
|
|
298
318
|
this.saveBaseFeePerGas(baseFee, Date.now());
|
|
299
319
|
return baseFee;
|
|
300
320
|
}
|
|
301
|
-
|
|
321
|
+
getBaseFee() {
|
|
322
|
+
if (this.legacyTransactions) {
|
|
323
|
+
throw new RpcError("baseFee is not available for legacy transactions");
|
|
324
|
+
}
|
|
325
|
+
if (this.gasPriceRefreshIntervalInSeconds === 0) {
|
|
326
|
+
return this.updateBaseFee();
|
|
327
|
+
}
|
|
328
|
+
const { baseFeePerGas } = this.queueBaseFeePerGas[this.queueBaseFeePerGas.length - 1];
|
|
329
|
+
return baseFeePerGas;
|
|
330
|
+
}
|
|
331
|
+
async updateGasPrice() {
|
|
302
332
|
const gasPrice = await this.innerGetGasPrice();
|
|
303
333
|
this.saveGasPrice({
|
|
304
334
|
maxFeePerGas: gasPrice.maxFeePerGas,
|
|
@@ -306,6 +336,17 @@ export class GasPriceManager {
|
|
|
306
336
|
}, Date.now());
|
|
307
337
|
return gasPrice;
|
|
308
338
|
}
|
|
339
|
+
getGasPrice() {
|
|
340
|
+
if (this.gasPriceRefreshIntervalInSeconds === 0) {
|
|
341
|
+
return this.updateGasPrice();
|
|
342
|
+
}
|
|
343
|
+
const { maxPriorityFeePerGas } = this.queueMaxPriorityFeePerGas[this.queueMaxPriorityFeePerGas.length - 1];
|
|
344
|
+
const { maxFeePerGas } = this.queueMaxFeePerGas[this.queueMaxFeePerGas.length - 1];
|
|
345
|
+
return {
|
|
346
|
+
maxFeePerGas,
|
|
347
|
+
maxPriorityFeePerGas
|
|
348
|
+
};
|
|
349
|
+
}
|
|
309
350
|
async getMaxBaseFeePerGas() {
|
|
310
351
|
if (this.queueBaseFeePerGas.length === 0) {
|
|
311
352
|
await this.getBaseFee();
|
|
@@ -325,8 +366,12 @@ export class GasPriceManager {
|
|
|
325
366
|
return this.queueMaxPriorityFeePerGas.reduce((acc, cur) => minBigInt(cur.maxPriorityFeePerGas, acc), this.queueMaxPriorityFeePerGas[0].maxPriorityFeePerGas);
|
|
326
367
|
}
|
|
327
368
|
async validateGasPrice(gasPrice) {
|
|
328
|
-
|
|
329
|
-
|
|
369
|
+
let lowestMaxFeePerGas = await this.getMinMaxFeePerGas();
|
|
370
|
+
let lowestMaxPriorityFeePerGas = await this.getMinMaxPriorityFeePerGas();
|
|
371
|
+
if (this.chainType === "hedera") {
|
|
372
|
+
lowestMaxFeePerGas /= 10n ** 9n;
|
|
373
|
+
lowestMaxPriorityFeePerGas /= 10n ** 9n;
|
|
374
|
+
}
|
|
330
375
|
if (gasPrice.maxFeePerGas < lowestMaxFeePerGas) {
|
|
331
376
|
throw new RpcError(`maxFeePerGas must be at least ${lowestMaxFeePerGas} (current maxFeePerGas: ${gasPrice.maxFeePerGas}) - use pimlico_getUserOperationGasPrice to get the current gas price`);
|
|
332
377
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gasPriceManager.js","sourceRoot":"","sources":["../../handlers/gasPriceManager.ts"],"names":[],"mappings":"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"}
|