Skip to content

Pro 3206 #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 16, 2025
Merged

Pro 3206 #302

merged 3 commits into from
Apr 16, 2025

Conversation

nikhilkumar1612
Copy link
Contributor

@nikhilkumar1612 nikhilkumar1612 commented Apr 11, 2025

Description

  • initCode compilance with 7702 transactions for ep8

Types of changes

What types of changes does your code introduce?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Other (please describe):

Further comments (optional)

Summary by CodeRabbit

  • Chores

    • Updated overall version numbers and dependency versions across packages to 3.0.1 for improved stability.
    • Corrected URL typos in package metadata and CLI messages for accurate links.
  • New Features

    • Enhanced validation for user operation inputs with a new custom factory address validator.
    • Introduced a utility for consistent hexadecimal string right-padding.
  • Refactor

    • Streamlined user operation processing with refined conditional logic to better handle specific cases.
    • Replaced hardcoded prefixes with constants for consistent address handling.

Copy link

linear bot commented Apr 11, 2025

Copy link

coderabbitai bot commented Apr 11, 2025

Walkthrough

This update increments version numbers from 3.0.0 to 3.0.1 across configuration files and multiple packages. In addition, dependency version ranges have been updated accordingly. Several DTO files now use a new validation decorator, replacing the old Ethereum address check with a custom validator. A new custom validator implementation, IsValidFactory, has been added along with its export. Formatting and error handling improvements were made in the packed user operation utilities. Finally, conditional logic was introduced in the user operation hash computation and a minor logic adjustment was applied in the mempool reputation checks.

Changes

