diff --git a/.changeset/bright-rivers-flow.md b/.changeset/bright-rivers-flow.md deleted file mode 100644 index a75097f69b..0000000000 --- a/.changeset/bright-rivers-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@namehash/ens-referrals": minor ---- - -Add `BaseReferralProgramEditionConfig` as the shared parent of `ReferralProgramEditionConfig` and `BaseReferralProgramEditionSummary`. diff --git a/.changeset/calm-ravens-feel.md b/.changeset/calm-ravens-feel.md deleted file mode 100644 index 643262d81b..0000000000 --- a/.changeset/calm-ravens-feel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensadmin": minor ---- - -Removed _Records Count_ info from the ENSRainbow card UI on the _Connection_ page. diff --git a/.changeset/clear-rabbits-punch.md b/.changeset/clear-rabbits-punch.md deleted file mode 100644 index 19b91950c7..0000000000 --- a/.changeset/clear-rabbits-punch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensadmin": minor ---- - -Renamed `ENSNodeConfig*` components to follow the `EnsNodeStackInfo*` pattern. diff --git a/.changeset/cool-friends-share.md b/.changeset/cool-friends-share.md deleted file mode 100644 index f9070e4d20..0000000000 --- a/.changeset/cool-friends-share.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensindexer": minor ---- - -Updates ens-test-env devnet commit to `580c60a`. diff --git a/.changeset/devnet-accounts-refactor.md b/.changeset/devnet-accounts-refactor.md deleted file mode 100644 index 8ad5c765da..0000000000 --- a/.changeset/devnet-accounts-refactor.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Replaces the flat `DEVNET_DEPLOYER` / `DEVNET_OWNER` / `DEVNET_USER` / `DEVNET_USER2` constants exported from `@ensnode/ensnode-sdk/internal` with a single `DevnetAccounts` object that groups each account's `address` and `resolver`. Consumers must migrate to `DevnetAccounts.{deployer,owner,user,user2}.{address,resolver}`. diff --git a/.changeset/docker-compose-move-docs.md b/.changeset/docker-compose-move-docs.md deleted file mode 100644 index 1f97949700..0000000000 --- a/.changeset/docker-compose-move-docs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@docs/ensnode": patch ---- - -Updated docs and CI test paths to reflect the new `docker/` location of `docker-compose.yml`. diff --git a/.changeset/docker-compose-move-integration-test-env.md b/.changeset/docker-compose-move-integration-test-env.md deleted file mode 100644 index 6c9f057258..0000000000 --- a/.changeset/docker-compose-move-integration-test-env.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/integration-test-env": patch ---- - -Moved `docker-compose.yml` into a separate `docker/` directory. diff --git a/.changeset/eager-otters-wave.md b/.changeset/eager-otters-wave.md deleted file mode 100644 index 4d454aecf0..0000000000 --- a/.changeset/eager-otters-wave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Add `$ENS Tokens` as a supported currency in `@ensnode/ensnode-sdk`: `CurrencyIds.ENSTokens`, `PriceEnsTokens`/`SerializedPriceEnsTokens` types, and the `priceEnsTokens`, `parseEnsTokens`, `serializePriceEnsTokens`, `deserializePriceEnsTokens` helpers. diff --git a/.changeset/eliminate-zero-address-placeholders.md b/.changeset/eliminate-zero-address-placeholders.md deleted file mode 100644 index 86f4f6f7a3..0000000000 --- a/.changeset/eliminate-zero-address-placeholders.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/datasources": patch ---- - -Removed `LegacyEthRegistrarController`, `WrappedEthRegistrarController`, and `UniversalRegistrarRenewalWithReferrer` placeholder entries from the `sepolia-v2` namespace, and `UniversalRegistrarRenewalWithReferrer` from `ens-test-env`. `AnyRegistrarControllerABI` now also includes the `UniversalRegistrarRenewalWithReferrer` ABI. diff --git a/.changeset/ensdb-sdk-migrated-nodes-split.md b/.changeset/ensdb-sdk-migrated-nodes-split.md deleted file mode 100644 index 21f5a364eb..0000000000 --- a/.changeset/ensdb-sdk-migrated-nodes-split.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensdb-sdk": minor ---- - -`migrated_nodes` renamed to `migrated_nodes_by_parent` and re-keyed by composite `(parentNode, labelHash)` to match the payload of `ENSv1Registry(Old)#NewOwner` events. New sibling `migrated_nodes_by_node` keyed solely by `node` for the three `ENSv1RegistryOld` handlers (`Transfer` / `NewTTL` / `NewResolver`) that emit only `node`. Both rows are written together by the migration helper so each read site addresses whichever key matches its event payload. Schema definitions live in a new `migrated-nodes.schema.ts`. diff --git a/.changeset/ensnode-sdk-managed-name-api.md b/.changeset/ensnode-sdk-managed-name-api.md deleted file mode 100644 index 21eab6477b..0000000000 --- a/.changeset/ensnode-sdk-managed-name-api.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Centralized Managed Name and Root Registry helpers. - -- **Removed:** `getEthnamesSubregistryId`, `getEthnamesSubregistryManagedName`, `getBasenamesSubregistryId`, `getBasenamesSubregistryManagedName`, `getLineanamesSubregistryId`, `getLineanamesSubregistryManagedName`. -- **Added:** `getManagedName(namespace, contract)` — given any contract in the ENSv1 ecosystem, returns its Managed Name, namehash, and concrete ENSv1 Registry. Replaces the per-plugin helpers above. Also exposes `isNameWrapper(namespace, contract)`. -- **Added:** `getRootRegistryId(namespace)` returns the namespace's primary Root Registry (prefers ENSv2 when defined). `getRootRegistryIds(namespace)` returns every top-level Root Registry — concrete ENSv1 Root, Basenames/Lineanames `base.eth`/`linea.eth` ENSv1VirtualRegistries, and the ENSv2 Root when defined — for consumers that walk the full canonical-set tree. -- **Added:** `getENSv1RootRegistryId(namespace)`. diff --git a/.changeset/ensrainbow-eager-public-config.md b/.changeset/ensrainbow-eager-public-config.md deleted file mode 100644 index 498ee804c1..0000000000 --- a/.changeset/ensrainbow-eager-public-config.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"ensrainbow": minor ---- - -ENSRainbow's `GET /v1/config` is now available immediately at startup, removing the cold-start gap that previously forced downstream services (e.g. ENSIndexer) to wait for the entire database download/validation before they could read public config (issue #2020). - -- The entrypoint command now builds the `EnsRainbowPublicConfig` in-memory from its CLI/env arguments (`LABEL_SET_ID`, `LABEL_SET_VERSION`) before the HTTP server starts accepting requests, so `/v1/config` returns `200` from the first request. -- After the background bootstrap finishes, ENSRainbow verifies that the on-disk database's stored label set (`labelSetId` and `highestLabelSetVersion`) matches the configured one. On mismatch it logs a helpful error naming both the expected and actual label sets, refuses to serve, and terminates with exit code `1`. -- `/ready` continues to gate on full database readiness (`200` only after the database has been attached and the env-vs-DB validation has passed). -- `/v1/heal/{labelhash}` and `/v1/labels/count` continue to return `503 Service Unavailable` while the database is still bootstrapping. -- `/health` is unchanged and still returns `200` as soon as the HTTP server is listening. diff --git a/.changeset/enssdk-beautify-interpreted-name.md b/.changeset/enssdk-beautify-interpreted-name.md deleted file mode 100644 index 0b4b213cae..0000000000 --- a/.changeset/enssdk-beautify-interpreted-name.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"enssdk": minor ---- - -Add `beautifyInterpretedName(name: InterpretedName): BeautifiedName` for converting an InterpretedName into a UI-presentable Name, plus a new `BeautifiedName` nominally-typed alias. Each label is either preserved verbatim (Encoded LabelHashes) or passed through `ens_beautify` (normalized labels), so e.g. `"♾♾♾♾.eth"` renders as `"♾️♾️♾️♾️.eth"`. The branded `BeautifiedName` return type prevents the result from being passed to APIs that expect an `InterpretedName` — continue to use the source InterpretedName for navigation targets and lookups. diff --git a/.changeset/enssdk-dash-delimited-ids.md b/.changeset/enssdk-dash-delimited-ids.md deleted file mode 100644 index f0d74dc042..0000000000 --- a/.changeset/enssdk-dash-delimited-ids.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"enssdk": minor ---- - -Switch composite ids to dash-delimited tuples so Ponder's profile-pattern matcher can decompose them and prefetch hot tables. - -Every id constructor (`makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, `makeConcreteRegistryId`, `makeResolverId`, `makeENSv1DomainId`, `makeENSv2DomainId`, `makePermissionsId`, `makePermissionsResourceId`, `makePermissionsUserId`, `makeResolverRecordsId`, `makeRegistrationId`, `makeRenewalId`) now joins its components with `-` instead of CAIP-style mixed `:` / `/` delimiters. `makeENSv2DomainId` no longer wraps the registry contract in CAIP-19 ERC1155 form since the registry already namespaces it. Ponder's matcher only does single-level string-delimiter splits, so the unified `-` tuple is the shape it can decompose to derive prefetch lookup keys from event args. diff --git a/.changeset/ensv2-registrar-controller-bug.md b/.changeset/ensv2-registrar-controller-bug.md deleted file mode 100644 index 085f5b1f0b..0000000000 --- a/.changeset/ensv2-registrar-controller-bug.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensindexer": patch ---- - -Fixed a bug in `ensv2` plugin where only `UnwrappedEthRegistrarController` was indexed; `LegacyEthRegistrarController` and `WrappedEthRegistrarController` were silently dropped. Fixes #2048. diff --git a/.changeset/fifty-chairs-heal.md b/.changeset/fifty-chairs-heal.md deleted file mode 100644 index f8858570f1..0000000000 --- a/.changeset/fifty-chairs-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@docs/ensnode": minor ---- - -Created docs for ENSDb. diff --git a/.changeset/fifty-games-smash.md b/.changeset/fifty-games-smash.md deleted file mode 100644 index 472f0e246b..0000000000 --- a/.changeset/fifty-games-smash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Introduced a set of "stack info" data models: `EnsIndexerStackInfo`, `EnsNodeStackInfo`. diff --git a/.changeset/hca-aware-events.md b/.changeset/hca-aware-events.md deleted file mode 100644 index 4364097b07..0000000000 --- a/.changeset/hca-aware-events.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensapi": minor ---- - -Adds HCA-aware `Event.sender` to the Omnigraph API alongside the existing `Event.from`. For ENSv2 events that emit an explicit `sender`/`owner`/`account`/ERC1155 `operator` argument, `Event.sender` is set from that argument (the HCA Smart Account address, if used) and falls back to `tx.from` otherwise. Adds a `sender` filter to `EventsWhereInput`. `Account.events` now filters by `sender` (HCA-aware) instead of `tx.from`. Documents HCA-aware semantics on `Domain.owner`, `Registration.registrant`/`unregistrant`, and `*.PermissionsUser.user`. diff --git a/.changeset/huge-weeks-dance.md b/.changeset/huge-weeks-dance.md deleted file mode 100644 index d0023ec273..0000000000 --- a/.changeset/huge-weeks-dance.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@docs/ensnode": minor ---- - -Added "Startup sequence" page to ENSIndexer docs. diff --git a/.changeset/indexing-metadata-context-ensapi.md b/.changeset/indexing-metadata-context-ensapi.md deleted file mode 100644 index 320f41f41f..0000000000 --- a/.changeset/indexing-metadata-context-ensapi.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensapi": minor ---- - -`indexing-status.cache` and `stack-info.cache` updated to consume the new `IndexingMetadataContext` record. Config schema updated to fetch `EnsIndexerPublicConfig` from `EnsNodeStackInfo`. diff --git a/.changeset/indexing-metadata-context-ensdb-sdk.md b/.changeset/indexing-metadata-context-ensdb-sdk.md deleted file mode 100644 index 94ca69cfc5..0000000000 --- a/.changeset/indexing-metadata-context-ensdb-sdk.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@ensnode/ensdb-sdk": minor ---- - -Introduced `IndexingMetadataContext` as a single record type in the ENSNode Metadata table, replacing three separate record types (`ensdb_version`, `ensindexer_public_config`, `ensindexer_indexing_status`). - -- `EnsDbReader`: added `getIndexingMetadataContext()`, `isHealthy()`, `isReady()`. -- `EnsDbWriter`: added `upsertIndexingMetadataContext()`. -- Old per-record read/write methods removed. -- `EnsNodeMetadataKeys` reduced to a single `IndexingMetadataContext` key. diff --git a/.changeset/indexing-metadata-context-ensindexer.md b/.changeset/indexing-metadata-context-ensindexer.md deleted file mode 100644 index 77784eef40..0000000000 --- a/.changeset/indexing-metadata-context-ensindexer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensindexer": minor ---- - -Consolidated startup init into `initIndexingOnchainEvents()` for reliable execution on every ENSIndexer startup. Added `IndexingMetadataContextBuilder` and `StackInfoBuilder`. `EnsDbWriterWorker` simplified to a single recurring task. The HTTP `/config` and `/indexing-status` endpoints now read from in-memory builders instead of ENSDb. `initializeIndexingSetup` / `initializeIndexingActivation` replaced by `initIndexingOnchainEvents`. diff --git a/.changeset/indexing-metadata-context-ensnode-sdk.md b/.changeset/indexing-metadata-context-ensnode-sdk.md deleted file mode 100644 index 9339f5e543..0000000000 --- a/.changeset/indexing-metadata-context-ensnode-sdk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Added `EnsIndexerStackInfo` as a base type; refactored `EnsNodeStackInfo` to extend it. diff --git a/.changeset/indexing-metadata-context-integration-test-env.md b/.changeset/indexing-metadata-context-integration-test-env.md deleted file mode 100644 index 0b71428800..0000000000 --- a/.changeset/indexing-metadata-context-integration-test-env.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/integration-test-env": minor ---- - -`pollIndexingStatus` updated to use `getIndexingMetadataContext()`. diff --git a/.changeset/label-set-rename-ensnode-sdk.md b/.changeset/label-set-rename-ensnode-sdk.md deleted file mode 100644 index 43db87c16a..0000000000 --- a/.changeset/label-set-rename-ensnode-sdk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -**Breaking**: `EnsIndexerPublicConfig`: renamed `labelSet` → `clientLabelSet`. diff --git a/.changeset/label-set-rename-ensrainbow-sdk.md b/.changeset/label-set-rename-ensrainbow-sdk.md deleted file mode 100644 index 6e104dae5e..0000000000 --- a/.changeset/label-set-rename-ensrainbow-sdk.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@ensnode/ensrainbow-sdk": minor ---- - -**Breaking**: Updated core data models. - -- `EnsRainbowApiClientOptions`: renamed `labelSet` → `clientLabelSet`. -- `EnsRainbowPublicConfig`: - - Replaced `version: string` with `versionInfo: EnsRainbowVersionInfo`. - - Renamed `labelSet` → `serverLabelSet`. - - Removed `recordsCount`. diff --git a/.changeset/large-fans-stop.md b/.changeset/large-fans-stop.md deleted file mode 100644 index 9e695b4f56..0000000000 --- a/.changeset/large-fans-stop.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensadmin": patch ---- - -Fix ENSAdmin GraphiQL docs sidebar failing to stay open on the omnigraph page. The editor now memoizes its fetcher, storage, and plugins so 1Hz parent re-renders (driven by the realtime indexing-status projection) no longer trigger schema re-introspection. diff --git a/.changeset/lovely-rooms-count.md b/.changeset/lovely-rooms-count.md deleted file mode 100644 index d6626e00bf..0000000000 --- a/.changeset/lovely-rooms-count.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensindexer-perf-testing": minor ---- - -Introduces the ENSIndexer Performance Testing package for running a local Prometheus x Grafana stack against an ENSIndexer instance. diff --git a/.changeset/permissions-user-events.md b/.changeset/permissions-user-events.md deleted file mode 100644 index b916d67532..0000000000 --- a/.changeset/permissions-user-events.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensapi": minor ---- - -Adds `PermissionsUser.events` to the Omnigraph API, exposing the per-role-assignment event history (grants, revokes, role-bitmap mutations) for a specific `(contract, resource, user)` tuple. diff --git a/.changeset/query-root-nonnull.md b/.changeset/query-root-nonnull.md deleted file mode 100644 index 8e9c971013..0000000000 --- a/.changeset/query-root-nonnull.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensapi": minor ---- - -`Query.root` is now non-null and returns the namespace's Root Registry — preferring the ENSv2 Root Registry when defined, falling back to the ENSv1 Root Registry. diff --git a/.changeset/quiet-mirrors-shine.md b/.changeset/quiet-mirrors-shine.md deleted file mode 100644 index 89d661d997..0000000000 --- a/.changeset/quiet-mirrors-shine.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@namehash/ens-referrals": minor ---- - -Expose the per-award-model (`pie-split`, `rev-share-cap`) Zod schemas via `@namehash/ens-referrals/internal`. diff --git a/.changeset/ready-endpoint-bg-bootstrap-ensindexer.md b/.changeset/ready-endpoint-bg-bootstrap-ensindexer.md deleted file mode 100644 index 31d26907ba..0000000000 --- a/.changeset/ready-endpoint-bg-bootstrap-ensindexer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensindexer": patch ---- - -`waitForEnsRainbowToBeReady` now polls `/ready` (via `ensRainbowClient.ready()`) instead of `/health`, so it correctly waits for the database to finish bootstrapping. It also aborts retries immediately on non-503 HTTP responses (e.g. `404` from a misconfigured `ENSRAINBOW_URL`, `500` from a broken instance) instead of blocking startup for ~1h, while still retrying on `503 Service Unavailable` and on transient network errors. diff --git a/.changeset/ready-endpoint-bg-bootstrap-ensrainbow-sdk.md b/.changeset/ready-endpoint-bg-bootstrap-ensrainbow-sdk.md deleted file mode 100644 index 8e44fac82f..0000000000 --- a/.changeset/ready-endpoint-bg-bootstrap-ensrainbow-sdk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensrainbow-sdk": minor ---- - -Added `EnsRainbowApiClient.ready()`, plus `EnsRainbow.ReadyResponse` / `EnsRainbow.ServiceUnavailableError` types and `ErrorCode.ServiceUnavailable`. The client now throws a typed `EnsRainbowHttpError` (with structured `status` / `statusText` properties) from `ready()`, `health()`, and `config()` whenever the service responds with a non-2xx HTTP status, so callers can branch their retry/abort logic on the status without parsing message strings. diff --git a/.changeset/ready-endpoint-bg-bootstrap-ensrainbow.md b/.changeset/ready-endpoint-bg-bootstrap-ensrainbow.md deleted file mode 100644 index 93c1d00dd2..0000000000 --- a/.changeset/ready-endpoint-bg-bootstrap-ensrainbow.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"ensrainbow": minor ---- - -ENSRainbow now starts its HTTP server immediately and downloads/validates its database in the background, instead of blocking container startup behind a netcat placeholder. - -- **New `GET /ready` endpoint**: returns `200 { status: "ok" }` once the database is attached, or `503 Service Unavailable` while ENSRainbow is still bootstrapping. `/health` is now a pure liveness probe that succeeds as soon as the HTTP server is listening. -- **503 responses for API routes during bootstrap**: `/v1/heal`, `/v1/labels/count`, and `/v1/config` return a structured `ServiceUnavailableError` (`errorCode: 503`) until the database is ready. -- **New Docker entrypoint**: the container now runs `pnpm run entrypoint` from the `apps/ensrainbow` working directory (implemented in Node via `tsx src/cli.ts entrypoint`), which replaces `scripts/entrypoint.sh` and the `netcat` workaround. -- **Graceful shutdown during bootstrap**: SIGTERM/SIGINT now abort an in-flight bootstrap. Spawned `download`/`tar` child processes are terminated (SIGTERM → SIGKILL after a 5s grace period) and any partially-opened LevelDB handle is closed before the HTTP server and DB-backed server shut down, so the container exits promptly without leaking child processes or LevelDB locks. - -**Migration**: if you previously polled `GET /health` to gate traffic on database readiness, switch to `GET /ready`. `/health` is still available and still returns `200`, but it now indicates liveness only. diff --git a/.changeset/ready-hands-worry.md b/.changeset/ready-hands-worry.md deleted file mode 100644 index 57c3465332..0000000000 --- a/.changeset/ready-hands-worry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensapi": minor ---- - -Integrated ENSDb health check and readiness check into ENSApi `/health` and `/ready` endpoints. diff --git a/.changeset/replace-bigints-helpers.md b/.changeset/replace-bigints-helpers.md deleted file mode 100644 index 11c6233e85..0000000000 --- a/.changeset/replace-bigints-helpers.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensnode-sdk": minor ---- - -Added `replaceBigInts` (sourced from `@ponder/utils`) and `toJson` helpers to `@ensnode/ensnode-sdk`. `toJson` takes an options object (`{ pretty?: boolean }`) with `pretty` defaulting to `false` — pass `{ pretty: true }` for indented output. diff --git a/.changeset/replace-bigints-migration.md b/.changeset/replace-bigints-migration.md deleted file mode 100644 index 0e9d7c1764..0000000000 --- a/.changeset/replace-bigints-migration.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"ensapi": patch -"ensindexer": patch ---- - -Migrated to `@ensnode/ensnode-sdk`'s `replaceBigInts` / `toJson` helpers. Dropped the direct `@ponder/utils` dependency from `ensapi`. diff --git a/.changeset/shiny-tigers-wander.md b/.changeset/shiny-tigers-wander.md deleted file mode 100644 index e1cf652297..0000000000 --- a/.changeset/shiny-tigers-wander.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@namehash/ens-referrals": minor ---- - -Reject overlapping referral program editions: for a given `subregistryId`, no two editions may share any point in time. diff --git a/.changeset/social-emus-sleep.md b/.changeset/social-emus-sleep.md deleted file mode 100644 index 5778111e8e..0000000000 --- a/.changeset/social-emus-sleep.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensindexer": patch ---- - -ENSIndexer's ensv2 plugin now avoids attempting to heal addr.reverse subnames if they've already been healed. diff --git a/.changeset/tame-clowns-tell.md b/.changeset/tame-clowns-tell.md deleted file mode 100644 index 4bad0be156..0000000000 --- a/.changeset/tame-clowns-tell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/datasources": minor ---- - -Update sepolia-v2 namespace to point to the most recent Sepolia V2 deployment on the virtual Sepolia chain. diff --git a/.changeset/tangy-pants-camp.md b/.changeset/tangy-pants-camp.md deleted file mode 100644 index 422866f67f..0000000000 --- a/.changeset/tangy-pants-camp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ensadmin": patch ---- - -Introduced interactive REST API Reference playground (`/api/rest`) powered by Scalar, enabling discovery and testing of all REST APIs published by a connected ENSApi instance. Added `@ensnode/scalar-react` wrapper package. diff --git a/.changeset/tough-clubs-eat.md b/.changeset/tough-clubs-eat.md deleted file mode 100644 index 3575a0f025..0000000000 --- a/.changeset/tough-clubs-eat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ensnode/ensdb-sdk": patch ---- - -Made `EnsDbWriter.migrateEnsNodeSchema` race-condition safe. diff --git a/.changeset/unified-domain-model.md b/.changeset/unified-domain-model.md deleted file mode 100644 index 92d8c937e2..0000000000 --- a/.changeset/unified-domain-model.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -"enssdk": minor -"@ensnode/ensdb-sdk": minor -"@ensnode/ensnode-sdk": minor -"ensindexer": minor -"ensapi": minor ---- - -Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. - -### Breaking schema + id format changes - -- `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. -- `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. -- `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. -- `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. -- `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. - -### GraphQL - -- `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. -- `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. -- `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. - diff --git a/apps/ensadmin/CHANGELOG.md b/apps/ensadmin/CHANGELOG.md index f655e82fe4..62a840001e 100644 --- a/apps/ensadmin/CHANGELOG.md +++ b/apps/ensadmin/CHANGELOG.md @@ -1,5 +1,27 @@ # ensadmin +## 1.11.0 + +### Minor Changes + +- [#1988](https://github.com/namehash/ensnode/pull/1988) [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef) Thanks [@tk-o](https://github.com/tk-o)! - Removed _Records Count_ info from the ENSRainbow card UI on the _Connection_ page. + +- [#1988](https://github.com/namehash/ensnode/pull/1988) [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef) Thanks [@tk-o](https://github.com/tk-o)! - Renamed `ENSNodeConfig*` components to follow the `EnsNodeStackInfo*` pattern. + +### Patch Changes + +- [#2001](https://github.com/namehash/ensnode/pull/2001) [`7c1c048`](https://github.com/namehash/ensnode/commit/7c1c04859e187020892f9c40adb53aee2264058f) Thanks [@notrab](https://github.com/notrab)! - Fix ENSAdmin GraphiQL docs sidebar failing to stay open on the omnigraph page. The editor now memoizes its fetcher, storage, and plugins so 1Hz parent re-renders (driven by the realtime indexing-status projection) no longer trigger schema re-introspection. + +- [#1951](https://github.com/namehash/ensnode/pull/1951) [`c56e32c`](https://github.com/namehash/ensnode/commit/c56e32c22cf6994f6eb76dd1f17efbb9b3578858) Thanks [@notrab](https://github.com/notrab)! - Introduced interactive REST API Reference playground (`/api/rest`) powered by Scalar, enabling discovery and testing of all REST APIs published by a connected ENSApi instance. Added `@ensnode/scalar-react` wrapper package. + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + - enssdk@1.11.0 + - @ensnode/ensnode-react@1.11.0 + - @namehash/namehash-ui@1.11.0 + - @ensnode/scalar-react@0.0.0 + ## 1.10.1 ### Patch Changes @@ -235,7 +257,6 @@ - [#1261](https://github.com/namehash/ensnode/pull/1261) [`703a12e`](https://github.com/namehash/ensnode/commit/703a12ed307e98ec1c1ce5911b45905ebcad58d8) Thanks [@notrab](https://github.com/notrab)! - Refactored `ConfigInfoAppCard` to use a composable children-based API, converting all components (ENSApi, ENSDb, ENSIndexer, ENSRainbow, and Connection) to use the new ``, ``, ``, and `` components for better flexibility and styling control. - [#1201](https://github.com/namehash/ensnode/pull/1201) [`ceef81e`](https://github.com/namehash/ensnode/commit/ceef81e4a39125b238ab71bb4e0598a1a0771d15) Thanks [@notrab](https://github.com/notrab)! - - Improved ENSNode config info components with better reusability and maintainability (great for mocking too). Introduced `ENSNodeConfigCardDisplay` component that accepts props and extracted a reusable `ENSNodeCard` wrapper that provides consistent header and loading states. - - Added Suspense boundary around `ConnectionsLibraryProvider` in root layout to better handle hydration - Added Suspense boundary with skeleton fallback in `LayoutWrapper` to show proper loading states - Ensures all pages remain statically generated while respecting existing component loading states @@ -305,7 +326,6 @@ - [#1134](https://github.com/namehash/ensnode/pull/1134) [`184dc1e`](https://github.com/namehash/ensnode/commit/184dc1e74721cd4981b19f6a6579437d5f4351c4) Thanks [@Y3drk](https://github.com/Y3drk)! - Create dedicated "Connection" page. - [#1158](https://github.com/namehash/ensnode/pull/1158) [`ef7349e`](https://github.com/namehash/ensnode/commit/ef7349e034d4b0fcbf69bfd3c82471ba02e01cc3) Thanks [@notrab](https://github.com/notrab)! - - Apply `ASSUME_IMMUTABLE_QUERY` to name detail page - avatar and profile data now fetches once and caches forever - - Remove default `refetchInterval` from app-level QueryClient to allow individual queries to control refetch behavior - [#1009](https://github.com/namehash/ensnode/pull/1009) [`98983ac`](https://github.com/namehash/ensnode/commit/98983ac3c026073da5133aeb64025cbaf88523c8) Thanks [@tk-o](https://github.com/tk-o)! - Drops `latestSyncedBlock` field from `ChainIndexingBackfillStatus` data model. @@ -365,7 +385,6 @@ ### Patch Changes - [#962](https://github.com/namehash/ensnode/pull/962) [`845a037`](https://github.com/namehash/ensnode/commit/845a03761dc830303a56cd70fe0d57c36d78a663) Thanks [@djstrong](https://github.com/djstrong)! - Add label set information display to ENSAdmin status UI - - Update ENSIndexerDependencyInfo component to display label set details - Enhance the configuration and UI representation of ENS indexing status - Add mock data support for label set information in status page diff --git a/apps/ensadmin/package.json b/apps/ensadmin/package.json index 09c185f748..e3e6224e8e 100644 --- a/apps/ensadmin/package.json +++ b/apps/ensadmin/package.json @@ -1,6 +1,6 @@ { "name": "ensadmin", - "version": "1.10.1", + "version": "1.11.0", "private": true, "type": "module", "description": "Explore the ENS Protocol like never before", diff --git a/apps/ensapi/CHANGELOG.md b/apps/ensapi/CHANGELOG.md index f5c00d935d..3a4194a76b 100644 --- a/apps/ensapi/CHANGELOG.md +++ b/apps/ensapi/CHANGELOG.md @@ -1,5 +1,45 @@ # ensapi +## 1.11.0 + +### Minor Changes + +- [#2014](https://github.com/namehash/ensnode/pull/2014) [`6bd4154`](https://github.com/namehash/ensnode/commit/6bd4154b40fca1fb3968d57181cbe2404be9296a) Thanks [@shrugs](https://github.com/shrugs)! - Adds HCA-aware `Event.sender` to the Omnigraph API alongside the existing `Event.from`. For ENSv2 events that emit an explicit `sender`/`owner`/`account`/ERC1155 `operator` argument, `Event.sender` is set from that argument (the HCA Smart Account address, if used) and falls back to `tx.from` otherwise. Adds a `sender` filter to `EventsWhereInput`. `Account.events` now filters by `sender` (HCA-aware) instead of `tx.from`. Documents HCA-aware semantics on `Domain.owner`, `Registration.registrant`/`unregistrant`, and `*.PermissionsUser.user`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - `indexing-status.cache` and `stack-info.cache` updated to consume the new `IndexingMetadataContext` record. Config schema updated to fetch `EnsIndexerPublicConfig` from `EnsNodeStackInfo`. + +- [#2007](https://github.com/namehash/ensnode/pull/2007) [`e40ce8f`](https://github.com/namehash/ensnode/commit/e40ce8f1bc32ee7fe5e9511744f9dd2caaa2e96b) Thanks [@shrugs](https://github.com/shrugs)! - Adds `PermissionsUser.events` to the Omnigraph API, exposing the per-role-assignment event history (grants, revokes, role-bitmap mutations) for a specific `(contract, resource, user)` tuple. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - `Query.root` is now non-null and returns the namespace's Root Registry — preferring the ENSv2 Root Registry when defined, falling back to the ENSv1 Root Registry. + +- [#2021](https://github.com/namehash/ensnode/pull/2021) [`6824f35`](https://github.com/namehash/ensnode/commit/6824f35046f3b9c181508c34de098f1221d10630) Thanks [@tk-o](https://github.com/tk-o)! - Integrated ENSDb health check and readiness check into ENSApi `/health` and `/ready` endpoints. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. + + ### Breaking schema + id format changes + - `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. + - `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. + - `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. + - `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. + - `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. + + ### GraphQL + - `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. + - `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. + - `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. + +### Patch Changes + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Migrated to `@ensnode/ensnode-sdk`'s `replaceBigInts` / `toJson` helpers. Dropped the direct `@ponder/utils` dependency from `ensapi`. + +- Updated dependencies [[`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`c186ad8`](https://github.com/namehash/ensnode/commit/c186ad8c0d85c4db8619a436173d7e21f857f689), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @namehash/ens-referrals@1.11.0 + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + - @ensnode/ensdb-sdk@1.11.0 + - enssdk@1.11.0 + - @ensnode/ponder-subgraph@1.11.0 + ## 1.10.1 ### Patch Changes @@ -151,7 +191,6 @@ - [#1654](https://github.com/namehash/ensnode/pull/1654) [`40b95fb`](https://github.com/namehash/ensnode/commit/40b95fb2cb5209546c0bd38145dbf7c231a968e7) Thanks [@shrugs](https://github.com/shrugs)! - ENSv2 GraphQL API: BREAKING: Removes Account.domains in favor of `Query.domains` with `owner` specified. - [#1576](https://github.com/namehash/ensnode/pull/1576) [`6e98fb6`](https://github.com/namehash/ensnode/commit/6e98fb677d5021c4bc9d17b01289290d1c286003) Thanks [@shrugs](https://github.com/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](https://github.com/namehash/ensnode/pull/1705) [`a0be9a6`](https://github.com/namehash/ensnode/commit/a0be9a6fb188fb6dc982ba297896ee5b357c3072) Thanks [@tk-o](https://github.com/tk-o)! - Altered code references accordingly to the updated `EnsIndexerPublicConfig` data model. @@ -179,22 +218,18 @@ - [#1680](https://github.com/namehash/ensnode/pull/1680) [`a5f9178`](https://github.com/namehash/ensnode/commit/a5f9178bdd1d4e42440e4ad24daf5df6036f7737) Thanks [@shrugs](https://github.com/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 @@ -216,7 +251,6 @@ - [#1529](https://github.com/namehash/ensnode/pull/1529) [`b25605b`](https://github.com/namehash/ensnode/commit/b25605b49c09d57dae44ff53092303eb7330df85) Thanks [@notrab](https://github.com/notrab)! - Add production and testnet servers to OpenAPI spec The OpenAPI specification now includes the following servers: - - https://api.alpha.ensnode.io (ENSNode Alpha - Mainnet) - https://api.alpha-sepolia.ensnode.io (ENSNode Alpha - Sepolia Testnet) - localhost (Local Development) @@ -262,7 +296,6 @@ ### Patch Changes - [#1485](https://github.com/namehash/ensnode/pull/1485) [`4f3abbe`](https://github.com/namehash/ensnode/commit/4f3abbe6c1447b7d5c5e7f2a39cf250067122877) Thanks [@notrab](https://github.com/notrab)! - Fix openapi validation errors by adding missing route descriptions - - Add `describeRoute` with tags, summary, description, and responses to `/amirealtime`, `/ensanalytics/referrers`, `/ensanalytics/referrers/:referrer`, `/registrar-actions`, and `/registrar-actions/:parentNode` endpoints - Add `.describe()` to Zod schema fields for query and path parameters to improve OpenAPI documentation - Add OpenAPI tags (`Resolution`, `Meta`, `Explore`, `ENSAwards`) to organize endpoints in the spec @@ -387,13 +420,11 @@ - [#1194](https://github.com/namehash/ensnode/pull/1194) [`af52f0b`](https://github.com/namehash/ensnode/commit/af52f0befda8220d56ff26a30208c196acb0d3cb) Thanks [@shrugs](https://github.com/shrugs)! - Introduces the ENSApi application, a separate, horizontally scalable ENSNode API server to replace the legacy `ponder serve` experience. Connecting ENSApi to: - - your Postgres Database (`DATABASE_URL`, `DATABASE_SCHEMA`), - ENSIndexer (`ENSINDEXER_URL`), and - an ENS Root Chain RPC (`ALCHEMY_API_KEY`, `RPC_URL_*`) provides the following APIs: - - ENSIndexer Config API (`/api/config`) - ENSIndexer Indexing Status API (`/api/indexing-status`) - Legacy ENS Subgraph GraphQL API (`/subgraph`) diff --git a/apps/ensapi/package.json b/apps/ensapi/package.json index e872968ed6..141c6c1531 100644 --- a/apps/ensapi/package.json +++ b/apps/ensapi/package.json @@ -1,6 +1,6 @@ { "name": "ensapi", - "version": "1.10.1", + "version": "1.11.0", "private": true, "type": "module", "description": "ENSNode's ENS API", diff --git a/apps/ensindexer/CHANGELOG.md b/apps/ensindexer/CHANGELOG.md index 1349f455ab..7ed44a6057 100644 --- a/apps/ensindexer/CHANGELOG.md +++ b/apps/ensindexer/CHANGELOG.md @@ -1,5 +1,45 @@ # ensindexer +## 1.11.0 + +### Minor Changes + +- [#2036](https://github.com/namehash/ensnode/pull/2036) [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce) Thanks [@shrugs](https://github.com/shrugs)! - Updates ens-test-env devnet commit to `580c60a`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Consolidated startup init into `initIndexingOnchainEvents()` for reliable execution on every ENSIndexer startup. Added `IndexingMetadataContextBuilder` and `StackInfoBuilder`. `EnsDbWriterWorker` simplified to a single recurring task. The HTTP `/config` and `/indexing-status` endpoints now read from in-memory builders instead of ENSDb. `initializeIndexingSetup` / `initializeIndexingActivation` replaced by `initIndexingOnchainEvents`. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. + + ### Breaking schema + id format changes + - `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. + - `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. + - `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. + - `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. + - `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. + + ### GraphQL + - `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. + - `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. + - `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. + +### Patch Changes + +- [#2049](https://github.com/namehash/ensnode/pull/2049) [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb) Thanks [@shrugs](https://github.com/shrugs)! - Fixed a bug in `ensv2` plugin where only `UnwrappedEthRegistrarController` was indexed; `LegacyEthRegistrarController` and `WrappedEthRegistrarController` were silently dropped. Fixes #2048. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - `waitForEnsRainbowToBeReady` now polls `/ready` (via `ensRainbowClient.ready()`) instead of `/health`, so it correctly waits for the database to finish bootstrapping. It also aborts retries immediately on non-503 HTTP responses (e.g. `404` from a misconfigured `ENSRAINBOW_URL`, `500` from a broken instance) instead of blocking startup for ~1h, while still retrying on `503 Service Unavailable` and on transient network errors. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Migrated to `@ensnode/ensnode-sdk`'s `replaceBigInts` / `toJson` helpers. Dropped the direct `@ponder/utils` dependency from `ensapi`. + +- [#1989](https://github.com/namehash/ensnode/pull/1989) [`16ecad1`](https://github.com/namehash/ensnode/commit/16ecad17d148dd8ee9ceefa7ec32818a5f3abfe8) Thanks [@shrugs](https://github.com/shrugs)! - ENSIndexer's ensv2 plugin now avoids attempting to heal addr.reverse subnames if they've already been healed. + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`c186ad8`](https://github.com/namehash/ensnode/commit/c186ad8c0d85c4db8619a436173d7e21f857f689), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + - @ensnode/ensdb-sdk@1.11.0 + - enssdk@1.11.0 + - @ensnode/ensrainbow-sdk@1.11.0 + - @ensnode/ponder-sdk@1.11.0 + ## 1.10.1 ### Patch Changes @@ -282,13 +322,11 @@ - [#1194](https://github.com/namehash/ensnode/pull/1194) [`af52f0b`](https://github.com/namehash/ensnode/commit/af52f0befda8220d56ff26a30208c196acb0d3cb) Thanks [@shrugs](https://github.com/shrugs)! - Introduces the ENSApi application, a separate, horizontally scalable ENSNode API server to replace the legacy `ponder serve` experience. Connecting ENSApi to: - - your Postgres Database (`DATABASE_URL`, `DATABASE_SCHEMA`), - ENSIndexer (`ENSINDEXER_URL`), and - an ENS Root Chain RPC (`ALCHEMY_API_KEY`, `RPC_URL_*`) provides the following APIs: - - ENSIndexer Config API (`/api/config`) - ENSIndexer Indexing Status API (`/api/indexing-status`) - Legacy ENS Subgraph GraphQL API (`/subgraph`) @@ -323,13 +361,11 @@ - [#1118](https://github.com/namehash/ensnode/pull/1118) [`22514f8`](https://github.com/namehash/ensnode/commit/22514f82f43c5cdb239631a3ca45c9dd20bbf1db) Thanks [@shrugs](https://github.com/shrugs)! - Introduces new `SUBGRAPH_COMPAT` flag (default false) to configure ENSIndexer's subgraph-compatible indexing behavior and removes the `HEAL_REVERSE_ADDRESSES`, `INDEX_ADDITIONAL_RESOLVER_RECORDS`, and `REPLACE_UNNORMALIZED` configuration flags. If `SUBGRAPH_COMPAT=true`, the following default configuration is provided: - - `PLUGINS=subgraph` - `LABEL_SET_ID=subgraph` - `LABEL_SET_VERSION=0` If `SUBGRAPH_COMPAT=false` (default behavior), the following default configuration is provided: - - `PLUGINS=subgraph,basenames,lineanames,threedns` - `LABEL_SET_ID=subgraph` - `LABEL_SET_VERSION=0` @@ -371,7 +407,6 @@ **Migration Required** If you're using the `reverse-resolvers` plugin, you need to update your configuration: - 1. Replace `reverse-resolvers` with `protocol-acceleration` in your `PLUGINS` environment variable 2. This is a breaking change that requires re-indexing from scratch due to database schema changes @@ -436,14 +471,12 @@ ### Patch Changes - [#962](https://github.com/namehash/ensnode/pull/962) [`845a037`](https://github.com/namehash/ensnode/commit/845a03761dc830303a56cd70fe0d57c36d78a663) Thanks [@djstrong](https://github.com/djstrong)! - Add LABEL_SET_ID and LABEL_SET_VERSION environment variables to ENSIndexer - - Add label set configuration to ENSIndexerConfig, SerializedENSIndexerConfig, and ENSIndexerPublicConfig - Update indexing behavior dependencies to prevent starting with different label set configurations - Add configuration schema validation and serialization support - Enforce Ponder build id changes if configured label set changes - [#962](https://github.com/namehash/ensnode/pull/962) [`845a037`](https://github.com/namehash/ensnode/commit/845a03761dc830303a56cd70fe0d57c36d78a663) Thanks [@djstrong](https://github.com/djstrong)! - Add label set configuration to Terraform infrastructure - - Add label_set_id and label_set_version variables to ENSIndexer Terraform module - Update main Terraform configuration to support label set configuration - Enhance deterministic label healing capabilities through infrastructure configuration diff --git a/apps/ensindexer/package.json b/apps/ensindexer/package.json index 9b46bc07b2..ab5d262a0e 100644 --- a/apps/ensindexer/package.json +++ b/apps/ensindexer/package.json @@ -1,6 +1,6 @@ { "name": "ensindexer", - "version": "1.10.1", + "version": "1.11.0", "private": true, "type": "module", "description": "A multichain ENS indexer, powered by Ponder", diff --git a/apps/ensrainbow/CHANGELOG.md b/apps/ensrainbow/CHANGELOG.md index e89be01a53..62f300fe2c 100644 --- a/apps/ensrainbow/CHANGELOG.md +++ b/apps/ensrainbow/CHANGELOG.md @@ -1,5 +1,31 @@ # ensrainbow +## 1.11.0 + +### Minor Changes + +- [#2037](https://github.com/namehash/ensnode/pull/2037) [`1db1637`](https://github.com/namehash/ensnode/commit/1db1637e7ca1b5cff968a5bd4895177de82096bc) Thanks [@djstrong](https://github.com/djstrong)! - ENSRainbow's `GET /v1/config` is now available immediately at startup, removing the cold-start gap that previously forced downstream services (e.g. ENSIndexer) to wait for the entire database download/validation before they could read public config (issue #2020). + - The entrypoint command now builds the `EnsRainbowPublicConfig` in-memory from its CLI/env arguments (`LABEL_SET_ID`, `LABEL_SET_VERSION`) before the HTTP server starts accepting requests, so `/v1/config` returns `200` from the first request. + - After the background bootstrap finishes, ENSRainbow verifies that the on-disk database's stored label set (`labelSetId` and `highestLabelSetVersion`) matches the configured one. On mismatch it logs a helpful error naming both the expected and actual label sets, refuses to serve, and terminates with exit code `1`. + - `/ready` continues to gate on full database readiness (`200` only after the database has been attached and the env-vs-DB validation has passed). + - `/v1/heal/{labelhash}` and `/v1/labels/count` continue to return `503 Service Unavailable` while the database is still bootstrapping. + - `/health` is unchanged and still returns `200` as soon as the HTTP server is listening. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - ENSRainbow now starts its HTTP server immediately and downloads/validates its database in the background, instead of blocking container startup behind a netcat placeholder. + - **New `GET /ready` endpoint**: returns `200 { status: "ok" }` once the database is attached, or `503 Service Unavailable` while ENSRainbow is still bootstrapping. `/health` is now a pure liveness probe that succeeds as soon as the HTTP server is listening. + - **503 responses for API routes during bootstrap**: `/v1/heal`, `/v1/labels/count`, and `/v1/config` return a structured `ServiceUnavailableError` (`errorCode: 503`) until the database is ready. + - **New Docker entrypoint**: the container now runs `pnpm run entrypoint` from the `apps/ensrainbow` working directory (implemented in Node via `tsx src/cli.ts entrypoint`), which replaces `scripts/entrypoint.sh` and the `netcat` workaround. + - **Graceful shutdown during bootstrap**: SIGTERM/SIGINT now abort an in-flight bootstrap. Spawned `download`/`tar` child processes are terminated (SIGTERM → SIGKILL after a 5s grace period) and any partially-opened LevelDB handle is closed before the HTTP server and DB-backed server shut down, so the container exits promptly without leaking child processes or LevelDB locks. + + **Migration**: if you previously polled `GET /health` to gate traffic on database readiness, switch to `GET /ready`. `/health` is still available and still returns `200`, but it now indicates liveness only. + +### Patch Changes + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - enssdk@1.11.0 + - @ensnode/ensrainbow-sdk@1.11.0 + ## 1.10.1 ### Patch Changes @@ -185,7 +211,6 @@ This change addresses large Docker image sizes and data management challenges. Key changes: - - A new .ensrainbow data format replaces SQL dumps, supporting label set IDs and versioned label sets for incremental data updates. - ENSRainbow is now distributed as a lightweight, data-less Docker image. - On first startup, the application downloads a pre-ingested database from R2, significantly reducing setup time. diff --git a/apps/ensrainbow/package.json b/apps/ensrainbow/package.json index cc7ff06267..25d8be9cb9 100644 --- a/apps/ensrainbow/package.json +++ b/apps/ensrainbow/package.json @@ -1,6 +1,6 @@ { "name": "ensrainbow", - "version": "1.10.1", + "version": "1.11.0", "private": true, "type": "module", "description": "ENSRainbow is an ENSNode service for healing ENS labels", diff --git a/apps/fallback-ensapi/CHANGELOG.md b/apps/fallback-ensapi/CHANGELOG.md index baa4dd90d1..2b9cc2b6bc 100644 --- a/apps/fallback-ensapi/CHANGELOG.md +++ b/apps/fallback-ensapi/CHANGELOG.md @@ -1,5 +1,13 @@ # fallback-ensapi +## 1.11.0 + +### Patch Changes + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/apps/fallback-ensapi/package.json b/apps/fallback-ensapi/package.json index 8ae4122a27..ad0458d883 100644 --- a/apps/fallback-ensapi/package.json +++ b/apps/fallback-ensapi/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "fallback-ensapi", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "Infrastructure-level Fallback for ENSApi", "license": "MIT", diff --git a/docker/services/ensadmin.yml b/docker/services/ensadmin.yml index a47f8b568c..770f83139a 100644 --- a/docker/services/ensadmin.yml +++ b/docker/services/ensadmin.yml @@ -1,7 +1,7 @@ services: ensadmin: container_name: ensadmin - image: ghcr.io/namehash/ensnode/ensadmin:${ENSNODE_VERSION:-1.10.1} + image: ghcr.io/namehash/ensnode/ensadmin:${ENSNODE_VERSION:-1.11.0} build: dockerfile: ./apps/ensadmin/Dockerfile context: ../.. diff --git a/docker/services/ensapi.yml b/docker/services/ensapi.yml index 0d7eafa36c..fec808d85c 100644 --- a/docker/services/ensapi.yml +++ b/docker/services/ensapi.yml @@ -1,7 +1,7 @@ services: ensapi: container_name: ensapi - image: ghcr.io/namehash/ensnode/ensapi:${ENSNODE_VERSION:-1.10.1} + image: ghcr.io/namehash/ensnode/ensapi:${ENSNODE_VERSION:-1.11.0} build: dockerfile: ./apps/ensapi/Dockerfile context: ../.. diff --git a/docker/services/ensindexer.yml b/docker/services/ensindexer.yml index 6f5e08088b..096ab0cb75 100644 --- a/docker/services/ensindexer.yml +++ b/docker/services/ensindexer.yml @@ -1,7 +1,7 @@ services: ensindexer: container_name: ensindexer - image: ghcr.io/namehash/ensnode/ensindexer:${ENSNODE_VERSION:-1.10.1} + image: ghcr.io/namehash/ensnode/ensindexer:${ENSNODE_VERSION:-1.11.0} build: dockerfile: ./apps/ensindexer/Dockerfile context: ../.. diff --git a/docker/services/ensrainbow.yml b/docker/services/ensrainbow.yml index 66be616d71..24308a940a 100644 --- a/docker/services/ensrainbow.yml +++ b/docker/services/ensrainbow.yml @@ -1,7 +1,7 @@ services: ensrainbow: container_name: ensrainbow - image: ghcr.io/namehash/ensnode/ensrainbow:${ENSNODE_VERSION:-1.10.1} + image: ghcr.io/namehash/ensnode/ensrainbow:${ENSNODE_VERSION:-1.11.0} build: dockerfile: ./apps/ensrainbow/Dockerfile context: ../.. diff --git a/docs/ensnode.io/CHANGELOG.md b/docs/ensnode.io/CHANGELOG.md index c7d1b03587..55d5943381 100644 --- a/docs/ensnode.io/CHANGELOG.md +++ b/docs/ensnode.io/CHANGELOG.md @@ -1,5 +1,20 @@ # @docs/ensnode +## 1.11.0 + +### Minor Changes + +- [#1942](https://github.com/namehash/ensnode/pull/1942) [`2df3b45`](https://github.com/namehash/ensnode/commit/2df3b45b004365cf9f59952b758646c9a442aa32) Thanks [@tk-o](https://github.com/tk-o)! - Created docs for ENSDb. + +- [#2012](https://github.com/namehash/ensnode/pull/2012) [`c4a39bb`](https://github.com/namehash/ensnode/commit/c4a39bb6489609af3e35ad281b5ccb8e25528218) Thanks [@tk-o](https://github.com/tk-o)! - Added "Startup sequence" page to ENSIndexer docs. + +### Patch Changes + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Updated docs and CI test paths to reflect the new `docker/` location of `docker-compose.yml`. + +- Updated dependencies []: + - @namehash/namehash-ui@1.11.0 + ## 1.10.1 ### Patch Changes @@ -122,7 +137,6 @@ This change addresses large Docker image sizes and data management challenges. Key changes: - - A new .ensrainbow data format replaces SQL dumps, supporting label set IDs and versioned label sets for incremental data updates. - ENSRainbow is now distributed as a lightweight, data-less Docker image. - On first startup, the application downloads a pre-ingested database from R2, significantly reducing setup time. diff --git a/docs/ensnode.io/ensapi-openapi.json b/docs/ensnode.io/ensapi-openapi.json index 5d16093492..d4f20859a5 100644 --- a/docs/ensnode.io/ensapi-openapi.json +++ b/docs/ensnode.io/ensapi-openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "ENSApi APIs", - "version": "1.10.1", + "version": "1.11.0", "description": "APIs for ENS resolution, navigating the ENS nameforest, and metadata about an ENSNode" }, "servers": [ diff --git a/docs/ensnode.io/package.json b/docs/ensnode.io/package.json index 2978c14d73..da05fcc869 100644 --- a/docs/ensnode.io/package.json +++ b/docs/ensnode.io/package.json @@ -3,7 +3,7 @@ "private": true, "license": "MIT", "type": "module", - "version": "1.10.1", + "version": "1.11.0", "packageManager": "pnpm@10.33.0", "scripts": { "dev": "astro dev", diff --git a/docs/ensrainbow.io/CHANGELOG.md b/docs/ensrainbow.io/CHANGELOG.md index a897752534..a2a37e5f56 100644 --- a/docs/ensrainbow.io/CHANGELOG.md +++ b/docs/ensrainbow.io/CHANGELOG.md @@ -1,5 +1,12 @@ # @docs/ensrainbow +## 1.11.0 + +### Patch Changes + +- Updated dependencies []: + - @namehash/namehash-ui@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/docs/ensrainbow.io/package.json b/docs/ensrainbow.io/package.json index 08dce6d274..fd94482c27 100644 --- a/docs/ensrainbow.io/package.json +++ b/docs/ensrainbow.io/package.json @@ -1,7 +1,7 @@ { "name": "@docs/ensrainbow", "type": "module", - "version": "1.10.1", + "version": "1.11.0", "license": "MIT", "packageManager": "pnpm@10.33.0", "private": true, diff --git a/examples/enskit-react-example/CHANGELOG.md b/examples/enskit-react-example/CHANGELOG.md index 085dab044a..6803dc4c5e 100644 --- a/examples/enskit-react-example/CHANGELOG.md +++ b/examples/enskit-react-example/CHANGELOG.md @@ -1,5 +1,13 @@ # @ensnode/enskit-react-example +## 0.0.3 + +### Patch Changes + +- Updated dependencies [[`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - enssdk@1.11.0 + - enskit@1.11.0 + ## 0.0.2 ### Patch Changes diff --git a/examples/enskit-react-example/package.json b/examples/enskit-react-example/package.json index 8729db3068..ceb7dd25b0 100644 --- a/examples/enskit-react-example/package.json +++ b/examples/enskit-react-example/package.json @@ -1,7 +1,7 @@ { "name": "@ensnode/enskit-react-example", "private": true, - "version": "0.0.2", + "version": "0.0.3", "license": "MIT", "type": "module", "scripts": { diff --git a/packages/datasources/CHANGELOG.md b/packages/datasources/CHANGELOG.md index 0f8986dd73..730a18871b 100644 --- a/packages/datasources/CHANGELOG.md +++ b/packages/datasources/CHANGELOG.md @@ -1,5 +1,15 @@ # @ensnode/ens-deployments +## 1.11.0 + +### Minor Changes + +- [#2036](https://github.com/namehash/ensnode/pull/2036) [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce) Thanks [@shrugs](https://github.com/shrugs)! - Update sepolia-v2 namespace to point to the most recent Sepolia V2 deployment on the virtual Sepolia chain. + +### Patch Changes + +- [#2049](https://github.com/namehash/ensnode/pull/2049) [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb) Thanks [@shrugs](https://github.com/shrugs)! - Removed `LegacyEthRegistrarController`, `WrappedEthRegistrarController`, and `UniversalRegistrarRenewalWithReferrer` placeholder entries from the `sepolia-v2` namespace, and `UniversalRegistrarRenewalWithReferrer` from `ens-test-env`. `AnyRegistrarControllerABI` now also includes the `UniversalRegistrarRenewalWithReferrer` ABI. + ## 1.10.1 ## 1.10.0 diff --git a/packages/datasources/package.json b/packages/datasources/package.json index 9eb98c5545..b537ba1015 100644 --- a/packages/datasources/package.json +++ b/packages/datasources/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/datasources", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "Catalog of ENSNode-related datasources including chain, contract addresses, start blocks, and event filters.", "license": "MIT", diff --git a/packages/ens-referrals/CHANGELOG.md b/packages/ens-referrals/CHANGELOG.md index 5964307d6a..b34e101129 100644 --- a/packages/ens-referrals/CHANGELOG.md +++ b/packages/ens-referrals/CHANGELOG.md @@ -1,5 +1,21 @@ # @namehash/ens-referrals +## 1.11.0 + +### Minor Changes + +- [#1986](https://github.com/namehash/ensnode/pull/1986) [`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426) Thanks [@Goader](https://github.com/Goader)! - Add `BaseReferralProgramEditionConfig` as the shared parent of `ReferralProgramEditionConfig` and `BaseReferralProgramEditionSummary`. + +- [#1986](https://github.com/namehash/ensnode/pull/1986) [`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426) Thanks [@Goader](https://github.com/Goader)! - Expose the per-award-model (`pie-split`, `rev-share-cap`) Zod schemas via `@namehash/ens-referrals/internal`. + +- [#1986](https://github.com/namehash/ensnode/pull/1986) [`aa26180`](https://github.com/namehash/ensnode/commit/aa26180b2582a9f3da2b7e766a77779350baf426) Thanks [@Goader](https://github.com/Goader)! - Reject overlapping referral program editions: for a given `subregistryId`, no two editions may share any point in time. + +### Patch Changes + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/ens-referrals/package.json b/packages/ens-referrals/package.json index 5f77d65bf8..6cbd83ef77 100644 --- a/packages/ens-referrals/package.json +++ b/packages/ens-referrals/package.json @@ -1,6 +1,6 @@ { "name": "@namehash/ens-referrals", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "Utilities for ENS Referrals.", "license": "MIT", diff --git a/packages/enscli/CHANGELOG.md b/packages/enscli/CHANGELOG.md index 8f80c539af..62e42d62f8 100644 --- a/packages/enscli/CHANGELOG.md +++ b/packages/enscli/CHANGELOG.md @@ -1,5 +1,7 @@ # enscli +## 1.11.0 + ## 1.10.1 ## 1.10.0 diff --git a/packages/enscli/package.json b/packages/enscli/package.json index c3a1510ac9..195da155b5 100644 --- a/packages/enscli/package.json +++ b/packages/enscli/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "enscli", - "version": "1.10.1", + "version": "1.11.0", "description": "Reserved for the ENSNode project by NameHash Labs. See https://ensnode.io", "repository": { "type": "git", diff --git a/packages/ensdb-sdk/CHANGELOG.md b/packages/ensdb-sdk/CHANGELOG.md index ff5b0f6953..f39378cbf1 100644 --- a/packages/ensdb-sdk/CHANGELOG.md +++ b/packages/ensdb-sdk/CHANGELOG.md @@ -1,5 +1,39 @@ # @ensnode/ensdb-sdk +## 1.11.0 + +### Minor Changes + +- [#2016](https://github.com/namehash/ensnode/pull/2016) [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9) Thanks [@shrugs](https://github.com/shrugs)! - `migrated_nodes` renamed to `migrated_nodes_by_parent` and re-keyed by composite `(parentNode, labelHash)` to match the payload of `ENSv1Registry(Old)#NewOwner` events. New sibling `migrated_nodes_by_node` keyed solely by `node` for the three `ENSv1RegistryOld` handlers (`Transfer` / `NewTTL` / `NewResolver`) that emit only `node`. Both rows are written together by the migration helper so each read site addresses whichever key matches its event payload. Schema definitions live in a new `migrated-nodes.schema.ts`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Introduced `IndexingMetadataContext` as a single record type in the ENSNode Metadata table, replacing three separate record types (`ensdb_version`, `ensindexer_public_config`, `ensindexer_indexing_status`). + - `EnsDbReader`: added `getIndexingMetadataContext()`, `isHealthy()`, `isReady()`. + - `EnsDbWriter`: added `upsertIndexingMetadataContext()`. + - Old per-record read/write methods removed. + - `EnsNodeMetadataKeys` reduced to a single `IndexingMetadataContext` key. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. + + ### Breaking schema + id format changes + - `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. + - `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. + - `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. + - `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. + - `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. + + ### GraphQL + - `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. + - `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. + - `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. + +### Patch Changes + +- [#1996](https://github.com/namehash/ensnode/pull/1996) [`c186ad8`](https://github.com/namehash/ensnode/commit/c186ad8c0d85c4db8619a436173d7e21f857f689) Thanks [@tk-o](https://github.com/tk-o)! - Made `EnsDbWriter.migrateEnsNodeSchema` race-condition safe. + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/ensdb-sdk/package.json b/packages/ensdb-sdk/package.json index 1e2d522889..c3dc8a34ac 100644 --- a/packages/ensdb-sdk/package.json +++ b/packages/ensdb-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ensdb-sdk", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "SDK for interacting with data in ENSDb", "license": "MIT", diff --git a/packages/ensindexer-perf-testing/CHANGELOG.md b/packages/ensindexer-perf-testing/CHANGELOG.md new file mode 100644 index 0000000000..e21dc82745 --- /dev/null +++ b/packages/ensindexer-perf-testing/CHANGELOG.md @@ -0,0 +1,7 @@ +# @ensnode/ensindexer-perf-testing + +## 1.11.0 + +### Minor Changes + +- [#1989](https://github.com/namehash/ensnode/pull/1989) [`16ecad1`](https://github.com/namehash/ensnode/commit/16ecad17d148dd8ee9ceefa7ec32818a5f3abfe8) Thanks [@shrugs](https://github.com/shrugs)! - Introduces the ENSIndexer Performance Testing package for running a local Prometheus x Grafana stack against an ENSIndexer instance. diff --git a/packages/ensindexer-perf-testing/package.json b/packages/ensindexer-perf-testing/package.json index 3505db4dcc..839042bae9 100644 --- a/packages/ensindexer-perf-testing/package.json +++ b/packages/ensindexer-perf-testing/package.json @@ -1,7 +1,7 @@ { "name": "@ensnode/ensindexer-perf-testing", "private": true, - "version": "1.10.0", + "version": "1.11.0", "description": "Local Prometheus + Grafana bundle for benchmarking ENSIndexer throughput.", "license": "MIT", "scripts": { diff --git a/packages/enskit/CHANGELOG.md b/packages/enskit/CHANGELOG.md index 5816595e7d..f3bf2440eb 100644 --- a/packages/enskit/CHANGELOG.md +++ b/packages/enskit/CHANGELOG.md @@ -1,5 +1,12 @@ # enskit +## 1.11.0 + +### Patch Changes + +- Updated dependencies [[`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/enskit/package.json b/packages/enskit/package.json index 4255c444ae..e2dc5c078a 100644 --- a/packages/enskit/package.json +++ b/packages/enskit/package.json @@ -1,6 +1,6 @@ { "name": "enskit", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "The ENS toolkit for React applications", "license": "MIT", diff --git a/packages/ensnode-react/CHANGELOG.md b/packages/ensnode-react/CHANGELOG.md index 015dac00b2..cbe90baab5 100644 --- a/packages/ensnode-react/CHANGELOG.md +++ b/packages/ensnode-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @ensnode/ensnode-react +## 1.11.0 + +### Patch Changes + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes @@ -15,7 +23,6 @@ - [#1671](https://github.com/namehash/ensnode/pull/1671) [`d9ab6b0`](https://github.com/namehash/ensnode/commit/d9ab6b07c0e77bfdd3a49326e75caaa14d7ca2e5) Thanks [@tk-o](https://github.com/tk-o)! - **Breaking**: Removed `useENSNodeConfig` hook. - [#1671](https://github.com/namehash/ensnode/pull/1671) [`d9ab6b0`](https://github.com/namehash/ensnode/commit/d9ab6b07c0e77bfdd3a49326e75caaa14d7ca2e5) Thanks [@tk-o](https://github.com/tk-o)! - **Breaking**: - - Replaced `useENSNodeSDKConfig` hook with `useEnsNodeProviderOptions` hook. - Renamed `createConfig` function to `createEnsNodeProviderOptions`. @@ -162,7 +169,6 @@ ### Minor Changes - [#1158](https://github.com/namehash/ensnode/pull/1158) [`ef7349e`](https://github.com/namehash/ensnode/commit/ef7349e034d4b0fcbf69bfd3c82471ba02e01cc3) Thanks [@notrab](https://github.com/notrab)! - - Add `ASSUME_IMMUTABLE_QUERY` constant for queries that should only fetch once per unique key (similar to SWR's `immutable: true`) - - Apply `ASSUME_IMMUTABLE_QUERY` to `useENSIndexerConfig` so the client fetches the config endpoint once and caches forever - Add 10s `refetchInterval` to `useIndexingStatus` for automatic polling of indexing progress - Add 10s default `refetchInterval` to `ENSNodeProvider` QueryClient diff --git a/packages/ensnode-react/package.json b/packages/ensnode-react/package.json index 9245d5039a..096703b119 100644 --- a/packages/ensnode-react/package.json +++ b/packages/ensnode-react/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ensnode-react", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "React hooks and providers for ENSNode", "license": "MIT", diff --git a/packages/ensnode-sdk/CHANGELOG.md b/packages/ensnode-sdk/CHANGELOG.md index 592437a7c4..48a95f5da0 100644 --- a/packages/ensnode-sdk/CHANGELOG.md +++ b/packages/ensnode-sdk/CHANGELOG.md @@ -1,5 +1,47 @@ # @ensnode/ensnode-sdk +## 1.11.0 + +### Minor Changes + +- [#2036](https://github.com/namehash/ensnode/pull/2036) [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce) Thanks [@shrugs](https://github.com/shrugs)! - Replaces the flat `DEVNET_DEPLOYER` / `DEVNET_OWNER` / `DEVNET_USER` / `DEVNET_USER2` constants exported from `@ensnode/ensnode-sdk/internal` with a single `DevnetAccounts` object that groups each account's `address` and `resolver`. Consumers must migrate to `DevnetAccounts.{deployer,owner,user,user2}.{address,resolver}`. + +- [#2017](https://github.com/namehash/ensnode/pull/2017) [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7) Thanks [@Goader](https://github.com/Goader)! - Add `$ENS Tokens` as a supported currency in `@ensnode/ensnode-sdk`: `CurrencyIds.ENSTokens`, `PriceEnsTokens`/`SerializedPriceEnsTokens` types, and the `priceEnsTokens`, `parseEnsTokens`, `serializePriceEnsTokens`, `deserializePriceEnsTokens` helpers. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Centralized Managed Name and Root Registry helpers. + - **Removed:** `getEthnamesSubregistryId`, `getEthnamesSubregistryManagedName`, `getBasenamesSubregistryId`, `getBasenamesSubregistryManagedName`, `getLineanamesSubregistryId`, `getLineanamesSubregistryManagedName`. + - **Added:** `getManagedName(namespace, contract)` — given any contract in the ENSv1 ecosystem, returns its Managed Name, namehash, and concrete ENSv1 Registry. Replaces the per-plugin helpers above. Also exposes `isNameWrapper(namespace, contract)`. + - **Added:** `getRootRegistryId(namespace)` returns the namespace's primary Root Registry (prefers ENSv2 when defined). `getRootRegistryIds(namespace)` returns every top-level Root Registry — concrete ENSv1 Root, Basenames/Lineanames `base.eth`/`linea.eth` ENSv1VirtualRegistries, and the ENSv2 Root when defined — for consumers that walk the full canonical-set tree. + - **Added:** `getENSv1RootRegistryId(namespace)`. + +- [#1988](https://github.com/namehash/ensnode/pull/1988) [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef) Thanks [@tk-o](https://github.com/tk-o)! - Introduced a set of "stack info" data models: `EnsIndexerStackInfo`, `EnsNodeStackInfo`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Added `EnsIndexerStackInfo` as a base type; refactored `EnsNodeStackInfo` to extend it. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - **Breaking**: `EnsIndexerPublicConfig`: renamed `labelSet` → `clientLabelSet`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Added `replaceBigInts` (sourced from `@ponder/utils`) and `toJson` helpers to `@ensnode/ensnode-sdk`. `toJson` takes an options object (`{ pretty?: boolean }`) with `pretty` defaulting to `false` — pass `{ pretty: true }` for indented output. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. + + ### Breaking schema + id format changes + - `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. + - `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. + - `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. + - `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. + - `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. + + ### GraphQL + - `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. + - `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. + - `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. + +### Patch Changes + +- Updated dependencies [[`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/datasources@1.11.0 + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes @@ -23,7 +65,6 @@ - [#1858](https://github.com/namehash/ensnode/pull/1858) [`7fca45d`](https://github.com/namehash/ensnode/commit/7fca45d09dc6e3456fec2cae0827e9d2c54827a6) Thanks [@tk-o](https://github.com/tk-o)! - Removed `nodejs` field from `EnsIndexerVersionInfo` data model. - [#1889](https://github.com/namehash/ensnode/pull/1889) [`29fcfc7`](https://github.com/namehash/ensnode/commit/29fcfc7a1ab01c3214b5c16fc0e4a349010e9360) Thanks [@shrugs](https://github.com/shrugs)! - Migrated core ENS types and utilities from `ensnode-sdk` to `enssdk`: - - `UnixTimestamp` type moved to enssdk - `normalizeName` function (wraps `@adraffy/ens-normalize`) added; `isNormalizedName`/`isNormalizedLabel` consolidated into `normalization.ts` - `makeSubdomainNode` moved to enssdk @@ -358,7 +399,6 @@ ### Patch Changes - [#962](https://github.com/namehash/ensnode/pull/962) [`845a037`](https://github.com/namehash/ensnode/commit/845a03761dc830303a56cd70fe0d57c36d78a663) Thanks [@djstrong](https://github.com/djstrong)! - Add label set configuration support to ENSNode SDK - - Add label set configuration types to ENSIndexerConfig - Update configuration serialization and deserialization - Add Zod schema validation for label set configuration diff --git a/packages/ensnode-sdk/package.json b/packages/ensnode-sdk/package.json index 72fdeb2d30..9686d74595 100644 --- a/packages/ensnode-sdk/package.json +++ b/packages/ensnode-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ensnode-sdk", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "A utility library for interacting with ENSNode and ENS data", "license": "MIT", diff --git a/packages/ensrainbow-sdk/CHANGELOG.md b/packages/ensrainbow-sdk/CHANGELOG.md index e554557a70..e8f86a9d88 100644 --- a/packages/ensrainbow-sdk/CHANGELOG.md +++ b/packages/ensrainbow-sdk/CHANGELOG.md @@ -1,5 +1,23 @@ # @ensnode/ensrainbow-sdk +## 1.11.0 + +### Minor Changes + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - **Breaking**: Updated core data models. + - `EnsRainbowApiClientOptions`: renamed `labelSet` → `clientLabelSet`. + - `EnsRainbowPublicConfig`: + - Replaced `version: string` with `versionInfo: EnsRainbowVersionInfo`. + - Renamed `labelSet` → `serverLabelSet`. + - Removed `recordsCount`. + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Added `EnsRainbowApiClient.ready()`, plus `EnsRainbow.ReadyResponse` / `EnsRainbow.ServiceUnavailableError` types and `ErrorCode.ServiceUnavailable`. The client now throws a typed `EnsRainbowHttpError` (with structured `status` / `statusText` properties) from `ready()`, `health()`, and `config()` whenever the service responds with a non-2xx HTTP status, so callers can branch their retry/abort logic on the status without parsing message strings. + +### Patch Changes + +- Updated dependencies [[`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - enssdk@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/ensrainbow-sdk/package.json b/packages/ensrainbow-sdk/package.json index 371ff966ae..3c0a2d4a59 100644 --- a/packages/ensrainbow-sdk/package.json +++ b/packages/ensrainbow-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ensrainbow-sdk", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "ENSRainbow SDK for interacting with the ENSRainbow API.", "license": "MIT", diff --git a/packages/enssdk/CHANGELOG.md b/packages/enssdk/CHANGELOG.md index 39b3d95818..f5acb016ee 100644 --- a/packages/enssdk/CHANGELOG.md +++ b/packages/enssdk/CHANGELOG.md @@ -1,5 +1,29 @@ # enssdk +## 1.11.0 + +### Minor Changes + +- [#2050](https://github.com/namehash/ensnode/pull/2050) [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af) Thanks [@shrugs](https://github.com/shrugs)! - Add `beautifyInterpretedName(name: InterpretedName): BeautifiedName` for converting an InterpretedName into a UI-presentable Name, plus a new `BeautifiedName` nominally-typed alias. Each label is either preserved verbatim (Encoded LabelHashes) or passed through `ens_beautify` (normalized labels), so e.g. `"♾♾♾♾.eth"` renders as `"♾️♾️♾️♾️.eth"`. The branded `BeautifiedName` return type prevents the result from being passed to APIs that expect an `InterpretedName` — continue to use the source InterpretedName for navigation targets and lookups. + +- [#2016](https://github.com/namehash/ensnode/pull/2016) [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9) Thanks [@shrugs](https://github.com/shrugs)! - Switch composite ids to dash-delimited tuples so Ponder's profile-pattern matcher can decompose them and prefetch hot tables. + + Every id constructor (`makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, `makeConcreteRegistryId`, `makeResolverId`, `makeENSv1DomainId`, `makeENSv2DomainId`, `makePermissionsId`, `makePermissionsResourceId`, `makePermissionsUserId`, `makeResolverRecordsId`, `makeRegistrationId`, `makeRenewalId`) now joins its components with `-` instead of CAIP-style mixed `:` / `/` delimiters. `makeENSv2DomainId` no longer wraps the registry contract in CAIP-19 ERC1155 form since the registry already namespaces it. Ponder's matcher only does single-level string-delimiter splits, so the unified `-` tuple is the shape it can decompose to derive prefetch lookup keys from event args. + +- [#1983](https://github.com/namehash/ensnode/pull/1983) [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20) Thanks [@shrugs](https://github.com/shrugs)! - Unify `v1Domain` + `v2Domain` into a single polymorphic `domain` table discriminated by a `type` enum (`"ENSv1Domain"` | `"ENSv2Domain"`), and make Registry polymorphic across concrete ENSv1 (mainnet Registry, Basenames Registry, Lineanames Registry), ENSv1 Virtual (per-parent-domain virtual Registry managed by each ENSv1 domain that has children), and ENSv2 Registries. + + ### Breaking schema + id format changes + - `ENSv1DomainId` is now a dash-delimited tuple: `${ENSv1RegistryId}-${node}` (was `Node`). Every ENSv1 Domain is addressable through a concrete Registry, so bare `node` values no longer identify a Domain by themselves. + - `RegistryId` is a union of `ENSv1RegistryId`, `ENSv1VirtualRegistryId`, and `ENSv2RegistryId`. New id constructors: `makeENSv1RegistryId`, `makeENSv2RegistryId`, `makeENSv1VirtualRegistryId`, and `makeConcreteRegistryId` (returns `ENSv1RegistryId | ENSv2RegistryId` for callsites that only need to address a concrete Registry contract). `makeENSv1DomainId` now takes `(AccountId, Node)`. + - `domains` table: replaces `v1_domains` + `v2_domains`. Adds `type`, nullable `tokenId` (non-null iff ENSv2), nullable `node` (non-null iff ENSv1), nullable `rootRegistryOwnerId` (v1 only). `parentId` removed; parent relationships flow through `registryCanonicalDomain` for both v1 and v2. + - `registries` table: adds `type` enum column and nullable `node` (non-null iff `ENSv1VirtualRegistry`). Unique `(chainId, address)` index becomes a plain index so virtual Registries can share their concrete parent's `(chainId, address)`. + - `registryCanonicalDomain.domainId` is typed as the unified `DomainId`. + + ### GraphQL + - `Registry` becomes a GraphQL interface with `ENSv1Registry`, `ENSv1VirtualRegistry`, and `ENSv2Registry` implementations. `ENSv1VirtualRegistry` exposes `node: Node!`. + - `Domain` interface gains `parent: Domain` (resolved via the canonical-path dataloader); `ENSv1Domain` exposes `node: Node!` and `rootRegistryOwner`; `ENSv2Domain` exposes `tokenId`, `registry`, `subregistry`, `permissions`. + - `Query.registry(by: { contract })` now DB-looks up the concrete Registry by `(chainId, address, type IN (ENSv1Registry, ENSv2Registry))`. Virtual Registries are not addressable via `AccountId` alone. + ## 1.10.1 ## 1.10.0 @@ -7,7 +31,6 @@ ### Minor Changes - [#1889](https://github.com/namehash/ensnode/pull/1889) [`29fcfc7`](https://github.com/namehash/ensnode/commit/29fcfc7a1ab01c3214b5c16fc0e4a349010e9360) Thanks [@shrugs](https://github.com/shrugs)! - Migrated core ENS types and utilities from `ensnode-sdk` to `enssdk`: - - `UnixTimestamp` type moved to enssdk - `normalizeName` function (wraps `@adraffy/ens-normalize`) added; `isNormalizedName`/`isNormalizedLabel` consolidated into `normalization.ts` - `makeSubdomainNode` moved to enssdk diff --git a/packages/enssdk/package.json b/packages/enssdk/package.json index dca7b5f649..8694060465 100644 --- a/packages/enssdk/package.json +++ b/packages/enssdk/package.json @@ -1,6 +1,6 @@ { "name": "enssdk", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "The foundational ENS development library", "license": "MIT", diff --git a/packages/ensskills/CHANGELOG.md b/packages/ensskills/CHANGELOG.md index 0225036acc..89e4daaedd 100644 --- a/packages/ensskills/CHANGELOG.md +++ b/packages/ensskills/CHANGELOG.md @@ -1,5 +1,7 @@ # ensskills +## 1.11.0 + ## 1.10.1 ## 1.10.0 diff --git a/packages/ensskills/package.json b/packages/ensskills/package.json index 6459472541..acd9028fb3 100644 --- a/packages/ensskills/package.json +++ b/packages/ensskills/package.json @@ -1,6 +1,6 @@ { "name": "ensskills", - "version": "1.10.1", + "version": "1.11.0", "description": "Reserved for the ENSNode project by NameHash Labs. See https://ensnode.io", "repository": { "type": "git", diff --git a/packages/integration-test-env/CHANGELOG.md b/packages/integration-test-env/CHANGELOG.md index f05c4e27a8..a13a2e3ac4 100644 --- a/packages/integration-test-env/CHANGELOG.md +++ b/packages/integration-test-env/CHANGELOG.md @@ -1,5 +1,21 @@ # @ensnode/integration-test-env +## 1.11.0 + +### Minor Changes + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - `pollIndexingStatus` updated to use `getIndexingMetadataContext()`. + +### Patch Changes + +- [#2056](https://github.com/namehash/ensnode/pull/2056) [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572) Thanks [@shrugs](https://github.com/shrugs)! - Moved `docker-compose.yml` into a separate `docker/` directory. + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`c186ad8`](https://github.com/namehash/ensnode/commit/c186ad8c0d85c4db8619a436173d7e21f857f689), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + - @ensnode/ensdb-sdk@1.11.0 + - @ensnode/shared-configs@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/integration-test-env/package.json b/packages/integration-test-env/package.json index b71cd8eff0..2cf5f8bebd 100644 --- a/packages/integration-test-env/package.json +++ b/packages/integration-test-env/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/integration-test-env", - "version": "1.10.1", + "version": "1.11.0", "private": true, "license": "MIT", "type": "module", diff --git a/packages/namehash-ui/CHANGELOG.md b/packages/namehash-ui/CHANGELOG.md index 7ed7360ae0..b062ed4943 100644 --- a/packages/namehash-ui/CHANGELOG.md +++ b/packages/namehash-ui/CHANGELOG.md @@ -1,5 +1,15 @@ # @namehash/namehash-ui +## 1.11.0 + +### Patch Changes + +- Updated dependencies [[`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`824d819`](https://github.com/namehash/ensnode/commit/824d819d291b2b642d2664d09cb10d6de69a6ea7), [`5729ac1`](https://github.com/namehash/ensnode/commit/5729ac18ba029a476ffeca18c9b4bceee417ebdb), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20), [`92ca54f`](https://github.com/namehash/ensnode/commit/92ca54fa2efbef3f32e2dacd8fdc347ef260a2af), [`7e77c5c`](https://github.com/namehash/ensnode/commit/7e77c5c2bef96d1a2eb363871fb87379b5f6f7e9), [`0d8a4b4`](https://github.com/namehash/ensnode/commit/0d8a4b4b7c8c70be904652e2132e7c67fd9e39ef), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`0e7c601`](https://github.com/namehash/ensnode/commit/0e7c6011abbb2f49fbf6ee89168919f2d58fa572), [`43d8a9b`](https://github.com/namehash/ensnode/commit/43d8a9b838b15719f520cd3f3bbfd1b52a4ad1ce), [`6173160`](https://github.com/namehash/ensnode/commit/61731608632f62139496656f6231210f63383f20)]: + - @ensnode/ensnode-sdk@1.11.0 + - @ensnode/datasources@1.11.0 + - enssdk@1.11.0 + - @ensnode/ensnode-react@1.11.0 + ## 1.10.1 ### Patch Changes diff --git a/packages/namehash-ui/package.json b/packages/namehash-ui/package.json index 483bd7017f..e7a8208eca 100644 --- a/packages/namehash-ui/package.json +++ b/packages/namehash-ui/package.json @@ -1,6 +1,6 @@ { "name": "@namehash/namehash-ui", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "Opinionated UI components for use in apps published by NameHash Labs", "license": "MIT", diff --git a/packages/ponder-sdk/CHANGELOG.md b/packages/ponder-sdk/CHANGELOG.md index e31cc2e183..b1f6e29872 100644 --- a/packages/ponder-sdk/CHANGELOG.md +++ b/packages/ponder-sdk/CHANGELOG.md @@ -1,5 +1,7 @@ # @ensnode/ponder-sdk +## 1.11.0 + ## 1.10.1 ## 1.10.0 diff --git a/packages/ponder-sdk/package.json b/packages/ponder-sdk/package.json index 20ba99d2b5..87a8c2826d 100644 --- a/packages/ponder-sdk/package.json +++ b/packages/ponder-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ponder-sdk", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "A utility library for interacting with Ponder apps and data.", "license": "MIT", diff --git a/packages/ponder-subgraph/CHANGELOG.md b/packages/ponder-subgraph/CHANGELOG.md index 20b08b8e47..6e40458b9b 100644 --- a/packages/ponder-subgraph/CHANGELOG.md +++ b/packages/ponder-subgraph/CHANGELOG.md @@ -1,5 +1,7 @@ # @ensnode/ponder-subgraph +## 1.11.0 + ## 1.10.1 ## 1.10.0 diff --git a/packages/ponder-subgraph/package.json b/packages/ponder-subgraph/package.json index 1e3ef7f36e..bf1f4a3928 100644 --- a/packages/ponder-subgraph/package.json +++ b/packages/ponder-subgraph/package.json @@ -1,6 +1,6 @@ { "name": "@ensnode/ponder-subgraph", - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "A Hono middleware for generating Subgraph-compatible GraphQL schema.", "license": "MIT", diff --git a/packages/shared-configs/CHANGELOG.md b/packages/shared-configs/CHANGELOG.md index 726c801d86..37ed569c99 100644 --- a/packages/shared-configs/CHANGELOG.md +++ b/packages/shared-configs/CHANGELOG.md @@ -1,5 +1,7 @@ # @ensnode/shared-configs +## 1.11.0 + ## 1.10.1 ## 1.10.0 diff --git a/packages/shared-configs/package.json b/packages/shared-configs/package.json index d1fc421a40..354a7785d9 100644 --- a/packages/shared-configs/package.json +++ b/packages/shared-configs/package.json @@ -1,7 +1,7 @@ { "name": "@ensnode/shared-configs", "private": true, - "version": "1.10.1", + "version": "1.11.0", "type": "module", "description": "Shared configs for the ENSNode project.", "license": "MIT",