Skip to content

Transitioning to use AccountId as the referrer identifier#2038

Open
Goader wants to merge 18 commits into
mainfrom
task/enhance-referrers-data-model
Open

Transitioning to use AccountId as the referrer identifier#2038
Goader wants to merge 18 commits into
mainfrom
task/enhance-referrers-data-model

Conversation

@Goader
Copy link
Copy Markdown
Member

@Goader Goader commented May 1, 2026

Transitioning to use AccountId as the referrer identifier

closes: #1956

Summary

  • Transitioned to use AccountId or AccountIdString for keys
  • Fixed the bug in the Zod schema in ensnode-sdk

Why


Testing

  • Automatic CI and manual validation
  • New tests

Notes for Reviewer

  • The bug in ensnode-sdk
  • Referrer column in the accounting CSV is now stringified AccountId (e.g., eip155:11155111:0xcfa4f8192ad39d1ee09f473e88e79d267e09ddca)

Pre-Review Checklist (Blocking)

  • This PR does not introduce significant changes and is low-risk to review quickly.
  • Relevant changesets are included (or are not required)

@Goader Goader self-assigned this May 1, 2026
Copilot AI review requested due to automatic review settings May 1, 2026 15:43
@Goader Goader requested a review from a team as a code owner May 1, 2026 15:43
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 1, 2026

🦋 Changeset detected

Latest commit: 9b377a0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 24 packages
Name Type
@namehash/ens-referrals Major
ensapi Major
@ensnode/ensnode-sdk Major
ensadmin Major
ensindexer Major
ensrainbow Major
fallback-ensapi Major
@ensnode/ensdb-sdk Major
@ensnode/ensnode-react Major
@ensnode/ensrainbow-sdk Major
@ensnode/integration-test-env Major
@namehash/namehash-ui Major
@docs/ensnode Major
@docs/ensrainbow Major
enssdk Major
enscli Major
enskit Major
ensskills Major
@ensnode/datasources Major
@ensnode/ponder-sdk Major
@ensnode/ponder-subgraph Major
@ensnode/shared-configs Major
@ensnode/ensindexer-perf-testing Major
@ensnode/enskit-react-example Patch

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

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment May 12, 2026 10:44pm
enskit-react-example.ensnode.io Ready Ready Preview, Comment May 12, 2026 10:44pm
ensnode.io Ready Ready Preview, Comment May 12, 2026 10:44pm
ensrainbow.io Ready Ready Preview, Comment May 12, 2026 10:44pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 1, 2026

📝 Walkthrough

Walkthrough

Migrates referrer identity from NormalizedAddress to CAIP‑10 AccountId across ENS analytics and referrals: types, schemas, map keying (via stringifyAccountId), API path parameter schema, client serialization, CSV formatting, tests/mocks, and related validation plumbing.

Changes

Referrer Standardization via CAIP-10 AccountId

