Skip to content

Update sepolia-v2 namespace with latest deployment addresses - #2318

Merged
shrugs merged 3 commits into
mainfrom
worktree-sepolia-v2-addresses
Jun 19, 2026
Merged

Update sepolia-v2 namespace with latest deployment addresses#2318
shrugs merged 3 commits into
mainfrom
worktree-sepolia-v2-addresses

Conversation

@shrugs

@shrugs shrugs commented Jun 19, 2026

Copy link
Copy Markdown
Member

Refreshes the sepolia-v2 ENS Namespace to track the latest ENSv1+ENSv2 Sepolia test deployment (contracts-v2 deployment sepolia-official-v1-20260525-r2).

Updated entries

Each startBlock is the contract's on-chain deployment block, identified via cast (binary search over eth_getCode).

Namespace entry Deployment name New address startBlock
ENSv2Root.RootRegistry RootRegistry 0xc960f7217d3643b525ef36bec8adf86953cd9ab8 10921920
ENSv2Root.ETHRegistry ETHRegistry 0xdedb92913a25abe1f7bcdd85d8a344a43b398b67 10921984
ENSv2Root.ETHRegistrar ETHRegistrar 0x8c2e866b439358c41ae05de9cbe8a00bfefaffca 10921994
ENSRoot.UniversalResolver UpgradableUniversalResolverProxy 0xeeeeeeee14d718c2b47d9923deab1335e144eeee 10921916
rrRoot.DefaultPublicResolver5 PublicResolverV2 0x5239a812ec9a62f46dbb5de8f346c8efe7553a9f 10921998

Notes

  • UniversalResolver points at the UpgradableUniversalResolverProxy (reused cross-chain vanity address 0xeeee…eeee, actually created at block 8928790). Its startBlock is set to the v2 deployment block 10921916 rather than the proxy's creation block, since earlier blocks predate its use in this deployment.
  • DefaultPublicResolver5 maps to PublicResolverV2"PublicResolver that respects the ENSv2 registry", the successor to the deployment's prior PublicResolver. (The separately-deployed PublicResolverSet is a PermissionedAddressSet allow-list of wrapper-aware resolver addresses, not a resolver, so it is not indexed.)
  • The ENSv1 root contracts (ENSv1Registry, BaseRegistrar, UnwrappedEthRegistrarController, NameWrapper) and the reverse resolvers are unchanged — they are reused from the prior deployment and were not part of this address set.

Validation

  • pnpm -F @ensnode/datasources typecheck
  • pnpm test packages/datasources ✓ (8/8, incl. lowercase-address invariants)
  • biome check

Refreshes RootRegistry, ETHRegistry, ETHRegistrar, UniversalResolver
(UpgradableUniversalResolverProxy), and DefaultPublicResolver5
(PublicResolverV2) to the latest ENSv1+ENSv2 Sepolia test deployment,
each with its on-chain deployment block as startBlock.
Copilot AI review requested due to automatic review settings June 19, 2026 17:01
@shrugs
shrugs requested a review from a team as a code owner June 19, 2026 17:01
@vercel

vercel Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Jun 19, 2026 6:15pm
enskit-react-example.ensnode.io Ready Ready Preview, Comment Jun 19, 2026 6:15pm
ensnode.io Ready Ready Preview, Comment Jun 19, 2026 6:15pm
ensrainbow.io Ready Ready Preview, Comment Jun 19, 2026 6:15pm

@changeset-bot

changeset-bot Bot commented Jun 19, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: af4e8eb

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

This PR includes changesets to release 22 packages
Name Type
@ensnode/datasources Patch
ensindexer Patch
ensadmin Patch
ensapi Patch
fallback-ensapi Patch
enscli Patch
@ensnode/ensnode-sdk Patch
ensskills Patch
@ensnode/integration-test-env Patch
@namehash/namehash-ui Patch
ensrainbow Patch
@docs/ensnode Patch
@namehash/ens-referrals Patch
@ensnode/ensdb-sdk Patch
@ensnode/ensrainbow-sdk Patch
@docs/ensrainbow Patch
enssdk Patch
enskit Patch
@ensnode/ponder-sdk Patch
@ensnode/ponder-subgraph Patch
@ensnode/shared-configs Patch
@ensnode/ensindexer-perf-testing Patch

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

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@shrugs, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 58 minutes and 38 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 240bd127-1703-44b5-880b-75badbd555e9

