Add SSV DAO to ENSAwards#175
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughAdds SSV Network as a new project and DAO protocol: project metadata and icon, protocol registration and icon, contract records tied to a new Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 |
|
@spookyeth is attempting to deploy a commit to the NameHash Team on Vercel. A member of the Team first needs to authorize it. |
Greptile SummaryThis PR adds SSV DAO to ENSAwards following a passed DAO governance proposal. It introduces a new Key findings:
Confidence Score: 4/5Not 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:
|
| 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
Reviews (1): Last reviewed commit: "Add SSV Network to ENSAwards" | Re-trigger Greptile
There was a problem hiding this comment.
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
📒 Files selected for processing (6)
ensawards.org/data/contributors/index.tsensawards.org/data/projects/ssvnetwork/icon.tsxensawards.org/data/projects/ssvnetwork/index.tsensawards.org/data/protocols/ssvnetwork-dao/contracts.tsensawards.org/data/protocols/ssvnetwork-dao/icon.tsxensawards.org/data/protocols/ssvnetwork-dao/index.ts
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
@spookyeth Hey👋. Thanks a lot for your contribution to ENSAwards!
All looks good 💪 . Two minor requests before merging:
- Add the
viewBoxattribute to icons (see related review comment) - Run
pnpm lintin the repository root to allow our CI (format) check to pass
Y3drk
left a comment
There was a problem hiding this comment.
All looks great. I'll proceed with merging.
Thanks again @spookyeth for your contribution 🤝
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 🎉