Skip to content

Add SSV DAO to ENSAwards#175

Merged
Y3drk merged 3 commits intonamehash:mainfrom
spookyeth:ssvnetwork
Apr 9, 2026
Merged

Add SSV DAO to ENSAwards#175
Y3drk merged 3 commits intonamehash:mainfrom
spookyeth:ssvnetwork

Conversation

@spookyeth
Copy link
Copy Markdown
Contributor

The SSV DAO recently passed a DAO Proposal to add contract names:
https://snapshot.org/#/s:mainnet.ssvnetwork.eth/proposal/0xc6dda95fd5cc77d84c881228c533c8c9c49b98cfb91fa96497efef9b9eb6f849

This PR is to add the SSV DAO to ENSAwards 🎉

@spookyeth spookyeth requested a review from a team as a code owner April 8, 2026 15:00
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 8, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 07b08fb6-0d4a-407e-8425-d86e71f4fcd5

📥 Commits

Reviewing files that changed from the base of the PR and between 61ddacf and 43ad5ca.

📒 Files selected for processing (6)
  • ensawards.org/data/projects/ssvnetwork/icon.tsx
  • ensawards.org/data/projects/types.ts
  • ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts
  • ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx
  • ensawards.org/data/protocols/ssvnetwork-dao/index.ts
  • ensawards.org/data/protocols/types.ts

📝 Walkthrough

Walkthrough

Adds SSV Network as a new project and DAO protocol: project metadata and icon, protocol registration and icon, contract records tied to a new spooky contributor entry, and corresponding type extensions for project and DAO identifiers.

Changes

Cohort / File(s) Summary
Contributors
ensawards.org/data/contributors/index.ts
Added spooky contributor entry with chainId: mainnet.id and address 0x0B399d2667733659F4A5fDCB030F3E26D26cC0Fe.
SSV Network Project
ensawards.org/data/projects/ssvnetwork/icon.tsx, ensawards.org/data/projects/ssvnetwork/index.ts, ensawards.org/data/projects/types.ts
Introduced SSVNetwork project id, project metadata, and a React SVG Icon component; registered via existing project helpers.
SSVNetwork DAO Protocol
ensawards.org/data/protocols/ssvnetwork-dao/index.ts, ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx, ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts, ensawards.org/data/protocols/types.ts
Added SSVNetworkDao protocol id and DAO definition with icon, socials, ENS, plus a contracts module registering multiple contracts (each linked to contributors.spooky and parsed timestamps) and calling defineContracts(contracts).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

ensawards

Poem

🐇 A hop, a nibble, data in tow,
I add a friend named Spooky, hello!
SSV's icon beams and contracts align,
Protocols and projects now neatly entwine,
Hooray — the registry grows, carrot-toast to show! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding the SSV DAO to the ENSAwards platform, which aligns with all file modifications.
Description check ✅ Passed The description is directly related to the changeset, explaining the context behind adding SSV DAO support with reference to the DAO proposal.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 8, 2026

@spookyeth is attempting to deploy a commit to the NameHash Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 8, 2026

Greptile Summary

This PR adds SSV DAO to ENSAwards following a passed DAO governance proposal. It introduces a new ssvnetwork-dao protocol, a ssvnetwork project, 8 named contracts, a new spooky contributor, and corresponding SVG icons — all following the established patterns in the codebase.

Key findings:

  • Missing type registrations (P1): DAOProtocolIds.SSVNetworkDao and ProjectIds.SSVNetwork are referenced by the new code but are not added to data/protocols/types.ts or data/projects/types.ts. These will resolve to undefined at runtime and fail TypeScript type-checking. Both type files must be updated before the build can succeed.
  • Unused props in icon components (P2): Both ssvnetwork-dao/icon.tsx and projects/ssvnetwork/icon.tsx accept React.SVGProps<SVGSVGElement> but never spread them onto the <svg> element, silently discarding any caller-supplied props.
  • Empty OG image paths (P2): ogImagePath: \"\" and twitterOgImagePath: \"\" in the protocol definition are empty strings rather than being omitted. Since these fields are optional in ProtocolAbstract, they should either be left out or set to real URLs.

