Hotfix/22f5cb7#2349
Conversation
Releases: @ensnode/datasources@1.17.0 @ensnode/ensdb-sdk@1.17.0 ensindexer@1.17.0 enskit@1.17.0 @ensnode/ensnode-sdk@1.17.0 ensapi@1.17.0 enssdk@1.17.0 ensskills@1.17.0 ensadmin@1.17.0 fallback-ensapi@1.17.0 enscli@1.17.0 @ensnode/integration-test-env@1.17.0 @namehash/namehash-ui@1.17.0 @ensnode/ensdb-cli@1.16.1 @docs/ensnode@1.17.0 ensrainbow@1.17.0 @namehash/ens-referrals@1.17.0 @ensnode/ensrainbow-sdk@1.17.0 @docs/ensrainbow@1.17.0 @ensnode/ponder-sdk@1.17.0 @ensnode/ponder-subgraph@1.17.0 @ensnode/shared-configs@1.17.0 @ensnode/ensindexer-perf-testing@1.17.0 [skip ci]
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 4c1d4c5 The changes in this PR will be included in the next version bump. This PR includes changesets to release 23 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📝 WalkthroughWalkthroughThis PR rolls out version 1.17.0 metadata across applications, packages, documentation, and Docker services. It also changes registration expiration boundary behavior, adds expiration tests, and updates ENSv2 registration validation for reverse-name registrations. ChangesVersion 1.17.0 release rollup
Registration behavior fixes
Estimated code review effort: 2 (Simple) | ~15 minutes Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates ENSNode/service and package versioning metadata (and Docker compose default image tags) while applying the isRegistrationFullyExpired boundary hotfix in @ensnode/ensnode-sdk and adding unit coverage for registration-expiration helpers.
Changes:
- Adjust
isRegistrationFullyExpiredto treatnow == expiry + gracePeriodas not fully expired, and add Vitest coverage for expiration helpers. - Bump many workspace package/app/doc versions to
1.17.0(and add corresponding changelog sections / OpenAPI version). - Remove multiple
.changeset/*entries (as if they were consumed by a versioning step).
Reviewed changes
Copilot reviewed 66 out of 66 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/shared-configs/package.json | Bump package version to 1.17.0. |
| packages/shared-configs/CHANGELOG.md | Add 1.17.0 changelog header. |
| packages/ponder-subgraph/package.json | Bump package version to 1.17.0. |
| packages/ponder-subgraph/CHANGELOG.md | Add 1.17.0 changelog header. |
| packages/ponder-sdk/package.json | Bump package version to 1.17.0. |
| packages/ponder-sdk/CHANGELOG.md | Add 1.17.0 changelog header. |
| packages/namehash-ui/package.json | Bump package version to 1.17.0. |
| packages/namehash-ui/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| packages/integration-test-env/package.json | Bump package version to 1.17.0. |
| packages/integration-test-env/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| packages/ensskills/package.json | Bump package version to 1.17.0. |
| packages/ensskills/CHANGELOG.md | Add 1.17.0 changelog entry. |
| packages/enssdk/package.json | Bump package version to 1.17.0. |
| packages/enssdk/CHANGELOG.md | Add 1.17.0 changelog entry. |
| packages/ensrainbow-sdk/package.json | Bump package version to 1.17.0. |
| packages/ensrainbow-sdk/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| packages/ensnode-sdk/src/registrars/registration-expiration.ts | Fix fully-expired boundary comparison (>= → >). |
| packages/ensnode-sdk/src/registrars/registration-expiration.test.ts | Add Vitest coverage for registration-expiration helpers. |
| packages/ensnode-sdk/package.json | Bump package version to 1.17.0. |
| packages/ensnode-sdk/CHANGELOG.md | Add 1.17.0 changelog section. |
| packages/enskit/package.json | Bump package version to 1.17.0. |
| packages/enskit/CHANGELOG.md | Add 1.17.0 changelog entry. |
| packages/ensindexer-perf-testing/package.json | Bump package version to 1.17.0. |
| packages/ensindexer-perf-testing/CHANGELOG.md | Add 1.17.0 changelog header. |
| packages/ensdb-sdk/package.json | Bump package version to 1.17.0. |
| packages/ensdb-sdk/CHANGELOG.md | Add 1.17.0 changelog entry. |
| packages/ensdb-cli/package.json | Bump package version to 1.16.1. |
| packages/ensdb-cli/CHANGELOG.md | Add new changelog file for 1.16.1. |
| packages/enscli/package.json | Bump package version to 1.17.0. |
| packages/enscli/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| packages/ens-referrals/package.json | Bump package version to 1.17.0. |
| packages/ens-referrals/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| packages/datasources/package.json | Bump package version to 1.17.0. |
| packages/datasources/CHANGELOG.md | Add 1.17.0 changelog entry. |
| docs/ensrainbow.io/package.json | Bump docs package version to 1.17.0. |
| docs/ensrainbow.io/CHANGELOG.md | Add 1.17.0 changelog entry. |
| docs/ensnode.io/package.json | Bump docs package version to 1.17.0. |
| docs/ensnode.io/ensapi-openapi.json | Bump OpenAPI info.version to 1.17.0. |
| docs/ensnode.io/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| docker/services/ensrainbow.yml | Update default Docker image tag to 1.17.0. |
| docker/services/ensindexer.yml | Update default Docker image tag to 1.17.0. |
| docker/services/ensapi.yml | Update default Docker image tag to 1.17.0. |
| docker/services/ensadmin.yml | Update default Docker image tag to 1.17.0. |
| apps/fallback-ensapi/package.json | Bump app version to 1.17.0. |
| apps/fallback-ensapi/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| apps/ensrainbow/package.json | Bump app version to 1.17.0. |
| apps/ensrainbow/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| apps/ensindexer/package.json | Bump app version to 1.17.0. |
| apps/ensindexer/CHANGELOG.md | Add 1.17.0 changelog entry. |
| apps/ensapi/package.json | Bump app version to 1.17.0. |
| apps/ensapi/CHANGELOG.md | Add 1.17.0 changelog entry. |
| apps/ensadmin/package.json | Bump app version to 1.17.0. |
| apps/ensadmin/CHANGELOG.md | Add 1.17.0 changelog entry with dependency bumps. |
| .changeset/sepolia-v2-latest-addresses.md | Remove changeset entry. |
| .changeset/moody-wasps-flow.md | Remove changeset entry. |
| .changeset/fix-label-heal-cascade.md | Remove changeset entry. |
| .changeset/ensindexer-sdk-indexed-blockranges.md | Remove changeset entry. |
| .changeset/ensindexer-per-chain-end-blocks.md | Remove changeset entry. |
| .changeset/ensdb-sdk-schema-metadata-helpers.md | Remove changeset entry. |
| .changeset/efp-protocol-skill.md | Remove changeset entry. |
| .changeset/efp-omnigraph.md | Remove changeset entry. |
| .changeset/efp-ensnode-sdk.md | Remove changeset entry. |
| .changeset/efp-enskit.md | Remove changeset entry. |
| .changeset/efp-ensindexer.md | Remove changeset entry. |
| .changeset/efp-ensdb-sdk.md | Remove changeset entry. |
| .changeset/efp-datasources.md | Remove changeset entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ensapi: | ||
| container_name: ensapi | ||
| image: ghcr.io/namehash/ensnode/ensapi:${ENSNODE_VERSION:-1.16.0} | ||
| image: ghcr.io/namehash/ensnode/ensapi:${ENSNODE_VERSION:-1.17.0} |
🚀 Preview Packages -
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/ensnode-sdk/src/registrars/registration-expiration.ts`:
- Around line 26-27: The expiration check in isRegistrationFullyExpired leaves a
boundary gap at expiry + gracePeriod, so make that upper bound inclusive by
changing the comparison there (and keep isRegistrationInGracePeriod
complementary) so the two helpers cover the exact transition point without
overlap or gap.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5221cb64-74ab-4277-8cd1-fb3fa7e10f43
📒 Files selected for processing (66)
.changeset/efp-datasources.md.changeset/efp-ensdb-sdk.md.changeset/efp-ensindexer.md.changeset/efp-enskit.md.changeset/efp-ensnode-sdk.md.changeset/efp-omnigraph.md.changeset/efp-protocol-skill.md.changeset/ensdb-sdk-schema-metadata-helpers.md.changeset/ensindexer-per-chain-end-blocks.md.changeset/ensindexer-sdk-indexed-blockranges.md.changeset/fix-label-heal-cascade.md.changeset/moody-wasps-flow.md.changeset/sepolia-v2-latest-addresses.mdapps/ensadmin/CHANGELOG.mdapps/ensadmin/package.jsonapps/ensapi/CHANGELOG.mdapps/ensapi/package.jsonapps/ensindexer/CHANGELOG.mdapps/ensindexer/package.jsonapps/ensrainbow/CHANGELOG.mdapps/ensrainbow/package.jsonapps/fallback-ensapi/CHANGELOG.mdapps/fallback-ensapi/package.jsondocker/services/ensadmin.ymldocker/services/ensapi.ymldocker/services/ensindexer.ymldocker/services/ensrainbow.ymldocs/ensnode.io/CHANGELOG.mddocs/ensnode.io/ensapi-openapi.jsondocs/ensnode.io/package.jsondocs/ensrainbow.io/CHANGELOG.mddocs/ensrainbow.io/package.jsonpackages/datasources/CHANGELOG.mdpackages/datasources/package.jsonpackages/ens-referrals/CHANGELOG.mdpackages/ens-referrals/package.jsonpackages/enscli/CHANGELOG.mdpackages/enscli/package.jsonpackages/ensdb-cli/CHANGELOG.mdpackages/ensdb-cli/package.jsonpackages/ensdb-sdk/CHANGELOG.mdpackages/ensdb-sdk/package.jsonpackages/ensindexer-perf-testing/CHANGELOG.mdpackages/ensindexer-perf-testing/package.jsonpackages/enskit/CHANGELOG.mdpackages/enskit/package.jsonpackages/ensnode-sdk/CHANGELOG.mdpackages/ensnode-sdk/package.jsonpackages/ensnode-sdk/src/registrars/registration-expiration.test.tspackages/ensnode-sdk/src/registrars/registration-expiration.tspackages/ensrainbow-sdk/CHANGELOG.mdpackages/ensrainbow-sdk/package.jsonpackages/enssdk/CHANGELOG.mdpackages/enssdk/package.jsonpackages/ensskills/CHANGELOG.mdpackages/ensskills/package.jsonpackages/integration-test-env/CHANGELOG.mdpackages/integration-test-env/package.jsonpackages/namehash-ui/CHANGELOG.mdpackages/namehash-ui/package.jsonpackages/ponder-sdk/CHANGELOG.mdpackages/ponder-sdk/package.jsonpackages/ponder-subgraph/CHANGELOG.mdpackages/ponder-subgraph/package.jsonpackages/shared-configs/CHANGELOG.mdpackages/shared-configs/package.json
💤 Files with no reviewable changes (13)
- .changeset/fix-label-heal-cascade.md
- .changeset/efp-datasources.md
- .changeset/efp-ensindexer.md
- .changeset/ensindexer-per-chain-end-blocks.md
- .changeset/efp-ensnode-sdk.md
- .changeset/sepolia-v2-latest-addresses.md
- .changeset/moody-wasps-flow.md
- .changeset/efp-omnigraph.md
- .changeset/efp-enskit.md
- .changeset/efp-protocol-skill.md
- .changeset/ensindexer-sdk-indexed-blockranges.md
- .changeset/ensdb-sdk-schema-metadata-helpers.md
- .changeset/efp-ensdb-sdk.md
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/ensindexer/src/plugins/unigraph/handlers/ensv2/ENSv2Registry.ts (1)
106-120: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winGuard reverse-name detection by label shape
registrantIdis a normalized0x-prefixed address and reverse labels are 40 hex chars, butendsWith(label)still accepts any shorter matching suffix. Add alabel.length === 40/hex check before skipping the expiration invariant.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/ensindexer/src/plugins/unigraph/handlers/ensv2/ENSv2Registry.ts` around lines 106 - 120, Update the isReverseNameRegistration calculation in ENSv2Registry handling to require that label is exactly 40 hexadecimal characters before checking registrantId.endsWith(label); only then may the expiration invariant be skipped.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@apps/ensindexer/src/plugins/unigraph/handlers/ensv2/ENSv2Registry.ts`:
- Around line 106-120: Update the isReverseNameRegistration calculation in
ENSv2Registry handling to require that label is exactly 40 hexadecimal
characters before checking registrantId.endsWith(label); only then may the
expiration invariant be skipped.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: f2e8170d-3c48-4894-b84d-1b761b7d3450
📒 Files selected for processing (1)
apps/ensindexer/src/plugins/unigraph/handlers/ensv2/ENSv2Registry.ts
Update invariant logic to meet the relevant smart contract implementation.
| // There's an existing Registration, so we need to handle it carefully. | ||
| // For a reverse name registration, the registrant ID value is guaranteed to end with the label value. | ||
| const isReverseNameRegistration = Boolean(registration?.registrantId?.endsWith(label)); | ||
|
|
||
| // Invariant: if this is a Registration, unless it is a Reservation or a reverse name Registration, it should be fully expired |
| --- | ||
| "@ensnode/ensnode-sdk": patch | ||
| --- | ||
|
|
||
| Fix boundary gap in `isRegistrationInGracePeriod`: the grace-period upper bound is now inclusive (`>=`) so that `isRegistrationInGracePeriod` and `isRegistrationFullyExpired` are complementary at `now == expiry + gracePeriod`. |
| --- | ||
| "@ensnode/ensnode-sdk": patch | ||
| --- | ||
|
|
||
| Fix boundary gap in `isRegistrationInGracePeriod`: the grace-period upper bound is now inclusive (`>=`) so that `isRegistrationInGracePeriod` and `isRegistrationFullyExpired` are complementary at `now == expiry + gracePeriod`. |
This is a hotfix PR for ENSNode v1.17.0. It aligns indexing logic and invariants logic to match the reality of implementation details for the indexed smart contracts.