Skip to content

v1.15.2

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jun 16:38
· 6 commits to main since this release
a83c910

@ensnode/datasources@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - Add contract identification by address. @ensnode/datasources exports identifyDatasourceContracts(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 39cb445 Thanks @tk-o! - Updates the sepolia-v2 ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia.

  • #2267 6165f50 Thanks @shrugs! - Consolidate UniversalResolver onto the IUniversalResolver proxy. Each ENSRoot Datasource now exposes a single UniversalResolver contract pointing at the proxy address (0xeeeeeeee14d718c2b47d9923deab1335e144eeee on mainnet/sepolia), replacing the separate UniversalResolver (V1) and UniversalResolverV2 contracts. The exported UniversalResolverABI is now IUniversalResolver merged with IMulticallable.

  • Updated dependencies [83ed372]:

    • enssdk@1.15.2

@namehash/ens-referrals@1.15.2

Patch Changes

enscli@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - enscli gains datasources identify <address>: an offline command that reports which well-known ENS contract an address corresponds to. It accepts a bare address, a chain-scoped chainId:address, or full CAIP-10 eip155:chainId:address, and --namespace (default mainnet) selects which namespace to search. A miss returns { matches: [] } with exit code 0.

  • #2242 0eec193 Thanks @shrugs! - Introduce enscli, a new agent- and human-friendly CLI for ENS that wraps enssdk and 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, and namehash/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 5f929d8 Thanks @shrugs! - Index-accelerate REGISTRATION_TIMESTAMP / REGISTRATION_EXPIRY-ordered domain queries (e.g. Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joined domains → latest_registration_indexes → registrations and 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 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_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 83ed372 Thanks @shrugs! - The EIP-165 supportsInterface probe (used to classify a Resolver's ENSIP-10 extended support at index time) now opts out of Ponder's empty-response retry. A 0x ("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder's context.client previously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving to extended = false).

  • #2242 0eec193 Thanks @shrugs! - getDefaultEnsNodeUrl now returns the hosted default for the sepolia-v2 namespace (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 04388d2 Thanks @djstrong! - Labelhash verification for heal responses now runs in ensrainbow (server) instead of @ensnode/ensrainbow-sdk (client). Malformed rainbow records — where the stored label does not hash back to the requested labelHash — are rejected as NotFound.

  • Updated dependencies [83ed372]:

    • enssdk@1.15.2

enssdk@1.15.2

Patch Changes

  • #2271 83ed372 Thanks @shrugs! - Adds the ResolvableName branded type with isResolvableName/asResolvableName guards — an InterpretedName that can be DNS-encoded and resolved (no Encoded LabelHash segments, every label under 256 bytes). Also adds the UnindexedDomainId type and makeUnindexedDomainId; DomainId now includes UnindexedDomainId.

ensskills@1.15.2

Patch Changes

  • #2242 0eec193 Thanks @shrugs! - The enscli agent skill documents the new datasources identify command.

  • #2242 0eec193 Thanks @shrugs! - Introduce ensskills, a versioned, skills-npm-installable package of ENS agent skills. It ships the ens-protocol skill (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), the omnigraph skill (autogenerated schema reference + vetted example queries, plus prose on the unified ENSv1+ENSv2 datamodel and resolution), and the enscli skill (running Omnigraph queries and the other CLI commands, with the output contract, namespace/URL resolution, and input hardening), with stub skills reserved for enssdk, enskit, migrate-to-omnigraph, and unigraph-sql.

  • #2242 0eec193 Thanks @shrugs! - Point the base skill at the published llms.txt / llms-full.txt docs endpoints so agents can load the full ENSNode documentation when a question reaches beyond the skills.

@namehash/namehash-ui@1.15.2

Patch Changes

@ensnode/ponder-sdk@1.15.2

@ensnode/ponder-subgraph@1.15.2

ensadmin@1.15.2

Patch Changes

ensapi@1.15.2

Patch Changes

  • #2240 7d23ee9 Thanks @sevenzing! - Omnigraph API: Introduces Domain.resolve.profile and PrimaryNameRecord.resolve.profile for resolving semantic record values.

  • #2265 c6f9643 Thanks @shrugs! - Omnigraph API: Adds DomainResolver.effective, the Resolver that ENS Forward Resolution (ENSIP-10) lands on for a Domain. Complements the existing DomainResolver.assigned (the Domain's directly-assigned Resolver).

  • #2267 6165f50 Thanks @shrugs! - Omnigraph API: Resolution now uses the ENSv2-ready stable UniversalResolver proxy address when not accelerated.

  • #2268 ff75f79 Thanks @shrugs! - Forward Resolution now fully delegates to the UniversalResolver whenever records cannot be accelerated, correctly implementing the ENSv2-Readiness check for ur.integration-test.eth. Unaccelerated requests are always delegated to the UniversalResolver.

  • #1974 8a86fb4 Thanks @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 @oneOf inputs (coinType/chainName, coinTypes/chainNames)
    • add PrimaryNameRecord.resolve { records, ... } for forward resolution of the resolved primary name
  • #2271 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_name.

  • #2271 83ed372 Thanks @shrugs! - Omnigraph API — Resolvable-but-unindexed Domains & Accounts (off-chain / CCIP-Read names, unindexed 3DNS names, wildcard subnames) are now resolvable via Query.domain(by: { name }) and Query.account(by: { address }), instead of returning null. This is supported by an additional concept, the UnindexedDomain, which expands the possible concrete types of the Domain interface.

  • 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 83ed372 Thanks @shrugs! - The EIP-165 supportsInterface probe (used to classify a Resolver's ENSIP-10 extended support at index time) now opts out of Ponder's empty-response retry. A 0x ("returned no data") response from a pre-EIP-165 Resolver is a definitive "not supported", never transient — but Ponder's context.client previously retried it 9× with exponential backoff (~64s each), making a full index pathologically slow. The probe now fails fast (still resolving to extended = false).

  • #2191 39cb445 Thanks @tk-o! - Updates the sepolia-v2 ENS Namespace to support the latest ENSv1+ENSv2 test deployment on Sepolia.

  • #2259 5f929d8 Thanks @shrugs! - Index-accelerate REGISTRATION_TIMESTAMP / REGISTRATION_EXPIRY-ordered domain queries (e.g. Domain.subdomains(order: { by: REGISTRATION_TIMESTAMP, dir: DESC })). Previously these joined domains → latest_registration_indexes → registrations and 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 83ed372 Thanks @shrugs! - The resolvers table gains an is_extended column — whether the Resolver implements ENSIP-10 wildcard resolution (IExtendedResolver, interfaceId 0x9061b923) — populated at index time via a single cached supportsInterface RPC. The Omnigraph API exposes it as a new Resolver.extended: Boolean! field.

  • #2255 c8267e4 Thanks @shrugs! - Add a materialized domains.__canonical_name_prefix column — the first 64 code points of canonical_name — to back left-anchored / substring search and NAME ordering. Direct-SQL consumers can now WHERE __canonical_name_prefix LIKE 'vit%' ORDER BY __canonical_name_prefix instead of replicating the previous left(canonical_name, 256) expression index. canonical_name is unchanged and remains the column for exact (= / IN) matches and display; the Omnigraph name.starts_with filter now targets the prefix column while continuing to return canonical_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 04388d2 Thanks @djstrong! - Labelhash verification for heal responses now runs in ensrainbow (server) instead of @ensnode/ensrainbow-sdk (client). Malformed rainbow records — where the stored label does not hash back to the requested labelHash — are rejected as NotFound.

  • 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

@docs/ensnode@1.15.2

Patch Changes

  • Updated dependencies [83ed372, 0eec193]:
    • @ensnode/ensnode-sdk@1.15.2
    • @namehash/namehash-ui@1.15.2

@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

@ensnode/ensindexer-perf-testing@1.15.2

📦 NPM packages

🐳 Docker images