-
Notifications
You must be signed in to change notification settings - Fork 5
feat: Add new apps - DeFis #225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 5 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
892fb0e
Add DeFi app type
Y3drk 10dceee
Add Uniswap DeFi app
Y3drk 6e4348d
Add Aave DeFi app
Y3drk d4f9e4f
Add 1inch DeFi app
Y3drk fd7a04f
Add Lido DeFi app + minor correction for Uniswap DeFi app
Y3drk 3a6e6a6
Fix build error
Y3drk ef3b110
Apply AI agents' suggestions, pt.1
Y3drk 79a3fc5
Simplify slugs for DeFi apps
Y3drk 11ac659
Apply AI agents' suggestions, pt.2
Y3drk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file added
BIN
+118 KB
...fi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-portfolio.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+29.3 KB
...ch-defi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-send.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions
62
ensawards.org/data/apps/1inch-defi-app/benchmarks/index.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| // Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md | ||
| // for additional advice on adding and modifying app benchmarks | ||
|
|
||
| import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types"; | ||
| import OneInchDeFiApp from "data/apps/1inch-defi-app"; | ||
| import { defineAppBenchmarks } from "data/benchmarks/registry"; | ||
| import { BenchmarkResults } from "data/benchmarks/types"; | ||
| import contributors from "data/contributors"; | ||
| import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles"; | ||
| import type { BestPracticeBenchmarks } from "data/ens-best-practices/types"; | ||
|
|
||
| import { parseTimestamp } from "@ensnode/ensnode-sdk"; | ||
|
|
||
| import { cn } from "@/utils/tailwindClassConcatenation"; | ||
|
|
||
| import correctlyResolveEnsv2TestNameAddressProofImagePortfolio from "./correctly-resolve-ensv2-test-name-address-proof-portfolio.gif"; | ||
| import correctlyResolveEnsv2TestNameAddressProofImageSend from "./correctly-resolve-ensv2-test-name-address-proof-send.png"; | ||
|
|
||
| const benchmarks: BestPracticeBenchmarks = { | ||
| // TODO: `Contract Naming` category is temporarily hidden due to unfit content, | ||
| // and so are all benchmarks belonging to it. | ||
| // We aim to fix it as soon as we have the capacity. | ||
| // See: https://github.com/namehash/ensawards/issues/222 | ||
| "display-named-smart-contracts-mainnet": { | ||
| "mainnet-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "display-named-smart-contracts-l2-chains": { | ||
| "l2-chain-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "ensv2-ready-resolution": { | ||
| "correctly-resolve-ensv2-test-name-address": { | ||
| result: BenchmarkResults.Fail, | ||
| contributions: [ | ||
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-09T12:41:00Z") }, | ||
| ], | ||
| notes: ( | ||
| <div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}> | ||
| <p className="w-full"> | ||
| ENSv2 ready resolution was tested for two different flows of the app: "send" | ||
| and "portfolio". In both cases the resolved address is <i>NOT</i> correct. | ||
| </p> | ||
| <div className="flex flex-col justify-start items-center gap-5"> | ||
| <img | ||
| alt="1inch defi app fails to resolve the name for ENSv2" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImagePortfolio.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| <img | ||
| alt="1inch defi app fails to resolve the name for ENSv2" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImageSend.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| </div> | ||
| </div> | ||
| ), | ||
| } as const satisfies AcceptanceTestBenchmark, | ||
| }, | ||
| } as const satisfies BestPracticeBenchmarks; | ||
|
|
||
| defineAppBenchmarks(OneInchDeFiApp, benchmarks); | ||
|
|
||
| export default benchmarks; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| import React from "react"; | ||
|
|
||
| const Icon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => ( | ||
| <svg | ||
| id="1" | ||
| data-name="1" | ||
| xmlns="http://www.w3.org/2000/svg" | ||
| width="181mm" | ||
| height="181mm" | ||
| version="1.1" | ||
| viewBox="0 0 513 513" | ||
| className={className} | ||
| {...props} | ||
| > | ||
| <path d="M512.8,0H0v512.8h512.8V0Z" /> | ||
| <path | ||
| d="M169.7,383.7h172.9v-36.7h-63.8s0-218.7,0-218.7h-37.8c-1.5,30.6-10.3,38.3-52.1,38.3h-19.2v34.6h63.8v145.8h-63.8v36.7ZM360.7,201.2v-72.9h-36.7v72.9h36.7ZM425.1,201.2v-72.9h-36.7v72.9h36.7Z" | ||
| fill="#fff" | ||
| /> | ||
| </svg> | ||
| ); | ||
|
|
||
| export default Icon; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| // Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md | ||
| // for additional advice on adding and modifying apps | ||
|
|
||
| import OneInchProject from "data/projects/1inch/index.ts"; | ||
| import { asInterpretedName } from "enssdk"; | ||
|
|
||
| import { defineApp } from "../registry.ts"; | ||
| import { type App, AppTypes } from "../types.ts"; | ||
| import OneInchIcon from "./icon.tsx"; | ||
|
|
||
| const OneInchDeFiApp: App = { | ||
| id: "1inch-defi-app", | ||
| appSlug: "1inch-defi-app", | ||
| type: AppTypes.DeFi, | ||
| project: OneInchProject, | ||
| name: '1inch"', | ||
| description: | ||
| "A DeFi aggregator app for swapping tokens across 13+ chains with the only native connection between Solana and EVM networks, with true self-custody and built-in security.", | ||
| socials: { | ||
| website: new URL("https://1inch.com/swap"), | ||
| twitter: new URL("https://x.com/1inch"), | ||
| ens: asInterpretedName("1inch.eth"), | ||
| }, | ||
| icon: OneInchIcon, | ||
| // TODO: Add OG images | ||
| }; | ||
|
|
||
| defineApp(OneInchDeFiApp); | ||
|
|
||
| export default OneInchDeFiApp; |
Binary file added
BIN
+116 KB
...aave-defi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-v3.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+44.7 KB
...aave-defi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-v4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
83 changes: 83 additions & 0 deletions
83
ensawards.org/data/apps/aave-defi-app/benchmarks/index.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,83 @@ | ||
| // Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md | ||
| // for additional advice on adding and modifying app benchmarks | ||
|
|
||
| import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types"; | ||
| import AaveDeFiApp from "data/apps/aave-defi-app"; | ||
| import { defineAppBenchmarks } from "data/benchmarks/registry"; | ||
| import { BenchmarkResults } from "data/benchmarks/types"; | ||
| import contributors from "data/contributors"; | ||
| import { | ||
| acceptanceTestDetailsContainerStyles, | ||
| bestPracticeTechnicalDetailsLinkStyles, | ||
| } from "data/ens-best-practices/styles"; | ||
| import type { BestPracticeBenchmarks } from "data/ens-best-practices/types"; | ||
|
|
||
| import { parseTimestamp } from "@ensnode/ensnode-sdk"; | ||
|
|
||
| import { cn } from "@/utils/tailwindClassConcatenation"; | ||
|
|
||
| import correctlyResolveEnsv2TestNameAddressProofImageV3 from "./correctly-resolve-ensv2-test-name-address-proof-v3.gif"; | ||
| import correctlyResolveEnsv2TestNameAddressProofImageV4 from "./correctly-resolve-ensv2-test-name-address-proof-v4.png"; | ||
|
|
||
| const benchmarks: BestPracticeBenchmarks = { | ||
| // TODO: `Contract Naming` category is temporarily hidden due to unfit content, | ||
| // and so are all benchmarks belonging to it. | ||
| // We aim to fix it as soon as we have the capacity. | ||
| // See: https://github.com/namehash/ensawards/issues/222 | ||
| "display-named-smart-contracts-mainnet": { | ||
| "mainnet-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "display-named-smart-contracts-l2-chains": { | ||
| "l2-chain-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "ensv2-ready-resolution": { | ||
| "correctly-resolve-ensv2-test-name-address": { | ||
| result: BenchmarkResults.PartialPass, | ||
| contributions: [ | ||
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-09T11:56:00Z") }, | ||
| ], | ||
| notes: ( | ||
| <div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}> | ||
| <p className="w-full"> | ||
| ENSv2 ready resolution was tested for two versions of the app:{" "} | ||
| <a | ||
| className={bestPracticeTechnicalDetailsLinkStyles} | ||
| href="https://app.aave.com/" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| > | ||
| Aave (v3) | ||
| </a>{" "} | ||
| and{" "} | ||
| <a | ||
| className={bestPracticeTechnicalDetailsLinkStyles} | ||
| href="https://pro.aave.com/" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| > | ||
| Aave Pro (v4) | ||
| </a>{" "} | ||
| using the "watch" tool for both of them. The resolved address is correct for | ||
| the v4 version, but <i>INCORRECT</i> for the v3 variant. | ||
| </p> | ||
| <div className="flex flex-col justify-start items-center gap-5"> | ||
| <img | ||
| alt="Aave defi app fails to resolve the name for ENSv2" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImageV3.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| <img | ||
| alt="Aave Pro defi app correctly resolves the name for ENSv2" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImageV4.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| </div> | ||
| </div> | ||
| ), | ||
| } as const satisfies AcceptanceTestBenchmark, | ||
| }, | ||
| } as const satisfies BestPracticeBenchmarks; | ||
|
|
||
| defineAppBenchmarks(AaveDeFiApp, benchmarks); | ||
|
|
||
| export default benchmarks; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| import React from "react"; | ||
|
|
||
| import { cn } from "@/utils/tailwindClassConcatenation"; | ||
|
|
||
| const Icon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => ( | ||
| <svg | ||
| width="266" | ||
| height="139" | ||
| viewBox="0 0 266 139" | ||
| fill="none" | ||
| xmlns="http://www.w3.org/2000/svg" | ||
| className={cn("p-1", className)} | ||
| {...props} | ||
| > | ||
| <path | ||
| d="M97.5418 138.533C112.461 138.533 124.556 126.438 124.556 111.518C124.556 96.5987 112.461 84.5039 97.5418 84.5039C82.6221 84.5039 70.5273 96.5987 70.5273 111.518C70.5273 126.438 82.6221 138.533 97.5418 138.533Z" | ||
| fill="#9896FF" | ||
| style={{ fill: "#9896FF", fillOpacity: "1" }} | ||
| /> | ||
| <path | ||
| d="M168.149 138.533C183.069 138.533 195.164 126.438 195.164 111.518C195.164 96.5987 183.069 84.5039 168.149 84.5039C153.23 84.5039 141.135 96.5987 141.135 111.518C141.135 126.438 153.23 138.533 168.149 138.533Z" | ||
| fill="#9896FF" | ||
| style={{ fill: "#9896FF", fillOpacity: "1" }} | ||
| /> | ||
| <path | ||
| d="M132.8 0C59.4497 0 -0.0191954 60.6017 4.64786e-06 135.335H33.9264C33.9264 79.3281 77.8433 33.92 132.8 33.92C187.757 33.92 231.674 79.3281 231.674 135.335H265.6C265.613 60.6017 206.144 0 132.8 0Z" | ||
| fill="#9896FF" | ||
| style={{ fill: "#9896FF", fillOpacity: "1" }} | ||
| /> | ||
| </svg> | ||
| ); | ||
|
|
||
| export default Icon; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| // Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md | ||
| // for additional advice on adding and modifying apps | ||
|
|
||
| import AaveProject from "data/projects/aave/index.ts"; | ||
| import { asInterpretedName } from "enssdk"; | ||
|
|
||
| import { defineApp } from "../registry.ts"; | ||
| import { type App, AppTypes } from "../types.ts"; | ||
| import AaveIcon from "./icon.tsx"; | ||
|
|
||
| const AaveDeFiApp: App = { | ||
| id: "aave-defi-app", | ||
| appSlug: "aave-defi-app", | ||
| type: AppTypes.DeFi, | ||
| project: AaveProject, | ||
| name: "Aave", | ||
| description: | ||
| "A decentralized lending app where users can supply assets to earn yield and borrow against their collateral across Ethereum and multiple L2 networks.", | ||
| socials: { | ||
| website: new URL("https://aave.com/app"), | ||
| twitter: new URL("https://x.com/aave"), | ||
| ens: asInterpretedName("aave.eth"), | ||
| }, | ||
| icon: AaveIcon, | ||
| // TODO: Add OG images | ||
| }; | ||
|
|
||
| defineApp(AaveDeFiApp); | ||
|
|
||
| export default AaveDeFiApp; |
Binary file added
BIN
+223 KB
...defi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-address.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+264 KB
...do-defi-app/benchmarks/correctly-resolve-ensv2-test-name-address-proof-name.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions
63
ensawards.org/data/apps/lido-defi-app/benchmarks/index.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| // Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md | ||
| // for additional advice on adding and modifying app benchmarks | ||
|
|
||
| import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types"; | ||
| import LidoDeFiApp from "data/apps/lido-defi-app"; | ||
| import { defineAppBenchmarks } from "data/benchmarks/registry"; | ||
| import { BenchmarkResults } from "data/benchmarks/types"; | ||
| import contributors from "data/contributors"; | ||
| import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles"; | ||
| import type { BestPracticeBenchmarks } from "data/ens-best-practices/types.ts"; | ||
|
|
||
| import { parseTimestamp } from "@ensnode/ensnode-sdk"; | ||
|
|
||
| import { cn } from "@/utils/tailwindClassConcatenation"; | ||
|
|
||
| import correctlyResolveEnsv2TestNameAddressProofImageAddress from "./correctly-resolve-ensv2-test-name-address-proof-address.png"; | ||
| import correctlyResolveEnsv2TestNameAddressProofImageName from "./correctly-resolve-ensv2-test-name-address-proof-name.png"; | ||
|
Y3drk marked this conversation as resolved.
Outdated
|
||
|
|
||
| const benchmarks: BestPracticeBenchmarks = { | ||
| // TODO: `Contract Naming` category is temporarily hidden due to unfit content, | ||
| // and so are all benchmarks belonging to it. | ||
| // We aim to fix it as soon as we have the capacity. | ||
| // See: https://github.com/namehash/ensawards/issues/222 | ||
| "display-named-smart-contracts-mainnet": { | ||
| "mainnet-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "display-named-smart-contracts-l2-chains": { | ||
| "l2-chain-interactions-display-named-smart-contracts": undefined, | ||
| }, | ||
| "ensv2-ready-resolution": { | ||
| "correctly-resolve-ensv2-test-name-address": { | ||
| result: BenchmarkResults.PartialPass, | ||
| contributions: [ | ||
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-09T13:49:30Z") }, | ||
| ], | ||
| notes: ( | ||
| <div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}> | ||
| <p className="w-full"> | ||
| ENSv2 ready resolution was tested using the "rewards" explorer. The app | ||
| doesn't explicitly prompt the user to pass an ENS name as identifier, but when when it | ||
|
Y3drk marked this conversation as resolved.
Outdated
|
||
| receives one, the resolved address is correct. | ||
| </p> | ||
| <div className="flex flex-col justify-start items-center gap-5"> | ||
| <img | ||
| alt="Lido DeFi app correctly resolves the name for ENSv2" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImageName.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| <img | ||
| alt="Proof that the resolution flow is the same for address and name inputs" | ||
| src={correctlyResolveEnsv2TestNameAddressProofImageAddress.src} | ||
| className="w-auto h-full max-h-[325px] rounded-xl" | ||
| /> | ||
| </div> | ||
| </div> | ||
| ), | ||
| } as const satisfies AcceptanceTestBenchmark, | ||
| }, | ||
| } as const satisfies BestPracticeBenchmarks; | ||
|
|
||
| defineAppBenchmarks(LidoDeFiApp, benchmarks); | ||
|
|
||
| export default benchmarks; | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.