📥 Commits

Reviewing files that changed from the base of the PR and between 1fe1801 and af4e8eb.

📒 Files selected for processing (2)
  • .changeset/sepolia-v2-latest-addresses.md
  • packages/datasources/src/sepolia-v2.ts
📝 Walkthrough

Walkthrough

Updates the sepolia-v2 ENS datasource configuration (packages/datasources/src/sepolia-v2.ts) with new contract addresses and startBlock values for five contracts across three namespaces: UniversalResolver (ENSRoot), RootRegistry/ETHRegistry/ETHRegistrar (ENSv2Root), and DefaultPublicResolver5 (ReverseResolverRoot). A changeset file records a patch bump for @ensnode/datasources and ensindexer.

Changes

Sepolia-v2 Contract Address Updates

Layer / File(s) Summary
Sepolia-v2 datasource contract address and startBlock updates
packages/datasources/src/sepolia-v2.ts, .changeset/sepolia-v2-latest-addresses.md
Replaces addresses and startBlock values for UniversalResolver (ENSRoot), RootRegistry/ETHRegistry/ETHRegistrar (ENSv2Root), and DefaultPublicResolver5 (ReverseResolverRoot) with new Sepolia test deployment values. Updates adjacent deployment notes to reference UpgradableUniversalResolverProxy and PublicResolverV2. Changeset records a patch bump for both packages.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • namehash/ensnode#1575: Directly overlapping changes — both PRs modify sepolia-v2.ts to update the same contract address/startBlock mappings for ENSRoot.contracts.UniversalResolver and ENSv2Root's registry contracts.
  • namehash/ensnode#2191: Previous update to the same Sepolia-v2 datasource configuration, changing the same set of contract addresses and startBlock values.
  • namehash/ensnode#2267: Consolidates UniversalResolver onto a proxy-based IUniversalResolver setup in sepolia-v2.ts, directly related to the ENSRoot.contracts.UniversalResolver address change in this PR.

Poem

🐇 Hop, hop, new addresses today!
The contracts have moved — don't delay!
startBlock refreshed, the hashes aligned,
New Sepolia coords in the config you'll find.
This bunny approves — now index away! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: updating the sepolia-v2 namespace configuration with the latest deployment addresses.
Description check ✅ Passed The PR description comprehensively covers all required template sections: Summary, Why, Testing, and Notes for Reviewer, with detailed validation results and implementation context.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-sepolia-v2-addresses

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@greptile-apps

greptile-apps Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR refreshes the sepolia-v2 ENS Namespace to track the latest sepolia-official-v1-20260525-r2 Sepolia test deployment, updating five contract addresses and refining the startBlock constants.

  • Splits the former single SEPOLIA_ENSV2_DEPLOYMENT_BLOCK constant into SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK (10400000, unchanged) and SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK (10921916, the new ENSv2 epoch), and assigns each existing contract entry to the correct constant.
  • Updates the addresses for UniversalResolver, RootRegistry, ETHRegistry, ETHRegistrar, and DefaultPublicResolver5 to their new on-chain locations, with startBlock set to the earliest block of this ENSv2 deployment wave.
  • Adds a changeset entry marking the @ensnode/datasources and ensindexer packages as patch bumps.

Confidence Score: 5/5

Safe to merge — purely a test-network configuration update with no production contracts or runtime logic changed.

All five address replacements and the startBlock constant split are consistent with the PR description table. The new SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK (10921916) is correctly used as a shared deployment epoch for the ENSv2 contract group, and unchanged ENSv1 contracts correctly retain the older V1 epoch. No logic, auth, or data-handling code is touched.