Confidence Score: 4/5

Not safe to merge as-is — TypeScript compilation will fail due to missing ID registrations in the type definition files.

There is one clear P1 blocker: DAOProtocolIds.SSVNetworkDao and ProjectIds.SSVNetwork are used in the new code but never added to their respective type registries. The fix is straightforward but must be included before merging.

ensawards.org/data/protocols/types.ts and ensawards.org/data/projects/types.ts — both require a new ID entry to be added.

Vulnerabilities

No security concerns identified. The changes are purely additive data registrations (protocol, project, contracts, contributor) with no authentication logic, secret handling, input validation, or external API calls.

Important Files Changed

Filename Overview
ensawards.org/data/protocols/types.ts Not modified by this PR but MUST be — SSVNetworkDao is missing from DAOProtocolIds, causing a TypeScript type error in the new protocol index.
ensawards.org/data/projects/types.ts Not modified by this PR but MUST be — SSVNetwork is missing from ProjectIds, causing a TypeScript type error in the new project index.
ensawards.org/data/protocols/ssvnetwork-dao/index.ts Defines SSVNetworkDao protocol; references DAOProtocolIds.SSVNetworkDao which does not exist in types.ts — will be undefined and fail type checking. Also has empty ogImagePath/twitterOgImagePath strings.
ensawards.org/data/projects/ssvnetwork/index.ts Defines SSVNetworkProject; references ProjectIds.SSVNetwork which does not exist in projects/types.ts — will be undefined and fail type checking.
ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts Adds 8 SSV Network contracts with correct resolution statuses (7 ForwardNamed, 1 PrimaryNamed for SSVFoundation); structure and contribution entries look correct.
ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx SVG icon component — identical to project icon; props parameter is accepted but not spread onto the <svg> element, silently dropping any caller-supplied props.
ensawards.org/data/projects/ssvnetwork/icon.tsx Identical SVG icon to protocol icon — props accepted but not forwarded to the SVG element.
ensawards.org/data/contributors/index.ts Adds spooky contributor with Ethereum mainnet address; straightforward and follows existing patterns.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[contributors/index.ts
spooky contributor] --> C
    B[projects/ssvnetwork/index.ts
SSVNetworkProject
id: ProjectIds.SSVNetwork ⚠️] --> D
    D[protocols/ssvnetwork-dao/index.ts
SSVNetworkDao
id: DAOProtocolIds.SSVNetworkDao ⚠️] --> C
    C[protocols/ssvnetwork-dao/contracts.ts
8 contracts
ForwardNamed × 7, PrimaryNamed × 1]
    E[projects/ssvnetwork/icon.tsx
SSV SVG Icon] --> B
    F[protocols/ssvnetwork-dao/icon.tsx
SSV SVG Icon identical] --> D
    style B fill:#ffcccc,stroke:#cc0000
    style D fill:#ffcccc,stroke:#cc0000
Loading

Reviews (1): Last reviewed commit: "Add SSV Network to ENSAwards" | Re-trigger Greptile

Comment thread ensawards.org/data/protocols/ssvnetwork-dao/index.ts
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx Outdated
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/index.ts Outdated
Copy link
Copy Markdown

