docs: ENS Resolutions page#2273
Conversation
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
|
Warning Review limit reached
More reviews will be available in 32 minutes and 8 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThis PR adds a new "ENS Resolution" documentation page that explains Omnigraph's forward, reverse, and complete resolution workflows. It introduces two new combined examples (domain profile+records, account primary name+records), extends the GraphQL schema with UnindexedDomain type and resolver fields, updates component rendering for example descriptions, synchronizes example fixtures and SDK queries, and consolidates sidebar ordering by removing frontmatter metadata from individual example pages. ChangesENS Resolution Documentation & Examples
🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly Related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
| { | ||
| !hideDescription && ( | ||
| <div class="sl-markdown-content"> | ||
| <p set:html={description} /> |
There was a problem hiding this comment.
to render segments of Example's description
| title: Account Events | ||
| description: Indexed events involving an address across ENS contracts. | ||
| sidebar: | ||
| order: 11 |
There was a problem hiding this comment.
looks like it's redundant since we define order in sidebar config already
| title: "Hello World", | ||
| description: | ||
| "From a wallet address: Ethereum primary name and interpreted profile, plus ENSv1 and ENSv2 ownership counts.", | ||
| "This query below loads, from a wallet address, the Ethereum primary name and interpreted profile, plus ENSv1 and ENSv2 ownership counts.", |
There was a problem hiding this comment.
for description to better fit into page content
Greptile SummaryThis PR adds a new ENS Resolution documentation page explaining forward, reverse, and complete resolution patterns, and refactors the supporting example infrastructure to split the old
Confidence Score: 4/5Safe to merge after fixing the SKILL.md The docs page and config changes are well-structured and internally consistent. The one concrete defect is in SKILL.md: the packages/ensskills/skills/omnigraph/SKILL.md — the Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[ens-resolution.mdx] --> B[OmnigraphStaticExampleSet]
B --> C[getOmnigraphExampleById]
C --> D[config.ts]
D --> E1[domain-profile\nhostSeparatePage: true]
D --> E2[domain-records\nhostSeparatePage: true]
D --> E3[account-primary-names\nhostSeparatePage: false]
D --> E4[account-primary-name-records\nhostSeparatePage: true]
B --> F[resolveOmnigraphStaticExample]
F --> G[responses.json]
F --> H[examples.json]
E4 --> I[account-primary-name-records.mdx]
E3 -->|no page| J[embedded only]
Reviews (7): Last reviewed commit: "fix tests" | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astro`:
- Around line 42-44: The template in OmnigraphStaticExampleSet uses a <p
set:html={description}/> which can produce invalid HTML when description
contains block-level elements; replace the <p> wrapper with a block-level
container (e.g., a plain <div> or another suitable block element) and apply
set:html to that element so injected HTML is not nested inside a
paragraph—update the element around the description variable accordingly.
In `@docs/ensnode.io/src/data/omnigraph-examples/schema.graphql`:
- Around line 610-613: The current description for DomainResolver.effective
conflates behavior for UnindexedDomain and indexed domains; update the comment
to state that effective: Resolver is null when no active Resolver exists, and
add a clarifying clause that the "Domain is not in the Canonical Nametree"
condition specifically applies to lookup via getDomainEffectiveResolver (used
for indexed domains that may lack canonicalName), while noting UnindexedDomain
resolves resolver.effective directly from domain.effectiveResolverId and can
return the wildcard ancestor’s resolver even when resolver.assigned is null (see
UnindexedDomain, domain.effectiveResolverId, resolver.assigned, and
getDomainEffectiveResolver).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 73d593cf-cfe5-4329-8f5a-87182963124b
📒 Files selected for processing (29)
docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.tsdocs/ensnode.io/src/components/organisms/OmnigraphStaticExampleSet.astrodocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-events.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-migrated-names.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-resolver-permissions.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-by-name.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-events.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-profile.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-records.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-resolver.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains-recently-registered.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domains-by-address.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/eth-by-version.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/find-domains.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/index.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/namegraph.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-contract.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-user.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/registry-domains.mdxdocs/ensnode.io/src/data/omnigraph-examples/config.tsdocs/ensnode.io/src/data/omnigraph-examples/examples.jsondocs/ensnode.io/src/data/omnigraph-examples/responses.jsondocs/ensnode.io/src/data/omnigraph-examples/schema.graphqldocs/ensnode.io/src/data/omnigraph-examples/snapshot.jsonpackages/ensnode-sdk/src/omnigraph-api/example-queries.tspackages/ensskills/skills/omnigraph/SKILL.md
💤 Files with no reviewable changes (19)
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-records.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/registry-domains.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-by-name.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-resolver-permissions.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-user.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-profile.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-resolver.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains-recently-registered.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-subdomains.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/eth-by-version.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/find-domains.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/namegraph.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-events.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domain-events.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/permissions-by-contract.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/domains-by-address.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-migrated-names.mdx
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/index.mdx
shrugs
left a comment
There was a problem hiding this comment.
unindexed domain seems to have snuck in
|
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/ensnode-sdk/src/omnigraph-api/example-queries.ts`:
- Line 518: The GraphQL operation name `AccountPrimaryName` should be renamed to
the plural form `AccountPrimaryNames` to match the example ID
`account-primary-names` and the `primaryNames` field that returns an array;
update the operation declaration (change `query AccountPrimaryName(...)` to
`query AccountPrimaryNames(...)`) and update any references or example metadata
that reference the operation name so they remain consistent with
`account-primary-names` and the `primaryNames` field.
In `@packages/ensskills/skills/omnigraph/SKILL.md`:
- Line 724: The GraphQL operation name AccountPrimaryName should be renamed to
the plural form (e.g., AccountPrimaryNames) to match the section ID
account-primary-names and the returned field primaryNames; update the operation
declaration in the SKILL.md query and any corresponding usages in
example-queries.ts to use the new operation name so names are consistent across
docs and examples.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: fb460eb6-21a6-4b0f-b67b-c16d38d4927a
📒 Files selected for processing (8)
docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name.mdxdocs/ensnode.io/src/data/omnigraph-examples/config.tsdocs/ensnode.io/src/data/omnigraph-examples/examples.jsondocs/ensnode.io/src/data/omnigraph-examples/responses.jsondocs/ensnode.io/src/data/omnigraph-examples/snapshot.jsonpackages/ensnode-sdk/src/omnigraph-api/example-queries.tspackages/ensskills/skills/omnigraph/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/ensnode.io/src/data/omnigraph-examples/config.ts (1)
107-107:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winComplete the description standardization.
Most example descriptions in this PR were updated to the standardized "This query below..." phrasing (lines 19, 28, 37, etc.), but these two entries still use "This query loads..." without "below". This breaks the consistency of the formatting standardization.
📝 Proposed fix
description: "This query loads the primary names for an account on Ethereum and Base.", + description: "This query below loads the primary names for an account on Ethereum and Base.",description: - "This query loads the primary name for an account on Ethereum and forward-resolves its profile in the same request.", + "This query below loads the primary name for an account on Ethereum and forward-resolves its profile in the same request.",Also applies to: 116-116
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/ensnode.io/src/data/omnigraph-examples/config.ts` at line 107, Update the two description fields that currently read "This query loads the primary names for an account on Ethereum and Base." to the standardized phrasing "This query below loads the primary names for an account on Ethereum and Base." — modify the description properties in the relevant config object entries (the description keys in config.ts for the example entries around the two reported occurrences) so they match the other examples' "This query below..." wording.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdx`:
- Line 50: The example ID referenced in the OmnigraphStaticExampleSet component
is wrong — replace the incorrect id "account-primary-name" in the
OmnigraphStaticExampleSet usage with the correct ID defined in config.ts
("account-primary-names") so the component can locate the example; locate the
OmnigraphStaticExampleSet line and update its id to "account-primary-names"
(config.ts also contains "account-primary-name-records" if that variant was
intended).
---
Outside diff comments:
In `@docs/ensnode.io/src/data/omnigraph-examples/config.ts`:
- Line 107: Update the two description fields that currently read "This query
loads the primary names for an account on Ethereum and Base." to the
standardized phrasing "This query below loads the primary names for an account
on Ethereum and Base." — modify the description properties in the relevant
config object entries (the description keys in config.ts for the example entries
around the two reported occurrences) so they match the other examples' "This
query below..." wording.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 32800875-0870-4f40-8fa9-005e2faa122a
📒 Files selected for processing (3)
docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/ens-resolution.mdxdocs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name-records.mdxdocs/ensnode.io/src/data/omnigraph-examples/config.ts
💤 Files with no reviewable changes (1)
- docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/examples/account-primary-name-records.mdx
|
@shrugs changes are related to schema in docs, so the |
| - **Forward resolution** — given a name (`vitalik.eth`), resolve its records: avatar, bio, links, multichain addresses, and more. | ||
| - **Reverse resolution** — given an address, resolve its **primary name** on a chain ([ENSIP-19](https://docs.ens.domains/ensip/19)). | ||
|
|
||
| One of the most common patterns when building on ENS is to combine both: given an address, first perform **reverse resolution** to get the primary name, then perform **forward resolution** on that name to fetch its avatar, social handles, and other display details. Because this pattern is so common, the Omnigraph provides support for it as **complete resolution** — reverse and forward in a single query with no extra round trip. |
There was a problem hiding this comment.
It'd be cool to highlight the complete resolution form here. For example, we could add a heading before we share detailed description of what the complete resolution is. Just to make it really clear that the complete resolution is a major thing to know of.
| title: "Recently Registered Subdomains", | ||
| description: "List a parent domain's subdomains ordered by most recent registration first.", | ||
| description: | ||
| "This query below lists a parent domain's subdomains ordered by most recent registration first.", |
There was a problem hiding this comment.
i would drop "below" from these descriptions to make them more generally applicable
Lite PR
Tip: Review docs on the ENSNode PR process
Summary
Why
Testing
Notes for Reviewer (Optional)
Pre-Review Checklist (Blocking)