@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.
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 +11 -11
  7. package/esm/cli/setupServer.js.map +1 -1
  8. package/esm/cli/shutDown.d.ts +5 -5
  9. package/esm/cli/shutDown.js +20 -60
  10. package/esm/cli/shutDown.js.map +1 -1
  11. package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +4 -4
  12. package/esm/executor/{userOpMonitor.js → bundleManager.js} +50 -37
  13. package/esm/executor/bundleManager.js.map +1 -0
  14. package/esm/executor/executorManager.d.ts +4 -4
  15. package/esm/executor/executorManager.js +23 -24
  16. package/esm/executor/executorManager.js.map +1 -1
  17. package/esm/executor/index.d.ts +1 -1
  18. package/esm/executor/index.js +1 -1
  19. package/esm/executor/senderManager/createRedisSenderManager.js +1 -2
  20. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  21. package/esm/handlers/arbitrumGasPriceManager.js +2 -2
  22. package/esm/handlers/gasPriceManager.js +3 -3
  23. package/esm/handlers/mantleGasPriceManager.js +4 -4
  24. package/esm/handlers/optimismManager.js +1 -1
  25. package/esm/mempool/mempool.d.ts +3 -11
  26. package/esm/mempool/mempool.js +91 -93
  27. package/esm/mempool/mempool.js.map +1 -1
  28. package/esm/mempool/monitoring.d.ts +1 -1
  29. package/esm/mempool/monitoring.js +30 -21
  30. package/esm/mempool/monitoring.js.map +1 -1
  31. package/esm/receiptCache/createMemoryReceiptCache.js +8 -5
  32. package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -1
  33. package/esm/receiptCache/createRedisReceiptCache.js +13 -11
  34. package/esm/receiptCache/createRedisReceiptCache.js.map +1 -1
  35. package/esm/receiptCache/index.d.ts +4 -1
  36. package/esm/receiptCache/index.js.map +1 -1
  37. package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
  38. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +4 -1
  39. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  40. package/esm/rpc/rpcHandler.d.ts +4 -4
  41. package/esm/rpc/rpcHandler.js +3 -3
  42. package/esm/store/createMempoolStore.d.ts +1 -1
  43. package/esm/store/createMempoolStore.js +51 -143
  44. package/esm/store/createMempoolStore.js.map +1 -1
  45. package/esm/store/index.d.ts +4 -75
  46. package/esm/store/index.js +4 -1
  47. package/esm/store/index.js.map +1 -1
  48. package/esm/store/outstanding/index.d.ts +13 -0
  49. package/esm/store/outstanding/index.js +16 -0
  50. package/esm/store/outstanding/index.js.map +1 -0
  51. package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +11 -10
  52. package/esm/store/outstanding/memory.js +249 -0
  53. package/esm/store/outstanding/memory.js.map +1 -0
  54. package/esm/store/outstanding/redis.d.ts +11 -0
  55. package/esm/store/outstanding/redis.js +201 -0
  56. package/esm/store/outstanding/redis.js.map +1 -0
  57. package/esm/store/outstanding/types.d.ts +18 -0
  58. package/esm/store/outstanding/types.js +2 -0
  59. package/esm/store/outstanding/types.js.map +1 -0
  60. package/esm/store/processing/index.d.ts +11 -0
  61. package/esm/store/processing/index.js +17 -0
  62. package/esm/store/processing/index.js.map +1 -0
  63. package/esm/store/processing/memory.d.ts +14 -0
  64. package/esm/store/processing/memory.js +46 -0
  65. package/esm/store/processing/memory.js.map +1 -0
  66. package/esm/store/processing/redis.d.ts +21 -0
  67. package/esm/store/processing/redis.js +69 -0
  68. package/esm/store/processing/redis.js.map +1 -0
  69. package/esm/store/processing/types.d.ts +9 -0
  70. package/esm/store/processing/types.js +2 -0
  71. package/esm/store/processing/types.js.map +1 -0
  72. package/esm/store/types.d.ts +49 -0
  73. package/esm/store/types.js +2 -0
  74. package/esm/store/types.js.map +1 -0
  75. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +23 -2
  76. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +83 -60
  77. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  78. package/esm/utils/minMaxQueue/index.d.ts +2 -2
  79. package/esm/utils/minMaxQueue/index.js +2 -2
  80. package/esm/utils/minMaxQueue/index.js.map +1 -1
  81. package/esm/utils/userop.d.ts +1 -0
  82. package/esm/utils/userop.js +6 -0
  83. package/esm/utils/userop.js.map +1 -1
  84. package/package.json +1 -1
  85. package/esm/cli/config/redisKeys.d.ts +0 -9
  86. package/esm/cli/config/redisKeys.js +0 -16
  87. package/esm/cli/config/redisKeys.js.map +0 -1
  88. package/esm/executor/userOpMonitor.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
@@ -28,16 +28,12 @@ export class Mempool {
28
28
  this.eventManager = eventManager;
29
29
  }
30
30
  // === Methods for handling changing userOp state === //
