diff --git a/.changeset/slick-cities-love.md b/.changeset/slick-cities-love.md new file mode 100644 index 0000000000..cc4c907470 --- /dev/null +++ b/.changeset/slick-cities-love.md @@ -0,0 +1,5 @@ +--- +"@venusprotocol/evm": patch +--- + +remove landing app diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index acb76b6be5..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,17 +0,0 @@ -## Jira ticket(s) - -VPD-XXX - -## Changes - -### [evm app](https://github.com/VenusProtocol/venus-protocol-interface/tree/main/apps/evm/) -- - -### [landing app](https://github.com/VenusProtocol/venus-protocol-interface/tree/main/apps/landing/) -- - -### [chains package](https://github.com/VenusProtocol/venus-protocol-interface/tree/main/apps/chains/) -- - -### [UI package](https://github.com/VenusProtocol/venus-protocol-interface/tree/main/apps/ui/) -- diff --git a/.github/workflows/pull_request_template.md b/.github/workflows/pull_request_template.md index a1c717fffc..e8518a4d76 100644 --- a/.github/workflows/pull_request_template.md +++ b/.github/workflows/pull_request_template.md @@ -7,9 +7,6 @@ VEN-XXX ### [evm app](/apps/evm/) - -### [landing app](/apps/landing/) -- - ### [chains package](/packages/chains/) - diff --git a/apps/evm/src/clients/api/mutations/useMintVai/__tests__/index.spec.ts b/apps/evm/src/clients/api/mutations/useMintVai/__tests__/index.spec.ts index b59a809081..0bb5f8eafc 100644 --- a/apps/evm/src/clients/api/mutations/useMintVai/__tests__/index.spec.ts +++ b/apps/evm/src/clients/api/mutations/useMintVai/__tests__/index.spec.ts @@ -22,7 +22,7 @@ describe('useMintVai', () => { options: undefined, }); - const { fn } = (useSendTransaction as jest.Mock).mock.calls[0][0]; + const { fn } = (useSendTransaction as Mock).mock.calls[0][0]; expect(await fn(fakeInput)).toMatchInlineSnapshot( { @@ -40,7 +40,7 @@ describe('useMintVai', () => { `, ); - const { onConfirmed } = (useSendTransaction as jest.Mock).mock.calls[0][0]; + const { onConfirmed } = (useSendTransaction as Mock).mock.calls[0][0]; await onConfirmed(); expect((queryClient.invalidateQueries as Mock).mock.calls).toMatchSnapshot(); diff --git a/apps/evm/src/clients/api/mutations/useOpenLeveragedPosition/__tests__/index.spec.ts b/apps/evm/src/clients/api/mutations/useOpenLeveragedPosition/__tests__/index.spec.ts index 23407eed03..b7f84ddbc6 100644 --- a/apps/evm/src/clients/api/mutations/useOpenLeveragedPosition/__tests__/index.spec.ts +++ b/apps/evm/src/clients/api/mutations/useOpenLeveragedPosition/__tests__/index.spec.ts @@ -35,13 +35,13 @@ describe('useOpenLeveragedPosition', () => { options: undefined, }); - const { fn } = (useSendTransaction as jest.Mock).mock.calls[0][0]; + const { fn } = (useSendTransaction as Mock).mock.calls[0][0]; expect(await fn(input)).toMatchSnapshot({ abi: expect.any(Array), }); - const { onConfirmed } = (useSendTransaction as jest.Mock).mock.calls[0][0]; + const { onConfirmed } = (useSendTransaction as Mock).mock.calls[0][0]; await onConfirmed(); expect((queryClient.invalidateQueries as Mock).mock.calls).toMatchSnapshot(); diff --git a/apps/landing/.env.template b/apps/landing/.env.template deleted file mode 100644 index d4ce802167..0000000000 --- a/apps/landing/.env.template +++ /dev/null @@ -1,3 +0,0 @@ -# Analytics -VITE_POSTHOG_API_KEY= -VITE_POSTHOG_HOST_URL= diff --git a/apps/landing/.gitignore b/apps/landing/.gitignore deleted file mode 100644 index 6d3e99aa3c..0000000000 --- a/apps/landing/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Compiled outputs -src/constants/version.ts diff --git a/apps/landing/.stylelintrc.js b/apps/landing/.stylelintrc.js deleted file mode 100644 index 76b04d046d..0000000000 --- a/apps/landing/.stylelintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: ['@venusprotocol/stylelint-config/base.js'], -}; diff --git a/apps/landing/CHANGELOG.md b/apps/landing/CHANGELOG.md deleted file mode 100644 index a6fef47cef..0000000000 --- a/apps/landing/CHANGELOG.md +++ /dev/null @@ -1,231 +0,0 @@ -# @venusprotocol/landing - -## 1.24.0 - -### Minor Changes - -- 68b31bb: start updating layout -- 68b31bb: add chainId property to tokens -- 68b31bb: update theme -- 68b31bb: add responsive menu -- 68b31bb: add support for multiple languages -- 68b31bb: new hero and market list for landing -- 68b31bb: update components to match new designs - -### Patch Changes - -- 68b31bb: new landing phase 2 -- 68b31bb: migrate landing to evm -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] -- Updated dependencies [68b31bb] - - @venusprotocol/ui@0.8.0 - - @venusprotocol/chains@0.21.0 - -## 1.23.0 - -### Minor Changes - -- fd57b15: tailwind css upgrade to v4 - -### Patch Changes - -- Updated dependencies [fd57b15] - - @venusprotocol/chains@0.16.0 - - @venusprotocol/ui@0.7.0 - -## 1.22.0 - -### Minor Changes - -- bd9590d: publish chains package - -### Patch Changes - -- Updated dependencies [bd9590d] - - @venusprotocol/chains@0.9.0 - -## 1.21.2 - -### Patch Changes - -- d814727: fix p tags font-size on landing page - -## 1.21.1 - -### Patch Changes - -- 4dabfce: design fixes on legal pages - -## 1.21.0 - -### Minor Changes - -- 04e1781: add legal pages - -## 1.20.0 - -### Minor Changes - -- 7ef2067: keep analytic IDs between apps - -## 1.19.0 - -### Minor Changes - -- b397745: add structure for new Account page - -## 1.18.0 - -### Minor Changes - -- 883675f: remove Google Tag manager and Vercel Analytics - -### Patch Changes - -- Updated dependencies [c3433cb] - - @venusprotocol/chains@0.6.0 - -## 1.17.0 - -### Minor Changes - -- c268fc9: remove Unichain banner - -## 1.16.0 - -### Minor Changes - -- dc831b4: add support for SolvBTC to landing page - -## 1.15.0 - -### Minor Changes - -- b261d21: add support for Google Tag Manager - -## 1.14.1 - -### Patch Changes - -- 6634d26: upgrade React to v19 - -## 1.14.0 - -### Minor Changes - -- 97dd523: update Twitter to X - -## 1.13.0 - -### Minor Changes - -- 9a385fd: enable analytic events in production hosts - -## 1.12.0 - -### Minor Changes - -- e695ba6: enable Vercel analytics - -## 1.11.0 - -### Minor Changes - -- f335660: add UI package - -### Patch Changes - -- Updated dependencies [f335660] - - @venusprotocol/ui@0.2.0 - -## 1.10.0 - -### Minor Changes - -- 68311e8: add Unichain promotional material - -### Patch Changes - -- Updated dependencies [68311e8] - - @venusprotocol/chains@0.1.0 - -## 1.9.0 - -### Minor Changes - -- c711549: new Venus Prime copy - -## 1.8.0 - -### Minor Changes - -- c7a7c86: remove sentence regarding liquidities - -## 1.7.0 - -### Minor Changes - -- e973a1b: include generated subgraph types - -## 1.6.2 - -### Patch Changes - -- 3a22cd6: fix limit when fetching markets from landing page - -## 1.6.1 - -### Patch Changes - -- ecc4fad: add verification code for WalletConnect - -## 1.6.0 - -### Minor Changes - -- bae0fa8: update TWT logo - -## 1.5.0 - -### Minor Changes - -- d0e08b3: fix scrolling issue with banner on landing page - -## 1.4.0 - -### Minor Changes - -- 275a1ea: index dashboard page of the dApp with search engines - -## 1.3.0 - -### Minor Changes - -- c7ef9c1: Fetch TVL across all chains - -## 1.2.0 - -### Minor Changes - -- 48827a2: fix favicon - -## 1.1.0 - -### Minor Changes - -- 1dd92be: add partners section - -## 1.0.0 - -### Major Changes - -- bc334c0: Add landing app diff --git a/apps/landing/README.md b/apps/landing/README.md deleted file mode 100644 index d8b4cb7127..0000000000 --- a/apps/landing/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Venus Protocol Frontend - landing page - -