File(s) Change Summary
lerna.json, root package.json Updated version numbers from 3.0.0 to 3.0.1.
packages/*/package.json
(api, cli, db, executor, monitoring, node, params, types, utils)
Incremented package versions and updated dependency version ranges from ^3.0.0 to ^3.0.1; corrected duplicated https:// in URLs.
packages/api/src/dto/EstimateUserOperation.dto.ts
packages/api/src/dto/SendUserOperation.dto.ts
Replaced @IsEthereumAddress() with @IsValidFactory() on the factory property; updated corresponding import statements.
packages/api/src/utils/index.ts
packages/api/src/utils/isValidFactory.ts
Added new export in index file; introduced the custom validator function IsValidFactory.
packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts Added new utility function hexRightPad; improved formatting and error messages in user operation packing and unpacking utilities; padded factory field in initCode.
packages/executor/src/services/EntryPointService/versions/0.0.8.ts Modified getUserOperationHash method to conditionally use eth_call with state overrides when eip7702Auth is present and factory equals "0x7702"; replaced hardcoded prefix with constant EIP7702_PREFIX.
packages/executor/src/services/EntryPointService/versions/0.0.7.ts Replaced hardcoded "0xef0100" prefix with constant EIP7702_PREFIX in simulateHandleOp and encodeSimulateValidation.
packages/executor/src/services/MempoolService/reputation.ts Updated checkMultipleRolesViolation to exclude factory equal to "0x7702" from violation checks.
packages/params/src/constants.ts Added new constants EIP7702_PREFIX and INITCODE_EIP7702_MARKER.
packages/cli/src/cli.ts Fixed duplicated https:// in GitHub repository URL in bottomBanner string.

Sequence Diagram(s)

sequenceDiagram
    participant UO as UserOperation
    participant ES as EntryPointV8Service
    participant P as Provider
    participant C as Contract

    UO->>ES: Request hash computation
    alt eip7702Auth set and factory == "0x7702"
        ES->>ES: Pack userOp and build tx
        ES->>P: send(tx, stateOverrides)
        P-->>ES: Return computed hash
    else
        ES->>C: getUserOpHash(packedUserOp, {})
        C-->>ES: Return computed hash
    end
    ES->>UO: Return hash result
Loading

Suggested reviewers

  • ch4r10t33r

Poem

I'm a rabbit, hopping with glee,
Version bumps and code changes set me free.
New validators and methods, oh what a sight!
Conditional flows that shine so bright.
I nibble on updates with a twitch of my nose—
Hoppin' along with each commit that grows!
🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/cli/src/cli.ts

Oops! Something went wrong! :(

ESLint: 8.27.0

TypeError: prettier.resolveConfig.sync is not a function
Occurred while linting /packages/cli/src/cli.ts:1
Rule: "prettier/prettier"
at Program (/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js:138:40)
at ruleErrorHandler (/node_modules/eslint/lib/linter/linter.js:1115:28)
at /node_modules/eslint/lib/linter/safe-emitter.js:45:58
at Array.forEach ()
at Object.emit (/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
at NodeEventGenerator.applySelector (/node_modules/eslint/lib/linter/node-event-generator.js:297:26)
at NodeEventGenerator.applySelectors (/node_modules/eslint/lib/linter/node-event-generator.js:326:22)
at NodeEventGenerator.enterNode (/node_modules/eslint/lib/linter/node-event-generator.js:340:14)
at CodePathAnalyzer.enterNode (/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:795:23)
at /node_modules/eslint/lib/linter/linter.js:1150:32

packages/api/src/utils/isValidFactory.ts

Oops! Something went wrong! :(

ESLint: 8.27.0

TypeError: prettier.resolveConfig.sync is not a function
Occurred while linting /packages/api/src/utils/isValidFactory.ts:1
Rule: "prettier/prettier"
at Program (/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js:138:40)
at ruleErrorHandler (/node_modules/eslint/lib/linter/linter.js:1115:28)
at /node_modules/eslint/lib/linter/safe-emitter.js:45:58
at Array.forEach ()
at Object.emit (/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
at NodeEventGenerator.applySelector (/node_modules/eslint/lib/linter/node-event-generator.js:297:26)
at NodeEventGenerator.applySelectors (/node_modules/eslint/lib/linter/node-event-generator.js:326:22)
at NodeEventGenerator.enterNode (/node_modules/eslint/lib/linter/node-event-generator.js:340:14)
at CodePathAnalyzer.enterNode (/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:795:23)
at /node_modules/eslint/lib/linter/linter.js:1150:32

packages/executor/src/services/MempoolService/reputation.ts

Oops! Something went wrong! :(

ESLint: 8.27.0

TypeError: prettier.resolveConfig.sync is not a function
Occurred while linting /packages/executor/src/services/MempoolService/reputation.ts:1
Rule: "prettier/prettier"
at Program (/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js:138:40)
at ruleErrorHandler (/node_modules/eslint/lib/linter/linter.js:1115:28)
at /node_modules/eslint/lib/linter/safe-emitter.js:45:58
at Array.forEach ()
at Object.emit (/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
at NodeEventGenerator.applySelector (/node_modules/eslint/lib/linter/node-event-generator.js:297:26)
at NodeEventGenerator.applySelectors (/node_modules/eslint/lib/linter/node-event-generator.js:326:22)
at NodeEventGenerator.enterNode (/node_modules/eslint/lib/linter/node-event-generator.js:340:14)
at CodePathAnalyzer.enterNode (/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:795:23)
at /node_modules/eslint/lib/linter/linter.js:1150:32

  • 4 others

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6bb3c0e and e89fd6a.

📒 Files selected for processing (13)
  • packages/api/package.json (3 hunks)
  • packages/api/src/utils/isValidFactory.ts (1 hunks)
  • packages/cli/package.json (4 hunks)
  • packages/cli/src/cli.ts (1 hunks)
  • packages/executor/package.json (3 hunks)
  • packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (4 hunks)
  • packages/executor/src/services/EntryPointService/versions/0.0.7.ts (3 hunks)
  • packages/executor/src/services/EntryPointService/versions/0.0.8.ts (4 hunks)
  • packages/executor/src/services/MempoolService/reputation.ts (2 hunks)
  • packages/node/package.json (3 hunks)
  • packages/params/src/constants.ts (1 hunks)
  • packages/types/package.json (2 hunks)
  • packages/utils/package.json (3 hunks)
✅ Files skipped from review due to trivial changes (8)
  • packages/types/package.json
  • packages/cli/src/cli.ts
  • packages/params/src/constants.ts
  • packages/executor/src/services/EntryPointService/versions/0.0.7.ts
  • packages/api/package.json
  • packages/cli/package.json
  • packages/executor/package.json
  • packages/node/package.json
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/executor/src/services/MempoolService/reputation.ts
  • packages/utils/package.json
  • packages/api/src/utils/isValidFactory.ts
  • packages/executor/src/services/EntryPointService/versions/0.0.8.ts
  • packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
packages/executor/src/services/EntryPointService/versions/0.0.8.ts (1)

74-94: EIP-7702 support added to user operation hash computation

This implementation adds support for the EIP-7702 standard by providing special handling for user operations that use EIP-7702 authentication. When a user operation contains an eip7702Auth property and has the factory set to "0x7702", the method uses state overrides to simulate the call, which is essential for computing the correct hash.

The code avoids duplicating the packUserOp call by storing it in a variable first, which is a good optimization.

Consider adding a brief comment explaining the EIP-7702 handling logic to make the code more maintainable, especially for developers who might not be familiar with this specific EIP implementation.

packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (1)

170-187: Consider adding validation for factory and factoryData

While there's validation that throws an error when paymaster is present but gas limits are missing, there's no similar validation for factory and factoryData. Consider adding a check to ensure both are properly provided when needed.

-  const factory = hexRightPad(op.factory ?? "0x", 20);
+  let factory = "0x";
+  if (op.factory != null) {
+    factory = hexRightPad(op.factory, 20);
+    if (op.factoryData == null) {
+      throw new Error("factory with no factoryData");
+    }
+  }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3123c5d and 6bb3c0e.

📒 Files selected for processing (18)
  • lerna.json (1 hunks)
  • package.json (1 hunks)
  • packages/api/package.json (2 hunks)
  • packages/api/src/dto/EstimateUserOperation.dto.ts (2 hunks)
  • packages/api/src/dto/SendUserOperation.dto.ts (2 hunks)
  • packages/api/src/utils/index.ts (1 hunks)
  • packages/api/src/utils/isValidFactory.ts (1 hunks)
  • packages/cli/package.json (2 hunks)
  • packages/db/package.json (2 hunks)
  • packages/executor/package.json (2 hunks)
  • packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (4 hunks)
  • packages/executor/src/services/EntryPointService/versions/0.0.8.ts (1 hunks)
  • packages/executor/src/services/MempoolService/reputation.ts (1 hunks)
  • packages/monitoring/package.json (2 hunks)
  • packages/node/package.json (2 hunks)
  • packages/params/package.json (2 hunks)
  • packages/types/package.json (1 hunks)
  • packages/utils/package.json (2 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (3)
packages/api/src/dto/SendUserOperation.dto.ts (1)
packages/api/src/utils/isValidFactory.ts (1)
  • IsValidFactory (4-26)
packages/api/src/dto/EstimateUserOperation.dto.ts (1)
packages/api/src/utils/isValidFactory.ts (1)
  • IsValidFactory (4-26)
packages/executor/src/services/EntryPointService/versions/0.0.8.ts (2)
packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (1)
  • packUserOp (170-201)
packages/executor/src/services/EntryPointService/interfaces.ts (1)
  • StateOverrides (7-11)
🔇 Additional comments (31)
package.json (1)

4-4: Version Bump in Root package.json
The version number has been updated to "3.0.1", which aligns with the coordinated versioning effort across the project.

lerna.json (1)

6-6: Consistent Version Update in Lerna Configuration
The version is correctly updated to "3.0.1", ensuring consistency with the root package.json and the overall project release.

packages/api/src/utils/index.ts (1)

4-4: New Export for isValidFactory Added
Exporting the isValidFactory module broadens the utility API. Ensure that this new validator is comprehensively tested in DTOs where it replaces the old Ethereum address check.

packages/db/package.json (2)

7-7: DB Package Version Updated
The DB module’s version has been updated to "3.0.1" to remain in sync with the overall project.


37-37: Dependency Update for @skandha/types
The dependency on @skandha/types has been updated to "^3.0.1", ensuring compatibility with other packages. Please verify that the new version does not introduce any unintended breaking changes.

packages/monitoring/package.json (2)

7-7: Version increment looks good.

Version has been correctly incremented from 3.0.0 to 3.0.1, which aligns with the version updates across the project.


35-35: Dependency version update is consistent.

The dependency on @skandha/types has been properly updated to match the new version (^3.0.1).

packages/utils/package.json (2)

7-7: Version increment looks good.

Version has been correctly incremented from 3.0.0 to 3.0.1, which aligns with the version updates across the project.


36-36: Dependency version update is consistent.

The dependency on @skandha/types has been properly updated to match the new version (^3.0.1).

packages/executor/src/services/MempoolService/reputation.ts (1)

137-137:

✅ Verification successful

Special handling for 7702 transactions implemented correctly.

The modified condition now excludes the factory address "0x7702" from the validation check, which aligns with the PR objective to implement compliance with 7702 transactions for ep8.


🏁 Script executed:

#!/bin/bash
# Search for other mentions of the "0x7702" identifier in the codebase to ensure consistent handling
rg -A 3 -B 3 "0x7702" --type ts

Length of output: 2771


Special handling for 7702 transactions validated across the codebase.
The condition in packages/executor/src/services/MempoolService/reputation.ts at line 137 correctly excludes the factory address "0x7702" from the validation check. Verification shows that this special handling is consistently applied in other relevant modules (such as in isValidFactory.ts, EntryPointService/versions/0.0.8.ts, and packedUserOpUtils.ts), ensuring compliance with 7702 transactions for ep8.

packages/params/package.json (2)

7-7: Version increment looks good.

Version has been correctly incremented from 3.0.0 to 3.0.1, which aligns with the version updates across the project.


31-32: Dependency version updates are consistent.

The dependencies on @skandha/types and @skandha/utils have been properly updated to match the new versions (^3.0.1).

packages/api/src/dto/SendUserOperation.dto.ts (2)

12-12: Updated import to include custom factory validator.

The import statement now correctly includes the new IsValidFactory decorator from the utils module.


54-56: Factory property now validated using custom validator to support 0x7702 transactions.

The validation has been changed from standard Ethereum address validation to a custom validator that accepts either a valid Ethereum address OR the special value "0x7702" for EP8 compliance.

packages/api/src/dto/EstimateUserOperation.dto.ts (2)

11-11: Updated import to include custom factory validator.

The import statement now correctly imports both the existing IsBigNumber and the new IsValidFactory decorator.


32-34: Factory property now validated using custom validator to support 0x7702 transactions.

Similar to the changes in SendUserOperation.dto.ts, the validation has been changed from standard Ethereum address validation to a custom validator that accepts either a valid Ethereum address OR the special value "0x7702" for EP8 compliance.

packages/api/package.json (2)

7-7: Version bumped to 3.0.1.

The package version has been incremented to reflect the new feature addition.


37-40: Updated dependency versions to match package version.

All internal @Skandha dependencies have been updated to use version 3.0.1.

packages/executor/package.json (2)

7-7: Version update from 3.0.0 to 3.0.1

The package version has been incremented to 3.0.1, which reflects a minor version update.


38-41: Dependency versions synchronized with package version

All @Skandha dependencies have been updated from ^3.0.0 to ^3.0.1, maintaining consistency across the project's packages.

packages/cli/package.json (2)

7-7: Version update from 3.0.0 to 3.0.1

The package version has been incremented to 3.0.1, which is consistent with other package updates in this PR.


43-48: Dependency versions synchronized with package version

All @Skandha dependencies have been updated from ^3.0.0 to ^3.0.1, maintaining version consistency across the project.

packages/node/package.json (2)

7-7: Version update from 3.0.0 to 3.0.1

The package version has been incremented to 3.0.1, maintaining consistency with other packages in this PR.


59-65: Dependency versions synchronized with package version

All @Skandha dependencies have been updated from ^3.0.0 to ^3.0.1, ensuring version compatibility across the project.

packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (7)

16-27: Good addition of a helper function for hex right padding

The hexRightPad function is well implemented with proper error handling for cases where the input exceeds the target length. This will help standardize the handling of factory addresses in user operations.


188-189: Improved handling of factory addresses with padding

Using the new hexRightPad function ensures the factory address is properly formatted to the required 20 bytes, which is important for consistent encoding of user operations.


192-193: Verify the conditional initCode generation

The logic for generating the initCode has been updated to incorporate factory data. Ensure this change aligns with the expected behavior for the 7702 transactions implementation.


70-71: Consistent use of nullish coalescing

Using nullish coalescing (??) for default values is a good practice, ensuring empty hex strings when data is null or undefined.


248-307: Approved formatting improvements in encodeUserOp

The formatting changes in the encodeUserOp function improve readability while maintaining the same functionality.


320-331: LGTM: getUserOpHash function

The getUserOpHash function formatting has been improved without changing the functionality, ensuring it still correctly computes the hash using the encoded operation, entry point, and chain ID.


221-227:

❓ Verification inconclusive

Verify the special case handling for "0x7702" addresses

The code now handles a special case for factory addresses that start with "0x7702", which aligns with the PR objectives for implementing 7702 transactions. However, this string prefix matching approach could potentially match other addresses that coincidentally start with the same prefix.

Consider whether a more precise check against specific full addresses would be more appropriate:


🏁 Script executed:

#!/bin/bash
# Check if there are any factory addresses in the codebase that start with "0x7702" but aren't exactly "0x7702"
rg -i "0x7702[0-9a-f]+" --glob "*.{ts,js,json}" | grep -v "startsWith" | grep -v "\"0x7702\""

Length of output: 91


Action Needed: Please verify the 0x7702 special case handling in factory addresses

The shell script did not produce output, which means there’s no immediate evidence that the string prefix check is catching unintended addresses. However, given the low-confidence inference from this script result, please perform a manual verification to ensure that no false positives (i.e. addresses starting with "0x7702" that aren’t meant to be remapped to exactly "0x7702") exist elsewhere in the codebase.

  • Location to Verify: packages/executor/src/services/EntryPointService/utils/packedUserOpUtils.ts (lines 221-227)
  • Verification Point: Confirm that the only intentional usage of "0x7702" is as handled in this snippet and that no other parts of the code unintentionally match "0x7702" as a prefix.

Please double-check the repository with additional context if necessary and update if you identify edge cases where a more precise full-address check might be required.

};
const stateOverrides: StateOverrides = {
[userOp.sender]: {
code: "0xef0100" + userOp.eip7702Auth.address.substring(2),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we consider moving this to a constants file?

@@ -71,7 +71,27 @@ export class EntryPointV8Service implements IEntryPointService {
/** View functions */

async getUserOperationHash(userOp: UserOperation): Promise<string> {
return await this.contract.getUserOpHash(packUserOp(userOp));
const packedUserOp = packUserOp(userOp);
if (userOp.eip7702Auth && userOp.factory === "0x7702") {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we move 0x7702 to a constants file?

@@ -134,7 +134,7 @@ export class MempoolReputationChecks {
}

const factory = this.entryPointService.getFactory(entryPoint, userOp);
if (factory) {
if (factory && factory !== "0x7702") {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above.

@@ -134,7 +134,7 @@ export class MempoolReputationChecks {
}

const factory = this.entryPointService.getFactory(entryPoint, userOp);
if (factory) {
if (factory && factory !== "0x7702") {
if (accounts.includes(utils.getAddress(factory))) {
throw new RpcError(
`A Factory at ${factory} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand this wasn't changed now. But you should consider rephrasing the error message here.

@@ -4,7 +4,7 @@
"publishConfig": {
"access": "public"
},
"version": "3.0.0",
"version": "3.0.1",
"description": "The types of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pls remove the double https:

Copy link
Member

@ch4r10t33r ch4r10t33r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@nikhilkumar1612 nikhilkumar1612 merged commit b604409 into develop Apr 16, 2025
4 of 7 checks passed
@nikhilkumar1612 nikhilkumar1612 deleted the PRO-3206 branch April 16, 2025 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants