Skip to content

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Mar 12:55
· 312 commits to main since this release
9657006

@namehash/ens-referrals@1.6.0

Minor Changes

  • #1663 c6cc7c4 Thanks @Goader! - Introduces a pluggable award model architecture for referral program editions. The original Holiday Awards logic is now encapsulated as the pie-split model. A new rev-share-limit model is added to support the upcoming referral program edition. ReferralProgramRules is now a discriminated union over awardModel, with an Unrecognized variant for forward compatibility — older clients safely skip editions with unknown models rather than crashing.

  • #1621 75c8b01 Thanks @Goader! - Added status field to referral program API responses (ReferrerLeaderboardPage, ReferrerEditionMetricsRanked, ReferrerEditionMetricsUnranked) indicating whether a program is "Scheduled", "Active", or "Closed" based on the program's timing relative to accurateAsOf.

  • #1603 8be113b Thanks @Goader! - Introduces referral program editions support with pre-configured edition definitions (ENS Holiday Awards December 2025, March 2026 edition). Updated ENSAnalytics API v1 to support edition-based leaderboard queries and added edition configuration to environment schema.

  • #1712 3ece8f0 Thanks @Goader! - Add admin disqualification support for rev-share-limit referral program editions.

  • #1542 500388b Thanks @Goader! - Flipped dependency relationship between ensnode-sdk and ens-referrals. Introduced new ENSReferralsClient for referral leaderboard APIs. Consolidated duplicate types (ChainId, AccountId, UnixTimestamp, Duration) by importing from ensnode-sdk.

  • #1562 84a4c5e Thanks @Goader! - Migrated v1 referrer leaderboard API to use mature PriceEth and PriceUsdc types from ensnode-sdk, replacing temporary RevenueContribution and USDQuantity types. Added /v1 subpath export to ens-referrals.

Patch Changes

@ensnode/ensnode-schema@1.6.0

Minor Changes

@ensnode/ensnode-sdk@1.6.0

Minor Changes

  • #1621 75c8b01 Thanks @Goader! - SWRCache fn now optionally receives the currently cached result as a parameter, allowing implementations to inspect cached data before deciding whether to return it or fetch fresh data. Fully backward compatible.

  • #1675 a13e206 Thanks @tk-o! - Includes mergeBlockNumberRanges helper function to enable indexed blockrange aggregation, for example, across multiple contract definitions.

  • #1715 1f8a05b Thanks @tk-o! - Added validateEnsIndexerPublicConfig and validateEnsIndexerVersionInfo functions.

  • #1660 9bffd55 Thanks @tk-o! - Introduces ENSDb module which includes data model definitions.

  • #1690 91d7653 Thanks @tk-o! - Renames ChainIndexingConfig* types to match BlockRefRange* pattern to support further data model improvements.

  • #1660 9bffd55 Thanks @tk-o! - Extends ENSIndexer module with functionality allowing compatibility check between two instances of ENSIndexer public config.

  • #1675 a13e206 Thanks @tk-o! - Includes buildOmnichainIndexingStatusSnapshot function for simple builder returning OmnichainIndexingStatusSnapshot object.

  • #1705 a0be9a6 Thanks @tk-o! - Added ensRainbowPublicConfig field to EnsIndexerPublicConfig.

  • #1699 3d7fb07 Thanks @tk-o! - Replaced Blockrange data model with more versatile ones: BlockNumberRange and BlockRefRange.

  • #1675 a13e206 Thanks @tk-o! - Introduced buildIndexedBlockranges function that builds a map of indexed blockranges configured for each indexed chain.

  • #1643 4cf6f41 Thanks @tk-o! - Introduces EnsIndexerClient class, supporting easy interactions with ENSIndexer APIs.

  • #1617 1bc599f Thanks @tk-o! - Introduces validateChainIndexingStatusSnapshot which enables validating values against business-layer requirements.

  • #1542 500388b Thanks @Goader! - Flipped dependency relationship between ensnode-sdk and ens-referrals. Introduced new ENSReferralsClient for referral leaderboard APIs. Consolidated duplicate types (ChainId, AccountId, UnixTimestamp, Duration) by importing from ensnode-sdk.

  • #1699 3d7fb07 Thanks @tk-o! - Replaced createIndexingConfig function with buildBlockRefRange that utilises updated BlockRefRange data model.

  • #1697 70b15a1 Thanks @tk-o! - Introduced streamlined datamodel for block ranges.

  • #1629 43d3e9c Thanks @tk-o! - Introduced validate* functions for Indexing Status data model. These functions enable new use cases on consumer side.

  • #1562 84a4c5e Thanks @Goader! - Migrated v1 referrer leaderboard API to use mature PriceEth and PriceUsdc types from ensnode-sdk, replacing temporary RevenueContribution and USDQuantity types. Added /v1 subpath export to ens-referrals.

Patch Changes

  • #1553 220b71f Thanks @lightwalker-eth! - Added getDefaultEnsNodeUrl utility to get the URL for the default ENSNode deployment for a given ENS namespace

  • #1688 6f4d39b Thanks @djstrong! - EnsRainbowApiClient.heal() now accepts labelhashes in any common format — with or without a 0x prefix, uppercase hex characters, bracket-enclosed encoded labelhashes, or odd-length hex strings — and normalizes them automatically. Invalid inputs return a HealBadRequestError rather than throwing.

    The underlying normalization utilities (parseLabelHash, parseEncodedLabelHash, parseLabelHashOrEncodedLabelHash) are also exported from @ensnode/ensnode-sdk for use in other contexts.

  • #1603 8be113b Thanks @Goader! - Adds parseTimestamp utility to parse ISO 8601 date strings into Unix timestamps. Adds errorTtl option to SWRCache for configuring separate revalidation intervals for cached errors vs. successful results.

  • Updated dependencies [a87b437]:

    • @ensnode/datasources@1.6.0

@ensnode/ensrainbow-sdk@1.6.0

Minor Changes

  • #1705 a0be9a6 Thanks @tk-o! - Altered code references accordingly to the updated EnsIndexerPublicConfig data model.

Patch Changes

  • #1688 6f4d39b Thanks @djstrong! - EnsRainbowApiClient.heal() now accepts labelhashes in any common format — with or without a 0x prefix, uppercase hex characters, bracket-enclosed encoded labelhashes, or odd-length hex strings — and normalizes them automatically. Invalid inputs return a HealBadRequestError rather than throwing.

    The underlying normalization utilities (parseLabelHash, parseEncodedLabelHash, parseLabelHashOrEncodedLabelHash) are also exported from @ensnode/ensnode-sdk for use in other contexts.

  • #1425 b06e60f Thanks @djstrong! - Adds /v1/config endpoint to ENSRainbow API returning public configuration (version, label set, records count) and deprecates /v1/version endpoint. The new endpoint provides comprehensive service discovery capabilities for clients.

    Server startup now requires an initialized database (with a precalculated record count). Run ingestion before starting the server so /v1/config is accurate and the service is ready to serve. If the database is empty or uninitialized, startup fails with a clear error directing you to run ingestion first.

@ensnode/ponder-sdk@1.6.0

Minor Changes

  • #1602 ce9ea49 Thanks @tk-o! - Introduce the ponder-sdk package, including an initial PonderClient implementation.

  • #1675 a13e206 Thanks @tk-o! - Includes mergeBlockNumberRanges helper function to enable indexed blockrange aggregation, for example, across multiple contract definitions.

  • #1675 a13e206 Thanks @tk-o! - Introduces LocalPonderClient class which wraps PonderClient with useful data model enhancements.

  • #1604 eec37a7 Thanks @tk-o! - Extend PonderClient with additional methods: health(), metrics().

  • #1699 3d7fb07 Thanks @tk-o! - Replaced Blockrange data model with more versatile ones: BlockNumberRange and BlockRefRange.

  • #1697 70b15a1 Thanks @tk-o! - Introduced streamlined datamodel for block ranges.

@ensnode/datasources@1.6.0

Patch Changes

  • #1516 a87b437 Thanks @shrugs! - Introduces a temporary sepolia-v2 ENS Namespace, intended for testing of ephemeral ENSv2 deployments to the Sepolia chain. This feature is intended for developers of the ENS protocol, and is highly experimental and should be considered unstable.

@ensnode/ensnode-react@1.6.0

Patch Changes

@namehash/namehash-ui@1.6.0

Patch Changes

@ensnode/ponder-subgraph@1.6.0

ensadmin@1.6.0

