@pimlico/alto 0.0.0-main.20250916T162729 → 0.0.0-main.20251001T162733

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/esm/cli/config/bundler.d.ts +12 -0
  2. package/esm/cli/config/bundler.js +2 -0
  3. package/esm/cli/config/bundler.js.map +1 -1
  4. package/esm/cli/config/options.js +11 -0
  5. package/esm/cli/config/options.js.map +1 -1
  6. package/esm/cli/setupServer.js +1 -1
  7. package/esm/cli/setupServer.js.map +1 -1
  8. package/esm/cli/shutDown.js +15 -55
  9. package/esm/cli/shutDown.js.map +1 -1
  10. package/esm/executor/bundleManager.d.ts +1 -1
  11. package/esm/executor/bundleManager.js +47 -34
  12. package/esm/executor/bundleManager.js.map +1 -1
  13. package/esm/executor/executorManager.js +3 -4
  14. package/esm/executor/executorManager.js.map +1 -1
  15. package/esm/executor/senderManager/createRedisSenderManager.js +1 -2
  16. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  17. package/esm/handlers/arbitrumGasPriceManager.js +2 -2
  18. package/esm/handlers/gasPriceManager.js +3 -3
  19. package/esm/handlers/mantleGasPriceManager.js +4 -4
  20. package/esm/handlers/optimismManager.js +1 -1
  21. package/esm/mempool/mempool.d.ts +3 -11
  22. package/esm/mempool/mempool.js +93 -96
  23. package/esm/mempool/mempool.js.map +1 -1
  24. package/esm/mempool/monitoring.d.ts +1 -1
  25. package/esm/mempool/monitoring.js +30 -21
  26. package/esm/mempool/monitoring.js.map +1 -1
  27. package/esm/receiptCache/createMemoryReceiptCache.js +8 -5
  28. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -1
  29. package/esm/receiptCache/createRedisReceiptCache.js +13 -11
  30. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -1
  31. package/esm/receiptCache/index.d.ts +4 -1
  32. package/esm/receiptCache/index.js.map +1 -1
  33. package/esm/rpc/methods/eth_sendUserOperation.js +6 -7
  34. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  35. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +8 -11
  36. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  37. package/esm/store/createMempoolStore.d.ts +1 -1
  38. package/esm/store/createMempoolStore.js +51 -143
  39. package/esm/store/createMempoolStore.js.map +1 -1
  40. package/esm/store/index.d.ts +4 -75
  41. package/esm/store/index.js +4 -1
  42. package/esm/store/index.js.map +1 -1
  43. package/esm/store/outstanding/index.d.ts +13 -0
  44. package/esm/store/outstanding/index.js +16 -0
  45. package/esm/store/outstanding/index.js.map +1 -0
  46. package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +11 -10
  47. package/esm/store/outstanding/memory.js +249 -0
  48. package/esm/store/outstanding/memory.js.map +1 -0
  49. package/esm/store/outstanding/redis.d.ts +11 -0
  50. package/esm/store/outstanding/redis.js +201 -0
  51. package/esm/store/outstanding/redis.js.map +1 -0
  52. package/esm/store/outstanding/types.d.ts +18 -0
  53. package/esm/store/outstanding/types.js +2 -0
  54. package/esm/store/outstanding/types.js.map +1 -0
  55. package/esm/store/processing/index.d.ts +11 -0
  56. package/esm/store/processing/index.js +17 -0
  57. package/esm/store/processing/index.js.map +1 -0
  58. package/esm/store/processing/memory.d.ts +14 -0
  59. package/esm/store/processing/memory.js +46 -0
  60. package/esm/store/processing/memory.js.map +1 -0
  61. package/esm/store/processing/redis.d.ts +21 -0
  62. package/esm/store/processing/redis.js +69 -0
  63. package/esm/store/processing/redis.js.map +1 -0
  64. package/esm/store/processing/types.d.ts +9 -0
  65. package/esm/store/processing/types.js +2 -0
  66. package/esm/store/processing/types.js.map +1 -0
  67. package/esm/store/types.d.ts +49 -0
  68. package/esm/store/types.js +2 -0
  69. package/esm/store/types.js.map +1 -0
  70. package/esm/utils/helpers.d.ts +0 -1
  71. package/esm/utils/helpers.js +1 -8
  72. package/esm/utils/helpers.js.map +1 -1
  73. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +23 -2
  74. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +83 -60
  75. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  76. package/esm/utils/minMaxQueue/index.d.ts +2 -2
  77. package/esm/utils/minMaxQueue/index.js +2 -2
  78. package/esm/utils/minMaxQueue/index.js.map +1 -1
  79. package/esm/utils/preVerificationGasCalulator.d.ts +0 -2
  80. package/esm/utils/preVerificationGasCalulator.js +2 -2
  81. package/esm/utils/preVerificationGasCalulator.js.map +1 -1
  82. package/esm/utils/userop.d.ts +4 -50
  83. package/esm/utils/userop.js +61 -196
  84. package/esm/utils/userop.js.map +1 -1
  85. package/package.json +1 -1
  86. package/esm/cli/config/redisKeys.d.ts +0 -9
  87. package/esm/cli/config/redisKeys.js +0 -16
  88. package/esm/cli/config/redisKeys.js.map +0 -1
  89. package/esm/store/createMemoryOutstandingStore.js +0 -240
  90. package/esm/store/createMemoryOutstandingStore.js.map +0 -1
  91. package/esm/store/createRedisOutstandingStore.d.ts +0 -28
  92. package/esm/store/createRedisOutstandingStore.js +0 -341
  93. package/esm/store/createRedisOutstandingStore.js.map +0 -1
  94. package/esm/store/createRedisStore.d.ts +0 -10
  95. package/esm/store/createRedisStore.js +0 -128
  96. package/esm/store/createRedisStore.js.map +0 -1
  97. package/esm/store/createStore.d.ts +0 -6
  98. package/esm/store/createStore.js +0 -66
  99. 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":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../store/types.ts"],"names":[],"mappings":""}