@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.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ensawards.org/data/projects/ssvnetwork/icon.tsx`:
- Around line 3-11: The Icon component declares props:
React.SVGProps<SVGSVGElement> but never applies them to the <svg>; update the
Icon function to spread the incoming props onto the <svg> element (e.g., include
{...props} on the svg) so consumers can override
width/height/className/style/etc.; keep the existing attributes (xmlns, default
width/height/fill) but allow props to override them as needed while preserving
the Icon identifier and prop typing.

In `@ensawards.org/data/projects/ssvnetwork/index.ts`:
- Line 7: Add the missing SSVNetwork key to the ProjectIds constant so
ProjectIds.SSVNetwork resolves correctly; update the ProjectIds object (symbol
ProjectIds) by adding the entry SSVNetwork with the value "project-ssvnetwork"
(matching the existing string pattern) in the types file where ProjectIds is
defined, then export it as before to keep the as const typing consistent.

In `@ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts`:
- Line 109: Replace the lowercase hex address value used for the contract's
address property with the EIP-55 checksum version; locate the object that
contains the address: "0xe16d6138b1d2ad4fd6603acdb329ad1a6cd26d9f" in
contracts.ts (the address property for the SSV Network DAO entry) and update it
to the checksum-cased value 0xE016d6138b1D2Ad4fD6603aCDB329ad1a6cD26D9F so the
file matches the other checksum-formatted addresses.

In `@ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx`:
- Around line 1-13: The file defines a duplicate Icon component and default
export; replace the inline SVG implementation by re-exporting the project's
existing icon: remove the Icon const and SVG markup and instead import the
project's default icon export and export it as the default (i.e., ensure the
module simply forwards the project's Icon default export so the protocol reuses
the project's icon).

In `@ensawards.org/data/protocols/ssvnetwork-dao/index.ts`:
- Around line 24-25: The OG image fields ogImagePath and twitterOgImagePath are
empty strings causing missing social previews; update the ssvnetwork-dao
protocol config to point these keys at a valid image asset (or remove the keys
so the global/default OG image is used) and ensure the referenced file exists in
the public/assets (or correct assets) folder and uses the same path format as
other protocol entries (e.g., a relative path string matching existing protocol
image paths). Make sure to update any consumers that assume non-empty strings to
handle the fallback if you choose to remove the keys.
- Line 11: The DAOProtocolIds object in types.ts is missing the SSVNetworkDao
entry referenced by ensawards.org/data/protocols/ssvnetwork-dao/index.ts
(DAOProtocolIds.SSVNetworkDao); add a new key/value pair SSVNetworkDao:
"protocol-ssvnetwork-dao" to the DAOProtocolIds const in
ensawards.org/data/protocols/types.ts so the lookup resolves, preserving the
existing as const typing and formatting to match the other entries.
🪄 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: 4fe417c9-99e5-4c57-b9db-673299c612cb

📥 Commits

Reviewing files that changed from the base of the PR and between 67d676c and 61ddacf.

📒 Files selected for processing (6)
  • ensawards.org/data/contributors/index.ts
  • ensawards.org/data/projects/ssvnetwork/icon.tsx
  • ensawards.org/data/projects/ssvnetwork/index.ts
  • ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts
  • ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx
  • ensawards.org/data/protocols/ssvnetwork-dao/index.ts

Comment thread ensawards.org/data/projects/ssvnetwork/icon.tsx
Comment thread ensawards.org/data/projects/ssvnetwork/index.ts
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/contracts.ts Outdated
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/index.ts
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/index.ts Outdated
Comment thread ensawards.org/data/projects/ssvnetwork/icon.tsx Outdated
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/index.ts
Comment thread ensawards.org/data/protocols/ssvnetwork-dao/icon.tsx Outdated
Comment thread ensawards.org/data/projects/ssvnetwork/index.ts
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 9, 2026

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

Project Deployment Actions Updated (UTC)
ensawards.org Ready Ready Preview, Comment Apr 9, 2026 11:17am

Copy link
Copy Markdown
Member

@Y3drk Y3drk left a comment

Choose a reason for hiding this comment

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

@spookyeth Hey👋. Thanks a lot for your contribution to ENSAwards!

All looks good 💪 . Two minor requests before merging:

  • Add the viewBox attribute to icons (see related review comment)
  • Run pnpm lint in the repository root to allow our CI (format) check to pass

Comment thread ensawards.org/data/projects/ssvnetwork/icon.tsx Outdated
Copy link
Copy Markdown
Member

@Y3drk Y3drk left a comment

Choose a reason for hiding this comment

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

All looks great. I'll proceed with merging.

Thanks again @spookyeth for your contribution 🤝

@Y3drk Y3drk merged commit 8258127 into namehash:main Apr 9, 2026
6 of 7 checks passed
@Y3drk Y3drk mentioned this pull request Apr 10, 2026
1 task
@spookyeth spookyeth deleted the ssvnetwork branch April 13, 2026 20:20
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.

2 participants