- -

- -Official repository for the [Venus protocol landing page](https://venus.io). - -## Getting started - -### Set environment variables - -Create a `.env` file in the root of the project using the `.env.template` file as a template. - -### Install dependencies with yarn - -```ssh -yarn -``` - -### Start the development server - -```ssh -yarn start -``` - -## Useful commands - -Check Typescript code - -```ssh -yarn tsc -``` - -Lint code - -```ssh -yarn lint -``` - -Format code - -```ssh -yarn format -``` - -Generate production build - -```ssh -yarn build -``` - -Start application with production build - -```ssh -yarn serve -``` diff --git a/apps/landing/index.html b/apps/landing/index.html deleted file mode 100644 index 0a5411dc18..0000000000 --- a/apps/landing/index.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Venus Protocol - - - -
- - - - diff --git a/apps/landing/package.json b/apps/landing/package.json deleted file mode 100644 index ed70f4c03e..0000000000 --- a/apps/landing/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@venusprotocol/landing", - "homepage": "https://venus.io/", - "version": "1.24.0", - "private": true, - "scripts": { - "start": "vite", - "build": "vite build", - "serve": "vite preview", - "lint": "yarn lint:styles && biome check . --diagnostic-level=error", - "lint:styles": "stylelint 'src/**/*.{css,ts,tsx,js,jsx}'", - "tsc": "tsc --noEmit", - "clean": "rm -rf .turbo && rm -rf node_modules", - "generate": "genversion --es6 --semi src/constants/version.ts", - "postinstall": "turbo run generate" - }, - "dependencies": { - "@tailwindcss/vite": "^4.1.18", - "@tanstack/react-query": "^5.40.0", - "@venusprotocol/chains": "*", - "@venusprotocol/ui": "*", - "axios": "^1.7.2", - "date-fns": "^4.1.0", - "genversion": "^3.2.0", - "posthog-js": "^1.257.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-router": "^7.6.0", - "react-scrolllock": "^5.0.1", - "tailwindcss": "^4.1.18" - }, - "devDependencies": { - "@stylelint/postcss-css-in-js": "0.38.0", - "@types/jest": "^29.5.12", - "@types/react": "^19.1.5", - "@types/react-dom": "^19.1.5", - "@typescript-eslint/eslint-plugin": "^8.0.0", - "@typescript-eslint/parser": "^8.0.1", - "@venusprotocol/stylelint-config": "*", - "@vitejs/plugin-react": "^4.3.3", - "husky": "^9.1.1", - "postcss": "^8.4.8", - "postcss-custom-media": "^11.0.0", - "postcss-import": "^16.1.0", - "postcss-loader": "^8.1.1", - "postcss-nested": "^7.0.0", - "stylelint": "^15.10.3", - "typescript": "^5.4.5", - "vite": "^6.2.5", - "vite-plugin-svgr": "^4.3.0", - "vite-tsconfig-paths": "^5.1.4" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "resolutions": { - "postcss": "^8.4.8" - } -} diff --git a/apps/landing/public/.well-known/walletconnect.txt b/apps/landing/public/.well-known/walletconnect.txt deleted file mode 100644 index 5a64e6d6eb..0000000000 --- a/apps/landing/public/.well-known/walletconnect.txt +++ /dev/null @@ -1 +0,0 @@ -f73a7ae1-a0e3-4453-a362-1e3dcac6c9d3=fffc7673c175c1df1d0da0d3154b8469c5028e49f9149578e648167062f43108 \ No newline at end of file diff --git a/apps/landing/public/114x114.png b/apps/landing/public/114x114.png deleted file mode 100644 index d01ca411e9..0000000000 Binary files a/apps/landing/public/114x114.png and /dev/null differ diff --git a/apps/landing/public/120x120.png b/apps/landing/public/120x120.png deleted file mode 100644 index 0ca6dee811..0000000000 Binary files a/apps/landing/public/120x120.png and /dev/null differ diff --git a/apps/landing/public/144x144.png b/apps/landing/public/144x144.png deleted file mode 100644 index d4aa68e6eb..0000000000 Binary files a/apps/landing/public/144x144.png and /dev/null differ diff --git a/apps/landing/public/150x150.png b/apps/landing/public/150x150.png deleted file mode 100644 index f3c61e888f..0000000000 Binary files a/apps/landing/public/150x150.png and /dev/null differ diff --git a/apps/landing/public/152x152.png b/apps/landing/public/152x152.png deleted file mode 100644 index e787c507c4..0000000000 Binary files a/apps/landing/public/152x152.png and /dev/null differ diff --git a/apps/landing/public/180x180.png b/apps/landing/public/180x180.png deleted file mode 100644 index 3443cc4509..0000000000 Binary files a/apps/landing/public/180x180.png and /dev/null differ diff --git a/apps/landing/public/310x150.png b/apps/landing/public/310x150.png deleted file mode 100644 index 41fe4efbc0..0000000000 Binary files a/apps/landing/public/310x150.png and /dev/null differ diff --git a/apps/landing/public/57x57.png b/apps/landing/public/57x57.png deleted file mode 100644 index 9e0fb227e3..0000000000 Binary files a/apps/landing/public/57x57.png and /dev/null differ diff --git a/apps/landing/public/60x60.png b/apps/landing/public/60x60.png deleted file mode 100644 index 31fad320ff..0000000000 Binary files a/apps/landing/public/60x60.png and /dev/null differ diff --git a/apps/landing/public/70x70.png b/apps/landing/public/70x70.png deleted file mode 100644 index c788026421..0000000000 Binary files a/apps/landing/public/70x70.png and /dev/null differ diff --git a/apps/landing/public/72x72.png b/apps/landing/public/72x72.png deleted file mode 100644 index 65f7352072..0000000000 Binary files a/apps/landing/public/72x72.png and /dev/null differ diff --git a/apps/landing/public/76x76.png b/apps/landing/public/76x76.png deleted file mode 100644 index 584e2b7484..0000000000 Binary files a/apps/landing/public/76x76.png and /dev/null differ diff --git a/apps/landing/public/android-chrome-192x192.png b/apps/landing/public/android-chrome-192x192.png deleted file mode 100644 index 5b3fec1b51..0000000000 Binary files a/apps/landing/public/android-chrome-192x192.png and /dev/null differ diff --git a/apps/landing/public/android-chrome-512x512.png b/apps/landing/public/android-chrome-512x512.png deleted file mode 100644 index 673c49922b..0000000000 Binary files a/apps/landing/public/android-chrome-512x512.png and /dev/null differ diff --git a/apps/landing/public/apple-touch-icon.png b/apps/landing/public/apple-touch-icon.png deleted file mode 100644 index 8ad121b8b2..0000000000 Binary files a/apps/landing/public/apple-touch-icon.png and /dev/null differ diff --git a/apps/landing/public/assets/bg.png b/apps/landing/public/assets/bg.png deleted file mode 100644 index f305386d86..0000000000 Binary files a/apps/landing/public/assets/bg.png and /dev/null differ diff --git a/apps/landing/public/assets/bgMobile.png b/apps/landing/public/assets/bgMobile.png deleted file mode 100644 index ac379e55a4..0000000000 Binary files a/apps/landing/public/assets/bgMobile.png and /dev/null differ diff --git a/apps/landing/public/browserconfig.xml b/apps/landing/public/browserconfig.xml deleted file mode 100644 index b3930d0f04..0000000000 --- a/apps/landing/public/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #da532c - - - diff --git a/apps/landing/public/favicon-16x16.png b/apps/landing/public/favicon-16x16.png deleted file mode 100644 index d7ec795c21..0000000000 Binary files a/apps/landing/public/favicon-16x16.png and /dev/null differ diff --git a/apps/landing/public/favicon-32x32.png b/apps/landing/public/favicon-32x32.png deleted file mode 100644 index e025be6c4c..0000000000 Binary files a/apps/landing/public/favicon-32x32.png and /dev/null differ diff --git a/apps/landing/public/favicon.ico b/apps/landing/public/favicon.ico deleted file mode 100644 index 73c3adb346..0000000000 Binary files a/apps/landing/public/favicon.ico and /dev/null differ diff --git a/apps/landing/public/icon.png b/apps/landing/public/icon.png deleted file mode 100644 index 8ad121b8b2..0000000000 Binary files a/apps/landing/public/icon.png and /dev/null differ diff --git a/apps/landing/public/icon16.png b/apps/landing/public/icon16.png deleted file mode 100644 index d7ec795c21..0000000000 Binary files a/apps/landing/public/icon16.png and /dev/null differ diff --git a/apps/landing/public/icon32.png b/apps/landing/public/icon32.png deleted file mode 100644 index e025be6c4c..0000000000 Binary files a/apps/landing/public/icon32.png and /dev/null differ diff --git a/apps/landing/public/manifest.json b/apps/landing/public/manifest.json deleted file mode 100644 index cc53a7c2a8..0000000000 --- a/apps/landing/public/manifest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "short_name": "Venus", - "name": "Venus", - "icons": [ - { - "src": "icon16.png", - "sizes": "16x16", - "type": "image/png" - }, - { - "src": "icon32.png", - "sizes": "32x32", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#3A78FF", - "background_color": "#121620" -} diff --git a/apps/landing/public/mstile-150x150.png b/apps/landing/public/mstile-150x150.png deleted file mode 100644 index aafd2636bd..0000000000 Binary files a/apps/landing/public/mstile-150x150.png and /dev/null differ diff --git a/apps/landing/public/robots.txt b/apps/landing/public/robots.txt deleted file mode 100644 index e9e57dc4d4..0000000000 --- a/apps/landing/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/apps/landing/public/share.png b/apps/landing/public/share.png deleted file mode 100644 index a7011882f1..0000000000 Binary files a/apps/landing/public/share.png and /dev/null differ diff --git a/apps/landing/src/App/index.module.css b/apps/landing/src/App/index.module.css deleted file mode 100644 index 079fb60c07..0000000000 --- a/apps/landing/src/App/index.module.css +++ /dev/null @@ -1,7 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - min-height: 100vh; - min-width: 320px; -} \ No newline at end of file diff --git a/apps/landing/src/App/index.tsx b/apps/landing/src/App/index.tsx deleted file mode 100644 index a70016f4a7..0000000000 --- a/apps/landing/src/App/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { AnalyticProvider } from 'components/AnalyticProvider'; -import { Layout } from 'components/Layout'; -import { DISCORD_SERVER_URL } from 'constants/production'; -import { AppStateProvider } from 'context'; -import { Home } from 'pages/Home'; -import { PrivacyPolicy } from 'pages/PrivacyPolicy'; -import { TermsOfUse } from 'pages/TermsOfUse'; -import { useEffect } from 'react'; -import { BrowserRouter, Route, Routes } from 'react-router'; - -const queryClient = new QueryClient(); - -function App() { - useEffect(() => { - if (window.location.pathname.startsWith('/discord')) { - window.location.replace(DISCORD_SERVER_URL); - } - }, []); - - return ( - - - - - - }> - {['/', '/discord'].map(path => ( - } key={path} /> - ))} - - } /> - - } /> - - - - - - - ); -} - -export default App; diff --git a/apps/landing/src/api/constants.ts b/apps/landing/src/api/constants.ts deleted file mode 100644 index 3ff75b8a20..0000000000 --- a/apps/landing/src/api/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const bscMainnetVCanAddress = '0xeBD0070237a0713E8D94fEf1B728d3d993d290ef'; - -export const compoundDecimals = 18; - -export const vTokenDecimals = 8; diff --git a/apps/landing/src/api/hooks/useProposals.ts b/apps/landing/src/api/hooks/useProposals.ts deleted file mode 100644 index 2114dac1c2..0000000000 --- a/apps/landing/src/api/hooks/useProposals.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { useQuery } from '@tanstack/react-query'; -import { getProposalCount } from '../index'; - -export const useProposalsCountFromApi = () => - useQuery({ - queryKey: ['proposalCount'], - queryFn: getProposalCount, - }); diff --git a/apps/landing/src/api/hooks/useVenusApi.ts b/apps/landing/src/api/hooks/useVenusApi.ts deleted file mode 100644 index 8e75c43121..0000000000 --- a/apps/landing/src/api/hooks/useVenusApi.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { useQuery } from '@tanstack/react-query'; -import { fetchMarkets, fetchTvl } from '../index'; -import { getMarketsToRender } from '../utils'; - -export const useVenusApi = () => { - const { - data: getLegacyPoolMarketsData, - isLoading: isGetLegacyPoolMarketsLoading, - error: getLegacyPoolMarketsError, - refetch: refetchMarkets, - } = useQuery({ - queryKey: ['legacyPoolMarkets'], - queryFn: fetchMarkets, - }); - - const { - data: getTvlData, - isLoading: isGetTvlDataLoading, - error: getTvlDataError, - refetch: refetchTvl, - } = useQuery({ - queryKey: ['tvl'], - queryFn: fetchTvl, - }); - - const topMarkets = getMarketsToRender(getLegacyPoolMarketsData); - - return { - ...getTvlData, - topMarkets, - isLoading: isGetLegacyPoolMarketsLoading || isGetTvlDataLoading, - errors: { getLegacyPoolMarketsError, getTvlDataError }, - refetch: () => { - refetchMarkets(); - refetchTvl(); - }, - }; -}; diff --git a/apps/landing/src/api/index.ts b/apps/landing/src/api/index.ts deleted file mode 100644 index ba99430ce2..0000000000 --- a/apps/landing/src/api/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import axios from 'axios'; -import type { MarketsResponseData, ProposalsResponseData, TvlResponseData } from './types'; -import { formatTvlData, mapMarketsData } from './utils'; - -const apiBaseUrl = 'https://api.venus.io/'; - -const marketsRequestUrl = `${apiBaseUrl}markets/core-pool?limit=500`; -const proposalsRequestUrl = `${apiBaseUrl}governance/proposals?limit=1`; -const tvlRequestUrl = `${apiBaseUrl}markets/tvl`; - -export async function fetchMarkets() { - const { data: response }: { data: MarketsResponseData } = await axios.get(marketsRequestUrl); - return mapMarketsData(response.result); -} - -export async function getProposalCount() { - const { data: response }: { data: ProposalsResponseData } = await axios.get(proposalsRequestUrl); - return response.total; -} - -export async function fetchTvl() { - const { data: response }: { data: TvlResponseData } = await axios.get(tvlRequestUrl); - return formatTvlData(response); -} diff --git a/apps/landing/src/api/types.ts b/apps/landing/src/api/types.ts deleted file mode 100644 index 7f91837807..0000000000 --- a/apps/landing/src/api/types.ts +++ /dev/null @@ -1,45 +0,0 @@ -export type MarketResponse = { - address: string; - supplyApy: string; - supplyXvsApy: string; - totalSupplyMantissa: string; - totalBorrowsMantissa: string; - liquidityCents: string; - borrowApy: string; - borrowXvsApy: string; - symbol: string; - tokenPriceCents: string; - underlyingSymbol: string; - underlyingDecimal: number; - exchangeRateMantissa: string; -}; - -export type MarketMapped = { - supplyApy: number; - supplyXvsApy: number; - totalSupplyUsd: number; - totalBorrowsUsd: number; - liquidity: number; - borrowApy: number; - symbol: string; - underlyingSymbol: string; - underlyingIconUrl: string; - depositApy: number; -}; - -export type MarketsResponseData = { - result: MarketResponse[]; -}; - -export type ProposalsResponseData = { - total: number; -}; - -export type TvlResponseData = { - suppliedSumCents: string; - borrowedSumCents: string; - liquiditySumCents: string; - marketCount: number; - poolCount: number; - chainCount: number; -}; diff --git a/apps/landing/src/api/utils.ts b/apps/landing/src/api/utils.ts deleted file mode 100644 index bcb47fe0a0..0000000000 --- a/apps/landing/src/api/utils.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { ChainId, getToken } from '@venusprotocol/chains'; -import { bscMainnetVCanAddress, compoundDecimals, vTokenDecimals } from './constants'; -import type { MarketMapped, MarketResponse, TvlResponseData } from './types'; - -export const scale = (value: string | number, decimals: number) => Number(value) / 10 ** decimals; - -export const convertCentsToUsd = (value: string | number) => Number(value) / 100; - -export const mapMarketsData = (markets?: MarketResponse[]): MarketMapped[] => { - if (!markets) return []; - - return markets.reduce((acc, i) => { - // Hotfix to filter out vCAN token - if (i.address === bscMainnetVCanAddress) { - return acc; - } - - const token = getToken({ - symbol: i.underlyingSymbol, - chainId: ChainId.BSC_MAINNET, - }); - - if (!token) { - return acc; - } - - const underlyingIconUrl = token.iconSrc; - - const tokenPriceUsd = convertCentsToUsd(i.tokenPriceCents); - const totalBorrowsTokens = scale(i.totalBorrowsMantissa, i.underlyingDecimal); - - const totalSupplyVTokens = scale(i.totalSupplyMantissa, vTokenDecimals); - const exchangeRateVTokens = - Number(i.exchangeRateMantissa) === 0 - ? 0 - : 1 / - scale(i.exchangeRateMantissa, compoundDecimals + i.underlyingDecimal - vTokenDecimals); - - const totalSupplyTokens = totalSupplyVTokens / exchangeRateVTokens; - - const formattedMarket: MarketMapped = { - ...i, - supplyApy: Number(i.supplyApy), - supplyXvsApy: Number(i.supplyXvsApy), - totalSupplyUsd: totalSupplyTokens * tokenPriceUsd, - totalBorrowsUsd: totalBorrowsTokens * tokenPriceUsd, - liquidity: convertCentsToUsd(i.liquidityCents), - depositApy: Number(i.supplyApy) + Number(i.supplyXvsApy), - borrowApy: Number(i.borrowApy) - Number(i.borrowXvsApy), - underlyingIconUrl, - }; - - return acc.concat(formattedMarket); - }, []); -}; - -function sortByTotalSupplyUsd(a: MarketMapped, b: MarketMapped) { - return b.totalSupplyUsd - a.totalSupplyUsd; -} - -function sortBySupplyApy(a: MarketMapped, b: MarketMapped) { - return b.supplyApy - a.supplyApy; -} - -export const getMarketsToRender = (markets?: MarketMapped[]) => { - if (!markets) return []; - // first we get all markets sorted by their size/supply in USD - const sortedMarkets = markets.sort(sortByTotalSupplyUsd); - // then we list the top 5 markets, ordered by their supply APY (higher APYs first) - return sortedMarkets.slice(0, 5).sort(sortBySupplyApy); -}; - -export const formatUsd = (value: number) => { - const formattedValue = new Intl.NumberFormat('en-EN', { - style: 'currency', - currency: 'USD', - }).format(value); - return formattedValue; -}; - -export const nFormatter = (num: number, digits = 2) => { - const lookup = [ - { value: 1, symbol: '' }, - { value: 1e3, symbol: 'k' }, - { value: 1e6, symbol: 'M' }, - { value: 1e9, symbol: 'B' }, - ]; - const rx = /\.0+$|(\.[0-9]*[1-9])0+$/; - const item = lookup - .slice() - .reverse() - .find((i: { value: number; symbol: string }) => Math.abs(num) >= i.value); - - const formatValue = (value: number) => value.toFixed(digits).replace(rx, '$1'); - - return item ? formatValue(num / item.value) + item.symbol : formatValue(num); -}; - -export function formatTvlData(apiData: TvlResponseData) { - const totalSupplyCents = Number(apiData.suppliedSumCents.split('.', 1)); - const totalBorrowCents = Number(apiData.borrowedSumCents.split('.', 1)); - const totalLiquidityCents = Number(apiData.liquiditySumCents.split('.', 1)); - const { marketCount, chainCount } = apiData; - - return { - totalSupplyUsd: formatUsd(convertCentsToUsd(totalSupplyCents)), - totalBorrowUsd: formatUsd(convertCentsToUsd(totalBorrowCents)), - totalLiquidityUsd: formatUsd(convertCentsToUsd(totalLiquidityCents)), - marketCount, - chainCount, - }; -} diff --git a/apps/landing/src/assets/styles/index.css b/apps/landing/src/assets/styles/index.css deleted file mode 100644 index d3254448cd..0000000000 --- a/apps/landing/src/assets/styles/index.css +++ /dev/null @@ -1,51 +0,0 @@ -@import 'tailwindcss' source('../../../src'); - -/* let tailwindcss include ui components */ -@source '../../../../../packages/ui'; - -@import '@venusprotocol/ui/theme' layer(theme); -@import '@venusprotocol/ui/fonts/bebasNeue' layer(base); -@import '@venusprotocol/ui/fonts/inconsolata' layer(base); -@import '@venusprotocol/ui/fonts/proximaNova' layer(base); - -@import './variables.css' layer(base); - -@theme { - /* screens: */ - --breakpoint-sm: 640px; - --breakpoint-md: 840px; -} - -@layer base { - * { - box-sizing: border-box; - } - - body { - font-family: var(--font-proxima-nova), sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - background-color: var(--color-background); - color: var(--color-white); - } -} - -@layer components { - h2 { - font-size: 1.5rem; - font-weight: 600; - - @media (min-width: 1280px) { - font-size: 2rem; - } - } - - p { - color: var(--color-grey); - font-size: 1rem; - - @media (min-width: 1280px) { - font-size: 1.125rem; - } - } -} \ No newline at end of file diff --git a/apps/landing/src/assets/styles/variables.css b/apps/landing/src/assets/styles/variables.css deleted file mode 100644 index 238200efab..0000000000 --- a/apps/landing/src/assets/styles/variables.css +++ /dev/null @@ -1,5 +0,0 @@ -:root { - --color-background-secondary: #1E2431; - --color-icon-background: #2D3549; - --global-max-width: 1280px; -} diff --git a/apps/landing/src/components/AnalyticProvider/context/index.tsx b/apps/landing/src/components/AnalyticProvider/context/index.tsx deleted file mode 100644 index f98577c552..0000000000 --- a/apps/landing/src/components/AnalyticProvider/context/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { createContext, useContext as useReactContext, useState } from 'react'; - -interface AnalyticIdsContextProps { - sessionId?: string; - distinctId?: string; - setIds: (input: { - sessionId: string; - distinctId: string; - }) => void; -} - -const AnalyticIdsContext = createContext({ - setIds: () => {}, -}); - -export const useAnalyticIdsContext = () => useReactContext(AnalyticIdsContext); - -export const AnalyticIdsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { - const [ids, setIds] = useState<{ - sessionId: string; - distinctId: string; - }>(); - - return ( - {children} - ); -}; diff --git a/apps/landing/src/components/AnalyticProvider/index.tsx b/apps/landing/src/components/AnalyticProvider/index.tsx deleted file mode 100644 index 29f097cc8a..0000000000 --- a/apps/landing/src/components/AnalyticProvider/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import config from 'config'; -import { version as APP_VERSION } from 'constants/version'; -import { useAppStateContext } from 'context'; -import { PostHogProvider, usePostHog } from 'posthog-js/react'; - -export interface AnalyticProviderProps { - children?: React.ReactNode; -} - -export const AnalyticProvider: React.FC = ({ children }) => { - const posthog = usePostHog(); - const { setAnalyticIds } = useAppStateContext(); - - const onLoaded = () => - setAnalyticIds({ - sessionId: posthog.get_session_id(), - distinctId: posthog.get_distinct_id(), - }); - - return ( - - {children} - - ); -}; diff --git a/apps/landing/src/components/Container/Container.tsx b/apps/landing/src/components/Container/Container.tsx deleted file mode 100644 index 97c7a9c7b6..0000000000 --- a/apps/landing/src/components/Container/Container.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { cn } from '@venusprotocol/ui'; -import type { ReactNode } from 'react'; - -interface IContainerProps { - children: ReactNode | ReactNode[]; - className?: string; -} - -const Container: React.FC = ({ children, className }) => ( -
{children}
-); - -export default Container; diff --git a/apps/landing/src/components/Layout/Footer/Footer.tsx b/apps/landing/src/components/Layout/Footer/Footer.tsx deleted file mode 100644 index b2e486e045..0000000000 --- a/apps/landing/src/components/Layout/Footer/Footer.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { cn } from '@venusprotocol/ui'; -import Container from 'components/Container/Container'; -import { DOC_URL } from 'constants/production'; -import { useDAppUrl } from 'hooks/useDAppUrl'; -import Logo from '../assets/logo.svg?react'; -import { NavLinkList } from './NavLink/NavLink'; -import IconDiscord from './assets/discord.svg?react'; -import IconGithub from './assets/github.svg?react'; -import LogoMobile from './assets/logoSmall.svg?react'; -import IconTelegram from './assets/telegram.svg?react'; -import IconX from './assets/x.svg?react'; - -const socialLinks = [ - { - Icon: IconTelegram, - href: 'https://t.me/venusprotocol', - }, - { - Icon: IconDiscord, - href: 'https://discord.gg/venus-protocol-912811548651708448', - }, - { - Icon: IconX, - href: 'https://x.com/VenusProtocol', - }, - { - Icon: IconGithub, - href: 'https://github.com/VenusProtocol/', - }, -]; - -const legalPages = [ - { - href: '/privacy-policy', - text: 'Privacy policy', - }, - { - href: '/terms-of-use', - text: 'Terms of use', - }, -]; - -interface IFooterProps { - className?: string; -} - -const Footer: React.FC = ({ className }) => { - const { dAppUrl } = useDAppUrl(); - - const appPages = [ - { - href: dAppUrl, - text: 'App', - }, - { - href: DOC_URL, - text: 'Docs', - }, - { - href: 'https://github.com/VenusProtocol/venus-protocol-documentation/tree/main/whitepapers', - text: 'White paper', - }, - ]; - - return ( -
- -
- - - -
- -
- -
- - - - - - -
- {socialLinks.map(({ href, Icon }) => ( - - - - ))} -
-
-
-
- ); -}; - -export default Footer; diff --git a/apps/landing/src/components/Layout/Footer/NavLink/NavLink.tsx b/apps/landing/src/components/Layout/Footer/NavLink/NavLink.tsx deleted file mode 100644 index 99f3705cc1..0000000000 --- a/apps/landing/src/components/Layout/Footer/NavLink/NavLink.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { cn } from '@venusprotocol/ui'; - -export interface NavLink { - text: string; - href: string; -} - -export interface NavLinkProps { - links: NavLink[]; - className?: string; -} - -export const NavLinkList: React.FC = ({ links, className }) => ( -
- {links.map(({ href, text }) => ( - - {text} - - ))} -
-); diff --git a/apps/landing/src/components/Layout/Footer/assets/discord.svg b/apps/landing/src/components/Layout/Footer/assets/discord.svg deleted file mode 100644 index 890aed00e2..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/discord.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/Footer/assets/github.svg b/apps/landing/src/components/Layout/Footer/assets/github.svg deleted file mode 100644 index cc6e3cc7a7..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/github.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/Footer/assets/logoSmall.svg b/apps/landing/src/components/Layout/Footer/assets/logoSmall.svg deleted file mode 100644 index ec98d9b02a..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/logoSmall.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/apps/landing/src/components/Layout/Footer/assets/telegram.svg b/apps/landing/src/components/Layout/Footer/assets/telegram.svg deleted file mode 100644 index f5c393b9c6..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/telegram.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/Footer/assets/venus.svg b/apps/landing/src/components/Layout/Footer/assets/venus.svg deleted file mode 100644 index e2159a074d..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/venus.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/Footer/assets/x.svg b/apps/landing/src/components/Layout/Footer/assets/x.svg deleted file mode 100644 index 35b0b9b4d2..0000000000 --- a/apps/landing/src/components/Layout/Footer/assets/x.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/Header/Header.module.css b/apps/landing/src/components/Layout/Header/Header.module.css deleted file mode 100644 index eabe6a0e23..0000000000 --- a/apps/landing/src/components/Layout/Header/Header.module.css +++ /dev/null @@ -1,94 +0,0 @@ -.root { - top: 0; - position: sticky; - z-index: 1; - transition: background-color 0.5s ease-in-out; - display: flex; - justify-content: space-between; - align-items: center; - padding: 16px; - height: 60px; - max-width: var(--global-max-width); - width: 100%; - margin-bottom: -60px; - - @media (min-width: 640px) { - padding: 16px 24px; - } - - @media (min-width: 840px) { - padding: 16px 32px; - } - - @media (min-width: 1280px) { - padding: 16px 48px; - margin-left: auto; - margin-right: auto; - } - - @media (min-width: 640px) { - height: 80px; - margin-bottom: -80px; - } -} - -.headerAfterScroll { - background-color: var(--color-background); -} - -.logo { - width: 154px; -} - -.menuMobileBtn { - padding: 0; - background-color: transparent; - border: none; - width: 24px; - height: 24px; - display: flex; - align-items: center; - justify-content: center; - - @media (min-width: 840px) { - display: none; - } -} - -.menuMobile { - position: fixed; - width: 100vw; - left: 0; - right: 0; - background-color: var(--color-background); - top: 60px; - height: calc(100vh - 60px); - opacity: 0; - transition: opacity .3s, visibility .3s; - visibility: hidden; - @media (min-width: 640px) { - height: calc(100vh - 80px); - top: 80px; - } -} - -.menuMobileOpened { - opacity: 1; - visibility: visible; -} - -.menuDesktop { - display: none; - @media (min-width: 840px) { - display: flex; - } -} - -.headerNavLinksWrapper { - margin-right: 24px; -} - -.headerLink { - padding-left: 16px; - padding-right: 16px; -} diff --git a/apps/landing/src/components/Layout/Header/Header.tsx b/apps/landing/src/components/Layout/Header/Header.tsx deleted file mode 100644 index 3c0c58a92b..0000000000 --- a/apps/landing/src/components/Layout/Header/Header.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { cn } from '@venusprotocol/ui'; -import { useEffect } from 'react'; -import ScrollLock from 'react-scrolllock'; - -import LinkLaunchApp from 'components/Link/LinkLaunchApp'; -import { DOC_URL, WHITEPAPERS_URL } from 'constants/production'; -import { useAppStateContext } from 'context'; -import NavigationLinks from '../NavigationLinks/NavigationLinks'; -import Logo from '../assets/logo.svg?react'; -import s from './Header.module.css'; -import MenuMobile from './MenuMobile'; - -const content = [ - { - href: WHITEPAPERS_URL, - text: 'Whitepapers', - }, - { - href: DOC_URL, - text: 'Docs', - }, -]; - -interface IHeaderProps { - className?: string; -} - -const HEADER_ID = 'header-id'; - -const scrollEvent = () => { - const header = document.getElementById(HEADER_ID); - const scrollTop = window.pageYOffset || document.documentElement.scrollTop; - - if (header) { - if (scrollTop > 100) { - header.classList.add(s.headerAfterScroll); - } else { - header.classList.remove(s.headerAfterScroll); - } - } -}; - -const Header: React.FC = ({ className }) => { - const { isMobileMenuOpen, setIsMobileMenuOpen } = useAppStateContext(); - - useEffect(() => { - window.addEventListener('scroll', scrollEvent); - - return () => { - window.removeEventListener('scroll', scrollEvent); - }; - }, []); - - return ( - <> -
- - - - - - - - -
- - -
-
- - - - ); -}; - -export default Header; diff --git a/apps/landing/src/components/Layout/Header/MenuMobile.module.css b/apps/landing/src/components/Layout/Header/MenuMobile.module.css deleted file mode 100644 index 6630768ba5..0000000000 --- a/apps/landing/src/components/Layout/Header/MenuMobile.module.css +++ /dev/null @@ -1,33 +0,0 @@ -.headerNavLinksWrapper { - flex-direction: column; - margin-bottom: 10px; -} -.headerLink { - padding-top: 21px; - padding-bottom: 21px; - position: relative; - display: flex; - justify-content: space-between; - align-items: center; - height: auto; - - &+& { - border-top: 1px solid var(--color-background-secondary); - } - - &:after { - content: ''; - position: absolute; - right: 0; - background-image: url(./assets/iconArrow.svg); - width: 5px; - height: 8px; - color: white; - top: 50%; - transform: translateY(-50%); - } -} -.btn { - width: 100%; - text-align: center; -} \ No newline at end of file diff --git a/apps/landing/src/components/Layout/Header/MenuMobile.tsx b/apps/landing/src/components/Layout/Header/MenuMobile.tsx deleted file mode 100644 index 76f458924b..0000000000 --- a/apps/landing/src/components/Layout/Header/MenuMobile.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import Container from 'components/Container/Container'; -import LinkLaunchApp from 'components/Link/LinkLaunchApp'; -import { DAPP_URL, DOC_URL, WHITEPAPERS_URL } from 'constants/production'; -import NavigationLinks from '../NavigationLinks/NavigationLinks'; -import s from './MenuMobile.module.css'; - -const content = [ - { - href: WHITEPAPERS_URL, - text: 'Whitepapers', - }, - { - href: DOC_URL, - text: 'Docs', - }, - { - href: DAPP_URL, - text: 'Markets', - }, -]; - -interface IMenuMobileProps { - className?: string; -} - -const MenuMobile: React.FC = ({ className }) => ( - - - - - -); - -export default MenuMobile; diff --git a/apps/landing/src/components/Layout/Header/assets/iconArrow.svg b/apps/landing/src/components/Layout/Header/assets/iconArrow.svg deleted file mode 100644 index e2ca216300..0000000000 --- a/apps/landing/src/components/Layout/Header/assets/iconArrow.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.module.css b/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.module.css deleted file mode 100644 index 107da47510..0000000000 --- a/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.root { - display: flex; -} diff --git a/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.tsx b/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.tsx deleted file mode 100644 index 1a12d8233a..0000000000 --- a/apps/landing/src/components/Layout/NavigationLinks/NavigationLinks.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { cn } from '@venusprotocol/ui'; -import Link from 'components/Link/Link'; -import s from './NavigationLinks.module.css'; - -interface INavigationLinksProps { - content: Array<{ - href: string; - text: string; - }>; - showLegalPages?: boolean; - classNames?: { root?: string; link?: string }; -} - -const NavigationLinks: React.FC = ({ classNames, content }) => ( -
- {content.map(({ href, text }) => ( - - {text} - - ))} -
-); - -export default NavigationLinks; diff --git a/apps/landing/src/components/Layout/assets/logo.svg b/apps/landing/src/components/Layout/assets/logo.svg deleted file mode 100644 index 7f45e8e596..0000000000 --- a/apps/landing/src/components/Layout/assets/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/apps/landing/src/components/Layout/index.tsx b/apps/landing/src/components/Layout/index.tsx deleted file mode 100644 index 1c289149ec..0000000000 --- a/apps/landing/src/components/Layout/index.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Outlet } from 'react-router'; -import Footer from './Footer/Footer'; -import Header from './Header/Header'; - -export const Layout: React.FC = () => ( - <> -
- -
- -
- -