@pimlico/alto 0.0.6 → 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.
- package/esm/cli/alto.js +3 -1
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +348 -306
- package/esm/cli/config/bundler.js +26 -7
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.d.ts +2 -1
- package/esm/cli/config/options.js +46 -8
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/customTransport.js +40 -7
- package/esm/cli/customTransport.js.map +1 -1
- package/esm/cli/deploySimulationsContract.d.ts +8 -0
- package/esm/cli/deploySimulationsContract.js +26 -0
- package/esm/cli/deploySimulationsContract.js.map +1 -0
- package/esm/cli/handler.d.ts +2 -2
- package/esm/cli/handler.js +67 -89
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/instrumentation.js +4 -2
- package/esm/cli/instrumentation.js.map +1 -1
- package/esm/cli/parseArgs.d.ts +8 -0
- package/esm/cli/parseArgs.js +21 -0
- package/esm/cli/parseArgs.js.map +1 -0
- package/esm/cli/setupServer.d.ts +4 -9
- package/esm/cli/setupServer.js +98 -82
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/createConfig.d.ts +15 -0
- package/esm/createConfig.js +8 -0
- package/esm/createConfig.js.map +1 -0
- package/esm/executor/executor.d.ts +29 -13
- package/esm/executor/executor.js +110 -72
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +14 -10
- package/esm/executor/executorManager.js +42 -42
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/senderManager.d.ts +11 -6
- package/esm/executor/senderManager.js +25 -32
- package/esm/executor/senderManager.js.map +1 -1
- package/esm/executor/utilityWalletMonitor.d.ts +9 -5
- package/esm/executor/utilityWalletMonitor.js +8 -8
- package/esm/executor/utilityWalletMonitor.js.map +1 -1
- package/esm/executor/utils.d.ts +2 -1
- package/esm/executor/utils.js +7 -2
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.d.ts +11 -0
- package/esm/handlers/arbitrumGasPriceManager.js +29 -0
- package/esm/handlers/arbitrumGasPriceManager.js.map +1 -0
- package/esm/handlers/eventManager.d.ts +7 -3
- package/esm/handlers/eventManager.js +24 -16
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/handlers/gasPriceManager.d.ts +14 -27
- package/esm/handlers/gasPriceManager.js +81 -135
- package/esm/handlers/gasPriceManager.js.map +1 -1
- package/esm/handlers/mantleGasPriceManager.d.ts +20 -0
- package/esm/handlers/mantleGasPriceManager.js +28 -0
- package/esm/handlers/mantleGasPriceManager.js.map +1 -0
- package/esm/mempool/mempool.d.ts +13 -10
- package/esm/mempool/mempool.js +29 -26
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/reputationManager.d.ts +4 -6
- package/esm/mempool/reputationManager.js +25 -29
- package/esm/mempool/reputationManager.js.map +1 -1
- package/esm/mempool/store.d.ts +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +24 -0
- package/esm/rpc/estimation/gasEstimationHandler.js +48 -0
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -0
- package/esm/rpc/estimation/gasEstimationsV06.d.ts +19 -0
- package/esm/rpc/estimation/gasEstimationsV06.js +146 -0
- package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -0
- package/esm/rpc/estimation/gasEstimationsV07.d.ts +88 -0
- package/esm/rpc/estimation/gasEstimationsV07.js +429 -0
- package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -0
- package/esm/rpc/estimation/types.d.ts +113 -0
- package/esm/rpc/estimation/types.js +122 -0
- package/esm/rpc/estimation/types.js.map +1 -0
- package/esm/rpc/nonceQueuer.d.ts +10 -6
- package/esm/rpc/nonceQueuer.js +10 -10
- package/esm/rpc/nonceQueuer.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +19 -16
- package/esm/rpc/rpcHandler.js +83 -72
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/server.d.ts +9 -7
- package/esm/rpc/server.js +27 -26
- package/esm/rpc/server.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.d.ts +11 -6
- package/esm/rpc/validation/SafeValidator.js +16 -14
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV06.d.ts +1 -1
- package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV07.d.ts +1 -1
- package/esm/rpc/validation/TracerResultParserV07.js +1 -1
- package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +14 -17
- package/esm/rpc/validation/UnsafeValidator.js +49 -42
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/types/contracts/ArbitrumL1FeeAbi.d.ts +32 -0
- package/esm/types/contracts/ArbitrumL1FeeAbi.js +42 -0
- package/esm/types/contracts/ArbitrumL1FeeAbi.js.map +1 -0
- package/esm/types/contracts/EntryPointSimulationsV6.d.ts +34 -0
- package/esm/types/contracts/EntryPointSimulationsV6.js +48 -0
- package/esm/types/contracts/EntryPointSimulationsV6.js.map +1 -0
- package/esm/types/contracts/EntryPointSimulationsV7.d.ts +1370 -0
- package/esm/types/contracts/{EntryPointSimulations.js → EntryPointSimulationsV7.js} +197 -385
- package/esm/types/contracts/EntryPointSimulationsV7.js.map +1 -0
- package/esm/types/contracts/IAccountExecute.d.ts +53 -0
- package/esm/types/contracts/IAccountExecute.js +68 -0
- package/esm/types/contracts/IAccountExecute.js.map +1 -0
- package/esm/types/contracts/MantleBvmGasPriceOracle.d.ts +219 -0
- package/esm/types/contracts/MantleBvmGasPriceOracle.js +177 -0
- package/esm/types/contracts/MantleBvmGasPriceOracle.js.map +1 -0
- package/esm/types/contracts/OpL1FeeAbi.d.ts +26 -0
- package/esm/types/contracts/OpL1FeeAbi.js +29 -0
- package/esm/types/contracts/OpL1FeeAbi.js.map +1 -0
- package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
- package/esm/types/contracts/PimlicoEntryPointSimulations.js +1 -1
- package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
- package/esm/types/contracts/index.d.ts +5 -1
- package/esm/types/contracts/index.js +5 -1
- package/esm/types/contracts/index.js.map +1 -1
- package/esm/types/interfaces.d.ts +2 -2
- package/esm/types/schemas.d.ts +94 -94
- package/esm/types/schemas.js +3 -3
- package/esm/types/schemas.js.map +1 -1
- package/esm/types/utils.d.ts +1 -1
- package/esm/utils/bigInt.js +2 -2
- package/esm/utils/bigInt.js.map +1 -1
- package/esm/utils/helpers.js +1 -1
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/rpc-reply.d.ts +1 -1
- package/esm/utils/timedQueue.d.ts +12 -0
- package/esm/utils/timedQueue.js +51 -0
- package/esm/utils/timedQueue.js.map +1 -0
- package/esm/utils/userop.d.ts +2 -2
- package/esm/utils/userop.js +2 -2
- package/esm/utils/userop.js.map +1 -1
- package/esm/utils/validation.d.ts +14 -6
- package/esm/utils/validation.js +115 -132
- package/esm/utils/validation.js.map +1 -1
- package/lib/cli/alto.js +2 -0
- package/lib/cli/alto.js.map +1 -1
- package/lib/cli/config/bundler.d.ts +348 -306
- package/lib/cli/config/bundler.js +26 -7
- package/lib/cli/config/bundler.js.map +1 -1
- package/lib/cli/config/options.d.ts +2 -1
- package/lib/cli/config/options.js +47 -9
- package/lib/cli/config/options.js.map +1 -1
- package/lib/cli/customTransport.js +38 -5
- package/lib/cli/customTransport.js.map +1 -1
- package/lib/cli/deploySimulationsContract.d.ts +8 -0
- package/lib/cli/deploySimulationsContract.js +30 -0
- package/lib/cli/deploySimulationsContract.js.map +1 -0
- package/lib/cli/handler.d.ts +2 -2
- package/lib/cli/handler.js +66 -88
- package/lib/cli/handler.js.map +1 -1
- package/lib/cli/instrumentation.js +4 -2
- package/lib/cli/instrumentation.js.map +1 -1
- package/lib/cli/parseArgs.d.ts +8 -0
- package/lib/cli/parseArgs.js +25 -0
- package/lib/cli/parseArgs.js.map +1 -0
- package/lib/cli/setupServer.d.ts +4 -9
- package/lib/cli/setupServer.js +98 -82
- package/lib/cli/setupServer.js.map +1 -1
- package/lib/createConfig.d.ts +15 -0
- package/lib/createConfig.js +12 -0
- package/lib/createConfig.js.map +1 -0
- package/lib/executor/executor.d.ts +29 -13
- package/lib/executor/executor.js +106 -68
- package/lib/executor/executor.js.map +1 -1
- package/lib/executor/executorManager.d.ts +14 -10
- package/lib/executor/executorManager.js +40 -40
- package/lib/executor/executorManager.js.map +1 -1
- package/lib/executor/senderManager.d.ts +11 -6
- package/lib/executor/senderManager.js +25 -32
- package/lib/executor/senderManager.js.map +1 -1
- package/lib/executor/utilityWalletMonitor.d.ts +9 -5
- package/lib/executor/utilityWalletMonitor.js +8 -8
- package/lib/executor/utilityWalletMonitor.js.map +1 -1
- package/lib/executor/utils.d.ts +2 -1
- package/lib/executor/utils.js +9 -3
- package/lib/executor/utils.js.map +1 -1
- package/lib/handlers/arbitrumGasPriceManager.d.ts +11 -0
- package/lib/handlers/arbitrumGasPriceManager.js +33 -0
- package/lib/handlers/arbitrumGasPriceManager.js.map +1 -0
- package/lib/handlers/eventManager.d.ts +7 -3
- package/lib/handlers/eventManager.js +24 -16
- package/lib/handlers/eventManager.js.map +1 -1
- package/lib/handlers/gasPriceManager.d.ts +14 -27
- package/lib/handlers/gasPriceManager.js +80 -134
- package/lib/handlers/gasPriceManager.js.map +1 -1
- package/lib/handlers/mantleGasPriceManager.d.ts +20 -0
- package/lib/handlers/mantleGasPriceManager.js +32 -0
- package/lib/handlers/mantleGasPriceManager.js.map +1 -0
- package/lib/mempool/mempool.d.ts +13 -10
- package/lib/mempool/mempool.js +28 -25
- package/lib/mempool/mempool.js.map +1 -1
- package/lib/mempool/reputationManager.d.ts +4 -6
- package/lib/mempool/reputationManager.js +25 -29
- package/lib/mempool/reputationManager.js.map +1 -1
- package/lib/mempool/store.d.ts +1 -1
- package/lib/rpc/estimation/gasEstimationHandler.d.ts +24 -0
- package/lib/rpc/estimation/gasEstimationHandler.js +52 -0
- package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -0
- package/lib/rpc/estimation/gasEstimationsV06.d.ts +19 -0
- package/lib/rpc/estimation/gasEstimationsV06.js +150 -0
- package/lib/rpc/estimation/gasEstimationsV06.js.map +1 -0
- package/lib/rpc/estimation/gasEstimationsV07.d.ts +88 -0
- package/lib/rpc/estimation/gasEstimationsV07.js +435 -0
- package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -0
- package/lib/rpc/estimation/types.d.ts +113 -0
- package/lib/rpc/estimation/types.js +125 -0
- package/lib/rpc/estimation/types.js.map +1 -0
- package/lib/rpc/nonceQueuer.d.ts +10 -6
- package/lib/rpc/nonceQueuer.js +9 -9
- package/lib/rpc/nonceQueuer.js.map +1 -1
- package/lib/rpc/rpcHandler.d.ts +19 -16
- package/lib/rpc/rpcHandler.js +82 -71
- package/lib/rpc/rpcHandler.js.map +1 -1
- package/lib/rpc/server.d.ts +9 -7
- package/lib/rpc/server.js +26 -25
- package/lib/rpc/server.js.map +1 -1
- package/lib/rpc/validation/SafeValidator.d.ts +11 -6
- package/lib/rpc/validation/SafeValidator.js +16 -14
- package/lib/rpc/validation/SafeValidator.js.map +1 -1
- package/lib/rpc/validation/TracerResultParserV06.d.ts +1 -1
- package/lib/rpc/validation/TracerResultParserV07.d.ts +1 -1
- package/lib/rpc/validation/TracerResultParserV07.js +1 -1
- package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/lib/rpc/validation/UnsafeValidator.d.ts +14 -17
- package/lib/rpc/validation/UnsafeValidator.js +49 -42
- package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
- package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +32 -0
- package/lib/types/contracts/ArbitrumL1FeeAbi.js +45 -0
- package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +1 -0
- package/lib/types/contracts/EntryPointSimulationsV6.d.ts +34 -0
- package/lib/types/contracts/EntryPointSimulationsV6.js +51 -0
- package/lib/types/contracts/EntryPointSimulationsV6.js.map +1 -0
- package/lib/types/contracts/EntryPointSimulationsV7.d.ts +1370 -0
- package/lib/types/contracts/{EntryPointSimulations.js → EntryPointSimulationsV7.js} +198 -386
- package/lib/types/contracts/EntryPointSimulationsV7.js.map +1 -0
- package/lib/types/contracts/IAccountExecute.d.ts +53 -0
- package/lib/types/contracts/IAccountExecute.js +71 -0
- package/lib/types/contracts/IAccountExecute.js.map +1 -0
- package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +219 -0
- package/lib/types/contracts/MantleBvmGasPriceOracle.js +180 -0
- package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +1 -0
- package/lib/types/contracts/OpL1FeeAbi.d.ts +26 -0
- package/lib/types/contracts/OpL1FeeAbi.js +32 -0
- package/lib/types/contracts/OpL1FeeAbi.js.map +1 -0
- package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
- package/lib/types/contracts/PimlicoEntryPointSimulations.js +1 -1
- package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
- package/lib/types/contracts/index.d.ts +5 -1
- package/lib/types/contracts/index.js +5 -1
- package/lib/types/contracts/index.js.map +1 -1
- package/lib/types/interfaces.d.ts +2 -2
- package/lib/types/schemas.d.ts +94 -94
- package/lib/types/schemas.js +3 -3
- package/lib/types/schemas.js.map +1 -1
- package/lib/types/utils.d.ts +1 -1
- package/lib/utils/bigInt.js +2 -2
- package/lib/utils/bigInt.js.map +1 -1
- package/lib/utils/rpc-reply.d.ts +1 -1
- package/lib/utils/timedQueue.d.ts +12 -0
- package/lib/utils/timedQueue.js +55 -0
- package/lib/utils/timedQueue.js.map +1 -0
- package/lib/utils/userop.d.ts +2 -2
- package/lib/utils/userop.js +1 -1
- package/lib/utils/userop.js.map +1 -1
- package/lib/utils/validation.d.ts +14 -6
- package/lib/utils/validation.js +118 -134
- package/lib/utils/validation.js.map +1 -1
- package/package.json +1 -1
- package/esm/rpc/EntryPointSimulationsV07.d.ts +0 -62
- package/esm/rpc/EntryPointSimulationsV07.js +0 -410
- package/esm/rpc/EntryPointSimulationsV07.js.map +0 -1
- package/esm/rpc/ExecuteSimulator.d.ts +0 -37
- package/esm/rpc/ExecuteSimulator.js +0 -48
- package/esm/rpc/ExecuteSimulator.js.map +0 -1
- package/esm/rpc/gasEstimation.d.ts +0 -17
- package/esm/rpc/gasEstimation.js +0 -419
- package/esm/rpc/gasEstimation.js.map +0 -1
- package/esm/types/contracts/EntryPointSimulations.d.ts +0 -152
- package/esm/types/contracts/EntryPointSimulations.js.map +0 -1
- package/lib/rpc/EntryPointSimulationsV07.d.ts +0 -62
- package/lib/rpc/EntryPointSimulationsV07.js +0 -417
- package/lib/rpc/EntryPointSimulationsV07.js.map +0 -1
- package/lib/rpc/ExecuteSimulator.d.ts +0 -37
- package/lib/rpc/ExecuteSimulator.js +0 -51
- package/lib/rpc/ExecuteSimulator.js.map +0 -1
- package/lib/rpc/gasEstimation.d.ts +0 -17
- package/lib/rpc/gasEstimation.js +0 -426
- package/lib/rpc/gasEstimation.js.map +0 -1
- package/lib/types/contracts/EntryPointSimulations.d.ts +0 -152
- package/lib/types/contracts/EntryPointSimulations.js.map +0 -1
|
@@ -1,57 +1,47 @@
|
|
|
1
|
-
import { deriveUserOperation, isCompressedType
|
|
1
|
+
import { EntryPointV06Abi, deriveUserOperation, isCompressedType } from "../types/index.js";
|
|
2
2
|
import { getAAError, getBundleStatus, parseUserOperationReceipt } from "../utils/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { TransactionReceiptNotFoundError, getAbiItem } from "viem";
|
|
4
4
|
function getTransactionsFromUserOperationEntries(entries) {
|
|
5
5
|
return Array.from(new Set(entries.map((entry) => {
|
|
6
6
|
return entry.transactionInfo;
|
|
7
7
|
})));
|
|
8
8
|
}
|
|
9
9
|
export class ExecutorManager {
|
|
10
|
-
|
|
10
|
+
config;
|
|
11
11
|
executor;
|
|
12
12
|
mempool;
|
|
13
13
|
monitor;
|
|
14
|
-
publicClient;
|
|
15
|
-
pollingInterval;
|
|
16
14
|
logger;
|
|
17
15
|
metrics;
|
|
18
16
|
reputationManager;
|
|
19
17
|
unWatch;
|
|
20
18
|
currentlyHandlingBlock = false;
|
|
21
19
|
timer;
|
|
22
|
-
bundlerFrequency;
|
|
23
|
-
maxGasLimitPerBundle;
|
|
24
20
|
gasPriceManager;
|
|
25
21
|
eventManager;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
constructor(executor, entryPoints, mempool, monitor, reputationManager, publicClient, pollingInterval, logger, metrics, bundleMode, bundlerFrequency, maxGasLimitPerBundle, gasPriceManager, eventManager, aa95ResubmitMultiplier, rpcMaxBlockRange) {
|
|
29
|
-
this.entryPoints = entryPoints;
|
|
22
|
+
constructor({ config, executor, mempool, monitor, reputationManager, metrics, gasPriceManager, eventManager }) {
|
|
23
|
+
this.config = config;
|
|
30
24
|
this.reputationManager = reputationManager;
|
|
31
25
|
this.executor = executor;
|
|
32
26
|
this.mempool = mempool;
|
|
33
27
|
this.monitor = monitor;
|
|
34
|
-
this.
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
this.logger = config.getLogger({ module: "executor_manager" }, {
|
|
29
|
+
level: config.executorLogLevel || config.logLevel
|
|
30
|
+
});
|
|
37
31
|
this.metrics = metrics;
|
|
38
|
-
this.bundlerFrequency = bundlerFrequency;
|
|
39
|
-
this.maxGasLimitPerBundle = maxGasLimitPerBundle;
|
|
40
32
|
this.gasPriceManager = gasPriceManager;
|
|
41
33
|
this.eventManager = eventManager;
|
|
42
|
-
this.
|
|
43
|
-
this.rpcMaxBlockRange = rpcMaxBlockRange;
|
|
44
|
-
if (bundleMode === "auto") {
|
|
34
|
+
if (this.config.bundleMode === "auto") {
|
|
45
35
|
this.timer = setInterval(async () => {
|
|
46
36
|
await this.bundle();
|
|
47
|
-
},
|
|
37
|
+
}, this.config.maxBundleWait);
|
|
48
38
|
}
|
|
49
39
|
}
|
|
50
40
|
setBundlingMode(bundleMode) {
|
|
51
41
|
if (bundleMode === "auto" && !this.timer) {
|
|
52
42
|
this.timer = setInterval(async () => {
|
|
53
43
|
await this.bundle();
|
|
54
|
-
}, this.
|
|
44
|
+
}, this.config.maxBundleWait);
|
|
55
45
|
}
|
|
56
46
|
else if (bundleMode === "manual" && this.timer) {
|
|
57
47
|
clearInterval(this.timer);
|
|
@@ -59,7 +49,7 @@ export class ExecutorManager {
|
|
|
59
49
|
}
|
|
60
50
|
}
|
|
61
51
|
async bundleNow() {
|
|
62
|
-
const ops = await this.mempool.process(this.
|
|
52
|
+
const ops = await this.mempool.process(this.config.maxGasPerBundle, 1);
|
|
63
53
|
if (ops.length === 0) {
|
|
64
54
|
throw new Error("no ops to bundle");
|
|
65
55
|
}
|
|
@@ -71,7 +61,7 @@ export class ExecutorManager {
|
|
|
71
61
|
opEntryPointMap.get(op.entryPoint)?.push(op.mempoolUserOperation);
|
|
72
62
|
}
|
|
73
63
|
const txHashes = [];
|
|
74
|
-
await Promise.all(this.
|
|
64
|
+
await Promise.all(this.config.entrypoints.map(async (entryPoint) => {
|
|
75
65
|
const ops = opEntryPointMap.get(entryPoint);
|
|
76
66
|
if (ops) {
|
|
77
67
|
const txHash = await this.sendToExecutor(entryPoint, ops);
|
|
@@ -173,7 +163,7 @@ export class ExecutorManager {
|
|
|
173
163
|
async bundle() {
|
|
174
164
|
const opsToBundle = [];
|
|
175
165
|
while (true) {
|
|
176
|
-
const ops = await this.mempool.process(this.
|
|
166
|
+
const ops = await this.mempool.process(this.config.maxGasPerBundle, 1);
|
|
177
167
|
if (ops?.length > 0) {
|
|
178
168
|
opsToBundle.push(ops);
|
|
179
169
|
}
|
|
@@ -194,7 +184,7 @@ export class ExecutorManager {
|
|
|
194
184
|
.get(op.entryPoint)
|
|
195
185
|
?.push(op.mempoolUserOperation);
|
|
196
186
|
}
|
|
197
|
-
await Promise.all(this.
|
|
187
|
+
await Promise.all(this.config.entrypoints.map(async (entryPoint) => {
|
|
198
188
|
const userOperations = opEntryPointMap.get(entryPoint);
|
|
199
189
|
if (userOperations) {
|
|
200
190
|
await this.sendToExecutor(entryPoint, userOperations);
|
|
@@ -209,7 +199,7 @@ export class ExecutorManager {
|
|
|
209
199
|
if (this.unWatch) {
|
|
210
200
|
return;
|
|
211
201
|
}
|
|
212
|
-
this.unWatch = this.publicClient.watchBlocks({
|
|
202
|
+
this.unWatch = this.config.publicClient.watchBlocks({
|
|
213
203
|
onBlock: handleBlock,
|
|
214
204
|
// onBlock: async (block) => {
|
|
215
205
|
// // Use an arrow function to ensure correct binding of `this`
|
|
@@ -228,7 +218,7 @@ export class ExecutorManager {
|
|
|
228
218
|
},
|
|
229
219
|
emitMissed: false,
|
|
230
220
|
includeTransactions: false,
|
|
231
|
-
pollingInterval: this.pollingInterval
|
|
221
|
+
pollingInterval: this.config.pollingInterval
|
|
232
222
|
});
|
|
233
223
|
this.logger.debug("started watching blocks");
|
|
234
224
|
}
|
|
@@ -248,7 +238,7 @@ export class ExecutorManager {
|
|
|
248
238
|
];
|
|
249
239
|
const transactionDetails = await Promise.all(txHashesToCheck.map(async (transactionHash) => ({
|
|
250
240
|
transactionHash,
|
|
251
|
-
...(await getBundleStatus(isVersion06, transactionHash, this.publicClient, this.logger, entryPoint))
|
|
241
|
+
...(await getBundleStatus(isVersion06, transactionHash, this.config.publicClient, this.logger, entryPoint))
|
|
252
242
|
})));
|
|
253
243
|
// first check if bundling txs returns status "mined", if not, check for reverted
|
|
254
244
|
const mined = transactionDetails.find(({ bundlingStatus }) => bundlingStatus.status === "included");
|
|
@@ -264,10 +254,10 @@ export class ExecutorManager {
|
|
|
264
254
|
return;
|
|
265
255
|
}
|
|
266
256
|
const { bundlingStatus, transactionHash, blockNumber } = finalizedTransaction;
|
|
267
|
-
this.metrics.userOperationsOnChain
|
|
268
|
-
.labels({ status: bundlingStatus.status })
|
|
269
|
-
.inc(opInfos.length);
|
|
270
257
|
if (bundlingStatus.status === "included") {
|
|
258
|
+
this.metrics.userOperationsOnChain
|
|
259
|
+
.labels({ status: bundlingStatus.status })
|
|
260
|
+
.inc(opInfos.length);
|
|
271
261
|
const { userOperationDetails } = bundlingStatus;
|
|
272
262
|
opInfos.map((opInfo) => {
|
|
273
263
|
const { mempoolUserOperation: mUserOperation, userOperationHash: userOpHash, entryPoint, firstSubmitted } = opInfo;
|
|
@@ -295,7 +285,7 @@ export class ExecutorManager {
|
|
|
295
285
|
else if (bundlingStatus.status === "reverted" &&
|
|
296
286
|
bundlingStatus.isAA95) {
|
|
297
287
|
// resubmit with more gas when bundler encounters AA95
|
|
298
|
-
const multiplier = this.
|
|
288
|
+
const multiplier = this.config.aa95GasMultiplier;
|
|
299
289
|
transactionInfo.transactionRequest.gas =
|
|
300
290
|
(transactionInfo.transactionRequest.gas * multiplier) / 100n;
|
|
301
291
|
transactionInfo.transactionRequest.nonce += 1;
|
|
@@ -312,10 +302,14 @@ export class ExecutorManager {
|
|
|
312
302
|
blockNumber
|
|
313
303
|
});
|
|
314
304
|
}));
|
|
305
|
+
opInfos.map(({ userOperationHash }) => {
|
|
306
|
+
this.mempool.removeSubmitted(userOperationHash);
|
|
307
|
+
});
|
|
308
|
+
this.executor.markWalletProcessed(transactionInfo.executor);
|
|
315
309
|
}
|
|
316
310
|
}
|
|
317
311
|
checkFrontrun({ userOperationHash, transactionHash, blockNumber }) {
|
|
318
|
-
const unwatch = this.publicClient.watchBlockNumber({
|
|
312
|
+
const unwatch = this.config.publicClient.watchBlockNumber({
|
|
319
313
|
onBlockNumber: async (currentBlockNumber) => {
|
|
320
314
|
if (currentBlockNumber > blockNumber + 1n) {
|
|
321
315
|
const userOperationReceipt = await this.getUserOperationReceipt(userOperationHash);
|
|
@@ -331,6 +325,9 @@ export class ExecutorManager {
|
|
|
331
325
|
userOpHash: userOperationHash,
|
|
332
326
|
transactionHash
|
|
333
327
|
}, "user op frontrun onchain");
|
|
328
|
+
this.metrics.userOperationsOnChain
|
|
329
|
+
.labels({ status: "frontran" })
|
|
330
|
+
.inc(1);
|
|
334
331
|
}
|
|
335
332
|
else {
|
|
336
333
|
this.monitor.setUserOperationStatus(userOperationHash, {
|
|
@@ -342,6 +339,9 @@ export class ExecutorManager {
|
|
|
342
339
|
userOpHash: userOperationHash,
|
|
343
340
|
transactionHash
|
|
344
341
|
}, "user op failed onchain");
|
|
342
|
+
this.metrics.userOperationsOnChain
|
|
343
|
+
.labels({ status: "reverted" })
|
|
344
|
+
.inc(1);
|
|
345
345
|
}
|
|
346
346
|
unwatch();
|
|
347
347
|
}
|
|
@@ -355,16 +355,16 @@ export class ExecutorManager {
|
|
|
355
355
|
});
|
|
356
356
|
let fromBlock = undefined;
|
|
357
357
|
let toBlock = undefined;
|
|
358
|
-
if (this.
|
|
359
|
-
const latestBlock = await this.publicClient.getBlockNumber();
|
|
360
|
-
fromBlock = latestBlock - BigInt(this.
|
|
358
|
+
if (this.config.maxBlockRange !== undefined) {
|
|
359
|
+
const latestBlock = await this.config.publicClient.getBlockNumber();
|
|
360
|
+
fromBlock = latestBlock - BigInt(this.config.maxBlockRange);
|
|
361
361
|
if (fromBlock < 0n) {
|
|
362
362
|
fromBlock = 0n;
|
|
363
363
|
}
|
|
364
364
|
toBlock = "latest";
|
|
365
365
|
}
|
|
366
|
-
const filterResult = await this.publicClient.getLogs({
|
|
367
|
-
address: this.
|
|
366
|
+
const filterResult = await this.config.publicClient.getLogs({
|
|
367
|
+
address: this.config.entrypoints,
|
|
368
368
|
event: userOperationEventAbiItem,
|
|
369
369
|
fromBlock,
|
|
370
370
|
toBlock,
|
|
@@ -400,14 +400,14 @@ export class ExecutorManager {
|
|
|
400
400
|
const getTransactionReceipt = async (txHash) => {
|
|
401
401
|
while (true) {
|
|
402
402
|
try {
|
|
403
|
-
const transactionReceipt = await this.publicClient.getTransactionReceipt({
|
|
403
|
+
const transactionReceipt = await this.config.publicClient.getTransactionReceipt({
|
|
404
404
|
hash: txHash
|
|
405
405
|
});
|
|
406
406
|
let effectiveGasPrice = transactionReceipt.effectiveGasPrice ??
|
|
407
407
|
transactionReceipt.gasPrice ??
|
|
408
408
|
undefined;
|
|
409
409
|
if (effectiveGasPrice === undefined) {
|
|
410
|
-
const tx = await this.publicClient.getTransaction({
|
|
410
|
+
const tx = await this.config.publicClient.getTransaction({
|
|
411
411
|
hash: txHash
|
|
412
412
|
});
|
|
413
413
|
effectiveGasPrice = tx.gasPrice ?? undefined;
|
|
@@ -448,7 +448,7 @@ export class ExecutorManager {
|
|
|
448
448
|
}
|
|
449
449
|
opEntryPointMap.get(op.userOperation.entryPoint)?.push(op);
|
|
450
450
|
}
|
|
451
|
-
await Promise.all(this.
|
|
451
|
+
await Promise.all(this.config.entrypoints.map(async (entryPoint) => {
|
|
452
452
|
const ops = opEntryPointMap.get(entryPoint);
|
|
453
453
|
if (ops) {
|
|
454
454
|
const txs = getTransactionsFromUserOperationEntries(ops);
|
|
@@ -476,7 +476,7 @@ export class ExecutorManager {
|
|
|
476
476
|
// refresh op statuses
|
|
477
477
|
await this.refreshUserOperationStatuses();
|
|
478
478
|
// for all still not included check if needs to be replaced (based on gas price)
|
|
479
|
-
const gasPriceParameters = await this.gasPriceManager.
|
|
479
|
+
const gasPriceParameters = await this.gasPriceManager.getNetworkGasPrice();
|
|
480
480
|
this.logger.trace({ gasPriceParameters }, "fetched gas price parameters");
|
|
481
481
|
const transactionInfos = getTransactionsFromUserOperationEntries(this.mempool.dumpSubmittedOps());
|
|
482
482
|
await Promise.all(transactionInfos.map(async (txInfo) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executorManager.js","sourceRoot":"","sources":["../../executor/executorManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executorManager.js","sourceRoot":"","sources":["../../executor/executorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import type { Logger, Metrics } from "../utils/index.js";
|
|
2
1
|
import type { GasPriceManager } from "../handlers/index.js";
|
|
3
|
-
import
|
|
2
|
+
import type { Metrics } from "../utils/index.js";
|
|
3
|
+
import { type Account } from "viem";
|
|
4
|
+
import type { AltoConfig } from "../createConfig.js";
|
|
4
5
|
export declare class SenderManager {
|
|
6
|
+
private config;
|
|
5
7
|
wallets: Account[];
|
|
6
8
|
utilityAccount: Account | undefined;
|
|
7
9
|
availableWallets: Account[];
|
|
8
|
-
private logger;
|
|
9
10
|
private metrics;
|
|
10
|
-
private legacyTransactions;
|
|
11
11
|
private semaphore;
|
|
12
12
|
private gasPriceManager;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
private logger;
|
|
14
|
+
constructor({ config, metrics, gasPriceManager }: {
|
|
15
|
+
config: AltoConfig;
|
|
16
|
+
metrics: Metrics;
|
|
17
|
+
gasPriceManager: GasPriceManager;
|
|
18
|
+
});
|
|
19
|
+
validateAndRefillWallets(): Promise<void>;
|
|
15
20
|
getWallet(): Promise<Account>;
|
|
16
21
|
pushWallet(wallet: Account): void;
|
|
17
22
|
}
|
|
@@ -10,15 +10,21 @@ const waitForTransactionReceipt = async (publicClient, tx) => {
|
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
export class SenderManager {
|
|
13
|
+
config;
|
|
13
14
|
wallets;
|
|
14
15
|
utilityAccount;
|
|
15
16
|
availableWallets;
|
|
16
|
-
logger;
|
|
17
17
|
metrics;
|
|
18
|
-
legacyTransactions;
|
|
19
18
|
semaphore;
|
|
20
19
|
gasPriceManager;
|
|
21
|
-
|
|
20
|
+
logger;
|
|
21
|
+
constructor({ config, metrics, gasPriceManager }) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.logger = config.getLogger({ module: "executor" }, {
|
|
24
|
+
level: config.executorLogLevel || config.logLevel
|
|
25
|
+
});
|
|
26
|
+
const maxSigners = config.maxExecutors;
|
|
27
|
+
const wallets = config.executorPrivateKeys;
|
|
22
28
|
if (maxSigners !== undefined && wallets.length > maxSigners) {
|
|
23
29
|
this.wallets = wallets.slice(0, maxSigners);
|
|
24
30
|
this.availableWallets = wallets.slice(0, maxSigners);
|
|
@@ -27,26 +33,25 @@ export class SenderManager {
|
|
|
27
33
|
this.wallets = wallets;
|
|
28
34
|
this.availableWallets = wallets;
|
|
29
35
|
}
|
|
30
|
-
this.utilityAccount =
|
|
31
|
-
this.logger = logger;
|
|
36
|
+
this.utilityAccount = this.config.utilityPrivateKey;
|
|
32
37
|
this.metrics = metrics;
|
|
33
|
-
this.legacyTransactions = legacyTransactions;
|
|
34
38
|
metrics.walletsAvailable.set(this.availableWallets.length);
|
|
35
39
|
metrics.walletsTotal.set(this.wallets.length);
|
|
36
40
|
this.semaphore = new Semaphore(this.availableWallets.length);
|
|
37
41
|
this.gasPriceManager = gasPriceManager;
|
|
38
42
|
}
|
|
39
43
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>
|
|
40
|
-
async validateAndRefillWallets(
|
|
44
|
+
async validateAndRefillWallets() {
|
|
45
|
+
const minBalance = this.config.minExecutorBalance;
|
|
41
46
|
if (!(minBalance && this.utilityAccount)) {
|
|
42
47
|
return;
|
|
43
48
|
}
|
|
44
|
-
const utilityWalletBalance = await publicClient.getBalance({
|
|
49
|
+
const utilityWalletBalance = await this.config.publicClient.getBalance({
|
|
45
50
|
address: this.utilityAccount.address
|
|
46
51
|
});
|
|
47
52
|
const balancesMissing = {};
|
|
48
53
|
const balanceRequestPromises = this.availableWallets.map(async (wallet) => {
|
|
49
|
-
const balance = await publicClient.getBalance({
|
|
54
|
+
const balance = await this.config.publicClient.getBalance({
|
|
50
55
|
address: wallet.address
|
|
51
56
|
});
|
|
52
57
|
this.metrics.executorWalletsBalances.set({
|
|
@@ -70,10 +75,8 @@ export class SenderManager {
|
|
|
70
75
|
throw new Error(`utility wallet ${this.utilityAccount.address} has insufficient balance ${formatEther(utilityWalletBalance)} < ${formatEther(totalBalanceMissing)}`);
|
|
71
76
|
}
|
|
72
77
|
if (Object.keys(balancesMissing).length > 0) {
|
|
73
|
-
const { maxFeePerGas, maxPriorityFeePerGas } = await this.gasPriceManager.
|
|
74
|
-
if (
|
|
75
|
-
walletClient.chain.id === 137 ||
|
|
76
|
-
walletClient.chain.id === 10) {
|
|
78
|
+
const { maxFeePerGas, maxPriorityFeePerGas } = await this.gasPriceManager.getNetworkGasPrice();
|
|
79
|
+
if (this.config.refillHelperContract) {
|
|
77
80
|
const instructions = [];
|
|
78
81
|
for (const [address, missingBalance] of Object.entries(balancesMissing)) {
|
|
79
82
|
instructions.push({
|
|
@@ -82,22 +85,12 @@ export class SenderManager {
|
|
|
82
85
|
data: "0x"
|
|
83
86
|
});
|
|
84
87
|
}
|
|
85
|
-
let refillAddress;
|
|
86
|
-
if (walletClient.chain.id === 59140) {
|
|
87
|
-
refillAddress = "0xEad1aC3DF6F96b91491d6396F4d1610C5638B4Db";
|
|
88
|
-
}
|
|
89
|
-
else if (walletClient.chain.id === 137) {
|
|
90
|
-
refillAddress = "0x3402DB43152dAB9ab72fa805fdD5f391cD3E3822";
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
refillAddress = "0x3402DB43152dAB9ab72fa805fdD5f391cD3E3822";
|
|
94
|
-
}
|
|
95
88
|
const callEngine = getContract({
|
|
96
89
|
abi: CallEngineAbi,
|
|
97
|
-
address:
|
|
90
|
+
address: this.config.refillHelperContract,
|
|
98
91
|
client: {
|
|
99
|
-
public: publicClient,
|
|
100
|
-
wallet: walletClient
|
|
92
|
+
public: this.config.publicClient,
|
|
93
|
+
wallet: this.config.walletClient
|
|
101
94
|
}
|
|
102
95
|
});
|
|
103
96
|
const tx = await callEngine.write.execute([instructions], {
|
|
@@ -106,29 +99,29 @@ export class SenderManager {
|
|
|
106
99
|
maxFeePerGas: maxFeePerGas * 2n,
|
|
107
100
|
maxPriorityFeePerGas: maxPriorityFeePerGas * 2n
|
|
108
101
|
});
|
|
109
|
-
await waitForTransactionReceipt(publicClient, tx);
|
|
102
|
+
await waitForTransactionReceipt(this.config.publicClient, tx);
|
|
110
103
|
for (const [address, missingBalance] of Object.entries(balancesMissing)) {
|
|
111
104
|
this.logger.info({ tx, executor: address, missingBalance }, "refilled wallet");
|
|
112
105
|
}
|
|
113
106
|
}
|
|
114
107
|
else {
|
|
115
108
|
for (const [address, missingBalance] of Object.entries(balancesMissing)) {
|
|
116
|
-
const tx = await walletClient.sendTransaction({
|
|
109
|
+
const tx = await this.config.walletClient.sendTransaction({
|
|
117
110
|
account: this.utilityAccount,
|
|
118
111
|
// @ts-ignore
|
|
119
112
|
to: address,
|
|
120
113
|
value: missingBalance,
|
|
121
|
-
maxFeePerGas: this.legacyTransactions
|
|
114
|
+
maxFeePerGas: this.config.legacyTransactions
|
|
122
115
|
? undefined
|
|
123
116
|
: maxFeePerGas,
|
|
124
|
-
maxPriorityFeePerGas: this.legacyTransactions
|
|
117
|
+
maxPriorityFeePerGas: this.config.legacyTransactions
|
|
125
118
|
? undefined
|
|
126
119
|
: maxPriorityFeePerGas,
|
|
127
|
-
gasPrice: this.legacyTransactions
|
|
120
|
+
gasPrice: this.config.legacyTransactions
|
|
128
121
|
? maxFeePerGas
|
|
129
122
|
: undefined
|
|
130
123
|
});
|
|
131
|
-
await waitForTransactionReceipt(publicClient, tx);
|
|
124
|
+
await waitForTransactionReceipt(this.config.publicClient, tx);
|
|
132
125
|
this.logger.info({ tx, executor: address, missingBalance }, "refilled wallet");
|
|
133
126
|
}
|
|
134
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"senderManager.js","sourceRoot":"","sources":["../../executor/senderManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"senderManager.js","sourceRoot":"","sources":["../../executor/senderManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { Metrics } from "../utils/index.js";
|
|
2
|
+
import type { AltoConfig } from "../createConfig.js";
|
|
3
|
+
import type { Address } from "abitype";
|
|
3
4
|
export declare class UtilityWalletMonitor {
|
|
4
|
-
private
|
|
5
|
-
private monitorInterval;
|
|
5
|
+
private config;
|
|
6
6
|
private utilityWalletAddress;
|
|
7
7
|
private timer;
|
|
8
8
|
private metrics;
|
|
9
9
|
private logger;
|
|
10
|
-
constructor(
|
|
10
|
+
constructor({ config, metrics, utilityWalletAddress }: {
|
|
11
|
+
config: AltoConfig;
|
|
12
|
+
metrics: Metrics;
|
|
13
|
+
utilityWalletAddress: Address;
|
|
14
|
+
});
|
|
11
15
|
private updateMetrics;
|
|
12
16
|
start(): Promise<void>;
|
|
13
17
|
stop(): void;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { formatEther } from "viem";
|
|
2
2
|
export class UtilityWalletMonitor {
|
|
3
|
-
|
|
4
|
-
monitorInterval;
|
|
3
|
+
config;
|
|
5
4
|
utilityWalletAddress;
|
|
6
5
|
timer;
|
|
7
6
|
metrics;
|
|
8
7
|
logger;
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
11
|
-
this.monitorInterval = monitorInterval;
|
|
8
|
+
constructor({ config, metrics, utilityWalletAddress }) {
|
|
9
|
+
this.config = config;
|
|
12
10
|
this.utilityWalletAddress = utilityWalletAddress;
|
|
13
11
|
this.metrics = metrics;
|
|
14
|
-
this.logger =
|
|
12
|
+
this.logger = config.getLogger({ module: "utility_wallet_monitor" }, {
|
|
13
|
+
level: config.logLevel
|
|
14
|
+
});
|
|
15
15
|
}
|
|
16
16
|
async updateMetrics() {
|
|
17
17
|
try {
|
|
18
|
-
const balance = await this.publicClient.getBalance({
|
|
18
|
+
const balance = await this.config.publicClient.getBalance({
|
|
19
19
|
address: this.utilityWalletAddress
|
|
20
20
|
});
|
|
21
21
|
this.metrics.utilityWalletBalance.set(Number.parseFloat(formatEther(balance)));
|
|
@@ -29,7 +29,7 @@ export class UtilityWalletMonitor {
|
|
|
29
29
|
throw new Error("UtilityWalletMonitor already started");
|
|
30
30
|
}
|
|
31
31
|
await this.updateMetrics();
|
|
32
|
-
this.timer = setInterval(this.updateMetrics.bind(this), this.
|
|
32
|
+
this.timer = setInterval(this.updateMetrics.bind(this), this.config.utilityWalletMonitorInterval);
|
|
33
33
|
}
|
|
34
34
|
stop() {
|
|
35
35
|
clearInterval(this.timer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilityWalletMonitor.js","sourceRoot":"","sources":["../../executor/utilityWalletMonitor.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"utilityWalletMonitor.js","sourceRoot":"","sources":["../../executor/utilityWalletMonitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,WAAW,EAAE,MAAM,MAAM,CAAA;AAI5C,MAAM,OAAO,oBAAoB;IACrB,MAAM,CAAY;IAClB,oBAAoB,CAAK;IACzB,KAAK,CAA0B;IAC/B,OAAO,CAAS;IAChB,MAAM,CAAQ;IAEtB,YAAY,EACR,MAAM,EACN,OAAO,EACP,oBAAoB,EAKvB;QACG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAC1B,EAAE,MAAM,EAAE,wBAAwB,EAAE,EACpC;YACI,KAAK,EAAE,MAAM,CAAC,QAAQ;SACzB,CACJ,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,oBAAoB;aACrC,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CACjC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC1C,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,KAAK,EACL,iDAAiD,CACpD,CAAA;QACL,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,IAAI,CAAC,KAAK,GAAG,WAAW,CACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAC3B,CAAA;IACrB,CAAC;IAEM,IAAI;QACP,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;CACJ"}
|
package/esm/executor/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { InterfaceReputationManager } from "../mempool/index.js";
|
|
2
2
|
import { type BundleResult, type CompressedUserOperation, EntryPointV06Abi, EntryPointV07Abi, type TransactionInfo, type UserOperationWithHash } from "../types/index.js";
|
|
3
3
|
import type { Logger } from "../utils/index.js";
|
|
4
|
-
import { type Account, type Address, type Chain, type GetContractReturnType, type Hex, type PublicClient, type Transport, type WalletClient } from "viem";
|
|
4
|
+
import { type Account, type Address, type Chain, type GetContractReturnType, type Hex, type PublicClient, type Transport, type WalletClient, BaseError } from "viem";
|
|
5
|
+
export declare const isTransactionUnderpricedError: (e: BaseError) => boolean;
|
|
5
6
|
export declare function simulatedOpsToResults(simulatedOps: {
|
|
6
7
|
owh: UserOperationWithHash;
|
|
7
8
|
reason: string | undefined;
|
package/esm/executor/utils.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { EntryPointV06Abi, EntryPointV07Abi, deriveUserOperation, failedOpErrorSchema, failedOpWithRevertErrorSchema } from "../types/index.js";
|
|
2
|
+
import { getRevertErrorData, isVersion06, parseViemError, scaleBigIntByPercent, toPackedUserOperation } from "../utils/index.js";
|
|
1
3
|
// biome-ignore lint/style/noNamespaceImport: explicitly make it clear when sentry is used
|
|
2
4
|
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";
|
|
5
5
|
import { ContractFunctionRevertedError, EstimateGasExecutionError, FeeCapTooLowError, concat, decodeErrorResult, hexToBytes, numberToHex } from "viem";
|
|
6
|
+
export const isTransactionUnderpricedError = (e) => {
|
|
7
|
+
return e?.details
|
|
8
|
+
?.toLowerCase()
|
|
9
|
+
.includes("replacement transaction underpriced");
|
|
10
|
+
};
|
|
6
11
|
export function simulatedOpsToResults(simulatedOps, transactionInfo) {
|
|
7
12
|
return simulatedOps.map(({ reason, owh }) => {
|
|
8
13
|
if (reason === undefined) {
|