Minor Changes

  • #1705 a0be9a6 Thanks @tk-o! - Altered code references accordingly to the updated EnsIndexerPublicConfig data model.

  • #1701 b0de5e9 Thanks @tk-o! - No longer depends on @ensnode/ponder-metadata package.

  • #1332 bfaa673 Thanks @tk-o! - Updates useIndexingStatusWithSwr to always return current realtime indexing status projection.

  • #1699 3d7fb07 Thanks @tk-o! - Applied updated data model for block ranges.

  • #1332 bfaa673 Thanks @tk-o! - Includes ProjectionInfo component on Indexing Status page.

Patch Changes

ensapi@1.6.0

Minor Changes

  • #1663 c6cc7c4 Thanks @Goader! - Introduces a pluggable award model architecture for referral program editions. The original Holiday Awards logic is now encapsulated as the pie-split model. A new rev-share-limit model is added to support the upcoming referral program edition. ReferralProgramRules is now a discriminated union over awardModel, with an Unrecognized variant for forward compatibility — older clients safely skip editions with unknown models rather than crashing.

  • #1621 75c8b01 Thanks @Goader! - Added status field to referral program API responses (ReferrerLeaderboardPage, ReferrerEditionMetricsRanked, ReferrerEditionMetricsUnranked) indicating whether a program is "Scheduled", "Active", or "Closed" based on the program's timing relative to accurateAsOf.

  • #1603 8be113b Thanks @Goader! - Introduces referral program editions support with pre-configured edition definitions (ENS Holiday Awards December 2025, March 2026 edition). Updated ENSAnalytics API v1 to support edition-based leaderboard queries and added edition configuration to environment schema.

  • #1654 40b95fb Thanks @shrugs! - ENSv2 GraphQL API: BREAKING: Removes Account.domains in favor of Query.domains with owner specified.

  • #1576 6e98fb6 Thanks @shrugs! - The experimental ENSv2 API now supports the following Domain filters, namely matching indexed Domains by name prefix.

    • Query.domains(where: { name?: "example.et", owner?: "0xdead...beef" })
  • #1705 a0be9a6 Thanks @tk-o! - Altered code references accordingly to the updated EnsIndexerPublicConfig data model.

  • #1670 3ce245e Thanks @shrugs! - ENSv2 GraphQL API: BREAKING — Domain.label is now a Label rather than a String, providing Label.hash and Label.interpreted (the previous value of Domain.label).

  • #1670 3ce245e Thanks @shrugs! - ENSv2GraphQL API: Introduce Domain.subdomainCount.

  • #1659 43b50cf Thanks @shrugs! - The ens-test-env namespace now functions against devnet commit 762de44, which includes the major refactor of ENSv2 onto the ENS Root Chain, away from Namechain.

  • #1621 75c8b01 Thanks @Goader! - Referral program edition leaderboard caches now check for immutability within the cache builder function. Closed editions past the safety window return cached data without re-fetching.

  • #1655 41077b3 Thanks @shrugs! - ENSv2 API: Breaking change, Registration.start is replaced by Registration.event.timestamp.

  • #1658 08e893e Thanks @shrugs! - ENSv2 GraphQL API: Introduces Domain.subdomains for traversal of the unified ENSv1/ENSv2 namegraph without needing to select a type-specific fragment.

  • #1554 365c996 Thanks @Goader! - Implemented API versioning for ENSAnalytics referral endpoints. Introduced explicit /ensanalytics/v1/* routes while preserving existing /ensanalytics/* routes as implicit v0.

  • #1595 229eaeb Thanks @shrugs! - ENSv2 GraphQL API: Introduces order criteria for Domain methods, i.e. Query.domains(order: { by: NAME, dir: ASC }). The supported Order criteria are NAME, REGISTRATION_TIMESTAMP, and REGISTRATION_EXPIRY in either ASC or DESC orders, defaulting to NAME and ASC.

  • #1654 40b95fb Thanks @shrugs! - Adds a canonical?: boolean filter to the where filter in Query.domains. When specified, the resulting set of Domains is composed exclusively of Canonical Domains.

