{"id":18263718,"url":"https://github.com/yearn/seafood","last_synced_at":"2025-04-04T20:31:14.766Z","repository":{"id":37826238,"uuid":"454335358","full_name":"yearn/seafood","owner":"yearn","description":"Seafood","archived":false,"fork":false,"pushed_at":"2025-02-08T03:16:33.000Z","size":40774,"stargazers_count":13,"open_issues_count":10,"forks_count":21,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-20T19:07:16.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://seafood.yearn.watch","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yearn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-01T09:58:28.000Z","updated_at":"2025-02-08T03:16:22.000Z","dependencies_parsed_at":"2023-02-19T06:01:14.867Z","dependency_job_id":"0b2a10c5-f81a-49b7-a67a-ac4b1c27ee1b","html_url":"https://github.com/yearn/seafood","commit_stats":null,"previous_names":["yearn/dashboard_ui"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yearn%2Fseafood","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yearn%2Fseafood/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yearn%2Fseafood/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yearn%2Fseafood/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yearn","download_url":"https://codeload.github.com/yearn/seafood/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247246335,"owners_count":20907778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:12:24.886Z","updated_at":"2025-04-04T20:31:12.715Z","avatar_url":"https://github.com/yearn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seafood\nSeafood is a public vault monitoring dashboard that lets you simulate operations like harvests and allocation changes while tracking asset flows and APY changes.\n\n![mechafish-md](https://github.com/yearn/seafood/assets/89237203/794251a0-6ef6-407a-a890-467e9a7b8225)\n\n- [Dev environment setup](#dev-environment-setup)\n- [Project structure](#project-structure)\n- [Tests](#tests)\n- [Contributing](#contributing)\n\n\n## Dev environment setup\nFirst get node installed. For an easy way to install a particular node version in your dev environment, or multiple node versions on the same system, try Node Version Manager (NVM). See https://github.com/nvm-sh/nvm#install--update-script for install instructions.\n\n1 - With NVM installed, install node 16 (or higher) and yarn\n```console\nnvm install 16 # or later\nnpm install -g yarn\n```\n\n2 - Clone this repo, install dependencies\n```console\ngit clone git@github.com:yearn/seafood.git\ncd seafood\n(yarn \u0026\u0026 cd api \u0026\u0026 yarn)\n```\n\n3 - Configure local environment variables\n```console\ncp env.example .env\n```\n\n  - For data\n  ```\nSetup and run [kong](https://github.com/murderteeth/kong) in your local environment, then in seafood's .env use:\n  ```\n  REACT_APP_KONG_API_URL=http://localhost:3001/api/gql\n  ```\n\n  - To run vault and strategy simulations, set a token for tenderly, explorer urls, and rps urls for each supported chain:\n  ```\n  TENDERLY_ACCESS_TOKEN=\n  EXPLORER_API_FOR_1=\n  EXPLORER_API_FOR_250=\n  EXPLORER_API_FOR_10=\n  EXPLORER_API_FOR_42161=\n  RPC_URI_FOR_1=\n  RPC_URI_FOR_250=\n  RPC_URI_FOR_10=\n  RPC_URI_FOR_42161=\n  ```\n  To get a token, first create an account on https://tenderly.co. Then from your tenderly dashboard go to Settings, Authorization, Generate Access Token. Your tenderly account also needs access to yearn's tenderly organization account. To get access, ask someone at yearn for an invite.\n\n  You can use your own explorer and rpc urls, but without premium access you'll likely get rate limit errors in seafood. You can also ask someone at yearn for access to internal explorer and rpc urls.\n\n\n4 - Run the app\n```console\ncd ~/git/seafood # or wherever you cloned it\nyarn start\n```\nOpen a browser at http://localhost:3000\n\n\n## Project structure\n### backend\n`/api` - Resources for serving Seafood's backend api \\\n`/api/routes/vision` - Facades over Yearn's vision api \\\n`/api/routes/abi` - Smart contract abis \\\n`/api/routes/getVaults` - Vault and strategy related data. (obsoleting) \\\n`/api/routes/github` - Generate GitHub bearer tokens for Seafood users \\\n`/api/routes/tenderly` - Generate Tenderly simulation forks \\\n`/api/routes/tradeables` - List tradeable erc20s for a given trade handler\n\n\n### frontend\n`/public` - Static files \\\n`/scripts` - Help scripts used in dev \\\n`/src` - Resources for building Seafood's frontend \\\n`/src/abi` - Some static abis that are needed by Seafood and some that..aren't 👀 \\\n`/src/math` - Logic for computing APY and APR on demand \\\n`/src/components` - Most of Seafood's React components go here \\\n`/src/components/controls` - Specifically, common UI controls live here \\\n`/src/context` - Seafood's React hooks live here. So why call it `context`? \\\n`/src/ethereum` - Various utilities for querying RPCs. (obsoleting) \\\n`/src/utils` - Various utilities that seemed happiest in a folder called `utils` 😁 \\\n`/src/config.json` - This was a more convenient way to configure previous versions of Seafood. It moves to envars eventually\n\n\n## Tests\nSeafood uses Jest for testing. Some tests require rpc integration, so first set this envar:\n```\nTEST_RPC=\u003ceg, your infura mainnet url\u003e\n```\nInfura not required, but you'll need a premium rpc or your own node to test.\n\nRun tests like this:\n```console\nyarn test\n```\n\n\n## Contributing\n- To contribute: [fork](https://github.com/yearn/dashboard_ui/fork), branch from `main`, make changes, pull request.\n- Use Typescript instead of Javascript for anything new.\n- This project is configured to automatically enforce linting and style rules.\n- CSS. For frontend layout and styling Seafood uses Tailwinds and follows their [utility-first](https://tailwindcss.com/docs/utility-first) principle.\n- Tests. For now, Seafood only requires tests for domain logic and doesn't cover frontend\\UI logic. So if your work requires complex domain logic, like computing APY, include tests for it. If you're just adding some buttons, no worries, amigo 😎\n- Documentation, minimal. We have GPT now for crying out loud 🤖\n\n\\\u003e\u003c(((*\u003e - Onward!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyearn%2Fseafood","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyearn%2Fseafood","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyearn%2Fseafood/lists"}