31
- async markUserOpsAsSubmitted({ userOps, entryPoint, transactionHash }) {
32
- await Promise.all(userOps.map(async (userOpInfo) => {
33
- const { userOpHash } = userOpInfo;
34
- await this.store.removeProcessing({ entryPoint, userOpHash });
35
- await this.store.addSubmitted({ entryPoint, userOpInfo });
36
- await this.monitor.setUserOpStatus(userOpHash, {
37
- status: "submitted",
38
- transactionHash
39
- });
40
- }));
31
+ async markUserOpsAsSubmitted({ userOps, transactionHash }) {
32
+ const userOpHashes = userOps.map((userOpInfo) => userOpInfo.userOpHash);
33
+ await this.monitor.setStatus(userOpHashes, {
34
+ status: "submitted",
35
+ transactionHash
36
+ });
41
37
  this.metrics.userOpsSubmitted
42
38
  .labels({ status: "success" })
43
39
  .inc(userOps.length);
@@ -49,8 +45,11 @@ export class Mempool {
49
45
  userOpHash,
50
46
  reason
51
47
  }, "resubmitting user operation");
52
- await this.store.removeProcessing({ entryPoint, userOpHash });
53
- await this.store.removeSubmitted({ entryPoint, userOpHash });
48
+ // Complete processing before re-adding to outstanding pool.
49
+ await this.store.removeProcessing({
50
+ entryPoint,
51
+ userOpInfo
52
+ });
54
53
  const [success, failureReason] = await this.add(userOp, entryPoint);
55
54
  if (!success) {
56
55
  this.logger.error({ userOpHash, failureReason }, "Failed to resubmit user operation");
@@ -66,10 +65,13 @@ export class Mempool {
66
65
  async dropUserOps(entryPoint, rejectedUserOps) {
67
66
  await Promise.all(rejectedUserOps.map(async (rejectedUserOp) => {
68
67
  const { userOp, reason, userOpHash } = rejectedUserOp;
69
- await this.store.removeProcessing({ entryPoint, userOpHash });
70
- await this.store.removeSubmitted({ entryPoint, userOpHash });
68
+ // Complete processing since userOp is dropped.
69
+ await this.store.removeProcessing({
70
+ entryPoint,
71
+ userOpInfo: rejectedUserOp
72
+ });
71
73
  this.eventManager.emitDropped(userOpHash, reason, getAAError(reason));
72
- await this.monitor.setUserOpStatus(userOpHash, {
74
+ await this.monitor.setStatus([userOpHash], {
73
75
  status: "rejected",
74
76
  transactionHash: null
75
77
  });
@@ -80,26 +82,20 @@ export class Mempool {
80
82
  }, "user operation rejected");
81
83
  }));
82
84
  }
83
- async removeProcessingUserOps({ userOps, entryPoint }) {
84
- await Promise.all(userOps.map(async ({ userOpHash }) => {
85
- await this.store.removeSubmitted({ entryPoint, userOpHash });
86
- }));
87
- }
88
- async removeSubmittedUserOps({ userOps, entryPoint }) {
89
- await Promise.all(userOps.map(async ({ userOpHash }) => {
90
- await this.store.removeSubmitted({ entryPoint, userOpHash });
85
+ // Remove userOps from processing store.
86
+ // should be called when userOps are included onchain.
87
+ async removeProcessing({ userOps, entryPoint }) {
88
+ await Promise.all(userOps.map(async (userOpInfo) => {
89
+ await this.store.removeProcessing({
90
+ entryPoint,
91
+ userOpInfo
92
+ });
91
93
  }));
92
94
  }
93
95
  // === Methods for dropping mempool entries === //
94
96
  async dumpOutstanding(entryPoint) {
95
97
  return await this.store.dumpOutstanding(entryPoint);
96
98
  }
97
- async dumpProcessing(entryPoint) {
98
- return await this.store.dumpProcessing(entryPoint);
99
- }
100
- async dumpSubmittedOps(entryPoint) {
101
- return await this.store.dumpSubmitted(entryPoint);
102
- }
103
99
  // === Methods for entity management === //
104
100
  async checkEntityMultipleRoleViolation(entryPoint, op) {
105
101
  if (!this.config.safeMode) {
@@ -163,14 +159,11 @@ export class Mempool {
163
159
  chainId: this.config.chainId,
164
160
  publicClient: this.config.publicClient
165
161
  });
166
- // Check if the exact same userOperation is already in the mempool.
167
- if (await this.store.isInMempool({ userOpHash, entryPoint })) {
168
- return [false, "Already known"];
169
- }
170
- // Check if there is a conflicting userOp already being processed
171
- const validation = await this.store.validateSubmittedOrProcessing({
162
+ // Check if the userOp is already known or conflicts with existing operations
163
+ const validation = await this.store.checkDuplicatesAndConflicts({
172
164
  entryPoint,
173
- userOp
165
+ userOp,
166
+ userOpHash
174
167
  });
175
168
  if (!validation.valid) {
176
169
  return [false, validation.reason];
@@ -195,7 +188,7 @@ export class Mempool {
195
188
  // Re-add to outstanding as it wasn't replaced
196
189
  await this.store.addOutstanding({
197
190
  entryPoint,
198
- userOpInfo: conflicting.userOpInfo
191
+ userOpInfos: [conflicting.userOpInfo]
199
192
  });
200
193
  return [false, `${message}, bump the gas price by minimum 10%`];
201
194
  }
@@ -204,15 +197,17 @@ export class Mempool {
204
197
  await this.reputationManager.increaseUserOpSeenStatus(userOp, entryPoint);
205
198
  await this.store.addOutstanding({
206
199
  entryPoint,
207
- userOpInfo: {
208
- userOp,
209
- userOpHash,
210
- referencedContracts,
211
- addedToMempool: Date.now(),
212
- submissionAttempts: 0
213
- }
200
+ userOpInfos: [
201
+ {
202
+ userOp,
203
+ userOpHash,
204
+ referencedContracts,
205
+ addedToMempool: Date.now(),
206
+ submissionAttempts: 0
207
+ }
208
+ ]
214
209
  });
215
- await this.monitor.setUserOpStatus(userOpHash, {
210
+ await this.monitor.setStatus([userOpHash], {
216
211
  status: "not_submitted",
217
212
  transactionHash: null
218
213
  });
@@ -321,7 +316,7 @@ export class Mempool {
321
316
  userOpHash,
322
317
  error: JSON.stringify(e)
323
318
  }, "2nd Validation error");
324
- this.store.removeOutstanding({ entryPoint, userOpHash });
319
+ await this.store.removeOutstanding({ entryPoint, userOpHash });
325
320
  this.reputationManager.decreaseUserOpSeenStatus(userOp, entryPoint, e instanceof RpcError ? e.message : JSON.stringify(e));
326
321
  return {
327
322
  skip: true,
@@ -399,7 +394,6 @@ export class Mempool {
399
394
  return await this.process({
400
395
  entryPoint,
401
396
  maxGasLimit: this.config.maxGasPerBundle,
402
- minOpsPerBundle: 1,
403
397
  maxBundleCount
404
398
  });
405
399
  });
@@ -408,34 +402,43 @@ export class Mempool {
408
402
  return bundles;
409
403
  }
410
404
  // Returns a bundle of userOperations in array format.
411
- async process({ maxGasLimit, entryPoint, minOpsPerBundle, maxBundleCount }) {
412
- // Check if there are any operations in the store
413
- const firstOp = await this.store.peekOutstanding(entryPoint);
414
- if (!firstOp) {
405
+ async process({ maxGasLimit, entryPoint, maxBundleCount }) {
406
+ const bundles = [];
407
+ const batchSize = this.config.mempoolPopBatchSize;
408
+ // Pop batch of userOps.
409
+ const poppedUserOps = await this.store.popOutstanding(entryPoint, batchSize);
410
+ if (poppedUserOps.length === 0) {
415
411
  return [];
416
412
  }
417
- // Get EntryPoint version
418
- const bundles = [];
419
- const seenOps = new Set();
420
- let breakLoop = false;
421
- // Process operations until no more are available or we hit maxBundleCount
422
- while (await this.store.peekOutstanding(entryPoint)) {
423
- // If maxBundles is set and we reached the limit, break
413
+ // Keep track of unused ops from the batch
414
+ const unusedUserOps = [...poppedUserOps];
415
+ while (unusedUserOps.length > 0) {
416
+ // If maxBundles is set and we reached the limit, put back all unused ops and break.
424
417
  if (maxBundleCount && bundles.length >= maxBundleCount) {
418
+ if (unusedUserOps.length > 0) {
419
+ await this.store.addOutstanding({
420
+ entryPoint,
421
+ userOpInfos: unusedUserOps
422
+ });
423
+ }
425
424
  break;
426
425
  }
427
- // Derive version
426
+ // Peek next userOp from unused batch.
427
+ const nextUserOp = unusedUserOps[0];
428
+ if (!nextUserOp)
429
+ break;
430
+ // Derive version.
428
431
  let version;
429
- if (isVersion08(firstOp.userOp, entryPoint)) {
432
+ if (isVersion08(nextUserOp.userOp, entryPoint)) {
430
433
  version = "0.8";
431
434
  }
432
- else if (isVersion07(firstOp.userOp)) {
435
+ else if (isVersion07(nextUserOp.userOp)) {
433
436
  version = "0.7";
434
437
  }
435
438
  else {
436
439
  version = "0.6";
437
440
  }
438
- // Setup for next bundle
441
+ // Setup next bundle.
439
442
  const currentBundle = {
440
443
  entryPoint,
441
444
  version,
@@ -448,28 +451,14 @@ export class Mempool {
448
451
  let senders = new Set();
449
452
  let knownEntities = await this.getKnownEntities(entryPoint);
450
453
  let storageMap = {};
451
- if (breakLoop) {
452
- break;
453
- }
454
- // Keep adding ops to current bundle
455
- while (await this.store.peekOutstanding(entryPoint)) {
456
- const userOpInfo = await this.store.popOutstanding(entryPoint);
457
- if (!userOpInfo) {
458
- break;
459
- }
460
- if (seenOps.has(userOpInfo.userOpHash)) {
461
- breakLoop = true;
462
- await this.store.addOutstanding({
463
- entryPoint,
464
- userOpInfo
465
- });
454
+ while (unusedUserOps.length > 0) {
455
+ const currentUserOp = unusedUserOps.shift();
456
+ if (!currentUserOp)
466
457
  break;
467
- }
468
- seenOps.add(userOpInfo.userOpHash);
469
- const { userOp } = userOpInfo;
458
+ const { userOp } = currentUserOp;
470
459
  // Check if we should skip this operation
471
460
  const skipResult = await this.shouldSkip({
472
- userOpInfo,
461
+ userOpInfo: currentUserOp,
473
462
  paymasterDeposit,
474
463
  stakedEntityCount,
475
464
  knownEntities,
@@ -482,22 +471,22 @@ export class Mempool {
482
471
  if (!skipResult.removeOutstanding) {
483
472
  await this.store.addOutstanding({
484
473
  entryPoint,
485
- userOpInfo
474
+ userOpInfos: [currentUserOp]
486
475
  });
487
476
  }
477
+ // Continue with next op from batch
488
478
  continue;
489
479
  }
490
- const beneficiary = this.config.utilityPrivateKey?.address ||
491
- privateKeyToAddress(generatePrivateKey());
492
480
  gasUsed += calculateAA95GasFloor({
493
481
  userOps: [userOp],
494
- beneficiary
482
+ beneficiary: // Use utility address if set, otherwise generate random beneficiary.
483
+ this.config.utilityPrivateKey?.address ||
484
+ privateKeyToAddress(generatePrivateKey())
495
485
  });
496
- // Only break on gas limit if we've hit minOpsPerBundle
497
- if (gasUsed > maxGasLimit &&
498
- currentBundle.userOps.length >= minOpsPerBundle) {
499
- // Put the operation back in the store
500
- await this.store.addOutstanding({ entryPoint, userOpInfo });
486
+ // Break on gas limit
487
+ if (gasUsed > maxGasLimit) {
488
+ // Put current op back to front of unused for next bundle
489
+ unusedUserOps.unshift(currentUserOp);
501
490
  break;
502
491
  }
503
492
  // Update state based on skip result
@@ -507,9 +496,18 @@ export class Mempool {
507
496
  senders = skipResult.senders;
508
497
  storageMap = skipResult.storageMap;
509
498
  this.reputationManager.decreaseUserOpCount(userOp);
510
- this.store.addProcessing({ entryPoint, userOpInfo });
511
- // Add op to current bundle
512
- currentBundle.userOps.push(userOpInfo);
499
+ // Track the operation as active (being bundled).
500
+ await this.store.addProcessing({
501
+ entryPoint,
502
+ userOpInfo: currentUserOp
503
+ });
504
+ // Add userOp to current bundle.
505
+ currentBundle.userOps.push(currentUserOp);
506
+ // Try to fetch more userOps if we've exhausted this batch.
507
+ if (unusedUserOps.length === 0) {
508
+ const morePoppedOps = await this.store.popOutstanding(entryPoint, batchSize);
509
+ unusedUserOps.push(...morePoppedOps);
510
+ }
513
511
  }
514
512
  if (currentBundle.userOps.length > 0) {
515
513
  bundles.push(currentBundle);
@@ -1 +1 @@
1
- {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,gBAAgB,EAChB,gBAAgB,EAIhB,QAAQ,EAKR,gBAAgB,EAEnB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACH,UAAU,EACV,wCAAwC,EACxC,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAY,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAExD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,EAEH,kBAAkB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,OAAO,OAAO;IACR,MAAM,CAAY;IAClB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,iBAAiB,CAA4B;IAC9C,KAAK,CAAc;IAClB,0BAA0B,CAAQ;IAClC,MAAM,CAAQ;IACd,SAAS,CAAoB;IAC7B,YAAY,CAAc;IAElC,YAAY,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,YAAY,EASf;QACG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAC1B,EAAE,MAAM,EAAE,SAAS,EAAE,EACrB;YACI,KAAK,EAAE,MAAM,CAAC,QAAQ;SACzB,CACJ,CAAA;QACD,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAA,CAAC,8CAA8C;QAClF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,wDAAwD;IAExD,KAAK,CAAC,sBAAsB,CAAC,EACzB,OAAO,EACP,eAAe,EAIlB;QACG,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAEvE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE;YACvC,MAAM,EAAE,WAAW;YACnB,eAAe;SAClB,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,gBAAgB;aACxB,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;aAC7B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAClB,OAAO,EACP,UAAU,EACV,MAAM,EAKT;QACG,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAC7B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ;gBACI,UAAU;gBACV,MAAM;aACT,EACD,6BAA6B,CAChC,CAAA;YACD,4DAA4D;YAC5D,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,UAAU;gBACV,UAAU;aACb,CAAC,CAAA;YACF,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3C,MAAM,EACN,UAAU,CACb,CAAA;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,EAAE,UAAU,EAAE,aAAa,EAAE,EAC7B,mCAAmC,CACtC,CAAA;gBACD,MAAM,cAAc,GAAG;oBACnB,GAAG,UAAU;oBACb,MAAM,EAAE,aAAa;iBACxB,CAAA;gBACD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;YAClD,CAAC;QACL,CAAC,CAAC,CACL,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAmB,EAAE,eAAiC;QACpE,MAAM,OAAO,CAAC,GAAG,CACb,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAA;YACrD,+CAA+C;YAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,UAAU;gBACV,UAAU,EAAE,cAAc;aAC7B,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,WAAW,CACzB,UAAU,EACV,MAAM,EACN,UAAU,CAAC,MAAM,CAAC,CACrB,CAAA;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE;gBACvC,MAAM,EAAE,UAAU;gBAClB,eAAe,EAAE,IAAI;aACxB,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ;gBACI,aAAa,EAAE,uBAAuB,CAAC,MAAM,CAAC;gBAC9C,UAAU;gBACV,MAAM;aACT,EACD,yBAAyB,CAC5B,CAAA;QACL,CAAC,CAAC,CACL,CAAA;IACL,CAAC;IAED,wCAAwC;IACxC,sDAAsD;IACtD,KAAK,CAAC,gBAAgB,CAAC,EACnB,OAAO,EACP,UAAU,EAIb;QACG,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,UAAU;gBACV,UAAU;aACb,CAAC,CAAA;QACN,CAAC,CAAC,CACL,CAAA;IACL,CAAC;IAED,kDAAkD;IAElD,KAAK,CAAC,eAAe,CAAC,UAAmB;QACrC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,2CAA2C;IAE3C,KAAK,CAAC,gCAAgC,CAClC,UAAmB,EACnB,EAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC5B,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAE7D,IACI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;YACvC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EACxC,CAAC;YACC,MAAM,IAAI,QAAQ,CACd,uBAAuB,EAAE,CAAC,MAAM,+EAA+E,EAC/G,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QAED,IAAI,SAAS,GAAmB,IAAI,CAAA;QACpC,IAAI,OAAO,GAAmB,IAAI,CAAA;QAElC,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,SAAS,GAAG,wCAAwC,CAChD,EAAE,CAAC,gBAAgB,CACtB,CAAA;YAED,OAAO,GAAG,wCAAwC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;QACnE,CAAC;QAED,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,SAAS,GAAG,EAAE,CAAC,SAAS,CAAA;YACxB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAA;QACxB,CAAC;QAED,IAAI,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,QAAQ,CACd,kBAAkB,SAAS,kGAAkG,EAC7H,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QACD,IAAI,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,QAAQ,CACd,gBAAgB,OAAO,kGAAkG,EACzH,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAmB;QAKtC,mCAAmC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAE3D,MAAM,QAAQ,GAIV;YACA,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,UAAU,EAAE,IAAI,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,GAAG,EAAE;SACvB,CAAA;QAED,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;YAC7B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAElC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;YAEvC,MAAM,SAAS,GAAG,WAAW;gBACzB,CAAC,CAAC,wCAAwC,CACpC,MAAM,CAAC,gBAAgB,CAC1B;gBACH,CAAC,CAAC,MAAM,CAAC,SAAS,CAAA;YAEtB,IAAI,SAAS,EAAE,CAAC;gBACZ,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,WAAW;gBACvB,CAAC,CAAC,wCAAwC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC3D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;YAEpB,IAAI,OAAO,EAAE,CAAC;gBACV,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,2DAA2D;IAE3D,KAAK,CAAC,GAAG,CACL,MAAqB,EACrB,UAAmB,EACnB,mBAA0C;QAE1C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC;YACnC,MAAM;YACN,iBAAiB,EAAE,UAAU;YAC7B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACzC,CAAC,CAAA;QAEF,6EAA6E;QAC7E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC;YAC5D,UAAU;YACV,MAAM;YACN,UAAU;SACb,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC;QAED,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;YAC1D,UAAU;YACV,MAAM;SACT,CAAC,CAAA;QAEF,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,CAAA;YAC1C,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAA;YAE3C,MAAM,oBAAoB,GACtB,MAAM,CAAC,oBAAoB;gBAC3B,oBAAoB,CAChB,iBAAiB,CAAC,oBAAoB,EACtC,IAAI,CACP,CAAA;YAEL,MAAM,eAAe,GACjB,MAAM,CAAC,YAAY;gBACnB,oBAAoB,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAE9D,MAAM,aAAa,GAAG,oBAAoB,IAAI,eAAe,CAAA;YAE7D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,MAAM,OAAO,GACT,MAAM,KAAK,wBAAwB;oBAC/B,CAAC,CAAC,sHAAsH;oBACxH,CAAC,CAAC,uEAAuE,CAAA;gBAEjF,8CAA8C;gBAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;oBAC5B,UAAU;oBACV,WAAW,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;iBACxC,CAAC,CAAA;gBAEF,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,qCAAqC,CAAC,CAAA;YACnE,CAAC;YAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAChD,iBAAiB,EACjB,UAAU,CACb,CAAA;QACL,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CACjD,MAAM,EACN,UAAU,CACb,CAAA;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC5B,UAAU;YACV,WAAW,EAAE;gBACT;oBACI,MAAM;oBACN,UAAU;oBACV,mBAAmB;oBACnB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;oBAC1B,kBAAkB,EAAE,CAAC;iBACxB;aACJ;SACJ,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE;YACvC,MAAM,EAAE,eAAe;YACvB,eAAe,EAAE,IAAI;SACxB,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACrB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,UAAU,CAAC,EACb,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,UAAU,EACV,UAAU,EAab;QAaG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO;gBACH,IAAI,EAAE,KAAK;gBACX,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,UAAU,CAAA;QAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QAEvC,MAAM,SAAS,GAAG,WAAW;YACzB,CAAC,CAAC,wCAAwC,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACnE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAA;QACtB,MAAM,OAAO,GAAG,WAAW;YACvB,CAAC,CAAC,wCAAwC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC3D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CACpD,UAAU,EACV,SAAS,CACZ,CAAA;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAClD,UAAU,EACV,OAAO,CACV,CAAA;QAED,IACI,eAAe,KAAK,kBAAkB,CAAC,MAAM;YAC7C,aAAa,KAAK,kBAAkB,CAAC,MAAM,EAC7C,CAAC;YACC,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,iBAAiB,EAAE,IAAI;gBACvB,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,IACI,eAAe,KAAK,kBAAkB,CAAC,SAAS;YAChD,SAAS;YACT,iBAAiB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,0BAA0B,EACjE,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gBACI,SAAS;gBACT,UAAU;aACb,EACD,6BAA6B,CAChC,CAAA;YACD,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,IACI,aAAa,KAAK,kBAAkB,CAAC,SAAS;YAC9C,OAAO;YACP,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,0BAA0B,EAC/D,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gBACI,OAAO;gBACP,UAAU;aACb,EACD,2BAA2B,CAC9B,CAAA;YACD,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,IACI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAC3C,CAAC;YACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gBACI,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU;aACb,EACD,mDAAmD,CACtD,CAAA;YACD,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,IAAI,gBAA+D,CAAA;QAEnE,IAAI,CAAC;YACD,IAAI,aAAa,GAAoB,EAAE,CAAA;YAEvC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,aAAa,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBACnD,MAAM;oBACN,UAAU;iBACb,CAAC,CAAA;YACN,CAAC;YAED,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBACnD,MAAM;gBACN,aAAa;gBACb,UAAU;gBACV,mBAAmB;aACtB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gBACI,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aAC3B,EACD,sBAAsB,CACzB,CAAA;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;YAC9D,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAC3C,MAAM,EACN,UAAU,EACV,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACxD,CAAA;YACD,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,OAAO;gBACP,UAAU;aACb,CAAA;QACL,CAAC;QAED,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;YAE1C,IACI,OAAO,KAAK,MAAM,CAAC,MAAM;gBACzB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EACnC,CAAC;gBACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;oBACI,cAAc;oBACd,UAAU;iBACb,EACD,yBAAyB,CAC5B,CAAA;gBACD,OAAO;oBACH,IAAI,EAAE,IAAI;oBACV,gBAAgB;oBAChB,iBAAiB;oBACjB,aAAa;oBACb,OAAO;oBACP,UAAU;iBACb,CAAA;YACL,CAAC;QACL,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,kBAAkB,GAAG,WAAW,CAAC;oBACnC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;oBACtD,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE;wBACJ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;qBACnC;iBACJ,CAAC,CAAA;gBACF,gBAAgB,CAAC,SAAS,CAAC;oBACvB,MAAM,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YAC5D,CAAC;YACD,IACI,gBAAgB,CAAC,SAAS,CAAC;gBAC3B,gBAAgB,CAAC,UAAU,CAAC,OAAO,EACrC,CAAC;gBACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;oBACI,SAAS;oBACT,UAAU;iBACb,EACD,8FAA8F,CACjG,CAAA;gBACD,OAAO;oBACH,IAAI,EAAE,IAAI;oBACV,gBAAgB;oBAChB,iBAAiB;oBACjB,aAAa;oBACb,OAAO;oBACP,UAAU;iBACb,CAAA;YACL,CAAC;YACD,iBAAiB,CAAC,SAAS,CAAC;gBACxB,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YAC3C,gBAAgB,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAA;QACtE,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO;YACH,IAAI,EAAE,KAAK;YACX,gBAAgB;YAChB,iBAAiB;YACjB,aAAa;YACb,OAAO;YACP,UAAU;SACb,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,UAAU,CACnB,cAAuB;QAEvB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAC9C,KAAK,EAAE,UAAU,EAAE,EAAE;YACjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;gBACtB,UAAU;gBACV,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBACxC,cAAc;aACjB,CAAC,CAAA;QACN,CAAC,CACJ,CAAA;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACvD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAEpC,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,OAAO,CAAC,EACV,WAAW,EACX,UAAU,EACV,cAAc,EAKjB;QACG,MAAM,OAAO,GAA0B,EAAE,CAAA;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAA;QAEjD,wBAAwB;QACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CACjD,UAAU,EACV,SAAS,CACZ,CAAA;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QAED,0CAA0C;QAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;QAExC,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,oFAAoF;YACpF,IAAI,cAAc,IAAI,OAAO,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;gBACrD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;wBAC5B,UAAU;wBACV,WAAW,EAAE,aAAa;qBAC7B,CAAC,CAAA;gBACN,CAAC;gBACD,MAAK;YACT,CAAC;YAED,sCAAsC;YACtC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,CAAC,UAAU;gBAAE,MAAK;YAEtB,kBAAkB;YAClB,IAAI,OAA0B,CAAA;YAC9B,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC7C,OAAO,GAAG,KAAK,CAAA;YACnB,CAAC;iBAAM,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,GAAG,KAAK,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,KAAK,CAAA;YACnB,CAAC;YAED,qBAAqB;YACrB,MAAM,aAAa,GAAwB;gBACvC,UAAU;gBACV,OAAO;gBACP,OAAO,EAAE,EAAE;gBACX,kBAAkB,EAAE,CAAC;aACxB,CAAA;YACD,IAAI,OAAO,GAAG,EAAE,CAAA;YAChB,IAAI,gBAAgB,GAAoC,EAAE,CAAA;YAC1D,IAAI,iBAAiB,GAA+B,EAAE,CAAA;YACtD,IAAI,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;YAC/B,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;YAC3D,IAAI,UAAU,GAAe,EAAE,CAAA;YAE/B,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;gBAC3C,IAAI,CAAC,aAAa;oBAAE,MAAK;gBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAA;gBAEhC,yCAAyC;gBACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;oBACrC,UAAU,EAAE,aAAa;oBACzB,gBAAgB;oBAChB,iBAAiB;oBACjB,aAAa;oBACb,OAAO;oBACP,UAAU;oBACV,UAAU;iBACb,CAAC,CAAA;gBAEF,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClB,wBAAwB;oBACxB,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;wBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;4BAC5B,UAAU;4BACV,WAAW,EAAE,CAAC,aAAa,CAAC;yBAC/B,CAAC,CAAA;oBACN,CAAC;oBACD,mCAAmC;oBACnC,SAAQ;gBACZ,CAAC;gBAED,OAAO,IAAI,qBAAqB,CAAC;oBAC7B,OAAO,EAAE,CAAC,MAAM,CAAC;oBACjB,WAAW,EAAE,qEAAqE;oBAC9E,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO;wBACtC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;iBAChD,CAAC,CAAA;gBAEF,qBAAqB;gBACrB,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBACxB,yDAAyD;oBACzD,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBACpC,MAAK;gBACT,CAAC;gBAED,oCAAoC;gBACpC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAA;gBAC9C,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAA;gBAChD,aAAa,GAAG,UAAU,CAAC,aAAa,CAAA;gBACxC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;gBAC5B,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;gBAElC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;gBAClD,iDAAiD;gBACjD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;oBAC3B,UAAU;oBACV,UAAU,EAAE,aAAa;iBAC5B,CAAC,CAAA;gBAEF,gCAAgC;gBAChC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAEzC,2DAA2D;gBAC3D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CACjD,UAAU,EACV,SAAS,CACZ,CAAA;oBACD,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;gBACxC,CAAC;YACL,CAAC;YAED,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,KAAK;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,IAGxC;QACG,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;CACJ"}
@@ -9,7 +9,7 @@ export declare class Monitor {
9
9
  config: AltoConfig;
10
10
  timeout?: number;
11
11
  });
12
- setUserOpStatus(userOpHash: HexData32, status: UserOperationStatus): Promise<void>;
12
+ setStatus(userOpHashes: HexData32[], status: UserOperationStatus): Promise<void>;
13
13
  getUserOpStatus(userOpHash: HexData32): Promise<UserOperationStatus>;
14
14
  }
15
15
  //# sourceMappingURL=monitoring.d.ts.map
@@ -1,10 +1,11 @@
1
1
  import { Redis } from "ioredis";
2
- import { getRedisKeys } from "../cli/config/redisKeys.js";
3
2
  import { userOperationStatusSchema } from "../types/schemas.js";
4
3
  class InMemoryUserOperationStatusStore {
5
4
  store = {};
6
- set(userOpHash, status) {
7
- this.store[userOpHash] = status;
5
+ set(userOpHashes, status) {
6
+ for (const userOpHash of userOpHashes) {
7
+ this.store[userOpHash] = status;
8
+ }
8
9
  return Promise.resolve();
9
10
  }
10
11
  get(userOpHash) {
@@ -22,7 +23,7 @@ class RedisUserOperationStatusStore {
22
23
  constructor({ config, redisEndpoint, ttlSeconds = 3600 // 1 hour ttl by default
23
24
  }) {
24
25
  this.redis = new Redis(redisEndpoint);
25
- this.keyPrefix = getRedisKeys(config).userOpStatusQueue;
26
+ this.keyPrefix = `${config.redisKeyPrefix}:${config.chainId}:userop-status`;
26
27
  this.ttlSeconds = ttlSeconds;
27
28
  }
28
29
  getKey(userOpHash) {
@@ -49,10 +50,16 @@ class RedisUserOperationStatusStore {
49
50
  throw new Error(`Failed to deserialize UserOperationStatus: ${error instanceof Error ? error.message : "Unknown error"}`);
50
51
  }
51
52
  }
52
- async set(userOpHash, status) {
53
- const key = this.getKey(userOpHash);
54
- const serialized = this.serialize(status);
55
- await this.redis.set(key, serialized, "EX", this.ttlSeconds);
53
+ async set(userOpHashes, status) {
54
+ if (userOpHashes.length === 0)
55
+ return;
56
+ const pipeline = this.redis.pipeline();
57
+ for (const userOpHash of userOpHashes) {
58
+ const key = this.getKey(userOpHash);
59
+ const serialized = this.serialize(status);
60
+ pipeline.set(key, serialized, "EX", this.ttlSeconds);
61
+ }
62
+ await pipeline.exec();
56
63
  }
57
64
  async get(userOpHash) {
58
65
  const data = await this.redis.get(this.getKey(userOpHash));
@@ -85,23 +92,25 @@ export class Monitor {
85
92
  this.statusStore = new InMemoryUserOperationStatusStore();
86
93
  }
87
94
  }
88
- async setUserOpStatus(userOpHash, status) {
89
- // Clear existing timer if it exists
90
- if (this.userOpTimeouts[userOpHash]) {
91
- clearTimeout(this.userOpTimeouts[userOpHash]);
95
+ async setStatus(userOpHashes, status) {
96
+ // Clear existing timers and set new ones for in-memory storage
97
+ if (!this.isUsingRedis) {
98
+ for (const userOpHash of userOpHashes) {
99
+ if (this.userOpTimeouts[userOpHash]) {
100
+ clearTimeout(this.userOpTimeouts[userOpHash]);
101
+ }
102
+ }
92
103
  }
93
- // Set the user operation status
94
- await this.statusStore.set(userOpHash, status);
104
+ // Set the user operation statuses
105
+ await this.statusStore.set(userOpHashes, status);
95
106
  // For in-memory storage, we need to manually prune statuses
96
107
  if (!this.isUsingRedis) {
97
- // Clear existing timer if it exists
98
- if (this.userOpTimeouts[userOpHash]) {
99
- clearTimeout(this.userOpTimeouts[userOpHash]);
108
+ for (const userOpHash of userOpHashes) {
109
+ this.userOpTimeouts[userOpHash] = setTimeout(async () => {
110
+ await this.statusStore.delete(userOpHash);
111
+ delete this.userOpTimeouts[userOpHash];
112
+ }, this.timeout);
100
113
  }
101
- this.userOpTimeouts[userOpHash] = setTimeout(async () => {
102
- await this.statusStore.delete(userOpHash);
103
- delete this.userOpTimeouts[userOpHash];
104
- }, this.timeout);
105
114
  }
106
115
  }
107
116
  async getUserOpStatus(userOpHash) {
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../mempool/monitoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../mempool/monitoring.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,15 @@ export const createMemoryReceiptCache = (ttl) => {
15
15
  }
16
16
  return cached.receipt;
17
17
  },
18
- set: async (userOpHash, receipt) => {
18
+ set: async (receipts) => {
19
19
  pruneExpired();
20
- cache.set(userOpHash, {
21
- receipt,
22
- timestamp: Date.now()
23
- });
20
+ const timestamp = Date.now();
21
+ for (const { userOpHash, receipt } of receipts) {
22
+ cache.set(userOpHash, {
23
+ receipt,
24
+ timestamp
25
+ });
26
+ }
24
27
  }
25
28
  };
26
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createMemoryReceiptCache.js","sourceRoot":"","sources":["../../receiptCache/createMemoryReceiptCache.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAgB,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE3C,MAAM,YAAY,GAAG,GAAS,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAChD,CAAA;QAED,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,cAAc,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC,CAAA;IAED,OAAO;QACH,GAAG,EAAE,KAAK,EACN,UAAe,EAC0B,EAAE;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,SAAS,CAAA;YACpB,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAA;QACzB,CAAC;QAED,GAAG,EAAE,KAAK,EACN,UAAe,EACf,OAA6B,EAChB,EAAE;YACf,YAAY,EAAE,CAAA;YACd,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;gBAClB,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"createMemoryReceiptCache.js","sourceRoot":"","sources":["../../receiptCache/createMemoryReceiptCache.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAgB,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE3C,MAAM,YAAY,GAAG,GAAS,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAChD,CAAA;QAED,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,cAAc,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC,CAAA;IAED,OAAO;QACH,GAAG,EAAE,KAAK,EACN,UAAe,EAC0B,EAAE;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,SAAS,CAAA;YACpB,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAA;QACzB,CAAC;QAED,GAAG,EAAE,KAAK,EACN,QAA8D,EACjD,EAAE;YACf,YAAY,EAAE,CAAA;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,KAAK,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC7C,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;oBAClB,OAAO;oBACP,SAAS;iBACZ,CAAC,CAAA;YACN,CAAC;QACL,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -3,7 +3,6 @@ import { asyncCallWithTimeout } from "../utils/index.js";
3
3
  import * as sentry from "@sentry/node";
4
4
  import Redis from "ioredis";
5
5
  import { toHex } from "viem";
6
- import { getRedisKeys } from "../cli/config/redisKeys.js";
7
6
  const serializeReceipt = (receipt) => {
8
7
  // Convert BigInts to hex strings for JSON serialization
9
8
  return JSON.stringify(receipt, (_, value) => typeof value === "bigint" ? toHex(value) : value);
@@ -14,12 +13,11 @@ const deserializeReceipt = (data) => {
14
13
  return userOperationReceiptSchema.parse(parsed);
15
14
  };
16
15
  export const createRedisReceiptCache = ({ config, ttl, redisEndpoint, logger }) => {
17
- const REDIS_TIMEOUT = 100; // 100ms timeout for all Redis operations
16
+ const REDIS_TIMEOUT = 500; // 500ms timeout for all Redis operations
18
17
  const redis = new Redis(redisEndpoint);
19
- const redisKeys = getRedisKeys(config);
20
- const keyPrefix = redisKeys.userOpReceiptCachePrefix;
18
+ const redisPrefix = `${config.redisKeyPrefix}:${config.chainId}:receipt-cache`;
21
19
  const getKey = (userOpHash) => {
22
- return `${keyPrefix}:${userOpHash}`;
20
+ return `${redisPrefix}:${userOpHash}`;
23
21
  };
24
22
  return {
25
23
  get: async (userOpHash) => {
@@ -37,15 +35,19 @@ export const createRedisReceiptCache = ({ config, ttl, redisEndpoint, logger })
37
35
  return undefined;
38
36
  }
39
37
  },
40
- set: async (userOpHash, receipt) => {
38
+ set: async (receipts) => {
41
39
  try {
42
- const key = getKey(userOpHash);
43
- const serialized = serializeReceipt(receipt);
44
- // Set with TTL in seconds
45
- await asyncCallWithTimeout(redis.setex(key, Math.floor(ttl / 1000), serialized), REDIS_TIMEOUT);
40
+ const pipeline = redis.pipeline();
41
+ const ttlSeconds = Math.floor(ttl / 1000);
42
+ for (const { userOpHash, receipt } of receipts) {
43
+ const key = getKey(userOpHash);
44
+ const serialized = serializeReceipt(receipt);
45
+ pipeline.setex(key, ttlSeconds, serialized);
46
+ }
47
+ await asyncCallWithTimeout(pipeline.exec(), REDIS_TIMEOUT);
46
48
  }
47
49
  catch (err) {
48
- logger.error({ err, userOpHash }, "Failed to set receipt in Redis");
50
+ logger.error({ err, count: receipts.length }, "Failed to set receipt batch in Redis");
49
51
  sentry.captureException(err);
50
52
  }
51
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createRedisReceiptCache.js","sourceRoot":"","sources":["../../receiptCache/createRedisReceiptCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRedisReceiptCache.js","sourceRoot":"","sources":["../../receiptCache/createRedisReceiptCache.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import type { Hex } from "viem";
3
3
  import type { AltoConfig } from "../createConfig.js";
4
4
  export interface ReceiptCache {
5
5
  get(userOpHash: Hex): Promise<UserOperationReceipt | undefined>;
6
- set(userOpHash: Hex, receipt: UserOperationReceipt): Promise<void>;
6
+ set(receipts: {
7
+ userOpHash: Hex;
8
+ receipt: UserOperationReceipt;
9
+ }[]): Promise<void>;
7
10
  }
8
11
  export { createMemoryReceiptCache } from "./createMemoryReceiptCache.js";
9
12
  export { createRedisReceiptCache } from "./createRedisReceiptCache.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../receiptCache/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAOnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,UAAU,kBAAkB,CAC9B,MAAkB,EAClB,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC3B,EAAE,MAAM,EAAE,eAAe,EAAE,EAC3B;QACI,KAAK,EAAE,MAAM,CAAC,QAAQ;KACzB,CACJ,CAAA;IAED,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,uBAAuB,CAAC;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM;YACN,GAAG;YACH,MAAM;SACT,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC5D,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../receiptCache/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AASnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,UAAU,kBAAkB,CAC9B,MAAkB,EAClB,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC3B,EAAE,MAAM,EAAE,eAAe,EAAE,EAC3B;QACI,KAAK,EAAE,MAAM,CAAC,QAAQ;KACzB,CACJ,CAAA;IAED,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,uBAAuB,CAAC;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM;YACN,GAAG;YACH,MAAM;SACT,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC5D,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC"}
@@ -6,7 +6,7 @@ export const ethGetUserOperationReceiptHandler = createMethodHandler({
6
6
  handler: async ({ rpcHandler, params }) => {
7
7
  const [userOpHash] = params;
8
8
  try {
9
- return await rpcHandler.userOpMonitor.getUserOpReceipt(userOpHash);
9
+ return await rpcHandler.bundleManager.getUserOpReceipt(userOpHash);
10
10
  }
11
11
  catch (err) {
12
12
  rpcHandler.logger.error({ err, userOpHash }, "Unexpected error while getting user operation receipt");
@@ -49,7 +49,10 @@ export const pimlicoSendUserOperationNowHandler = createMethodHandler({
49
49
  version,
50
50
  submissionAttempts: 0
51
51
  };
52
- rpcHandler.mempool.store.addProcessing({ entryPoint, userOpInfo });
52
+ rpcHandler.mempool.store.addProcessing({
53
+ entryPoint,
54
+ userOpInfo
55
+ });
53
56
  const result = await rpcHandler.executorManager.sendBundleToExecutor(bundle);
54
57
  if (!result) {
55
58
  throw new RpcError("unhandled error during bundle submission", ValidationErrors.InvalidFields);