Patch Changes

  • #1680 a5f9178 Thanks @shrugs! - add Account.domains and enhance Domain.subdomains and Registry.domains with filtering and ordering

    Account.domains (new) — paginated connection of domains owned by this account.

    • where: { name?: String, canonical?: Boolean } — optional partial Interpreted Name filter and canonical filter (defaults to false)
    • order: { by: NAME | REGISTRATION_TIMESTAMP | REGISTRATION_EXPIRY, dir: ASC | DESC } — ordering

    Domain.subdomains (enhanced) — paginated connection of subdomains of this domain, now with filtering and ordering.

    • where: { name?: String } — optional partial Interpreted Name filter
    • order: { by: NAME | REGISTRATION_TIMESTAMP | REGISTRATION_EXPIRY, dir: ASC | DESC } — ordering

    Registry.domains (enhanced) — paginated connection of domains in this registry, now with filtering and ordering.

    • where: { name?: String } — optional partial Interpreted Name filter
    • order: { by: NAME | REGISTRATION_TIMESTAMP | REGISTRATION_EXPIRY, dir: ASC | DESC } — ordering

    Query.domains (updated) — where.name is now required. Added optional where.canonical filter (defaults to false).

    • where: { name: String!, canonical?: Boolean } — required partial Interpreted Name, optional canonical filter
    • order: { by: NAME | REGISTRATION_TIMESTAMP | REGISTRATION_EXPIRY, dir: ASC | DESC } — ordering
  • #1542 500388b Thanks @Goader! - Flipped dependency relationship between ensnode-sdk and ens-referrals. Introduced new ENSReferralsClient for referral leaderboard APIs. Consolidated duplicate types (ChainId, AccountId, UnixTimestamp, Duration) by importing from ensnode-sdk.

  • #1562 84a4c5e Thanks @Goader! - Migrated v1 referrer leaderboard API to use mature PriceEth and PriceUsdc types from ensnode-sdk, replacing temporary RevenueContribution and USDQuantity types. Added /v1 subpath export to ens-referrals.

  • Updated dependencies [c6cc7c4, 75c8b01, 220b71f, 75c8b01, 8be113b, a13e206, 1f8a05b, 9bffd55, 91d7653, 9bffd55, a13e206, a0be9a6, 3d7fb07, 6f4d39b, a13e206, 4cf6f41, 8be113b, 3ece8f0, 1bc599f, 500388b, 9bffd55, a87b437, 3d7fb07, 70b15a1, 43d3e9c, 84a4c5e]:

    • @namehash/ens-referrals@1.6.0
    • @ensnode/ensnode-sdk@1.6.0
    • @ensnode/ensnode-schema@1.6.0
    • @ensnode/datasources@1.6.0
    • @ensnode/ponder-subgraph@1.6.0

ensindexer@1.6.0

Minor Changes

  • #1702 57fe689 Thanks @tk-o! - Introduced EnsDbClient and EnsDbWriterWorker to enable storing metadata in ENSDb.

  • #1705 a0be9a6 Thanks @tk-o! - Altered code references accordingly to the updated EnsIndexerPublicConfig data model.

  • #1659 43b50cf Thanks @shrugs! - The ens-test-env namespace now functions against devnet commit 762de44, which includes the major refactor of ENSv2 onto the ENS Root Chain, away from Namechain.

  • #1675 a13e206 Thanks @tk-o! - Introduces IndexingStatusBuilder class that integrates LocalPonderClient to enhance Indexing Status API.

  • #1701 b0de5e9 Thanks @tk-o! - No longer depends on @ensnode/ponder-metadata package.

  • #1715 1f8a05b Thanks @tk-o! - Refactored HTTP handlers to rely solely on ENSDb Client for data.

  • #1699 3d7fb07 Thanks @tk-o! - Applied updated data model for block ranges.

Patch Changes

ensrainbow@1.6.0

Minor Changes

  • #1648 42534c8 Thanks @djstrong! - Constrain CSV input to single-column format (label only). The two-column format (label + labelhash) is no longer supported. All labelhashes are now computed deterministically from labels, removing the risk of incorrect mappings from untrusted labelhash values.

Patch Changes

@docs/ensnode@1.6.0

Minor Changes

  • #1705 a0be9a6 Thanks @tk-o! - Altered code references accordingly to the updated EnsIndexerPublicConfig data model.

  • #1699 3d7fb07 Thanks @tk-o! - Updated docs/usage/api/ page.

Patch Changes

fallback-ensapi@1.6.0

Patch Changes

@docs/mintlify@1.6.0

@docs/ensrainbow@1.6.0

📦 NPM packages

🐳 Docker images