No files require special attention.

Important Files Changed

Filename Overview
packages/datasources/src/sepolia-v2.ts Five contract addresses updated to match the latest Sepolia ENSv2 deployment; startBlock logic cleanly separated into two named constants. No logic issues found.
.changeset/sepolia-v2-latest-addresses.md New changeset file correctly marking both affected packages as patch bumps with an accurate description.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["sepolia-v2 ENS Namespace"] --> B["ENSRoot (Sepolia)"]
    A --> C["ENSv2Root (Sepolia)"]
    A --> D["ReverseResolverRoot (Sepolia)"]
    A --> E["ReverseResolver L2s"]

    B --> B1["ENSv1RegistryOld · zeroAddress\nstartBlock: V1 epoch (10400000)"]
    B --> B2["ENSv1Registry · 0xb6fb…4dd\nstartBlock: V1 epoch (10400000)"]
    B --> B3["BaseRegistrar · 0xa51c…ec\nstartBlock: V1 epoch (10400000)"]
    B --> B4["UnwrappedEthRegistrarController · 0xb577…bc\nstartBlock: V1 epoch (10400000)"]
    B --> B5["NameWrapper · 0x250a…da\nstartBlock: V1 epoch (10400000)"]
    B --> B6["✏️ UniversalResolver · 0xeeee…eeee\nstartBlock: V2 epoch (10921916)"]

    C --> C1["✏️ RootRegistry · 0xc960…ab8\nstartBlock: V2 epoch (10921916)"]
    C --> C2["✏️ ETHRegistry · 0xdedb…b67\nstartBlock: V2 epoch (10921916)"]
    C --> C3["✏️ ETHRegistrar · 0x8c2e…fca\nstartBlock: V2 epoch (10921916)"]

    D --> D1["DefaultReverseRegistrar · 0x2699…98\nstartBlock: V1 epoch (10400000)"]
    D --> D2["✏️ DefaultPublicResolver5 · 0x5239…9f\nstartBlock: V2 epoch (10921916)"]
    D --> D3["BaseReverseResolver + L2 resolvers\nstartBlock: V1 epoch (10400000)"]

    E --> E1["Base / Optimism / Arbitrum / Scroll / Linea\nUnchanged"]

    style B6 fill:#fffbcc
    style C1 fill:#fffbcc
    style C2 fill:#fffbcc
    style C3 fill:#fffbcc
    style D2 fill:#fffbcc
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A["sepolia-v2 ENS Namespace"] --> B["ENSRoot (Sepolia)"]
    A --> C["ENSv2Root (Sepolia)"]
    A --> D["ReverseResolverRoot (Sepolia)"]
    A --> E["ReverseResolver L2s"]

    B --> B1["ENSv1RegistryOld · zeroAddress\nstartBlock: V1 epoch (10400000)"]
    B --> B2["ENSv1Registry · 0xb6fb…4dd\nstartBlock: V1 epoch (10400000)"]
    B --> B3["BaseRegistrar · 0xa51c…ec\nstartBlock: V1 epoch (10400000)"]
    B --> B4["UnwrappedEthRegistrarController · 0xb577…bc\nstartBlock: V1 epoch (10400000)"]
    B --> B5["NameWrapper · 0x250a…da\nstartBlock: V1 epoch (10400000)"]
    B --> B6["✏️ UniversalResolver · 0xeeee…eeee\nstartBlock: V2 epoch (10921916)"]

    C --> C1["✏️ RootRegistry · 0xc960…ab8\nstartBlock: V2 epoch (10921916)"]
    C --> C2["✏️ ETHRegistry · 0xdedb…b67\nstartBlock: V2 epoch (10921916)"]
    C --> C3["✏️ ETHRegistrar · 0x8c2e…fca\nstartBlock: V2 epoch (10921916)"]

    D --> D1["DefaultReverseRegistrar · 0x2699…98\nstartBlock: V1 epoch (10400000)"]
    D --> D2["✏️ DefaultPublicResolver5 · 0x5239…9f\nstartBlock: V2 epoch (10921916)"]
    D --> D3["BaseReverseResolver + L2 resolvers\nstartBlock: V1 epoch (10400000)"]

    E --> E1["Base / Optimism / Arbitrum / Scroll / Linea\nUnchanged"]

    style B6 fill:#fffbcc
    style C1 fill:#fffbcc
    style C2 fill:#fffbcc
    style C3 fill:#fffbcc
    style D2 fill:#fffbcc
