Skip to content

Conversation

@Amxx
Copy link
Collaborator

@Amxx Amxx commented Nov 22, 2025

PR Checklist

  • Tests
  • Documentation
  • Changeset entry (run npx changeset add)

@Amxx Amxx added this to the 5.6 milestone Nov 22, 2025
@Amxx Amxx requested a review from ernestognw November 22, 2025 04:06
@Amxx Amxx requested a review from a team as a code owner November 22, 2025 04:06
@changeset-bot
Copy link

changeset-bot bot commented Nov 22, 2025

🦋 Changeset detected

Latest commit: ff23994

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
openzeppelin-solidity Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​hardhat-predeploy@​0.3.0 ⏵ 0.4.175 +310068 +488 +1100

View full report

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 22, 2025

Walkthrough

This pull request introduces support for ERC4337 entrypoint version 0.9 across the OpenZeppelin Solidity library. A new constant ENTRYPOINT_V09 is added to the ERC4337Utils library. The default entrypoint in the Account contract is updated from v0.8 to v0.9. Test files are updated to reference predeploy.entrypoint.v09 instead of v08, and the hardhat-predeploy dependency is bumped from ^0.3.0 to ^0.4.1. A changeset file documents the minor version bump.

Suggested labels

release-cycle

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: updating the ERC-4337 entrypoint from version 0.8 to 0.9, which is the primary focus of the changeset across all modified files.
Description check ✅ Passed The description is minimally related to the changeset as it references a PR checklist indicating tests and changeset completion, which are relevant to the pull request process for this entrypoint version bump.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 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 0de8004 and ff23994.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (22)
  • .changeset/full-emus-hear.md (1 hunks)
  • contracts/account/Account.sol (1 hunks)
  • contracts/account/utils/draft-ERC4337Utils.sol (1 hunks)
  • package.json (1 hunks)
  • test/account/Account.behavior.js (3 hunks)
  • test/account/Account.test.js (1 hunks)
  • test/account/AccountECDSA.test.js (1 hunks)
  • test/account/AccountERC7702.t.sol (2 hunks)
  • test/account/AccountERC7702.test.js (1 hunks)
  • test/account/AccountERC7913.test.js (1 hunks)
  • test/account/AccountMultiSigner.test.js (1 hunks)
  • test/account/AccountMultiSignerWeighted.test.js (1 hunks)
  • test/account/AccountP256.test.js (1 hunks)
  • test/account/AccountRSA.test.js (1 hunks)
  • test/account/AccountWebAuthn.test.js (1 hunks)
  • test/account/examples/AccountERC7702WithModulesMock.test.js (1 hunks)
  • test/account/extensions/AccountERC7579.behavior.js (4 hunks)
  • test/account/extensions/AccountERC7579.test.js (1 hunks)
  • test/account/extensions/AccountERC7579Hooked.test.js (1 hunks)
  • test/account/extensions/ERC7821.behavior.js (5 hunks)
  • test/account/utils/draft-ERC4337Utils.test.js (1 hunks)
  • test/helpers/erc4337.js (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-10-15T02:52:05.027Z
Learnt from: ernestognw
Repo: OpenZeppelin/openzeppelin-contracts PR: 5891
File: test/account/modules/ERC7579Module.behavior.js:56-61
Timestamp: 2025-10-15T02:52:05.027Z
Learning: In ERC7579 validator tests for `isValidSignatureWithSender`, using `this.mock` (not bound to a specific account) is valid when testing signature validation with any arbitrary sender, while `this.mockFromAccount` is used when testing account-specific validation scenarios.

Applied to files:

  • test/account/AccountMultiSignerWeighted.test.js
  • test/account/Account.test.js
  • test/account/AccountMultiSigner.test.js
  • test/account/extensions/ERC7821.behavior.js
  • test/account/extensions/AccountERC7579Hooked.test.js
  • test/account/Account.behavior.js
  • test/account/AccountERC7913.test.js
  • test/account/AccountERC7702.test.js
  • test/account/examples/AccountERC7702WithModulesMock.test.js
  • test/account/AccountECDSA.test.js
  • test/account/AccountERC7702.t.sol
📚 Learning: 2025-08-29T13:16:08.640Z
Learnt from: Amxx
Repo: OpenZeppelin/openzeppelin-contracts PR: 5904
File: contracts/mocks/crosschain/ERC7786RecipientMock.sol:12-14
Timestamp: 2025-08-29T13:16:08.640Z
Learning: In OpenZeppelin contracts, mock contracts (like ERC7786RecipientMock) don't require input validation such as zero-address checks in constructors, as they are only used for testing purposes in controlled environments.

Applied to files:

  • test/account/AccountMultiSignerWeighted.test.js
  • test/account/AccountMultiSigner.test.js
  • test/account/AccountERC7913.test.js
  • test/account/AccountERC7702.t.sol
📚 Learning: 2025-09-04T09:13:21.278Z
Learnt from: Amxx
Repo: OpenZeppelin/openzeppelin-contracts PR: 5904
File: contracts/crosschain/ERC7786Recipient.sol:3-3
Timestamp: 2025-09-04T09:13:21.278Z
Learning: In OpenZeppelin contracts, hardhat.config.js uses yargs to configure the Solidity compiler version dynamically via command line arguments, with a default of '0.8.27' set on line 21 and the solidity configuration using argv.compile around lines 76-87, rather than hardcoded version strings.

Applied to files:

  • package.json
📚 Learning: 2025-09-04T09:13:21.278Z
Learnt from: Amxx
Repo: OpenZeppelin/openzeppelin-contracts PR: 5904
File: contracts/crosschain/ERC7786Recipient.sol:3-3
Timestamp: 2025-09-04T09:13:21.278Z
Learning: In OpenZeppelin contracts, hardhat.config.js uses a sophisticated yargs-based configuration where the Solidity compiler version is set via argv.compiler (line 77) with a default of '0.8.27' defined in the yargs options (line 21), allowing flexible command-line overrides while maintaining a consistent default.

Applied to files:

  • package.json
🧬 Code graph analysis (14)
test/account/AccountMultiSignerWeighted.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/Account.test.js (11)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/AccountMultiSigner.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579.behavior.js (2)
test/helpers/account.js (1)
  • impersonate (7-10)
test/helpers/erc7579.js (1)
  • MODULE_TYPE_EXECUTOR (4-4)
test/account/AccountWebAuthn.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/Account.behavior.js (1)
test/helpers/account.js (1)
  • impersonate (7-10)
test/account/AccountERC7913.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/AccountRSA.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/AccountERC7702.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/examples/AccountERC7702WithModulesMock.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/AccountECDSA.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountP256.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
test/account/AccountP256.test.js (11)
test/account/Account.test.js (1)
  • entrypointDomain (26-26)
test/account/AccountECDSA.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7702.test.js (1)
  • entrypointDomain (25-25)
test/account/AccountERC7913.test.js (1)
  • entrypointDomain (33-33)
test/account/AccountMultiSigner.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountMultiSignerWeighted.test.js (1)
  • entrypointDomain (36-36)
test/account/AccountRSA.test.js (1)
  • entrypointDomain (31-31)
test/account/AccountWebAuthn.test.js (1)
  • entrypointDomain (39-39)
test/account/examples/AccountERC7702WithModulesMock.test.js (1)
  • entrypointDomain (35-35)
test/account/extensions/AccountERC7579.test.js (1)
  • entrypointDomain (32-32)
test/account/extensions/AccountERC7579Hooked.test.js (1)
  • entrypointDomain (32-32)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: Redirect rules - solidity-contracts
  • GitHub Check: Header rules - solidity-contracts
  • GitHub Check: Pages changed - solidity-contracts
  • GitHub Check: slither
  • GitHub Check: halmos
  • GitHub Check: tests-upgradeable
  • GitHub Check: coverage
  • GitHub Check: tests-foundry
  • GitHub Check: tests
🔇 Additional comments (24)
test/account/AccountECDSA.test.js (1)

25-25: LGTM! Entrypoint domain updated to v0.9.

The update from v08 to v09 is consistent with the PR objectives and aligns with changes across other test files.

test/account/examples/AccountERC7702WithModulesMock.test.js (1)

35-35: LGTM! Entrypoint domain updated to v0.9.

The update is consistent with the broader migration to ERC-4337 v0.9 across the test suite.

test/account/AccountRSA.test.js (1)

31-31: LGTM! Entrypoint domain updated to v0.9.

The change is consistent with the entrypoint version migration across the codebase.

test/account/AccountERC7913.test.js (1)

33-33: LGTM! Entrypoint domain updated to v0.9.

The update aligns with the PR's objective to migrate to ERC-4337 v0.9.

.changeset/full-emus-hear.md (1)

1-5: Changeset looks good, but documentation needs completion.

The changeset correctly documents the minor version bump and the addition of entrypoint v0.9. However, the PR objectives indicate that documentation is not yet completed. Please ensure that user-facing documentation (contract documentation, migration guides, etc.) is updated to reflect this change.

test/account/extensions/AccountERC7579Hooked.test.js (1)

32-32: LGTM! Entrypoint domain updated to v0.9.

The change is consistent with the entrypoint version update across the test suite.

test/helpers/erc4337.js (1)

104-105: LGTM! Default entrypoint and senderCreator updated to v0.9.

The default values for entrypoint and senderCreator are correctly updated to use v09, ensuring that all tests using this helper will default to the new entrypoint version unless explicitly overridden.

package.json (1)

78-78: I need to verify whether hardhat-predeploy version 0.4.1 supports the v0.9 entrypoint as mentioned in the review comment.

Let me search more specifically for hardhat-predeploy information.

Let me try a more specific search for the npm package.

Based on the verification results:

Version 0.4.1 exists and has no known security vulnerabilities. The npm registry confirms that hardhat-predeploy version 0.4.1 is available, and GitHub's security advisory database returns no known vulnerabilities for this package.

However, I was unable to locate public documentation confirming whether version 0.4.1 specifically supports the v0.9 entrypoint as mentioned in your review comment. This aspect requires manual verification against the package's release notes, changelog, or documentation.

Verify that hardhat-predeploy ^0.4.1 supports the v0.9 entrypoint.

The version is stable and free of known security advisories. Confirm the v0.9 entrypoint compatibility by checking the package's release notes or documentation.

test/account/Account.behavior.js (1)

11-11: EntryPoint v0.9 references are consistent in core behavior tests

All updated references (return value, impersonation target, and balance checks) use predeploy.entrypoint.v09 in a way that matches the prior v0.8 wiring; no issues spotted.

Also applies to: 33-33, 62-62

test/account/AccountERC7702.test.js (1)

25-25: Domain now correctly tied to v0.9 entrypoint

Using getDomain(predeploy.entrypoint.v09) keeps the signing domain aligned with the new canonical entrypoint and is consistent with the rest of the suite.

test/account/AccountMultiSigner.test.js (1)

36-36: Multi‑signer domain updated to v0.9 entrypoint

The fixture now derives entrypointDomain from predeploy.entrypoint.v09, keeping EIP‑712 signing in sync with the new entrypoint version.

contracts/account/utils/draft-ERC4337Utils.sol (1)

30-31: New ENTRYPOINT_V09 constant matches existing pattern

Defining ENTRYPOINT_V09 as an internal constant IEntryPoint mirrors the v0.7 and v0.8 constants and cleanly exposes the v0.9 address to consumers; looks good.

test/account/AccountMultiSignerWeighted.test.js (1)

36-36: Weighted multi‑signer tests aligned with v0.9 entrypoint

Switching entrypointDomain to predeploy.entrypoint.v09 is consistent with other fixtures and keeps signature domains in sync with the v0.9 entrypoint.

test/account/AccountERC7702.t.sol (1)

51-51: Foundry ERC‑7702 test now targets ENTRYPOINT_V09 consistently

Both the on‑chain entrypoint setup and the getUserOpHash call are wired to ERC4337Utils.ENTRYPOINT_V09, so the test environment and hashing logic remain consistent after the version bump.

Also applies to: 100-101

test/account/extensions/AccountERC7579.test.js (1)

32-32: ERC7579 account fixture updated to v0.9 entrypoint domain

Using getDomain(predeploy.entrypoint.v09) keeps the validator’s user‑op signing domain aligned with the new default entrypoint; wiring remains correct.

test/account/Account.test.js (1)

26-26: Core Account tests now use v0.9 entrypoint domain

The fixture’s entrypointDomain correctly targets predeploy.entrypoint.v09, keeping EIP‑712 signing and chainId derivation in sync with the new canonical entrypoint.

test/account/AccountP256.test.js (1)

31-31: LGTM - Consistent version bump.

The entrypoint domain update to v09 is correct and aligns with the PR's objective to migrate to ERC-4337 entrypoint version 0.9.

test/account/AccountWebAuthn.test.js (1)

39-39: LGTM - Consistent version bump.

The entrypoint domain update to v09 is correct and consistent with other test files.

test/account/utils/draft-ERC4337Utils.test.js (1)

32-34: LGTM - Good test coverage.

The new test case properly verifies that ENTRYPOINT_V09 matches the expected predeploy address, following the same pattern as existing v0.7.0 and v0.8.0 tests.

test/account/extensions/ERC7821.behavior.js (2)

53-56: LGTM - Consistent entrypoint references.

All references to the entrypoint in the account deployment test are correctly updated to v09, including getNonce and handleOps calls.


75-134: LGTM - All test scenarios updated consistently.

All handleOps calls across different test scenarios (invalid signature, deployed account, ETH transfer, batch execution) are correctly updated to use v09 entrypoint.

test/account/extensions/AccountERC7579.behavior.js (2)

40-40: LGTM - Impersonation target updated correctly.

The impersonation target is correctly updated to v09, which is essential for testing entrypoint-authorized operations.


199-502: LGTM - Hook tests updated consistently.

All hook-related test assertions (PreCheck events) and caller assignments are correctly updated to reference v09 entrypoint, ensuring proper testing of hook invocations with the new entrypoint version.

contracts/account/Account.sol (1)

52-54: ENTRYPOINT_V09 constant verified and correctly defined.

The constant is properly defined in contracts/account/utils/draft-ERC4337Utils.sol with the canonical v0.9.0 EntryPoint address 0x433709009B8330FDa32311DF1C2AFA402eD8D009. The migration to use ENTRYPOINT_V09 in Account.sol line 53 is correct.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant