@pimlico/alto 0.0.0-main.20250908T105720 → 0.0.0-main.20250930T125129
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/config/bundler.d.ts +12 -0
- package/esm/cli/config/bundler.js +2 -0
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +11 -0
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/setupServer.js +11 -11
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/cli/shutDown.d.ts +5 -5
- package/esm/cli/shutDown.js +20 -60
- package/esm/cli/shutDown.js.map +1 -1
- package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +4 -4
- package/esm/executor/{userOpMonitor.js → bundleManager.js} +50 -37
- package/esm/executor/bundleManager.js.map +1 -0
- package/esm/executor/executorManager.d.ts +4 -4
- package/esm/executor/executorManager.js +23 -24
- 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/createRedisSenderManager.js +1 -2
- package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.js +2 -2
- package/esm/handlers/gasPriceManager.js +3 -3
- package/esm/handlers/mantleGasPriceManager.js +4 -4
- package/esm/handlers/optimismManager.js +1 -1
- package/esm/mempool/mempool.d.ts +3 -11
- package/esm/mempool/mempool.js +91 -93
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/monitoring.d.ts +1 -1
- package/esm/mempool/monitoring.js +30 -21
- package/esm/mempool/monitoring.js.map +1 -1
- package/esm/receiptCache/createMemoryReceiptCache.js +8 -5
- package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -1
- package/esm/receiptCache/createRedisReceiptCache.js +13 -11
- package/esm/receiptCache/createRedisReceiptCache.js.map +1 -1
- package/esm/receiptCache/index.d.ts +4 -1
- package/esm/receiptCache/index.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +4 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +4 -4
- package/esm/rpc/rpcHandler.js +3 -3
- package/esm/store/createMempoolStore.d.ts +1 -1
- package/esm/store/createMempoolStore.js +51 -143
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/index.d.ts +4 -75
- package/esm/store/index.js +4 -1
- package/esm/store/index.js.map +1 -1
- package/esm/store/outstanding/index.d.ts +13 -0
- package/esm/store/outstanding/index.js +16 -0
- package/esm/store/outstanding/index.js.map +1 -0
- package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +11 -10
- package/esm/store/outstanding/memory.js +249 -0
- package/esm/store/outstanding/memory.js.map +1 -0
- package/esm/store/outstanding/redis.d.ts +11 -0
- package/esm/store/outstanding/redis.js +201 -0
- package/esm/store/outstanding/redis.js.map +1 -0
- package/esm/store/outstanding/types.d.ts +18 -0
- package/esm/store/outstanding/types.js +2 -0
- package/esm/store/outstanding/types.js.map +1 -0
- package/esm/store/processing/index.d.ts +11 -0
- package/esm/store/processing/index.js +17 -0
- package/esm/store/processing/index.js.map +1 -0
- package/esm/store/processing/memory.d.ts +14 -0
- package/esm/store/processing/memory.js +46 -0
- package/esm/store/processing/memory.js.map +1 -0
- package/esm/store/processing/redis.d.ts +21 -0
- package/esm/store/processing/redis.js +69 -0
- package/esm/store/processing/redis.js.map +1 -0
- package/esm/store/processing/types.d.ts +9 -0
- package/esm/store/processing/types.js +2 -0
- package/esm/store/processing/types.js.map +1 -0
- package/esm/store/types.d.ts +49 -0
- package/esm/store/types.js +2 -0
- package/esm/store/types.js.map +1 -0
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +23 -2
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +83 -60
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/index.d.ts +2 -2
- package/esm/utils/minMaxQueue/index.js +2 -2
- package/esm/utils/minMaxQueue/index.js.map +1 -1
- package/esm/utils/userop.d.ts +1 -0
- package/esm/utils/userop.js +6 -0
- package/esm/utils/userop.js.map +1 -1
- package/package.json +1 -1
- package/esm/cli/config/redisKeys.d.ts +0 -9
- package/esm/cli/config/redisKeys.js +0 -16
- package/esm/cli/config/redisKeys.js.map +0 -1
- package/esm/executor/userOpMonitor.js.map +0 -1
- package/esm/store/createMemoryOutstandingStore.js +0 -240
- package/esm/store/createMemoryOutstandingStore.js.map +0 -1
- package/esm/store/createRedisOutstandingStore.d.ts +0 -28
- package/esm/store/createRedisOutstandingStore.js +0 -341
- package/esm/store/createRedisOutstandingStore.js.map +0 -1
- package/esm/store/createRedisStore.d.ts +0 -10
- package/esm/store/createRedisStore.js +0 -128
- package/esm/store/createRedisStore.js.map +0 -1
- package/esm/store/createStore.d.ts +0 -6
- package/esm/store/createStore.js +0 -66
- package/esm/store/createStore.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isDeployment } from "../../utils/index.js";
|
|
2
|
+
import { Redis } from "ioredis";
|
|
3
|
+
export class RedisProcessingStore {
|
|
4
|
+
redis;
|
|
5
|
+
processingUserOpsSet; // set of userOpHashes being processed
|
|
6
|
+
processingSenderNonceSet; // set of "sender:nonce" being processed
|
|
7
|
+
processingDeploymentSet; // set of senders with deployments being processed
|
|
8
|
+
encodeSenderNonceId(sender, nonce) {
|
|
9
|
+
return `${sender}:${nonce}`;
|
|
10
|
+
}
|
|
11
|
+
constructor({ config, entryPoint, redisEndpoint }) {
|
|
12
|
+
this.redis = new Redis(redisEndpoint);
|
|
13
|
+
const redisPrefix = `${config.redisKeyPrefix}:${config.chainId}:${entryPoint}:processing`;
|
|
14
|
+
this.processingUserOpsSet = `${redisPrefix}:userOps`;
|
|
15
|
+
this.processingSenderNonceSet = `${redisPrefix}:senderNonce`;
|
|
16
|
+
this.processingDeploymentSet = `${redisPrefix}:deployment`;
|
|
17
|
+
}
|
|
18
|
+
async addProcessing(userOpInfo) {
|
|
19
|
+
const { userOpHash, userOp } = userOpInfo;
|
|
20
|
+
const isDeploymentOp = isDeployment(userOp);
|
|
21
|
+
const senderNonceId = this.encodeSenderNonceId(userOp.sender, userOp.nonce);
|
|
22
|
+
// Use MULTI for atomic operation in single round trip
|
|
23
|
+
const multi = this.redis.multi();
|
|
24
|
+
multi.sadd(this.processingUserOpsSet, userOpHash);
|
|
25
|
+
multi.sadd(this.processingSenderNonceSet, senderNonceId);
|
|
26
|
+
if (isDeploymentOp) {
|
|
27
|
+
multi.sadd(this.processingDeploymentSet, userOp.sender);
|
|
28
|
+
}
|
|
29
|
+
await multi.exec();
|
|
30
|
+
}
|
|
31
|
+
async removeProcessing(userOpInfo) {
|
|
32
|
+
const { userOpHash, userOp } = userOpInfo;
|
|
33
|
+
const isDeploymentOp = isDeployment(userOp);
|
|
34
|
+
const senderNonceId = this.encodeSenderNonceId(userOp.sender, userOp.nonce);
|
|
35
|
+
// Use MULTI for atomic removal in single round trip
|
|
36
|
+
const multi = this.redis.multi();
|
|
37
|
+
multi.srem(this.processingUserOpsSet, userOpHash);
|
|
38
|
+
multi.srem(this.processingSenderNonceSet, senderNonceId);
|
|
39
|
+
if (isDeploymentOp) {
|
|
40
|
+
multi.srem(this.processingDeploymentSet, userOp.sender);
|
|
41
|
+
}
|
|
42
|
+
await multi.exec();
|
|
43
|
+
}
|
|
44
|
+
async isProcessing(userOpHash) {
|
|
45
|
+
const isMember = await this.redis.sismember(this.processingUserOpsSet, userOpHash);
|
|
46
|
+
return isMember === 1;
|
|
47
|
+
}
|
|
48
|
+
async wouldConflict(userOp) {
|
|
49
|
+
const senderNonceId = this.encodeSenderNonceId(userOp.sender, userOp.nonce);
|
|
50
|
+
// Use MULTI for atomic read in single round trip
|
|
51
|
+
const multi = this.redis.multi();
|
|
52
|
+
multi.sismember(this.processingDeploymentSet, userOp.sender);
|
|
53
|
+
multi.sismember(this.processingSenderNonceSet, senderNonceId);
|
|
54
|
+
const results = await multi.exec();
|
|
55
|
+
if (!results)
|
|
56
|
+
return undefined;
|
|
57
|
+
const [deploymentResult, nonceResult] = results;
|
|
58
|
+
const hasDeployment = deploymentResult?.[1] === 1;
|
|
59
|
+
const hasNonce = nonceResult?.[1] === 1;
|
|
60
|
+
if (hasDeployment) {
|
|
61
|
+
return "deployment_conflict";
|
|
62
|
+
}
|
|
63
|
+
if (hasNonce) {
|
|
64
|
+
return "nonce_conflict";
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../store/processing/redis.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI/B,MAAM,OAAO,oBAAoB;IACrB,KAAK,CAAO;IAEZ,oBAAoB,CAAQ,CAAC,sCAAsC;IACnE,wBAAwB,CAAQ,CAAC,wCAAwC;IACzE,uBAAuB,CAAQ,CAAC,kDAAkD;IAElF,mBAAmB,CAAC,MAAe,EAAE,KAAa;QACtD,OAAO,GAAG,MAAM,IAAI,KAAK,EAAE,CAAA;IAC/B,CAAC;IAED,YAAY,EACR,MAAM,EACN,UAAU,EACV,aAAa,EAKhB;QACG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAErC,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,OAAO,IAAI,UAAU,aAAa,CAAA;QACzF,IAAI,CAAC,oBAAoB,GAAG,GAAG,WAAW,UAAU,CAAA;QACpD,IAAI,CAAC,wBAAwB,GAAG,GAAG,WAAW,cAAc,CAAA;QAC5D,IAAI,CAAC,uBAAuB,GAAG,GAAG,WAAW,aAAa,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAsB;QACtC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QACzC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC1C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,CACf,CAAA;QAED,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAA;QACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAA;QAExD,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAsB;QACzC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QACzC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC1C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,CACf,CAAA;QAED,oDAAoD;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAA;QACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAA;QAExD,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAe;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACvC,IAAI,CAAC,oBAAoB,EACzB,UAAU,CACb,CAAA;QACD,OAAO,QAAQ,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,aAAa,CACf,MAAqB;QAErB,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC1C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,CACf,CAAA;QAED,iDAAiD;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAChC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAA;QAE7D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAE9B,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAA;QAC/C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEvC,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,gBAAgB,CAAA;QAC3B,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UserOpInfo, UserOperation } from "../../types/index.js";
|
|
2
|
+
import type { Hex } from "viem";
|
|
3
|
+
export interface ProcessingStore {
|
|
4
|
+
addProcessing(userOp: UserOpInfo): Promise<void>;
|
|
5
|
+
removeProcessing(userOp: UserOpInfo): Promise<void>;
|
|
6
|
+
isProcessing(userOpHash: Hex): Promise<boolean>;
|
|
7
|
+
wouldConflict(userOp: UserOperation): Promise<"nonce_conflict" | "deployment_conflict" | undefined>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../store/processing/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Address } from "abitype";
|
|
2
|
+
import type { HexData32, UserOpInfo, UserOperation } from "../types/schemas.js";
|
|
3
|
+
import type { ConflictingOutstandingType } from "./outstanding/index.js";
|
|
4
|
+
export type StoreType = "outstanding" | "processing";
|
|
5
|
+
export type ValidationResult = {
|
|
6
|
+
valid: true;
|
|
7
|
+
} | {
|
|
8
|
+
valid: false;
|
|
9
|
+
reason: string;
|
|
10
|
+
};
|
|
11
|
+
export type EntryPointUserOpInfoParam = {
|
|
12
|
+
entryPoint: Address;
|
|
13
|
+
userOpInfo: UserOpInfo;
|
|
14
|
+
};
|
|
15
|
+
export type EntryPointUserOpInfosParam = {
|
|
16
|
+
entryPoint: Address;
|
|
17
|
+
userOpInfos: UserOpInfo[];
|
|
18
|
+
};
|
|
19
|
+
export type EntryPointUserOpHashParam = {
|
|
20
|
+
entryPoint: Address;
|
|
21
|
+
userOpHash: HexData32;
|
|
22
|
+
};
|
|
23
|
+
export type MempoolStore = {
|
|
24
|
+
popOutstanding: (entryPoint: Address, count: number) => Promise<UserOpInfo[]>;
|
|
25
|
+
addOutstanding: (args: EntryPointUserOpInfosParam) => Promise<void>;
|
|
26
|
+
removeOutstanding: (args: EntryPointUserOpHashParam) => Promise<void>;
|
|
27
|
+
dumpOutstanding: (entryPoint: Address) => Promise<UserOpInfo[]>;
|
|
28
|
+
addProcessing: (args: EntryPointUserOpInfoParam) => Promise<void>;
|
|
29
|
+
removeProcessing: (args: EntryPointUserOpInfoParam) => Promise<void>;
|
|
30
|
+
checkDuplicatesAndConflicts: (args: {
|
|
31
|
+
entryPoint: Address;
|
|
32
|
+
userOp: UserOperation;
|
|
33
|
+
userOpHash: HexData32;
|
|
34
|
+
}) => Promise<ValidationResult>;
|
|
35
|
+
popConflictingOustanding: (args: {
|
|
36
|
+
entryPoint: Address;
|
|
37
|
+
userOp: UserOperation;
|
|
38
|
+
}) => Promise<ConflictingOutstandingType>;
|
|
39
|
+
validateSenderLimits: (args: {
|
|
40
|
+
entryPoint: Address;
|
|
41
|
+
userOp: UserOperation;
|
|
42
|
+
}) => Promise<ValidationResult>;
|
|
43
|
+
getQueuedOutstandingUserOps: (args: {
|
|
44
|
+
userOp: UserOperation;
|
|
45
|
+
entryPoint: Address;
|
|
46
|
+
}) => Promise<UserOperation[]>;
|
|
47
|
+
clearOutstanding: (entryPoint: Address) => Promise<void>;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../store/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MinMaxQueue implementation in Redis using a single sorted set
|
|
3
|
+
*
|
|
4
|
+
* ## Data Structure
|
|
5
|
+
* - Uses a Redis sorted set where:
|
|
6
|
+
* - Score: timestamp when value was added (seconds since epoch)
|
|
7
|
+
* - Member: the actual bigint value (stored as string)
|
|
8
|
+
*
|
|
9
|
+
* ## Flow
|
|
10
|
+
* 1. **Adding values**: New values are added/updated with current timestamp as score
|
|
11
|
+
* 2. **Reading values**: Queries filter out expired entries based on timestamp
|
|
12
|
+
* 3. **Cleanup**: Background process runs every minute to remove expired entries
|
|
13
|
+
*
|
|
14
|
+
* ## Optimization Strategy
|
|
15
|
+
* - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
|
|
16
|
+
*
|
|
17
|
+
* ## TTL Management
|
|
18
|
+
* - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
|
|
19
|
+
* - Background cleanup prevents unbounded growth
|
|
20
|
+
* - Read operations ignore expired entries without removing them
|
|
21
|
+
*/
|
|
1
22
|
import type { MinMaxQueue } from "./index.js";
|
|
2
23
|
import type { AltoConfig } from "../../createConfig.js";
|
|
3
|
-
export declare const createRedisMinMaxQueue: ({ config,
|
|
24
|
+
export declare const createRedisMinMaxQueue: ({ config, queueName, redisEndpoint }: {
|
|
4
25
|
config: AltoConfig;
|
|
5
|
-
|
|
26
|
+
queueName: string;
|
|
6
27
|
redisEndpoint: string;
|
|
7
28
|
}) => MinMaxQueue;
|
|
8
29
|
//# sourceMappingURL=createRedisMinMaxQueue.d.ts.map
|
|
@@ -1,106 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MinMaxQueue implementation in Redis using a single sorted set
|
|
3
|
+
*
|
|
4
|
+
* ## Data Structure
|
|
5
|
+
* - Uses a Redis sorted set where:
|
|
6
|
+
* - Score: timestamp when value was added (seconds since epoch)
|
|
7
|
+
* - Member: the actual bigint value (stored as string)
|
|
8
|
+
*
|
|
9
|
+
* ## Flow
|
|
10
|
+
* 1. **Adding values**: New values are added/updated with current timestamp as score
|
|
11
|
+
* 2. **Reading values**: Queries filter out expired entries based on timestamp
|
|
12
|
+
* 3. **Cleanup**: Background process runs every minute to remove expired entries
|
|
13
|
+
*
|
|
14
|
+
* ## Optimization Strategy
|
|
15
|
+
* - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
|
|
16
|
+
*
|
|
17
|
+
* ## TTL Management
|
|
18
|
+
* - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
|
|
19
|
+
* - Background cleanup prevents unbounded growth
|
|
20
|
+
* - Read operations ignore expired entries without removing them
|
|
21
|
+
*/
|
|
1
22
|
import Redis from "ioredis";
|
|
2
23
|
import * as sentry from "@sentry/node";
|
|
3
|
-
// Sorted TTL queue, one queue to keep track of values and other queue to keep track of TTL.
|
|
4
24
|
class SortedTtlSet {
|
|
5
25
|
redis;
|
|
6
|
-
|
|
7
|
-
timestampKey;
|
|
26
|
+
redisKey; // Single sorted set: score = timestamp, member = value
|
|
8
27
|
queueValidity;
|
|
9
|
-
|
|
28
|
+
cleanupInterval = null;
|
|
29
|
+
constructor({ queueName, config, redisEndpoint }) {
|
|
10
30
|
const redis = new Redis(redisEndpoint);
|
|
11
31
|
const queueValidity = config.gasPriceExpiry;
|
|
12
|
-
const redisKey = `${config.chainId}:${keyPrefix}`;
|
|
13
32
|
this.redis = redis;
|
|
14
|
-
this.
|
|
15
|
-
this.timestampKey = `${redisKey}:timestamp`;
|
|
33
|
+
this.redisKey = `${config.redisKeyPrefix}:${config.chainId}:${queueName}`;
|
|
16
34
|
this.queueValidity = queueValidity;
|
|
35
|
+
// Start background cleanup every minute
|
|
36
|
+
this.startBackgroundCleanup();
|
|
37
|
+
}
|
|
38
|
+
startBackgroundCleanup() {
|
|
39
|
+
// Run cleanup every minute
|
|
40
|
+
this.cleanupInterval = setInterval(() => {
|
|
41
|
+
this.cleanup().catch((err) => {
|
|
42
|
+
sentry.captureException(err);
|
|
43
|
+
});
|
|
44
|
+
}, 60 * 1000);
|
|
45
|
+
// Allow process to exit even if interval is active
|
|
46
|
+
if (this.cleanupInterval.unref) {
|
|
47
|
+
this.cleanupInterval.unref();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async cleanup() {
|
|
51
|
+
const cutoffTime = Date.now() / 1_000 - this.queueValidity * 5;
|
|
52
|
+
await this.redis.zremrangebyscore(this.redisKey, "-inf", `(${cutoffTime}`);
|
|
17
53
|
}
|
|
18
54
|
async add(value, logger) {
|
|
19
55
|
try {
|
|
20
|
-
await this.pruneExpiredEntries(logger);
|
|
21
56
|
if (value === 0n) {
|
|
22
57
|
return;
|
|
23
58
|
}
|
|
24
59
|
const now = Date.now() / 1_000;
|
|
25
60
|
const valueStr = value.toString();
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
if (exists) {
|
|
29
|
-
// If value exists, only update its timestamp
|
|
30
|
-
const multi = this.redis.multi();
|
|
31
|
-
multi.zrem(this.timestampKey, valueStr); // Remove old timestamp
|
|
32
|
-
multi.zadd(this.timestampKey, now, valueStr); // Add new timestamp
|
|
33
|
-
await multi.exec();
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// If it's a new value, add entry to timestamp and value queues
|
|
37
|
-
const multi = this.redis.multi();
|
|
38
|
-
multi.zadd(this.timestampKey, now, valueStr);
|
|
39
|
-
multi.zadd(this.valueKey, valueStr, valueStr);
|
|
40
|
-
await multi.exec();
|
|
41
|
-
}
|
|
61
|
+
// Add or update (if exists) with current timestamp
|
|
62
|
+
await this.redis.zadd(this.redisKey, now, valueStr);
|
|
42
63
|
}
|
|
43
64
|
catch (err) {
|
|
44
65
|
logger.error({ err }, "Failed to save value to minMaxQueue");
|
|
45
66
|
sentry.captureException(err);
|
|
46
67
|
}
|
|
47
68
|
}
|
|
48
|
-
|
|
69
|
+
getValidCutoffTime() {
|
|
70
|
+
return Date.now() / 1_000 - this.queueValidity;
|
|
71
|
+
}
|
|
72
|
+
async getMin(logger) {
|
|
49
73
|
try {
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
);
|
|
55
|
-
if (expiredMembers.length) {
|
|
56
|
-
const multi = this.redis.multi();
|
|
57
|
-
// Remove expired entries from both sets
|
|
58
|
-
multi.zrem(this.timestampKey, ...expiredMembers);
|
|
59
|
-
multi.zrem(this.valueKey, ...expiredMembers);
|
|
60
|
-
await multi.exec();
|
|
74
|
+
// Get all valid (non-expired) values
|
|
75
|
+
const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
|
|
76
|
+
if (validValues.length === 0) {
|
|
77
|
+
return null;
|
|
61
78
|
}
|
|
79
|
+
// Find minimum value among valid entries
|
|
80
|
+
const bigIntValues = validValues.map((v) => BigInt(v));
|
|
81
|
+
return bigIntValues.reduce((min, val) => (val < min ? val : min));
|
|
62
82
|
}
|
|
63
83
|
catch (err) {
|
|
64
|
-
logger.error({ err }, "Failed to
|
|
84
|
+
logger.error({ err }, "Failed to get min value");
|
|
65
85
|
sentry.captureException(err);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async getMin(logger) {
|
|
69
|
-
// Prune expired entries
|
|
70
|
-
await this.pruneExpiredEntries(logger);
|
|
71
|
-
// Get the smallest value from the value set
|
|
72
|
-
const values = await this.redis.zrange(this.valueKey, 0, 0);
|
|
73
|
-
if (values.length === 0) {
|
|
74
86
|
return null;
|
|
75
87
|
}
|
|
76
|
-
return BigInt(values[0]);
|
|
77
88
|
}
|
|
78
89
|
async getMax(logger) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
try {
|
|
91
|
+
// Get all valid (non-expired) values
|
|
92
|
+
const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
|
|
93
|
+
if (validValues.length === 0) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
// Find maximum value among valid entries
|
|
97
|
+
const bigIntValues = validValues.map((v) => BigInt(v));
|
|
98
|
+
return bigIntValues.reduce((max, val) => (val > max ? val : max));
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
logger.error({ err }, "Failed to get max value");
|
|
102
|
+
sentry.captureException(err);
|
|
84
103
|
return null;
|
|
85
104
|
}
|
|
86
|
-
return BigInt(values[0]);
|
|
87
105
|
}
|
|
88
106
|
async getLatestValue(logger) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
107
|
+
try {
|
|
108
|
+
// Get the most recently added value (highest timestamp) that's still valid
|
|
109
|
+
const validValues = await this.redis.zrevrangebyscore(this.redisKey, "+inf", this.getValidCutoffTime(), "LIMIT", 0, 1);
|
|
110
|
+
if (validValues.length === 0) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return BigInt(validValues[0]);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
logger.error({ err }, "Failed to get latest value");
|
|
117
|
+
sentry.captureException(err);
|
|
94
118
|
return null;
|
|
95
119
|
}
|
|
96
|
-
return BigInt(values[0]);
|
|
97
120
|
}
|
|
98
121
|
}
|
|
99
|
-
export const createRedisMinMaxQueue = ({ config,
|
|
122
|
+
export const createRedisMinMaxQueue = ({ config, queueName, redisEndpoint }) => {
|
|
100
123
|
const queue = new SortedTtlSet({
|
|
101
124
|
config,
|
|
102
125
|
redisEndpoint,
|
|
103
|
-
|
|
126
|
+
queueName
|
|
104
127
|
});
|
|
105
128
|
const logger = config.getLogger({ module: "minMaxQueue" }, {
|
|
106
129
|
level: config.logLevel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRedisMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createRedisMinMaxQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAA;AAG3B,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAItC,
|
|
1
|
+
{"version":3,"file":"createRedisMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createRedisMinMaxQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ export interface MinMaxQueue {
|
|
|
5
5
|
getMinValue(): Promise<bigint | null>;
|
|
6
6
|
getMaxValue(): Promise<bigint | null>;
|
|
7
7
|
}
|
|
8
|
-
export declare const createMinMaxQueue: ({ config,
|
|
8
|
+
export declare const createMinMaxQueue: ({ config, queueName }: {
|
|
9
9
|
config: AltoConfig;
|
|
10
|
-
|
|
10
|
+
queueName: string;
|
|
11
11
|
}) => MinMaxQueue;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createMemoryMinMaxQueue } from "./createMemoryMinMaxQueue.js";
|
|
2
2
|
import { createRedisMinMaxQueue } from "./createRedisMinMaxQueue.js";
|
|
3
|
-
export const createMinMaxQueue = ({ config,
|
|
3
|
+
export const createMinMaxQueue = ({ config, queueName }) => {
|
|
4
4
|
if (config.enableHorizontalScaling && config.redisEndpoint) {
|
|
5
5
|
return createRedisMinMaxQueue({
|
|
6
6
|
config,
|
|
7
|
-
|
|
7
|
+
queueName: queueName,
|
|
8
8
|
redisEndpoint: config.redisEndpoint
|
|
9
9
|
});
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AASjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,MAAM,EACN,SAAS,EAC+B,EAAe,EAAE;IACzD,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzD,OAAO,sBAAsB,CAAC;YAC1B,MAAM;YACN,SAAS;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AASjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,MAAM,EACN,SAAS,EAC+B,EAAe,EAAE;IACzD,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzD,OAAO,sBAAsB,CAAC;YAC1B,MAAM;YACN,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,MAAM,CAAC,aAAa;SACtC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAC9C,CAAC,CAAA"}
|
package/esm/utils/userop.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type Address, type Hex, type PublicClient, type TransactionReceipt } fr
|
|
|
3
3
|
export declare function isVersion06(operation: UserOperation): operation is UserOperation06;
|
|
4
4
|
export declare function isVersion07(operation: UserOperation): operation is UserOperation07;
|
|
5
5
|
export declare function isVersion08(operation: UserOperation, entryPointAddress: Address): operation is UserOperation07;
|
|
6
|
+
export declare function isDeployment(userOp: UserOperation): boolean;
|
|
6
7
|
export declare function getInitCode(unpackedUserOp: UserOperation07): `0x${string}`;
|
|
7
8
|
export declare function unPackInitCode(initCode: Hex): {
|
|
8
9
|
factory: null;
|
package/esm/utils/userop.js
CHANGED
|
@@ -15,6 +15,12 @@ export function isVersion07(operation) {
|
|
|
15
15
|
export function isVersion08(operation, entryPointAddress) {
|
|
16
16
|
return entryPointAddress.startsWith("0x4337");
|
|
17
17
|
}
|
|
18
|
+
// Check if a userOperation is a deployment operation
|
|
19
|
+
export function isDeployment(userOp) {
|
|
20
|
+
const isV6Deployment = isVersion06(userOp) && !!userOp.initCode && userOp.initCode !== "0x";
|
|
21
|
+
const isV7Deployment = isVersion07(userOp) && !!userOp.factory && userOp.factory !== "0x";
|
|
22
|
+
return isV6Deployment || isV7Deployment;
|
|
23
|
+
}
|
|
18
24
|
export function getInitCode(unpackedUserOp) {
|
|
19
25
|
return unpackedUserOp.factory
|
|
20
26
|
? concat([
|
package/esm/utils/userop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userop.js","sourceRoot":"","sources":["../../utils/userop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"userop.js","sourceRoot":"","sources":["../../utils/userop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pimlico/alto",
|
|
3
|
-
"version": "0.0.0-main.
|
|
3
|
+
"version": "0.0.0-main.20250930T125129",
|
|
4
4
|
"description": "A performant and modular ERC-4337 Bundler written in Typescript",
|
|
5
5
|
"repository": "https://github.com/pimlicolabs/alto.git",
|
|
6
6
|
"author": "Pimlico",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { AltoConfig } from "../../createConfig.js";
|
|
2
|
-
export declare const getRedisKeys: (config: AltoConfig) => {
|
|
3
|
-
mempoolQueue: string;
|
|
4
|
-
userOpReceiptCachePrefix: string;
|
|
5
|
-
userOpStatusQueue: string;
|
|
6
|
-
gasPriceQueue: string;
|
|
7
|
-
senderManagerQueue: string;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=redisKeys.d.ts.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export const getRedisKeys = (config) => {
|
|
2
|
-
const prefix = `${config.redisKeyPrefix}:${config.chainId}`;
|
|
3
|
-
return {
|
|
4
|
-
// Mempool queue
|
|
5
|
-
mempoolQueue: `${prefix}:outstanding-mempool`,
|
|
6
|
-
// User operation receipt cache - returns just the key prefix for receipt cache
|
|
7
|
-
userOpReceiptCachePrefix: `${prefix}:receipt-cache`,
|
|
8
|
-
// User operation status
|
|
9
|
-
userOpStatusQueue: `${prefix}:userop-status`,
|
|
10
|
-
// Gas price queue
|
|
11
|
-
gasPriceQueue: `${prefix}:gas-price`,
|
|
12
|
-
// Sender manager queue
|
|
13
|
-
senderManagerQueue: `${prefix}:sender-manager`
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=redisKeys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redisKeys.js","sourceRoot":"","sources":["../../../cli/config/redisKeys.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,OAAO,EAAE,CAAA;IAE3D,OAAO;QACH,gBAAgB;QAChB,YAAY,EAAE,GAAG,MAAM,sBAAsB;QAE7C,+EAA+E;QAC/E,wBAAwB,EAAE,GAAG,MAAM,gBAAgB;QAEnD,wBAAwB;QACxB,iBAAiB,EAAE,GAAG,MAAM,gBAAgB;QAE5C,kBAAkB;QAClB,aAAa,EAAE,GAAG,MAAM,YAAY;QAEpC,uBAAuB;QACvB,kBAAkB,EAAE,GAAG,MAAM,iBAAiB;KACjD,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userOpMonitor.js","sourceRoot":"","sources":["../../executor/userOpMonitor.ts"],"names":[],"mappings":"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"}
|