Loading

Reviews (2): Last reviewed commit: "fix: tidy changeset" | Re-trigger Greptile

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the sepolia-v2 ENS namespace in @ensnode/datasources to point at the latest ENSv1+ENSv2 Sepolia test deployment addresses and deployment blocks, and adds a Changesets entry to release the update (and bump the fixed-version group).

Changes:

  • Updated ENSv2Root contract addresses (RootRegistry, ETHRegistry, ETHRegistrar) and their startBlock values to the new deployment blocks.
  • Updated ENSRoot.UniversalResolver address and startBlock, plus added explanatory inline notes.
  • Added a Changeset for the namespace refresh.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
packages/datasources/src/sepolia-v2.ts Refreshes Sepolia v2 namespace contract addresses and startBlocks (incl. UniversalResolver and default resolver).
.changeset/sepolia-v2-latest-addresses.md Adds release note/version bump entry for the updated sepolia-v2 namespace addresses.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/datasources/src/sepolia-v2.ts Outdated
Comment thread .changeset/sepolia-v2-latest-addresses.md Outdated
…NT_BLOCK

Splits the deployment-block constant into ENSv1/ENSv2 variants and points
all latest-release ENSv2 contracts (Registry, EnhancedAccessControl,
RootRegistry, ETHRegistry, ETHRegistrar, UniversalResolver,
DefaultPublicResolver5) at the shared ENSv2 deployment block (10921916).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

Comment on lines 112 to 116
RootRegistry: {
abi: Registry,
address: "0x835f0b284e78cd3f358bcf6cba3b53809f09b79e",
startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK,
address: "0xc960f7217d3643b525ef36bec8adf86953cd9ab8",
startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK,
},
Comment on lines 117 to 121
ETHRegistry: {
abi: Registry,
address: "0x64c81210d0e580cfc7746f3fb910bf0e8f6378e1",
startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK,
address: "0xdedb92913a25abe1f7bcdd85d8a344a43b398b67",
startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK,
},
Comment on lines 122 to 126
ETHRegistrar: {
abi: ETHRegistrar,
address: "0xb68e594a47fe057bd31e7a8229ffcfd85b2e28af",
startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK,
address: "0x8c2e866b439358c41ae05de9cbe8a00bfefaffca",
startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK,
},
Comment on lines +139 to 144
// NOTE: named PublicResolverV2 in deployment
DefaultPublicResolver5: {
abi: ResolverABI,
address: "0xb441cb480460eb8b2964dcb82b64a883b14abf3e",
startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK,
address: "0x5239a812ec9a62f46dbb5de8f346c8efe7553a9f",
startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK,
},
Comment on lines 33 to 37
/**
* The earliest deploy block of the Sepolia ENSv1+v2 test deployment.
* The earliest deploy block of the Sepolia ENSv1 test deployment.
*
* @dev this is the earliest block of _any_ Sepolia ENSv1+v2 test deployment, since the ENS Team
* has shown in the past that a previous deployment's contracts may be used with a future deployment.
* @dev this is the earliest block of _any_ Sepolia ENSv1+v2 test deployment.
*/
@shrugs
shrugs merged commit eaab1bf into main Jun 19, 2026
21 checks passed
@shrugs
shrugs deleted the worktree-sepolia-v2-addresses branch June 19, 2026 18:18
@github-actions github-actions Bot mentioned this pull request Jun 19, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants