@pimlico/alto 0.0.0-main.20250303T125310 → 0.0.0-main.20250324T173034
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 +5 -3
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +93 -36
- package/esm/cli/config/bundler.js +18 -3
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.d.ts +2 -1
- package/esm/cli/config/options.js +65 -5
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/handler.js +3 -4
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/setupServer.d.ts +1 -1
- package/esm/cli/setupServer.js +109 -49
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/createConfig.d.ts +1 -0
- package/esm/createConfig.js +1 -0
- package/esm/createConfig.js.map +1 -1
- package/esm/executor/executor.d.ts +3 -3
- package/esm/executor/executor.js +1 -3
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +14 -12
- package/esm/executor/executorManager.js +131 -97
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/index.d.ts +1 -1
- package/esm/executor/index.js +1 -1
- package/esm/executor/senderManager/createMemorySenderManager.d.ts +8 -0
- package/esm/executor/senderManager/createMemorySenderManager.js +41 -0
- package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -0
- package/esm/executor/senderManager/createRedisSenderManager.d.ts +8 -0
- package/esm/executor/senderManager/createRedisSenderManager.js +78 -0
- package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -0
- package/esm/executor/senderManager/flushOnStartUp.d.ts +9 -0
- package/esm/executor/senderManager/flushOnStartUp.js +33 -0
- package/esm/executor/senderManager/flushOnStartUp.js.map +1 -0
- package/esm/executor/senderManager/index.d.ts +15 -0
- package/esm/executor/senderManager/index.js +20 -0
- package/esm/executor/senderManager/index.js.map +1 -0
- package/esm/executor/senderManager/validateAndRefill.d.ts +11 -0
- package/esm/executor/senderManager/validateAndRefill.js +111 -0
- package/esm/executor/senderManager/validateAndRefill.js.map +1 -0
- package/esm/executor/utils.d.ts +8 -2
- package/esm/executor/utils.js +9 -1
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.d.ts +7 -4
- package/esm/handlers/arbitrumGasPriceManager.js +19 -13
- package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
- package/esm/handlers/eventManager.js +5 -4
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/handlers/gasPriceManager.d.ts +1 -4
- package/esm/handlers/gasPriceManager.js +81 -48
- package/esm/handlers/gasPriceManager.js.map +1 -1
- package/esm/handlers/mantleGasPriceManager.d.ts +6 -3
- package/esm/handlers/mantleGasPriceManager.js +23 -11
- package/esm/handlers/mantleGasPriceManager.js.map +1 -1
- package/esm/handlers/optimismManager.d.ts +5 -2
- package/esm/handlers/optimismManager.js +8 -5
- package/esm/handlers/optimismManager.js.map +1 -1
- 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 +95 -27
- package/esm/mempool/mempool.js +132 -252
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/monitoring.d.ts +8 -4
- package/esm/mempool/monitoring.js +72 -9
- package/esm/mempool/monitoring.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +10 -4
- package/esm/rpc/estimation/gasEstimationHandler.js +16 -19
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationsV07.d.ts +7 -0
- package/esm/rpc/estimation/gasEstimationsV07.js +69 -4
- package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_dumpMempool.js +2 -2
- package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
- package/esm/rpc/methods/eth_chainId.js +1 -1
- package/esm/rpc/methods/eth_chainId.js.map +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.js +2 -2
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/index.js +0 -5
- package/esm/rpc/methods/index.js.map +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +2 -3
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +4 -7
- package/esm/rpc/rpcHandler.js +38 -37
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.js +2 -2
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +7 -2
- package/esm/rpc/validation/UnsafeValidator.js +20 -4
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/store/createMemoryOutstandingStore.d.ts +28 -0
- package/esm/store/createMemoryOutstandingStore.js +221 -0
- package/esm/store/createMemoryOutstandingStore.js.map +1 -0
- package/esm/store/createMempoolStore.d.ts +8 -0
- package/esm/store/createMempoolStore.js +193 -0
- package/esm/store/createMempoolStore.js.map +1 -0
- package/esm/store/createRedisOutstandingStore.d.ts +27 -0
- package/esm/store/createRedisOutstandingStore.js +344 -0
- package/esm/store/createRedisOutstandingStore.js.map +1 -0
- package/esm/store/createRedisStore.d.ts +9 -0
- package/esm/store/createRedisStore.js +131 -0
- package/esm/store/createRedisStore.js.map +1 -0
- package/esm/store/createStore.d.ts +6 -0
- package/esm/store/createStore.js +66 -0
- package/esm/store/createStore.js.map +1 -0
- package/esm/store/index.d.ts +81 -0
- package/esm/store/index.js +2 -0
- package/esm/store/index.js.map +1 -0
- package/esm/types/interfaces.d.ts +7 -3
- package/esm/types/mempool.d.ts +2 -15
- package/esm/types/mempool.js.map +1 -1
- package/esm/types/schemas.d.ts +4617 -7632
- package/esm/types/schemas.js +19 -42
- package/esm/types/schemas.js.map +1 -1
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +6 -0
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +53 -0
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -0
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +7 -0
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +98 -0
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -0
- package/esm/utils/minMaxQueue/index.d.ts +12 -0
- package/esm/utils/minMaxQueue/index.js +12 -0
- package/esm/utils/minMaxQueue/index.js.map +1 -0
- package/esm/utils/validation.js +8 -10
- package/esm/utils/validation.js.map +1 -1
- package/lib/cli/alto.js +3 -1
- package/lib/cli/alto.js.map +1 -1
- package/lib/cli/config/bundler.d.ts +93 -36
- package/lib/cli/config/bundler.js +19 -4
- package/lib/cli/config/bundler.js.map +1 -1
- package/lib/cli/config/options.d.ts +2 -1
- package/lib/cli/config/options.js +66 -6
- package/lib/cli/config/options.js.map +1 -1
- package/lib/cli/handler.js +3 -4
- package/lib/cli/handler.js.map +1 -1
- package/lib/cli/setupServer.d.ts +1 -1
- package/lib/cli/setupServer.js +108 -48
- package/lib/cli/setupServer.js.map +1 -1
- package/lib/createConfig.d.ts +1 -0
- package/lib/createConfig.js +1 -0
- package/lib/createConfig.js.map +1 -1
- package/lib/executor/executor.d.ts +3 -3
- package/lib/executor/executor.js +1 -3
- package/lib/executor/executor.js.map +1 -1
- package/lib/executor/executorManager.d.ts +14 -12
- package/lib/executor/executorManager.js +131 -97
- package/lib/executor/executorManager.js.map +1 -1
- package/lib/executor/index.d.ts +1 -1
- package/lib/executor/index.js +1 -1
- package/lib/executor/senderManager/createMemorySenderManager.d.ts +8 -0
- package/lib/executor/senderManager/createMemorySenderManager.js +45 -0
- package/lib/executor/senderManager/createMemorySenderManager.js.map +1 -0
- package/lib/executor/senderManager/createRedisSenderManager.d.ts +8 -0
- package/lib/executor/senderManager/createRedisSenderManager.js +85 -0
- package/lib/executor/senderManager/createRedisSenderManager.js.map +1 -0
- package/lib/executor/senderManager/flushOnStartUp.d.ts +9 -0
- package/lib/executor/senderManager/flushOnStartUp.js +37 -0
- package/lib/executor/senderManager/flushOnStartUp.js.map +1 -0
- package/lib/executor/senderManager/index.d.ts +15 -0
- package/lib/executor/senderManager/index.js +25 -0
- package/lib/executor/senderManager/index.js.map +1 -0
- package/lib/executor/senderManager/validateAndRefill.d.ts +11 -0
- package/lib/executor/senderManager/validateAndRefill.js +115 -0
- package/lib/executor/senderManager/validateAndRefill.js.map +1 -0
- package/lib/executor/utils.d.ts +8 -2
- package/lib/executor/utils.js +9 -1
- package/lib/executor/utils.js.map +1 -1
- package/lib/handlers/arbitrumGasPriceManager.d.ts +7 -4
- package/lib/handlers/arbitrumGasPriceManager.js +19 -13
- package/lib/handlers/arbitrumGasPriceManager.js.map +1 -1
- package/lib/handlers/eventManager.js +5 -4
- package/lib/handlers/eventManager.js.map +1 -1
- package/lib/handlers/gasPriceManager.d.ts +1 -4
- package/lib/handlers/gasPriceManager.js +81 -48
- package/lib/handlers/gasPriceManager.js.map +1 -1
- package/lib/handlers/mantleGasPriceManager.d.ts +6 -3
- package/lib/handlers/mantleGasPriceManager.js +23 -11
- package/lib/handlers/mantleGasPriceManager.js.map +1 -1
- package/lib/handlers/optimismManager.d.ts +5 -2
- package/lib/handlers/optimismManager.js +8 -5
- package/lib/handlers/optimismManager.js.map +1 -1
- 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 +95 -27
- package/lib/mempool/mempool.js +133 -253
- package/lib/mempool/mempool.js.map +1 -1
- package/lib/mempool/monitoring.d.ts +8 -4
- package/lib/mempool/monitoring.js +72 -9
- package/lib/mempool/monitoring.js.map +1 -1
- package/lib/rpc/estimation/gasEstimationHandler.d.ts +10 -4
- package/lib/rpc/estimation/gasEstimationHandler.js +15 -18
- package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/lib/rpc/estimation/gasEstimationsV07.d.ts +7 -0
- package/lib/rpc/estimation/gasEstimationsV07.js +69 -4
- package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -1
- package/lib/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
- package/lib/rpc/methods/debug_bundler_dumpMempool.js +2 -2
- package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
- package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
- package/lib/rpc/methods/eth_chainId.js +1 -1
- package/lib/rpc/methods/eth_chainId.js.map +1 -1
- package/lib/rpc/methods/eth_sendUserOperation.js +2 -2
- package/lib/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/lib/rpc/methods/index.js +0 -5
- package/lib/rpc/methods/index.js.map +1 -1
- package/lib/rpc/methods/pimlico_sendUserOperationNow.js +2 -3
- package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/lib/rpc/rpcHandler.d.ts +4 -7
- package/lib/rpc/rpcHandler.js +38 -37
- package/lib/rpc/rpcHandler.js.map +1 -1
- package/lib/rpc/validation/SafeValidator.js +2 -2
- package/lib/rpc/validation/SafeValidator.js.map +1 -1
- package/lib/rpc/validation/UnsafeValidator.d.ts +7 -2
- package/lib/rpc/validation/UnsafeValidator.js +20 -4
- package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
- package/lib/store/createMemoryOutstandingStore.d.ts +28 -0
- package/lib/store/createMemoryOutstandingStore.js +226 -0
- package/lib/store/createMemoryOutstandingStore.js.map +1 -0
- package/lib/store/createMempoolStore.d.ts +8 -0
- package/lib/store/createMempoolStore.js +197 -0
- package/lib/store/createMempoolStore.js.map +1 -0
- package/lib/store/createRedisOutstandingStore.d.ts +27 -0
- package/lib/store/createRedisOutstandingStore.js +349 -0
- package/lib/store/createRedisOutstandingStore.js.map +1 -0
- package/lib/store/createRedisStore.d.ts +9 -0
- package/lib/store/createRedisStore.js +138 -0
- package/lib/store/createRedisStore.js.map +1 -0
- package/lib/store/createStore.d.ts +6 -0
- package/lib/store/createStore.js +70 -0
- package/lib/store/createStore.js.map +1 -0
- package/lib/store/index.d.ts +81 -0
- package/lib/store/index.js +6 -0
- package/lib/store/index.js.map +1 -0
- package/lib/types/interfaces.d.ts +7 -3
- package/lib/types/mempool.d.ts +2 -15
- package/lib/types/mempool.js.map +1 -1
- package/lib/types/schemas.d.ts +4617 -7632
- package/lib/types/schemas.js +24 -47
- package/lib/types/schemas.js.map +1 -1
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +6 -0
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +57 -0
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -0
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +7 -0
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +105 -0
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -0
- package/lib/utils/minMaxQueue/index.d.ts +12 -0
- package/lib/utils/minMaxQueue/index.js +16 -0
- package/lib/utils/minMaxQueue/index.js.map +1 -0
- package/lib/utils/validation.js +8 -10
- package/lib/utils/validation.js.map +1 -1
- package/package.json +2 -2
- package/esm/executor/senderManager.d.ts +0 -26
- package/esm/executor/senderManager.js +0 -216
- package/esm/executor/senderManager.js.map +0 -1
- package/esm/mempool/nonceQueuer.d.ts +0 -32
- package/esm/mempool/nonceQueuer.js +0 -143
- package/esm/mempool/nonceQueuer.js.map +0 -1
- package/esm/mempool/store.d.ts +0 -22
- package/esm/mempool/store.js +0 -124
- package/esm/mempool/store.js.map +0 -1
- package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.d.ts +0 -979
- package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js +0 -22
- package/esm/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js.map +0 -1
- package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.d.ts +0 -422
- package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.js +0 -19
- package/esm/rpc/methods/pimlico_experimental_sendUserOperation7702.js.map +0 -1
- package/esm/utils/slidingWindowTimedQueue.d.ts +0 -12
- package/esm/utils/slidingWindowTimedQueue.js +0 -48
- package/esm/utils/slidingWindowTimedQueue.js.map +0 -1
- package/lib/executor/senderManager.d.ts +0 -26
- package/lib/executor/senderManager.js +0 -220
- package/lib/executor/senderManager.js.map +0 -1
- package/lib/mempool/nonceQueuer.d.ts +0 -32
- package/lib/mempool/nonceQueuer.js +0 -147
- package/lib/mempool/nonceQueuer.js.map +0 -1
- package/lib/mempool/store.d.ts +0 -22
- package/lib/mempool/store.js +0 -128
- package/lib/mempool/store.js.map +0 -1
- package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.d.ts +0 -979
- package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js +0 -25
- package/lib/rpc/methods/pimlico_experimental_estimateUserOperationGas7702.js.map +0 -1
- package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.d.ts +0 -422
- package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.js +0 -22
- package/lib/rpc/methods/pimlico_experimental_sendUserOperation7702.js.map +0 -1
- package/lib/utils/slidingWindowTimedQueue.d.ts +0 -12
- package/lib/utils/slidingWindowTimedQueue.js +0 -52
- package/lib/utils/slidingWindowTimedQueue.js.map +0 -1
|
@@ -111,9 +111,9 @@ class ExecutorManager {
|
|
|
111
111
|
return [];
|
|
112
112
|
});
|
|
113
113
|
if (!gasPriceParams || nonce === undefined) {
|
|
114
|
-
this.resubmitUserOperations(userOps, entryPoint, "Failed to get nonce and gas parameters for bundling");
|
|
114
|
+
await this.resubmitUserOperations(userOps, entryPoint, "Failed to get nonce and gas parameters for bundling");
|
|
115
115
|
// Free executor if failed to get initial params.
|
|
116
|
-
this.senderManager.markWalletProcessed(wallet);
|
|
116
|
+
await this.senderManager.markWalletProcessed(wallet);
|
|
117
117
|
return undefined;
|
|
118
118
|
}
|
|
119
119
|
const bundleResult = await this.executor.bundle({
|
|
@@ -125,18 +125,18 @@ class ExecutorManager {
|
|
|
125
125
|
});
|
|
126
126
|
// Free wallet if no bundle was sent.
|
|
127
127
|
if (bundleResult.status !== "bundle_success") {
|
|
128
|
-
this.senderManager.markWalletProcessed(wallet);
|
|
128
|
+
await this.senderManager.markWalletProcessed(wallet);
|
|
129
129
|
}
|
|
130
130
|
// All ops failed simulation, drop them and return.
|
|
131
131
|
if (bundleResult.status === "all_ops_failed_simulation") {
|
|
132
132
|
const { rejectedUserOps } = bundleResult;
|
|
133
|
-
this.dropUserOps(rejectedUserOps);
|
|
133
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
134
134
|
return undefined;
|
|
135
135
|
}
|
|
136
136
|
// Unhandled error during simulation, drop all ops.
|
|
137
137
|
if (bundleResult.status === "unhandled_simulation_failure") {
|
|
138
138
|
const { rejectedUserOps } = bundleResult;
|
|
139
|
-
this.dropUserOps(rejectedUserOps);
|
|
139
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
140
140
|
this.metrics.bundlesSubmitted.labels({ status: "failed" }).inc();
|
|
141
141
|
return undefined;
|
|
142
142
|
}
|
|
@@ -144,17 +144,17 @@ class ExecutorManager {
|
|
|
144
144
|
if (bundleResult.status === "bundle_submission_failure" &&
|
|
145
145
|
bundleResult.reason instanceof viem_1.InsufficientFundsError) {
|
|
146
146
|
const { reason, userOpsToBundle, rejectedUserOps } = bundleResult;
|
|
147
|
-
this.dropUserOps(rejectedUserOps);
|
|
148
|
-
this.resubmitUserOperations(userOpsToBundle, entryPoint, reason.name);
|
|
147
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
148
|
+
await this.resubmitUserOperations(userOpsToBundle, entryPoint, reason.name);
|
|
149
149
|
this.metrics.bundlesSubmitted.labels({ status: "resubmit" }).inc();
|
|
150
150
|
return undefined;
|
|
151
151
|
}
|
|
152
152
|
// Encountered unhandled error during bundle simulation.
|
|
153
153
|
if (bundleResult.status === "bundle_submission_failure") {
|
|
154
154
|
const { rejectedUserOps, userOpsToBundle, reason } = bundleResult;
|
|
155
|
-
this.dropUserOps(rejectedUserOps);
|
|
155
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
156
156
|
// NOTE: these ops passed validation, so we can try resubmitting them
|
|
157
|
-
this.resubmitUserOperations(userOpsToBundle, entryPoint, reason instanceof abitype_1.BaseError
|
|
157
|
+
await this.resubmitUserOperations(userOpsToBundle, entryPoint, reason instanceof abitype_1.BaseError
|
|
158
158
|
? reason.name
|
|
159
159
|
: "Encountered unhandled error during bundle simulation");
|
|
160
160
|
this.metrics.bundlesSubmitted.labels({ status: "failed" }).inc();
|
|
@@ -176,8 +176,8 @@ class ExecutorManager {
|
|
|
176
176
|
firstSubmitted: Date.now(),
|
|
177
177
|
timesPotentiallyIncluded: 0
|
|
178
178
|
};
|
|
179
|
-
this.markUserOperationsAsSubmitted(userOpsBundled, transactionInfo);
|
|
180
|
-
this.dropUserOps(rejectedUserOps);
|
|
179
|
+
await this.markUserOperationsAsSubmitted(userOpsBundled, transactionInfo);
|
|
180
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
181
181
|
this.metrics.bundlesSubmitted.labels({ status: "success" }).inc();
|
|
182
182
|
return transactionHash;
|
|
183
183
|
}
|
|
@@ -237,59 +237,77 @@ class ExecutorManager {
|
|
|
237
237
|
}
|
|
238
238
|
// Free executor if tx landed onchain
|
|
239
239
|
if (bundlingStatus.status !== "not_found") {
|
|
240
|
-
this.senderManager.markWalletProcessed(transactionInfo.executor);
|
|
240
|
+
await this.senderManager.markWalletProcessed(transactionInfo.executor);
|
|
241
241
|
}
|
|
242
242
|
if (bundlingStatus.status === "included") {
|
|
243
243
|
const { userOperationDetails } = bundlingStatus;
|
|
244
|
-
this.markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails);
|
|
244
|
+
await this.markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails);
|
|
245
245
|
}
|
|
246
246
|
if (bundlingStatus.status === "reverted") {
|
|
247
|
-
await Promise.all(userOps.map((userOpInfo) => {
|
|
247
|
+
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
248
248
|
const { userOpHash } = userOpInfo;
|
|
249
|
-
this.checkFrontrun({
|
|
249
|
+
await this.checkFrontrun({
|
|
250
|
+
entryPoint,
|
|
250
251
|
userOpHash,
|
|
251
252
|
transactionHash,
|
|
252
253
|
blockNumber
|
|
253
254
|
});
|
|
254
255
|
}));
|
|
255
|
-
this.removeSubmitted(userOps);
|
|
256
|
+
await this.removeSubmitted(entryPoint, userOps);
|
|
256
257
|
}
|
|
257
258
|
}
|
|
258
|
-
checkFrontrun({ userOpHash, transactionHash, blockNumber }) {
|
|
259
|
+
async checkFrontrun({ userOpHash, entryPoint, transactionHash, blockNumber }) {
|
|
259
260
|
const unwatch = this.config.publicClient.watchBlockNumber({
|
|
260
261
|
onBlockNumber: async (currentBlockNumber) => {
|
|
261
262
|
if (currentBlockNumber > blockNumber + 1n) {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
263
|
+
try {
|
|
264
|
+
const userOperationReceipt = await this.getUserOperationReceipt(userOpHash);
|
|
265
|
+
if (userOperationReceipt) {
|
|
266
|
+
const transactionHash = userOperationReceipt.receipt.transactionHash;
|
|
267
|
+
const blockNumber = userOperationReceipt.receipt.blockNumber;
|
|
268
|
+
await this.mempool.removeSubmitted({
|
|
269
|
+
entryPoint,
|
|
270
|
+
userOpHash
|
|
271
|
+
});
|
|
272
|
+
await this.monitor.setUserOperationStatus(userOpHash, {
|
|
273
|
+
status: "included",
|
|
274
|
+
transactionHash
|
|
275
|
+
});
|
|
276
|
+
await this.eventManager.emitFrontranOnChain(userOpHash, transactionHash, blockNumber);
|
|
277
|
+
this.logger.info({
|
|
278
|
+
userOpHash,
|
|
279
|
+
transactionHash
|
|
280
|
+
}, "user op frontrun onchain");
|
|
281
|
+
this.metrics.userOperationsOnChain
|
|
282
|
+
.labels({ status: "frontran" })
|
|
283
|
+
.inc(1);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
await this.monitor.setUserOperationStatus(userOpHash, {
|
|
287
|
+
status: "failed",
|
|
288
|
+
transactionHash
|
|
289
|
+
});
|
|
290
|
+
await this.eventManager.emitFailedOnChain(userOpHash, transactionHash, blockNumber);
|
|
291
|
+
this.logger.info({
|
|
292
|
+
userOpHash,
|
|
293
|
+
transactionHash
|
|
294
|
+
}, "user op failed onchain");
|
|
295
|
+
this.metrics.userOperationsOnChain
|
|
296
|
+
.labels({ status: "reverted" })
|
|
297
|
+
.inc(1);
|
|
298
|
+
}
|
|
279
299
|
}
|
|
280
|
-
|
|
281
|
-
this.
|
|
300
|
+
catch (error) {
|
|
301
|
+
this.logger.error({
|
|
302
|
+
userOpHash,
|
|
303
|
+
transactionHash,
|
|
304
|
+
error
|
|
305
|
+
}, "Error checking frontrun status");
|
|
306
|
+
// Still mark as failed since we couldn't verify inclusion
|
|
307
|
+
await this.monitor.setUserOperationStatus(userOpHash, {
|
|
282
308
|
status: "failed",
|
|
283
309
|
transactionHash
|
|
284
310
|
});
|
|
285
|
-
this.eventManager.emitFailedOnChain(userOpHash, transactionHash, blockNumber);
|
|
286
|
-
this.logger.info({
|
|
287
|
-
userOpHash,
|
|
288
|
-
transactionHash
|
|
289
|
-
}, "user op failed onchain");
|
|
290
|
-
this.metrics.userOperationsOnChain
|
|
291
|
-
.labels({ status: "reverted" })
|
|
292
|
-
.inc(1);
|
|
293
311
|
}
|
|
294
312
|
unwatch();
|
|
295
313
|
}
|
|
@@ -393,14 +411,22 @@ class ExecutorManager {
|
|
|
393
411
|
}
|
|
394
412
|
this.currentlyHandlingBlock = true;
|
|
395
413
|
this.logger.debug({ blockNumber: block.number }, "handling block");
|
|
396
|
-
const
|
|
414
|
+
const dumpSubmittedEntries = async () => {
|
|
415
|
+
const submittedEntries = [];
|
|
416
|
+
for (const entryPoint of this.config.entrypoints) {
|
|
417
|
+
const entries = await this.mempool.dumpSubmittedOps(entryPoint);
|
|
418
|
+
submittedEntries.push(...entries);
|
|
419
|
+
}
|
|
420
|
+
return submittedEntries;
|
|
421
|
+
};
|
|
422
|
+
const submittedEntries = await dumpSubmittedEntries();
|
|
397
423
|
if (submittedEntries.length === 0) {
|
|
398
424
|
this.stopWatchingBlocks();
|
|
399
425
|
this.currentlyHandlingBlock = false;
|
|
400
426
|
return;
|
|
401
427
|
}
|
|
402
428
|
// refresh op statuses
|
|
403
|
-
const ops =
|
|
429
|
+
const ops = await dumpSubmittedEntries();
|
|
404
430
|
const txs = getTransactionsFromUserOperationEntries(ops);
|
|
405
431
|
await Promise.all(txs.map((txInfo) => this.refreshTransactionStatus(txInfo)));
|
|
406
432
|
// for all still not included check if needs to be replaced (based on gas price)
|
|
@@ -410,7 +436,7 @@ class ExecutorManager {
|
|
|
410
436
|
maxFeePerGas: 0n,
|
|
411
437
|
maxPriorityFeePerGas: 0n
|
|
412
438
|
}));
|
|
413
|
-
const transactionInfos = getTransactionsFromUserOperationEntries(
|
|
439
|
+
const transactionInfos = getTransactionsFromUserOperationEntries(await dumpSubmittedEntries());
|
|
414
440
|
await Promise.all(transactionInfos.map(async (txInfo) => {
|
|
415
441
|
const { transactionRequest } = txInfo;
|
|
416
442
|
const { maxFeePerGas, maxPriorityFeePerGas } = transactionRequest;
|
|
@@ -433,7 +459,7 @@ class ExecutorManager {
|
|
|
433
459
|
async replaceTransaction(txInfo, reason) {
|
|
434
460
|
// Setup vars
|
|
435
461
|
const { bundle, executor, transactionRequest, transactionHash: oldTxHash } = txInfo;
|
|
436
|
-
const { userOps } = bundle;
|
|
462
|
+
const { userOps, entryPoint } = bundle;
|
|
437
463
|
const gasPriceParameters = await this.gasPriceManager
|
|
438
464
|
.tryGetNetworkGasPrice()
|
|
439
465
|
.catch((_) => {
|
|
@@ -444,13 +470,14 @@ class ExecutorManager {
|
|
|
444
470
|
...userOpInfo,
|
|
445
471
|
reason: "Failed to get network gas price during replacement"
|
|
446
472
|
}));
|
|
447
|
-
this.failedToReplaceTransaction({
|
|
473
|
+
await this.failedToReplaceTransaction({
|
|
474
|
+
entryPoint,
|
|
448
475
|
rejectedUserOps,
|
|
449
476
|
oldTxHash,
|
|
450
477
|
reason: "Failed to get network gas price during replacement"
|
|
451
478
|
});
|
|
452
479
|
// Free executor if failed to get initial params.
|
|
453
|
-
this.senderManager.markWalletProcessed(txInfo.executor);
|
|
480
|
+
await this.senderManager.markWalletProcessed(txInfo.executor);
|
|
454
481
|
return;
|
|
455
482
|
}
|
|
456
483
|
const bundleResult = await this.executor.bundle({
|
|
@@ -466,19 +493,17 @@ class ExecutorManager {
|
|
|
466
493
|
});
|
|
467
494
|
// Free wallet and return if potentially included too many times.
|
|
468
495
|
if (txInfo.timesPotentiallyIncluded >= 3) {
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
}
|
|
476
|
-
this.senderManager.markWalletProcessed(txInfo.executor);
|
|
496
|
+
this.removeSubmitted(entryPoint, bundle.userOps);
|
|
497
|
+
this.logger.warn({
|
|
498
|
+
oldTxHash,
|
|
499
|
+
userOps: (0, utils_2.getUserOpHashes)(bundleResult.rejectedUserOps)
|
|
500
|
+
}, "transaction potentially already included too many times, removing");
|
|
501
|
+
await this.senderManager.markWalletProcessed(txInfo.executor);
|
|
477
502
|
return;
|
|
478
503
|
}
|
|
479
504
|
// Free wallet if no bundle was sent or potentially included.
|
|
480
505
|
if (bundleResult.status !== "bundle_success") {
|
|
481
|
-
this.senderManager.markWalletProcessed(txInfo.executor);
|
|
506
|
+
await this.senderManager.markWalletProcessed(txInfo.executor);
|
|
482
507
|
}
|
|
483
508
|
// Check if the transaction is potentially included.
|
|
484
509
|
const nonceTooLow = bundleResult.status === "bundle_submission_failure" &&
|
|
@@ -511,7 +536,8 @@ class ExecutorManager {
|
|
|
511
536
|
}
|
|
512
537
|
if (bundleResult.status === "unhandled_simulation_failure") {
|
|
513
538
|
const { rejectedUserOps, reason } = bundleResult;
|
|
514
|
-
this.failedToReplaceTransaction({
|
|
539
|
+
await this.failedToReplaceTransaction({
|
|
540
|
+
entryPoint,
|
|
515
541
|
oldTxHash,
|
|
516
542
|
reason,
|
|
517
543
|
rejectedUserOps
|
|
@@ -519,7 +545,8 @@ class ExecutorManager {
|
|
|
519
545
|
return;
|
|
520
546
|
}
|
|
521
547
|
if (bundleResult.status === "all_ops_failed_simulation") {
|
|
522
|
-
this.failedToReplaceTransaction({
|
|
548
|
+
await this.failedToReplaceTransaction({
|
|
549
|
+
entryPoint,
|
|
523
550
|
oldTxHash,
|
|
524
551
|
reason: "all ops failed simulation",
|
|
525
552
|
rejectedUserOps: bundleResult.rejectedUserOps
|
|
@@ -529,10 +556,11 @@ class ExecutorManager {
|
|
|
529
556
|
if (bundleResult.status === "bundle_submission_failure") {
|
|
530
557
|
const { reason, rejectedUserOps } = bundleResult;
|
|
531
558
|
const submissionFailureReason = reason instanceof abitype_1.BaseError ? reason.name : "INTERNAL FAILURE";
|
|
532
|
-
this.failedToReplaceTransaction({
|
|
559
|
+
await this.failedToReplaceTransaction({
|
|
533
560
|
oldTxHash,
|
|
534
561
|
rejectedUserOps,
|
|
535
|
-
reason: submissionFailureReason
|
|
562
|
+
reason: submissionFailureReason,
|
|
563
|
+
entryPoint
|
|
536
564
|
});
|
|
537
565
|
return;
|
|
538
566
|
}
|
|
@@ -552,11 +580,14 @@ class ExecutorManager {
|
|
|
552
580
|
userOps: userOpsReplaced
|
|
553
581
|
}
|
|
554
582
|
};
|
|
555
|
-
userOpsReplaced.map((
|
|
556
|
-
this.mempool.replaceSubmitted(
|
|
557
|
-
|
|
583
|
+
await Promise.all(userOpsReplaced.map(async (userOpInfo) => {
|
|
584
|
+
await this.mempool.replaceSubmitted({
|
|
585
|
+
userOpInfo,
|
|
586
|
+
transactionInfo: newTxInfo
|
|
587
|
+
});
|
|
588
|
+
}));
|
|
558
589
|
// Drop all userOperations that were rejected during simulation.
|
|
559
|
-
this.dropUserOps(rejectedUserOps);
|
|
590
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
560
591
|
this.logger.info({
|
|
561
592
|
oldTxHash,
|
|
562
593
|
newTxHash,
|
|
@@ -564,40 +595,43 @@ class ExecutorManager {
|
|
|
564
595
|
}, "replaced transaction");
|
|
565
596
|
return;
|
|
566
597
|
}
|
|
567
|
-
markUserOperationsAsSubmitted(userOpInfos, transactionInfo) {
|
|
568
|
-
userOpInfos.map((userOpInfo) => {
|
|
598
|
+
async markUserOperationsAsSubmitted(userOpInfos, transactionInfo) {
|
|
599
|
+
await Promise.all(userOpInfos.map(async (userOpInfo) => {
|
|
569
600
|
const { userOpHash } = userOpInfo;
|
|
570
|
-
this.mempool.markSubmitted(
|
|
601
|
+
await this.mempool.markSubmitted({
|
|
602
|
+
userOpHash,
|
|
603
|
+
transactionInfo
|
|
604
|
+
});
|
|
571
605
|
this.startWatchingBlocks(this.handleBlock.bind(this));
|
|
572
606
|
this.metrics.userOperationsSubmitted
|
|
573
607
|
.labels({ status: "success" })
|
|
574
608
|
.inc();
|
|
575
|
-
});
|
|
609
|
+
}));
|
|
576
610
|
}
|
|
577
|
-
resubmitUserOperations(userOps, entryPoint, reason) {
|
|
578
|
-
userOps.map((userOpInfo) => {
|
|
611
|
+
async resubmitUserOperations(userOps, entryPoint, reason) {
|
|
612
|
+
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
579
613
|
const { userOpHash, userOp } = userOpInfo;
|
|
580
|
-
this.logger.
|
|
614
|
+
this.logger.warn({
|
|
581
615
|
userOpHash,
|
|
582
616
|
reason
|
|
583
617
|
}, "resubmitting user operation");
|
|
584
|
-
this.mempool.removeProcessing(userOpHash);
|
|
585
|
-
this.mempool.add(userOp, entryPoint);
|
|
618
|
+
await this.mempool.removeProcessing({ entryPoint, userOpHash });
|
|
619
|
+
await this.mempool.add(userOp, entryPoint);
|
|
586
620
|
this.metrics.userOperationsResubmitted.inc();
|
|
587
|
-
});
|
|
621
|
+
}));
|
|
588
622
|
}
|
|
589
|
-
failedToReplaceTransaction({ oldTxHash, rejectedUserOps, reason }) {
|
|
623
|
+
async failedToReplaceTransaction({ oldTxHash, rejectedUserOps, reason, entryPoint }) {
|
|
590
624
|
this.logger.warn({ oldTxHash, reason }, "failed to replace transaction");
|
|
591
|
-
this.dropUserOps(rejectedUserOps);
|
|
625
|
+
await this.dropUserOps(entryPoint, rejectedUserOps);
|
|
592
626
|
}
|
|
593
|
-
removeSubmitted(userOps) {
|
|
594
|
-
userOps.map((userOpInfo) => {
|
|
627
|
+
async removeSubmitted(entryPoint, userOps) {
|
|
628
|
+
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
595
629
|
const { userOpHash } = userOpInfo;
|
|
596
|
-
this.mempool.removeSubmitted(userOpHash);
|
|
597
|
-
});
|
|
630
|
+
await this.mempool.removeSubmitted({ entryPoint, userOpHash });
|
|
631
|
+
}));
|
|
598
632
|
}
|
|
599
|
-
markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails) {
|
|
600
|
-
userOps.map((userOpInfo) => {
|
|
633
|
+
async markUserOpsIncluded(userOps, entryPoint, blockNumber, transactionHash, userOperationDetails) {
|
|
634
|
+
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
601
635
|
this.metrics.userOperationsOnChain
|
|
602
636
|
.labels({ status: "included" })
|
|
603
637
|
.inc();
|
|
@@ -605,15 +639,15 @@ class ExecutorManager {
|
|
|
605
639
|
const opDetails = userOperationDetails[userOpHash];
|
|
606
640
|
const firstSubmitted = userOpInfo.addedToMempool;
|
|
607
641
|
this.metrics.userOperationInclusionDuration.observe((Date.now() - firstSubmitted) / 1000);
|
|
608
|
-
this.mempool.removeSubmitted(userOpHash);
|
|
642
|
+
await this.mempool.removeSubmitted({ entryPoint, userOpHash });
|
|
609
643
|
this.reputationManager.updateUserOperationIncludedStatus(userOp, entryPoint, opDetails.accountDeployed);
|
|
610
644
|
if (opDetails.status === "succesful") {
|
|
611
|
-
this.eventManager.emitIncludedOnChain(userOpHash, transactionHash, blockNumber);
|
|
645
|
+
await this.eventManager.emitIncludedOnChain(userOpHash, transactionHash, blockNumber);
|
|
612
646
|
}
|
|
613
647
|
else {
|
|
614
|
-
this.eventManager.emitExecutionRevertedOnChain(userOpHash, transactionHash, opDetails.revertReason || "0x", blockNumber);
|
|
648
|
+
await this.eventManager.emitExecutionRevertedOnChain(userOpHash, transactionHash, opDetails.revertReason || "0x", blockNumber);
|
|
615
649
|
}
|
|
616
|
-
this.monitor.setUserOperationStatus(userOpHash, {
|
|
650
|
+
await this.monitor.setUserOperationStatus(userOpHash, {
|
|
617
651
|
status: "included",
|
|
618
652
|
transactionHash
|
|
619
653
|
});
|
|
@@ -621,15 +655,15 @@ class ExecutorManager {
|
|
|
621
655
|
opHash: userOpHash,
|
|
622
656
|
transactionHash
|
|
623
657
|
}, "user op included");
|
|
624
|
-
});
|
|
658
|
+
}));
|
|
625
659
|
}
|
|
626
|
-
dropUserOps(rejectedUserOps) {
|
|
627
|
-
rejectedUserOps.map((rejectedUserOp) => {
|
|
660
|
+
async dropUserOps(entryPoint, rejectedUserOps) {
|
|
661
|
+
await Promise.all(rejectedUserOps.map(async (rejectedUserOp) => {
|
|
628
662
|
const { userOp, reason, userOpHash } = rejectedUserOp;
|
|
629
|
-
this.mempool.removeProcessing(userOpHash);
|
|
630
|
-
this.mempool.removeSubmitted(userOpHash);
|
|
631
|
-
this.eventManager.emitDropped(userOpHash, reason, (0, utils_1.getAAError)(reason));
|
|
632
|
-
this.monitor.setUserOperationStatus(userOpHash, {
|
|
663
|
+
await this.mempool.removeProcessing({ entryPoint, userOpHash });
|
|
664
|
+
await this.mempool.removeSubmitted({ entryPoint, userOpHash });
|
|
665
|
+
await this.eventManager.emitDropped(userOpHash, reason, (0, utils_1.getAAError)(reason));
|
|
666
|
+
await this.monitor.setUserOperationStatus(userOpHash, {
|
|
633
667
|
status: "rejected",
|
|
634
668
|
transactionHash: null
|
|
635
669
|
});
|
|
@@ -641,7 +675,7 @@ class ExecutorManager {
|
|
|
641
675
|
this.metrics.userOperationsSubmitted
|
|
642
676
|
.labels({ status: "failed" })
|
|
643
677
|
.inc();
|
|
644
|
-
});
|
|
678
|
+
}));
|
|
645
679
|
}
|
|
646
680
|
}
|
|
647
681
|
exports.ExecutorManager = ExecutorManager;
|
|
@@ -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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"}
|
package/lib/executor/index.d.ts
CHANGED
package/lib/executor/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./senderManager.js"), exports);
|
|
17
|
+
__exportStar(require("./senderManager/index.js"), exports);
|
|
18
18
|
__exportStar(require("./executor.js"), exports);
|
|
19
19
|
__exportStar(require("./executorManager.js"), exports);
|
|
20
20
|
__exportStar(require("./utils.js"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Metrics } from "../../utils/index.js";
|
|
2
|
+
import { SenderManager } from "./index.js";
|
|
3
|
+
import { AltoConfig } from "../../createConfig.js";
|
|
4
|
+
export declare const createMemorySenderManager: ({ config, metrics }: {
|
|
5
|
+
config: AltoConfig;
|
|
6
|
+
metrics: Metrics;
|
|
7
|
+
}) => SenderManager;
|
|
8
|
+
//# sourceMappingURL=createMemorySenderManager.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMemorySenderManager = void 0;
|
|
4
|
+
const _1 = require("./index.js");
|
|
5
|
+
const async_mutex_1 = require("async-mutex");
|
|
6
|
+
const createMemorySenderManager = ({ config, metrics }) => {
|
|
7
|
+
const wallets = (0, _1.getAvailableWallets)(config);
|
|
8
|
+
const availableWallets = [...wallets];
|
|
9
|
+
const semaphore = new async_mutex_1.Semaphore(availableWallets.length);
|
|
10
|
+
const logger = config.getLogger({ module: "sender-manager" }, { level: config.executorLogLevel || config.logLevel });
|
|
11
|
+
metrics.walletsTotal.set(wallets.length);
|
|
12
|
+
metrics.walletsAvailable.set(wallets.length);
|
|
13
|
+
logger.info("Created memory sender manager");
|
|
14
|
+
return {
|
|
15
|
+
getAllWallets: () => [...wallets],
|
|
16
|
+
getWallet: async () => {
|
|
17
|
+
logger.trace("waiting for semaphore ");
|
|
18
|
+
await semaphore.acquire();
|
|
19
|
+
const wallet = availableWallets.shift();
|
|
20
|
+
// should never happen because of semaphore
|
|
21
|
+
if (!wallet) {
|
|
22
|
+
semaphore.release();
|
|
23
|
+
logger.error("no more wallets");
|
|
24
|
+
throw new Error("no more wallets");
|
|
25
|
+
}
|
|
26
|
+
logger.trace({ executor: wallet.address }, "got wallet from sender manager");
|
|
27
|
+
metrics.walletsAvailable.set(availableWallets.length);
|
|
28
|
+
return wallet;
|
|
29
|
+
},
|
|
30
|
+
markWalletProcessed: async (wallet) => {
|
|
31
|
+
if (!availableWallets.some((w) => w.address === wallet.address)) {
|
|
32
|
+
availableWallets.push(wallet);
|
|
33
|
+
semaphore.release();
|
|
34
|
+
logger.trace({ executor: wallet.address }, "pushed wallet to sender manager");
|
|
35
|
+
}
|
|
36
|
+
metrics.walletsAvailable.set(availableWallets.length);
|
|
37
|
+
},
|
|
38
|
+
getActiveWallets: () => {
|
|
39
|
+
// Active wallets are those that are in the total pool but not in the available pool
|
|
40
|
+
return wallets.filter((wallet) => !availableWallets.some((available) => available.address === wallet.address));
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.createMemorySenderManager = createMemorySenderManager;
|
|
45
|
+
//# sourceMappingURL=createMemorySenderManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMemorySenderManager.js","sourceRoot":"","sources":["../../../executor/senderManager/createMemorySenderManager.ts"],"names":[],"mappings":";;;AACA,wBAAsD;AAEtD,6CAAuC;AAGhC,MAAM,yBAAyB,GAAG,CAAC,EACtC,MAAM,EACN,OAAO,EACgC,EAAiB,EAAE;IAC1D,MAAM,OAAO,GAAG,IAAA,sBAAmB,EAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAErC,MAAM,SAAS,GAAc,IAAI,uBAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC3B,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC5B,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,CACxD,CAAA;IAED,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAE5C,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO;QACH,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;QACjC,SAAS,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACtC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;YAEzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAA;YAEvC,2CAA2C;YAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,CAAC,KAAK,CACR,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAC5B,gCAAgC,CACnC,CAAA;YAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAErD,OAAO,MAAM,CAAA;QACjB,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;YAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC7B,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,MAAM,CAAC,KAAK,CACR,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAC5B,iCAAiC,CACpC,CAAA;YACL,CAAC;YAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACzD,CAAC;QACD,gBAAgB,EAAE,GAAG,EAAE;YACnB,oFAAoF;YACpF,OAAO,OAAO,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,EAAE,CACP,CAAC,gBAAgB,CAAC,IAAI,CAClB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CACtD,CACR,CAAA;QACL,CAAC;KACJ,CAAA;AACL,CAAC,CAAA;AA/DY,QAAA,yBAAyB,6BA+DrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Metrics } from "../../utils/index.js";
|
|
2
|
+
import { AltoConfig } from "../../createConfig.js";
|
|
3
|
+
import { SenderManager } from "../senderManager/index.js";
|
|
4
|
+
export declare const createRedisSenderManager: ({ config, metrics }: {
|
|
5
|
+
config: AltoConfig;
|
|
6
|
+
metrics: Metrics;
|
|
7
|
+
}) => Promise<SenderManager>;
|
|
8
|
+
//# sourceMappingURL=createRedisSenderManager.d.ts.map
|