@ensnode/datasources@1.15.2
Patch Changes
-
#2242
0eec193Thanks @shrugs! - Add contract identification by address.@ensnode/datasourcesexportsidentifyDatasourceContracts(namespaceId, query), which finds every well-known contract in a namespace's datasources whose address matches a given address, optionally scoped to a chain. -
#2191
39cb445Thanks @tk-o! - Updates thesepolia-v2ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia. -
#2267
6165f50Thanks @shrugs! - Consolidate UniversalResolver onto theIUniversalResolverproxy. Each ENSRoot Datasource now exposes a singleUniversalResolvercontract pointing at the proxy address (0xeeeeeeee14d718c2b47d9923deab1335e144eeeeon mainnet/sepolia), replacing the separateUniversalResolver(V1) andUniversalResolverV2contracts. The exportedUniversalResolverABIis nowIUniversalResolvermerged withIMulticallable. -
Updated dependencies [
83ed372]:- enssdk@1.15.2
@namehash/ens-referrals@1.15.2
Patch Changes
enscli@1.15.2
Patch Changes
-
#2242
0eec193Thanks @shrugs! -enscligainsdatasources identify <address>: an offline command that reports which well-known ENS contract an address corresponds to. It accepts a bare address, a chain-scopedchainId:address, or full CAIP-10eip155:chainId:address, and--namespace(defaultmainnet) selects which namespace to search. A miss returns{ matches: [] }with exit code0. -
#2242
0eec193Thanks @shrugs! - Introduceenscli, a new agent- and human-friendly CLI for ENS that wrapsenssdkand the ENS Omnigraph. It supports raw Omnigraph queries (enscli ensnode omnigraph "<query>" --variables …), offline schema exploration (enscli ensnode omnigraph schema [Type[.field]]), indexing status, ENSRainbow healing, andnamehash/labelhash. It defaults to NameHash-hosted instances per--namespace(mainnet, sepolia, sepolia-v2), resolves config from flags/env/.env, outputs JSON when piped and a pretty form in a TTY, and hardens inputs against agent hallucinations. -
Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,04388d2,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @ensnode/ensrainbow-sdk@1.15.2
@ensnode/ensdb-sdk@1.15.2
Patch Changes
-
#2259
5f929d8Thanks @shrugs! - Index-accelerateREGISTRATION_TIMESTAMP/REGISTRATION_EXPIRY-ordered domain queries (e.g.Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joineddomains → latest_registration_indexes → registrationsand sorted the full registry partition — ~55s for.eth's subdomains. The latest registration's start/expiry is now mirrored onto the Domain row (__latestRegistrationStart/__latestRegistrationExpiry) with composite indexes(registry_id, <col>, id), turning the query into an index-ordered scan. The sort columns are NOT NULL — an absent value (no registration, or a never-expiring registration) is materialized as a+∞sentinel — so a single plain composite per column serves both directions with a plain keyset tuple, and the sentinel sorts last for ASC and first for DESC. -
#2271
83ed372Thanks @shrugs! - Theresolverstable gains anis_extendedcolumn — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId0x9061b923) — populated at index time via a single cachedsupportsInterfaceRPC. The Omnigraph API exposes it as a newResolver.extended: Boolean!field. -
#2255
c8267e4Thanks @shrugs! - Add a materializeddomains.__canonical_name_prefixcolumn — the first 64 code points ofcanonical_name— to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can nowWHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefixinstead of replicating the previousleft(canonical_name, 256)expression index.canonical_nameis unchanged and remains the column for exact (=/IN) matches and display; the Omnigraphname.starts_withfilter now targets the prefix column while continuing to returncanonical_name. -
Updated dependencies [
83ed372,0eec193,83ed372]:- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
enskit@1.15.2
Patch Changes
- Updated dependencies [
83ed372]:- enssdk@1.15.2
@ensnode/ensnode-sdk@1.15.2
Patch Changes
-
#2271
83ed372Thanks @shrugs! - The EIP-165supportsInterfaceprobe (used to classify a Resolver's ENSIP-10extendedsupport at index time) now opts out of Ponder's empty-response retry. A0x("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder'scontext.clientpreviously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving toextended = false). -
#2242
0eec193Thanks @shrugs! -getDefaultEnsNodeUrlnow returns the hosted default for thesepolia-v2namespace (https://api.v2-sepolia.ensnode.io). -
Updated dependencies [
0eec193,83ed372,39cb445,6165f50]:- @ensnode/datasources@1.15.2
- enssdk@1.15.2
@ensnode/ensrainbow-sdk@1.15.2
Patch Changes
-
#2186
04388d2Thanks @djstrong! - Labelhash verification for heal responses now runs inensrainbow(server) instead of@ensnode/ensrainbow-sdk(client). Malformed rainbow records — where the stored label does not hash back to the requestedlabelHash— are rejected asNotFound. -
Updated dependencies [
83ed372]:- enssdk@1.15.2
enssdk@1.15.2
Patch Changes
- #2271
83ed372Thanks @shrugs! - Adds theResolvableNamebranded type withisResolvableName/asResolvableNameguards — anInterpretedNamethat can be DNS-encoded and resolved (no Encoded LabelHash segments, every label under 256 bytes). Also adds theUnindexedDomainIdtype andmakeUnindexedDomainId;DomainIdnow includesUnindexedDomainId.
ensskills@1.15.2
Patch Changes
-
#2242
0eec193Thanks @shrugs! - Theenscliagent skill documents the newdatasources identifycommand. -
#2242
0eec193Thanks @shrugs! - Introduceensskills, a versioned,skills-npm-installable package of ENS agent skills. It ships theens-protocolskill (a concise, stable, vendor-neutral conceptual model of the ENS protocol — nametree, normalization, hashing, registry/resolver/registrar, resolution, records, multichain — with pull-as-needed reference pages), theomnigraphskill (autogenerated schema reference + vetted example queries, plus prose on the unified ENSv1+ENSv2 datamodel and resolution), and theenscliskill (running Omnigraph queries and the other CLI commands, with the output contract, namespace/URL resolution, and input hardening), with stub skills reserved forenssdk,enskit,migrate-to-omnigraph, andunigraph-sql. -
#2242
0eec193Thanks @shrugs! - Point the base skill at the publishedllms.txt/llms-full.txtdocs endpoints so agents can load the full ENSNode documentation when a question reaches beyond the skills.
@namehash/namehash-ui@1.15.2
Patch Changes
- Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
@ensnode/ponder-sdk@1.15.2
@ensnode/ponder-subgraph@1.15.2
ensadmin@1.15.2
Patch Changes
- Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @namehash/namehash-ui@1.15.2
- @ensnode/scalar-react@0.0.0
ensapi@1.15.2
Patch Changes
-
#2240
7d23ee9Thanks @sevenzing! - Omnigraph API: IntroducesDomain.resolve.profileandPrimaryNameRecord.resolve.profilefor resolving semantic record values. -
#2265
c6f9643Thanks @shrugs! - Omnigraph API: AddsDomainResolver.effective, the Resolver that ENS Forward Resolution (ENSIP-10) lands on for a Domain. Complements the existingDomainResolver.assigned(the Domain's directly-assigned Resolver). -
#2267
6165f50Thanks @shrugs! - Omnigraph API: Resolution now uses the ENSv2-ready stable UniversalResolver proxy address when not accelerated. -
#2268
ff75f79Thanks @shrugs! - Forward Resolution now fully delegates to theUniversalResolverwhenever records cannot be accelerated, correctly implementing the ENSv2-Readiness check forur.integration-test.eth. Unaccelerated requests are always delegated to theUniversalResolver. -
#1974
8a86fb4Thanks @sevenzing! - Changes related to Omnigraph:- add
Domain.resolve { records, trace, acceleration, profile? }for forward resolution driven by the GraphQL selection set - add
Account.resolve { primaryName(by: ...), primaryNames(where: ...) }for reverse (ENSIP-19 primary name) resolution with@oneOfinputs (coinType/chainName,coinTypes/chainNames) - add
PrimaryNameRecord.resolve { records, ... }for forward resolution of the resolved primary name
- add
-
#2271
83ed372Thanks @shrugs! - Theresolverstable gains anis_extendedcolumn — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId0x9061b923) — populated at index time via a single cachedsupportsInterfaceRPC. The Omnigraph API exposes it as a newResolver.extended: Boolean!field. -
#2255
c8267e4Thanks @shrugs! - Add a materializeddomains.__canonical_name_prefixcolumn — the first 64 code points ofcanonical_name— to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can nowWHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefixinstead of replicating the previousleft(canonical_name, 256)expression index.canonical_nameis unchanged and remains the column for exact (=/IN) matches and display; the Omnigraphname.starts_withfilter now targets the prefix column while continuing to returncanonical_name. -
#2271
83ed372Thanks @shrugs! - Omnigraph API — Resolvable-but-unindexed Domains & Accounts (off-chain / CCIP-Read names, unindexed 3DNS names, wildcard subnames) are now resolvable viaQuery.domain(by: { name })andQuery.account(by: { address }), instead of returningnull. This is supported by an additional concept, theUnindexedDomain, which expands the possible concrete types of theDomaininterface. -
Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,5f929d8,83ed372,c8267e4,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @ensnode/ensdb-sdk@1.15.2
- @namehash/ens-referrals@1.15.2
- @ensnode/ponder-subgraph@1.15.2
ensindexer@1.15.2
Patch Changes
-
#2271
83ed372Thanks @shrugs! - The EIP-165supportsInterfaceprobe (used to classify a Resolver's ENSIP-10extendedsupport at index time) now opts out of Ponder's empty-response retry. A0x("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder'scontext.clientpreviously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving toextended = false). -
#2191
39cb445Thanks @tk-o! - Updates thesepolia-v2ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia. -
#2259
5f929d8Thanks @shrugs! - Index-accelerateREGISTRATION_TIMESTAMP/REGISTRATION_EXPIRY-ordered domain queries (e.g.Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joineddomains → latest_registration_indexes → registrationsand sorted the full registry partition — ~55s for.eth's subdomains. The latest registration's start/expiry is now mirrored onto the Domain row (__latestRegistrationStart/__latestRegistrationExpiry) with composite indexes(registry_id, <col>, id), turning the query into an index-ordered scan. The sort columns are NOT NULL — an absent value (no registration, or a never-expiring registration) is materialized as a+∞sentinel — so a single plain composite per column serves both directions with a plain keyset tuple, and the sentinel sorts last for ASC and first for DESC. -
#2271
83ed372Thanks @shrugs! - Theresolverstable gains anis_extendedcolumn — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId0x9061b923) — populated at index time via a single cachedsupportsInterfaceRPC. The Omnigraph API exposes it as a newResolver.extended: Boolean!field. -
#2255
c8267e4Thanks @shrugs! - Add a materializeddomains.__canonical_name_prefixcolumn — the first 64 code points ofcanonical_name— to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can nowWHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefixinstead of replicating the previousleft(canonical_name, 256)expression index.canonical_nameis unchanged and remains the column for exact (=/IN) matches and display; the Omnigraphname.starts_withfilter now targets the prefix column while continuing to returncanonical_name. -
Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,5f929d8,83ed372,c8267e4,04388d2,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @ensnode/ensdb-sdk@1.15.2
- @ensnode/ensrainbow-sdk@1.15.2
- @ensnode/ponder-sdk@1.15.2
ensrainbow@1.15.2
Patch Changes
-
#2186
04388d2Thanks @djstrong! - Labelhash verification for heal responses now runs inensrainbow(server) instead of@ensnode/ensrainbow-sdk(client). Malformed rainbow records — where the stored label does not hash back to the requestedlabelHash— are rejected asNotFound. -
Updated dependencies [
83ed372,0eec193,83ed372,04388d2]:- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @ensnode/ensrainbow-sdk@1.15.2
fallback-ensapi@1.15.2
Patch Changes
- Updated dependencies [
0eec193,83ed372,0eec193,39cb445,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
@docs/ensnode@1.15.2
Patch Changes
@docs/ensrainbow@1.15.2
Patch Changes
- Updated dependencies []:
- @namehash/namehash-ui@1.15.2
@ensnode/enskit-react-example@0.0.10
Patch Changes
- Updated dependencies [
83ed372]:- enssdk@1.15.2
- enskit@1.15.2
@ensnode/enssdk-example@0.0.4
Patch Changes
- Updated dependencies [
83ed372]:- enssdk@1.15.2
@ensnode/integration-test-env@1.15.2
Patch Changes
- Updated dependencies [
0eec193,83ed372,0eec193,83ed372,39cb445,5f929d8,83ed372,c8267e4,6165f50]:- @ensnode/datasources@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- enssdk@1.15.2
- @ensnode/ensdb-sdk@1.15.2
- @ensnode/shared-configs@1.15.2
@ensnode/ensindexer-perf-testing@1.15.2
📦 NPM packages
- @ensnode/datasources@1.15.2
- enscli@1.15.2
- @ensnode/ensdb-sdk@1.15.2
- enskit@1.15.2
- @ensnode/ensnode-sdk@1.15.2
- @ensnode/ensrainbow-sdk@1.15.2
- enssdk@1.15.2
- ensskills@1.15.2
- @ensnode/ponder-sdk@1.15.2
- @ensnode/ponder-subgraph@1.15.2