@@ -3,7 +3,6 @@ export declare const jsonStringifyWithBigint: (obj: unknown) => string;
3
3
  export declare const recoverableJsonStringifyWithBigint: (obj: unknown) => string;
4
4
  export declare const recoverableJsonParseWithBigint: (str: string) => any;
5
5
  export declare const areAddressesEqual: (a: string, b: string) => boolean;
6
- export declare function getRevertErrorData(err: unknown): `0x${string}` | undefined;
7
6
  export declare function getAAError(errorMsg: string): string | undefined;
8
7
  export declare function getAuthorizationStateOverrides({ userOps, stateOverrides }: {
9
8
  userOps: UserOperation[];
@@ -1,4 +1,4 @@
1
- import { BaseError, concat, getAddress } from "viem";
1
+ import { concat, getAddress } from "viem";
2
2
  /// Convert an object to JSON string, handling bigint values
3
3
  export const jsonStringifyWithBigint = (obj) => {
4
4
  return JSON.stringify(obj, (_key, value) => typeof value === "bigint" ? value.toString() : value);
@@ -39,13 +39,6 @@ export const areAddressesEqual = (a, b) => {
39
39
  return false;
40
40
  }
41
41
  };
42
- export function getRevertErrorData(err) {
43
- if (!(err instanceof BaseError)) {
44
- return undefined;
45
- }
46
- const error = err.walk();
47
- return typeof error?.data === "object" ? error.data?.data : error.data;
48
- }
49
42
  export function getAAError(errorMsg) {
50
43
  const uppercase = errorMsg.toUpperCase();
51
44
  const match = uppercase.match(/AA\d{2}/);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyB,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAG3E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAY,EAAU,EAAE;IAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACvC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACvD,CAAA;AACL,CAAC,CAAA;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAY,EAAU,EAAE;IACvE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACvC,OAAO,KAAK,KAAK,QAAQ;QACrB,CAAC,CAAC;YACI,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC1B;QACH,CAAC,CAAC,KAAK,CACd,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAW,EAAO,EAAE;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,IACI,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,QAAQ;YACvB,OAAO,IAAI,KAAK;YAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EACjC,CAAC;YACC,IAAI,CAAC;gBACD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IACtD,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC3C,IAAI,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IACpB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAsB,CAAA;IAC5C,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,uGAAuG;AACvG,SAAS,6BAA6B,CAAC,EACnC,aAAa,EAGhB;IACG,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,OAAO,EAAE,IAAI,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,EAC3C,OAAO,EACP,cAAc,EAIjB;IACG,MAAM,SAAS,GAAmB,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAA;IAE/D,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACvB,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;gBACnB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,GAAG,6BAA6B,CAAC;oBAC7B,aAAa,EAAE;wBACX,OAAO,EACH,SAAS,IAAI,EAAE,CAAC,WAAW;4BACvB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO;4BACxB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,eAAe;wBACxC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO;wBAC/B,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK;wBAC3B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;wBACnB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO;qBAClC;iBACJ,CAAC;aACL,CAAA;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"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"}
@@ -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, keyPrefix, redisEndpoint }: {
24
+ export declare const createRedisMinMaxQueue: ({ config, queueName, redisEndpoint }: {
4
25
  config: AltoConfig;
5
- keyPrefix: string;
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
- valueKey;
7
- timestampKey;
26
+ redisKey; // Single sorted set: score = timestamp, member = value
8
27
  queueValidity;
9
- constructor({ keyPrefix, config, redisEndpoint }) {
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.valueKey = `${redisKey}:value`;
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
- // Check if value exists in the value set
27
- const exists = await this.redis.zscore(this.valueKey, valueStr);
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
- async pruneExpiredEntries(logger) {
69
+ getValidCutoffTime() {
70
+ return Date.now() / 1_000 - this.queueValidity;
71
+ }
72
+ async getMin(logger) {
49
73
  try {
50
- const timestamp = Date.now() / 1_000;
51
- const cutoffTime = timestamp - this.queueValidity;
52
- // Get expired unique IDs from time queue
53
- const expiredMembers = await this.redis.zrangebyscore(this.timestampKey, "-inf", `(${cutoffTime}` // exclusive upper bound
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 prune expired entries");
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
- // Prune expired entries
80
- await this.pruneExpiredEntries(logger);
81
- // Get the largest value from the value set (using reverse range)
82
- const values = await this.redis.zrange(this.valueKey, -1, -1);
83
- if (values.length === 0) {
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
- // Prune expired entries
90
- await this.pruneExpiredEntries(logger);
91
- // Get the member with highest TTL (most recent timestamp)
92
- const values = await this.redis.zrange(this.timestampKey, -1, -1);
93
- if (values.length === 0) {
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, keyPrefix, redisEndpoint }) => {
122
+ export const createRedisMinMaxQueue = ({ config, queueName, redisEndpoint }) => {
100
123
  const queue = new SortedTtlSet({
101
124
  config,
102
125
  redisEndpoint,
103
- keyPrefix: `${keyPrefix}:minMaxQueue`
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,4FAA4F;AAC5F,MAAM,YAAY;IACd,KAAK,CAAO;IACZ,QAAQ,CAAQ;IAChB,YAAY,CAAQ;IACpB,aAAa,CAAQ;IAErB,YAAY,EACR,SAAS,EACT,MAAM,EACN,aAAa,EAKhB;QACG,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAA;QAE3C,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAA;QAEjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,QAAQ,CAAA;QACnC,IAAI,CAAC,YAAY,GAAG,GAAG,QAAQ,YAAY,CAAA;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,MAAc;QACnC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,OAAM;YACV,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAEjC,yCAAyC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAE/D,IAAI,MAAM,EAAE,CAAC;gBACT,6CAA6C;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA,CAAC,uBAAuB;gBAC/D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA,CAAC,oBAAoB;gBACjE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACJ,+DAA+D;gBAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBAC7C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAA;YAC5D,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACpC,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YACpC,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;YAEjD,yCAAyC;YACzC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CACjD,IAAI,CAAC,YAAY,EACjB,MAAM,EACN,IAAI,UAAU,EAAE,CAAC,wBAAwB;aAC5C,CAAA;YAED,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBAEhC,wCAAwC;gBACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,CAAA;gBAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAA;gBAC5C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAA;YACxD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACvB,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAEtC,4CAA4C;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACvB,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAEtC,iEAAiE;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QAC/B,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAEtC,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACnC,MAAM,EACN,SAAS,EACT,aAAa,EAKhB,EAAe,EAAE;IACd,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC;QAC3B,MAAM;QACN,aAAa;QACb,SAAS,EAAE,GAAG,SAAS,cAAc;KACxC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC3B,EAAE,MAAM,EAAE,aAAa,EAAE,EACzB;QACI,KAAK,EAAE,MAAM,CAAC,QAAQ;KACzB,CACJ,CAAA;IAED,OAAO;QACH,SAAS,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5D,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QACxD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7C,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;KAChD,CAAA;AACL,CAAC,CAAA"}
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, keyPrefix }: {
8
+ export declare const createMinMaxQueue: ({ config, queueName }: {
9
9
  config: AltoConfig;
10
- keyPrefix: string;
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, keyPrefix }) => {
3
+ export const createMinMaxQueue = ({ config, queueName }) => {
4
4
  if (config.enableHorizontalScaling && config.redisEndpoint) {
5
5
  return createRedisMinMaxQueue({
6
6
  config,
7
- keyPrefix,
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;YACT,aAAa,EAAE,MAAM,CAAC,aAAa;SACtC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAC9C,CAAC,CAAA"}
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"}
@@ -1,7 +1,6 @@
1
1
  import type { GasPriceManager } from "../handlers/index.js";
2
2
  import { type Address, type UserOperation } from "../types/index.js";
3
3
  import type { AltoConfig } from "../createConfig.js";
4
- export declare function encodeUserOp(userOp: UserOperation): Uint8Array;
5
4
  export interface GasOverheads {
6
5
  perUserOp: bigint;
7
6
  zeroByte: bigint;
@@ -19,7 +18,6 @@ export interface GasOverheads {
19
18
  tokensPerNonzeroByte: bigint;
20
19
  floorPerTokenGasCost: bigint;
21
20
  }
22
- export declare function fillUserOpWithDummyData(userOp: UserOperation): UserOperation;
23
21
  export declare function calcExecutionPvgComponent({ userOp, supportsEip7623, config }: {
24
22
  userOp: UserOperation;
25
23
  supportsEip7623: boolean;
@@ -6,7 +6,7 @@ import { ArbitrumL1FeeAbi } from "../types/contracts/ArbitrumL1FeeAbi.js";
6
6
  import { maxBigInt, minBigInt, randomBigInt, unscaleBigIntByPercent } from "./bigInt.js";
7
7
  import { isVersion06, isVersion07, toPackedUserOp } from "./userop.js";
8
8
  // Encodes a user operation into bytes for gas calculation
9
- export function encodeUserOp(userOp) {
9
+ function encodeUserOp(userOp) {
10
10
  const p = fillUserOpWithDummyData(userOp);
11
11
  if (isVersion06(userOp)) {
12
12
  return toBytes(encodeAbiParameters([
@@ -66,7 +66,7 @@ const defaultOverHeads = {
66
66
  expectedBundleSize: 1n,
67
67
  floorPerTokenGasCost: 10n
68
68
  };
69
- export function fillUserOpWithDummyData(userOp) {
69
+ function fillUserOpWithDummyData(userOp) {
70
70
  if (isVersion06(userOp)) {
71
71
  return {
72
72
  ...userOp,
@@ -1 +1 @@
1
- {"version":3,"file":"preVerificationGasCalulator.js","sourceRoot":"","sources":["../../utils/preVerificationGasCalulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preVerificationGasCalulator.js","sourceRoot":"","sources":["../../utils/preVerificationGasCalulator.ts"],"names":[],"mappings":"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"}