Layer / File(s) Summary
AccountId string schema & validation
packages/ensnode-sdk/src/shared/zod-schemas.ts, packages/ensnode-sdk/src/shared/account-id.test.ts
makeAccountIdStringSchema now catches CAIP‑10 parse errors and reports Zod issues (no synchronous throws). Tests added to assert safeParse returns structured failures for malformed input.
API request shape and route param
packages/ens-referrals/src/api/zod-schemas.ts, apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.routes.ts, apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.ts
Switched path-param/schema for GET /v1/ensanalytics/referrer/{referrer} to expect URL‑encoded CAIP‑10 AccountId strings (use makeAccountIdStringSchema). Inline docs updated to describe URL‑encoded CAIP‑10 AccountId.
Client serialization for referrer paths
packages/ens-referrals/src/client.ts
getReferrerMetricsEditions now serializes AccountId via stringifyAccountId(...) then encodeURIComponent for URL path construction; JSDoc/examples updated to { chainId, address }.
Type migrations and validators
packages/ens-referrals/src/referrer-metrics.ts, packages/ens-referrals/src/api/types.ts, packages/ens-referrals/src/award-models/rev-share-cap/accounting.ts, packages/ens-referrals/src/award-models/rev-share-cap/referral-event.ts, packages/ens-referrals/src/award-models/rev-share-cap/metrics.ts, packages/ens-referrals/src/award-models/pie-split/metrics.ts, packages/ens-referrals/src/award-models/shared/rank.ts
Referrer types and exported function signatures migrated from NormalizedAddress to AccountId. Validation uses makeAccountIdSchema/makeAccountIdStringSchema; equality checks use accountIdEqual; tie-break ordering uses stringifyAccountId(...) lexicographic comparison. JSDoc updated.
Leaderboard map keying & page helpers
packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.ts, packages/ens-referrals/src/award-models/pie-split/leaderboard.ts, packages/ens-referrals/src/award-models/shared/leaderboard-page.ts, packages/ens-referrals/src/award-models/shared/rank.ts
Leaderboards now key referrers maps by AccountIdString. Implementations populate and lookup maps with stringifyAccountId(referrer) and sliceReferrers signature updated to Map<AccountIdString, T>.
Admin actions, rules, and Zod schemas
packages/ens-referrals/src/award-models/rev-share-cap/rules.ts, packages/ens-referrals/src/award-models/rev-share-cap/api/zod-schemas.ts
Admin-action referrer fields use AccountId; Zod schemas switched to makeAccountIdSchema/makeAccountIdStringSchema. Duplicate detection uses stringifyAccountId(...) keys; comparisons use accountIdEqual. Error messages adjusted.
Database, events, and CSV output
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/database.ts, apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/format-accounting-csv.ts
DB-layer now emits ReferralEvent.referrer as { chainId, address } with addresses normalized via toNormalizedAddress. CSV Referrer column renders using stringifyAccountId(...).
Tests, mocks, and fixtures
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/mocks.ts, apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.test.ts, packages/ens-referrals/src/api/zod-schemas.test.ts, packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.test.ts, packages/ens-referrals/src/award-models/rev-share-cap/accounting.test.ts, packages/ens-referrals/src/leaderboard-page.test.ts, packages/ens-referrals/src/award-models/shared/leaderboard-guards.test.ts
Tests and mocks updated to construct AccountId via local acct() helpers, use stringifyAccountId(...) for map keys and path encoding (encodeURIComponent(stringifyAccountId(...))), and adjust assertions to deep-compare AccountId objects. New guard tests ensure duplicate detection uses stringified AccountId identity.
Cleanup: removed old helper export
packages/ens-referrals/src/address.ts, packages/ens-referrals/src/index.ts
Removed exported validateNormalizedAddress helper and stopped re-exporting ./address from package barrel; callers rely on enssdk AccountId schemas/helpers instead.
Changesets
.changeset/*.md
Added changesets: one marking minor release for @namehash/ens-referrals + ensapi documenting AccountId migration; one patch for @ensnode/ensnode-sdk to fix makeAccountIdStringSchema behavior.

Sequence Diagram(s)

(omitted — changes are broad migration/refactor and don't introduce a new multi-component sequential flow requiring visualization)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

ensanalytics

Poem

🐰 I nibble keys and stringify the night,
CAIP‑10 moons glow chain+id bright.
I hop, I validate, no throws in my way,
Maps sing true keys and tests pass today.
Encode, return—then hop off to play.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: transitioning referrer identifiers from using addresses to using AccountId.
Linked Issues check ✅ Passed The PR comprehensively implements all coding requirements from issue #1956: replacing NormalizedAddress with AccountId throughout, using stringifyAccountId for keys, updating API routes and client helpers.
Out of Scope Changes check ✅ Passed All changes are directly aligned with issue #1956 objectives. The Zod schema fix in ensnode-sdk, leaderboard guard tests, and consistent AccountId usage throughout are all within scope.
Description check ✅ Passed PR description covers summary, rationale (issue link), testing approach, and notes, following the repository template structure.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch task/enhance-referrers-data-model

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 1, 2026

Greptile Summary

This PR migrates the referrer identifier throughout ens-referrals from a NormalizedAddress (plain lowercase EVM address string) to AccountId (CAIP-10 object with chainId + address), making the system explicitly chain-aware. It also patches a Zod schema bug in ensnode-sdk where makeAccountIdStringSchema could throw synchronously inside a .transform() instead of emitting a Zod issue.

  • Domain type updates: ReferrerMetrics, ReferralEvent, AdminAction, ReferralAccountingRecordRevShareCap, and leaderboard map keys all migrated from NormalizedAddress/bare address strings to AccountId/AccountIdString (CAIP-10). Equality checks and deduplication updated to use accountIdEqual / stringifyAccountId.
  • API surface: The GET /v1/ensanalytics/referrer/{referrer} path parameter is now a URL-encoded CAIP-10 string; the ENSReferralsClient serializes the AccountId before embedding it in the URL. makeReferrerMetricsEditionsRequestSchema (which used makeNormalizedAddressSchema) is removed.
  • Test data fix: leaderboard-page.test.ts incidentally corrects a pre-existing inconsistency where the Map keys and the nested referrer.address values pointed to different addresses.

Confidence Score: 5/5

Safe to merge — all referrer comparisons, map lookups, and serialization paths are consistently updated throughout the domain layer, API layer, and client.

The migration is systematic and complete: every point where a referrer is compared, stored as a map key, serialized into a URL, or deserialized from a path param has been updated. The Zod schema fix correctly replaces a throw-from-transform antipattern with ctx.addIssue/z.NEVER. The leaderboard test-data inconsistency fix eliminates a latent test correctness issue. The sorting tie-break using AccountIdString is order-preserving for same-chain referrers.

No files require special attention.

Important Files Changed

Filename Overview
packages/ensnode-sdk/src/shared/zod-schemas.ts Bug fix: wraps CaipAccountId constructor call in try/catch and uses ctx.addIssue + z.NEVER so safeParse never throws; pipes result through makeAccountIdSchema to normalize the address casing.
packages/ens-referrals/src/referrer-metrics.ts ReferrerMetrics.referrer changed from NormalizedAddress to AccountId; validation replaced from validateNormalizedAddress (deleted) to makeAccountIdSchema(...).parse(...).
packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.ts Race-processing maps (adminActionByReferrer, referrerStates) now keyed by AccountIdString; AccountId stored on ReferrerRaceState so the final AwardedReferrerMetrics can be built without reconstructing from the key string. Sorting tie-break uses AccountIdString desc, semantically equivalent for same-chain referrers.
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/database.ts Database records now hydrated into AccountId objects using rules.subregistryId.chainId as the chain context; raw address normalized via toNormalizedAddress replacing unsafe NormalizedAddress cast.
apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.routes.ts Route path param switched from makeNormalizedAddressSchema to makeAccountIdStringSchema; referrerAccountIdSchema replaces referrerAddressSchema; description updated to reflect URL-encoded CAIP-10 format.
packages/ens-referrals/src/award-models/rev-share-cap/api/zod-schemas.ts All referrer fields in admin-action and awarded/unranked metrics schemas migrated to makeAccountIdSchema; equality refinements updated to use accountIdEqual; duplicate-admin-action check updated to use stringifyAccountId for Set deduplication.
packages/ens-referrals/src/leaderboard-page.test.ts Fixes a pre-existing test inconsistency where Map keys and nested referrer.address pointed to different addresses; all three entries now have consistent acctKey(addr)/acct(addr) pairs.
packages/ens-referrals/src/award-models/shared/leaderboard-guards.ts Duplicate-referrer check updated to use stringifyAccountId for Set deduplication, preventing false negatives when two distinct AccountId object instances represent the same referrer.
packages/ens-referrals/src/client.ts getReferrerMetricsEditions now accepts AccountId and serializes it to a URL-encoded CAIP-10 string for the request path.
packages/ens-referrals/src/award-models/rev-share-cap/rules.ts AdminAction.referrer changed to AccountId; duplicate-action and qualification checks use accountIdEqual; validateNormalizedAddress removed in favour of makeAccountIdSchema().parse().

Sequence Diagram

sequenceDiagram
    participant Client as ENSReferralsClient
    participant Route as Hono Route
    participant Schema as Zod Schema (makeAccountIdStringSchema)
    participant Handler as API Handler
    participant DB as Database Layer
    participant LB as Leaderboard Map AccountIdString

    Client->>Route: "GET /referrer/{encodeURIComponent(CAIP-10)}"
    Route->>Schema: parse URL-decoded path param
    Schema->>Schema: CaipAccountId(v) then pipe makeAccountIdSchema
    Schema-->>Handler: AccountId object
    Handler->>DB: getReferralEvents(rules)
    DB-->>Handler: ReferralEvent[] referrer AccountId from rules.subregistryId.chainId
    Handler->>LB: buildReferralEditionSnapshot(events, rules)
    LB-->>Handler: Map AccountIdString to AwardedReferrerMetrics
    Handler->>LB: referrers.get(stringifyAccountId(referrer))
    LB-->>Handler: AwardedReferrerMetrics or undefined
    Handler-->>Client: ReferrerEditionMetrics ranked or zero-score unranked
Loading

Reviews (6): Last reviewed commit: "Merge remote-tracking branch 'origin' in..." | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Transitions ENSAnalytics/ENS Referrals referrer identification from bare EVM addresses to AccountId (CAIP-10), aligning domain models, API surface, client helpers, and OpenAPI docs; also fixes a Zod schema bug so invalid CAIP-10 strings surface as Zod issues instead of throwing.

Changes:

  • Replace NormalizedAddress referrer identifiers with AccountId/AccountIdString across @namehash/ens-referrals domain types and leaderboard maps.
  • Update ENSAnalytics v1 API route param to be a URL-encoded CAIP-10 string and update client + server parsing/serialization/tests accordingly.
  • Fix makeAccountIdStringSchema to report invalid CAIP-10 input via Zod issues (non-throwing safeParse) and add regression tests.

Reviewed changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/ensnode-sdk/src/shared/zod-schemas.ts Make CAIP-10 parsing non-throwing by emitting Zod issues in transform.
packages/ensnode-sdk/src/shared/account-id.test.ts Add tests ensuring safeParse doesn’t throw and invalid CAIP-10 is surfaced cleanly.
packages/ens-referrals/src/referrer-metrics.ts Switch referrer field/type + validation from NormalizedAddress to AccountId.
packages/ens-referrals/src/leaderboard-page.test.ts Update fixtures to use AccountId + AccountIdString keys.
packages/ens-referrals/src/edition-metrics.ts Use stringifyAccountId for referrer lookups into leaderboard maps.
packages/ens-referrals/src/client.ts Serialize AccountId into URL-encoded CAIP-10 for /referrer/{referrer} requests.
packages/ens-referrals/src/award-models/shared/rank.ts Deterministic tie-breaker now compares CAIP-10 strings derived from AccountId.
packages/ens-referrals/src/award-models/shared/leaderboard-page.ts Update sliceReferrers to accept maps keyed by AccountIdString.
packages/ens-referrals/src/award-models/rev-share-cap/rules.ts Replace address comparisons with accountIdEqual + dedupe via CAIP-10 string keys.
packages/ens-referrals/src/award-models/rev-share-cap/referral-event.ts Update ReferralEvent.referrer type to AccountId.
packages/ens-referrals/src/award-models/rev-share-cap/metrics.ts Replace referrer equality with accountIdEqual in rules/metrics consistency checks.
packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.ts Key internal maps by CAIP-10 string; preserve AccountId in race state for output.
packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.test.ts Update rev-share-cap leaderboard tests to use AccountId + CAIP-10 map keys.
packages/ens-referrals/src/award-models/rev-share-cap/edition-metrics.ts Documentation-only wording update (“referrer” vs “referrer address”).
packages/ens-referrals/src/award-models/rev-share-cap/api/zod-schemas.ts Update schemas to parse AccountId and compare with accountIdEqual; dedupe via CAIP-10 key.
packages/ens-referrals/src/award-models/rev-share-cap/accounting.ts Update accounting record referrer type to AccountId.
packages/ens-referrals/src/award-models/rev-share-cap/accounting.test.ts Update accounting tests for AccountId and CAIP-10 keyed maps.
packages/ens-referrals/src/award-models/pie-split/metrics.ts Update unranked builder signature/docs to take AccountId.
packages/ens-referrals/src/award-models/pie-split/leaderboard.ts Key leaderboard maps by CAIP-10 string produced from AccountId.
packages/ens-referrals/src/award-models/pie-split/edition-metrics.ts Documentation-only wording update (“referrer” vs “referrer address”).
packages/ens-referrals/src/award-models/pie-split/api/zod-schemas.ts Update API schemas to accept AccountId referrers.
packages/ens-referrals/src/api/zod-schemas.ts Change request schema referrer to parse CAIP-10 (via makeAccountIdStringSchema).
packages/ens-referrals/src/api/zod-schemas.test.ts Update tests/fixtures to use AccountId objects for referrers/admin actions.
packages/ens-referrals/src/api/types.ts Update API request typing to use AccountId for referrer.
docs/ensnode.io/ensapi-openapi.json Document /referrer/{referrer} as CAIP-10 string path param.
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/mocks.ts Update server mocks to build AccountId objects and CAIP-10 keyed maps.
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/format-accounting-csv.ts Serialize referrer as CAIP-10 string in CSV export.
apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/database.ts Wrap DB decodedReferrer with chainId into AccountId for metrics/events.
apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.ts Handler now treats route param as referrer (AccountId) rather than address string.
apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.test.ts Update API tests to URL-encode CAIP-10 referrer and assert AccountId shapes.
apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.routes.ts Update OpenAPI route param schema/description to CAIP-10 AccountId string.
.changeset/quiet-foxes-stumble.md Patch changeset for ensnode-sdk Zod fix.
.changeset/magical-hedgehog-jump.md Minor changeset for breaking-ish API/domain referrer identifier shift.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/ens-referrals/src/award-models/shared/rank.ts
Comment thread packages/ens-referrals/src/leaderboard-page.test.ts
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/ens-referrals/src/leaderboard-page.test.ts (1)

33-166: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Keep each fixture key in sync with its referrer value.

Several Map<AccountIdString, ...> entries now use a different CAIP-10 key than the referrer stored in the value. The test still passes because it only checks size, but it no longer validates the new keying invariant. Please derive each key from the same AccountId you store in the value.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/ens-referrals/src/leaderboard-page.test.ts` around lines 33 - 166,
The Map keys in the ReferrerLeaderboardPieSplit fixtures do not match the
referrer values (acctKey("...") vs referrer: acct("...")), breaking the
invariant that the key is derived from the stored AccountId; update each Map
entry so the key is derived from the same AccountId used in the value (e.g.,
assign the AccountId to a variable via acct("...") and call
acctKey(thatAccountId) for the Map key) for all entries in the
Map<AccountIdString, AwardedReferrerMetricsPieSplit> used by
buildReferrerLeaderboardPageContext.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@packages/ens-referrals/src/leaderboard-page.test.ts`:
- Around line 33-166: The Map keys in the ReferrerLeaderboardPieSplit fixtures
do not match the referrer values (acctKey("...") vs referrer: acct("...")),
breaking the invariant that the key is derived from the stored AccountId; update
each Map entry so the key is derived from the same AccountId used in the value
(e.g., assign the AccountId to a variable via acct("...") and call
acctKey(thatAccountId) for the Map key) for all entries in the
Map<AccountIdString, AwardedReferrerMetricsPieSplit> used by
buildReferrerLeaderboardPageContext.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 028ced1d-b223-4611-b85a-2cb1ffb9b38a

📥 Commits

Reviewing files that changed from the base of the PR and between 9cf0a7c and a39ae4d.

📒 Files selected for processing (33)
  • .changeset/magical-hedgehog-jump.md
  • .changeset/quiet-foxes-stumble.md
  • apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.routes.ts
  • apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.test.ts
  • apps/ensapi/src/handlers/ensanalytics/ensanalytics-api.ts
  • apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/database.ts
  • apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/format-accounting-csv.ts
  • apps/ensapi/src/lib/ensanalytics/referrer-leaderboard/mocks.ts
  • docs/ensnode.io/ensapi-openapi.json
  • packages/ens-referrals/src/api/types.ts
  • packages/ens-referrals/src/api/zod-schemas.test.ts
  • packages/ens-referrals/src/api/zod-schemas.ts
  • packages/ens-referrals/src/award-models/pie-split/api/zod-schemas.ts
  • packages/ens-referrals/src/award-models/pie-split/edition-metrics.ts
  • packages/ens-referrals/src/award-models/pie-split/leaderboard.ts
  • packages/ens-referrals/src/award-models/pie-split/metrics.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/accounting.test.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/accounting.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/api/zod-schemas.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/edition-metrics.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.test.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/leaderboard.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/metrics.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/referral-event.ts
  • packages/ens-referrals/src/award-models/rev-share-cap/rules.ts
  • packages/ens-referrals/src/award-models/shared/leaderboard-page.ts
  • packages/ens-referrals/src/award-models/shared/rank.ts
  • packages/ens-referrals/src/client.ts
  • packages/ens-referrals/src/edition-metrics.ts
  • packages/ens-referrals/src/leaderboard-page.test.ts
  • packages/ens-referrals/src/referrer-metrics.ts
  • packages/ensnode-sdk/src/shared/account-id.test.ts
  • packages/ensnode-sdk/src/shared/zod-schemas.ts

@vercel vercel Bot temporarily deployed to Preview – ensnode.io May 1, 2026 15:57 Inactive
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 1, 2026 15:57 Inactive
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 1, 2026 15:57 Inactive
Base automatically changed from feature/award-accounting to main May 6, 2026 19:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 34 out of 34 changed files in this pull request and generated 1 comment.

Comment thread packages/ens-referrals/src/api/zod-schemas.ts Outdated
@Goader
Copy link
Copy Markdown
Member Author

Goader commented May 12, 2026

@greptile

@Goader
Copy link
Copy Markdown
Member Author

Goader commented May 12, 2026

@CodeRabbit do the review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

@Goader Sure! I'll start the review of PR #2038 right away.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 36 out of 36 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enhance data model for referrers

2 participants